DB

DB

데이터베이스 스키마 설계에 대한 가이드

데이터베이스 스키마란? 데이터베이스의 구조를 설명하는 것. 관계형 데이터베이스에서 사용되는 용어. 비관계형 데이터베이스에서는 스키마가 없다. 계층 물리적 스키마 물리적으로 스토리지에 저장되는 방식, 스토리지의 형태 논리적 스키마에 의해서 결정된다. 논리적 스키마 논리적인 데이터들 간의 구조. 테이블, 필드, 관계, 보기, 제약 조건 등... 종류 관계형 모델 행과 열의 테이블들의 관계 구조 평면 모델 단일 테이블(딱 1개) 구조 계층 모델 트리 구조 네트워크 모델 그래프 구조 Star 모델 (?) Snowflake 모델 (?) 스키마 설계란? 엔티티 구성하기 엔티티 간의 관계 정하기 제약조건 정하기 스키마 설계를 왜 하는가? 데이터 중복 방지 데이터 무결성 신속한 데이터 접근 보안 스키마 설계 가이드 엔..

DB

SQL vs NOSQL

SQL 관계형 데이터베이스 쿼리문(Insert, select, update, delete ...) 트랜잭션, 프로시져(stored function, view ...) 를 이용한 복잡한 로직 처리 MySQL, Oracle, PostgreSQL 등.. NOSQL 비관계형 데이터베이스 : documents, graph database, key-value store 유연함 저장 or 조회 성능이 빠르다 scale up 또는 scale down 이 쉽다 -> sharding 과 같은 방법으로 horizontal scaling 이 가능. (SQL 은 Vertical scaling 만 가능) 비즈니스 로직에 집중할 수 있다 스키마가 정해져있지 않으므로, 다른 구조의 데이터를 같은 컬렉션에 추가할 수 있다. 따라서 J..

DB

제약조건(Constraint)

제약조건(Constraint) 제약 조건이란, 데이터의 무결성을 위해 데이터 접근 시 실행되는 검사규칙 이다. 필드에 적용한다. CREATE, ALTER 문에서 사용가능하다. MySQL 에서 사용가능한 제약조건은 다음과 같다. NOT NULL UNIQUE PRIMARY KEY FOREIGN KEY DEFAULT NOT NULL NULL 값을 가질 수 없다. 즉 무조건 값이 있어야 한다. 문법 CREATE TABLE 테이블이름 ( 필드이름 필드타입 NOT NULL, ... ) 예시 CREATE TABLE Test ( ID INT NOT NULL ... ); UNIQUE 중복된 값은 불가능하다. 문법 1. CREATE TABLE 테이블이름 ( 필드명 필드타입 UNIQUE, ... ) 2. CREATE TAB..

DB

Oracle vs MySQL vs MSSQL

개요 Oracle - Oracle DB는 미국 오라클(Oracle)사의 관계형 데이터베이스 관리 시스템(RDBMS)의 이름이다. - 현재 유닉스/리눅스 환경에서 가장 널리 사용되는 RDBMS이다. - 검색이나 업데이트용 언어로는 국제표준화기구의 표준 구조화 조회 언어와 PL/SQL을 지원한다. - MySQL, MSSQL 보다 대용량 정보관리 할 때 성능이 좋다. MySQL - MySQL DB는 세계에서 가장 많이 사용되는 오픈 소스의 관계형 데이터베이스 관리 시스템이다. - 다중 스레드, 다중 사용자 형식의 구조질의어 형식의 데이터베이스 관리 시스템이다. - 오픈 소스로 기본적으로는 무료로 사용할 수 있다. MSSQL - MSSQL DB는 마이크로소프트 SQL 서버(Microsoft SQL Server)..

DB

DataSource, Connection Pool, HikariCP

DataSource 란? DataSource는 커넥션을 획득하는 방법을 추상화하는 인터페이스이다. 이 인터페이스의 핵심 기능은 커넥션 조회이다. 특히 자바에서는 javax.sql.DataSource라는 인터페이스를 제공해준다. 만약 사용자가 DriverManager를 통해 커넥션을 획득하다가 나중에 HikariCP 커넥션 풀을 이용하려고 하면 커넥션을 획득하는 애플리케이션 코드를 모두 변경해야 한다. 하지만 이 커넥션을 획득하는 방법을 추상화해놓은 DataSource 인터페이스를 이용한다면 해당 인터페이스의 구현체만 갈아 끼우면 된다. 따라서 애플리케이션 로직은 DataSource 인터페이스에만 의존하도록 하면, 사용자는 커넥션을 획득하는 방법을 바꾸더라도 애플리케이션 로직을 변경하지 않아도 된다. DB..

DB

데이터베이스 샤딩(Sharding)

데이터베이스 샤딩이란 무엇인가요? 데이터베이스 샤딩은 대규모 데이터베이스를 여러 머신에 저장하는 프로세스입니다. 단일 머신 또는 데이터베이스 서버는 제한된 양의 데이터만 저장하고 처리할 수 있습니다. 데이터베이스 샤딩은 데이터를 샤드라고 하는 더 작은 청크로 분할하고 여러 데이터베이스 서버에 저장함으로써 이러한 한계를 극복합니다. 모든 데이터베이스 서버의 기본 기술은 일반적으로 동일하며 함께 작동하여 대량의 데이터를 저장하고 처리합니다. 데이터베이스 샤딩이 중요한 이유는 무엇인가요? 애플리케이션이 성장함에 따라 애플리케이션 사용자 수와 애플리케이션에 저장되는 데이터의 양도 시간이 갈수록 증가합니다. 데이터 볼륨이 너무 커지고 애플리케이션을 사용하여 동시에 정보를 읽거나 저장하려고 하는 사용자가 너무 많아..

DB

w3school SQL tutorial

SQL 이 너무 부족한 것 같아서 튜토리얼 쭉 풀었다.

develop06
'DB' 카테고리의 글 목록