Relational DBMS
ex. Oracle, MySQL, SQL Server, PostgreSQL
NoSQL 중 하나
JSON 유사 형식의 문서로 데이터를 저장 및 쿼리하도록 설계된 비관계형 데이터베이스 유형이다.
문서 및 문서 데이터베이스의 유연하고 반구조화된 계층적 특성을 통해 개발자는 계속해서 애플리케이션의 요구를 발전시킬 수 있다.
문서 모델은 각 문서가 고유하고 시간에 따라 진화하는 콘텐츠 관리 시스템, 사용자 프로파일 및 카탈로그와 같은 사용 사례에 유용하다.
문서 데이터베이스에서는 유연한 인덱싱, 강력한 임시 쿼리, 문서 모음에 대한 분석을 지원한다.
ex. MongoDB
문서 데이터베이스는 블로그 및 비디오 플랫폼과 같은 콘텐츠 관리 애플리케이션으로 아주 훌륭한데, 애플리케이션이 추적하는 각 엔티티를 단일 문서로 저장할 수 있다.
전자 상거래 애플리케이션에서 다른 제품의 개별 속성 수는 서로 다른데, RDBMS에서는 수많은 속성을 관리하는 것이 비효율적이며 읽기 성능에도 영향을 준다.
하지만, 문서 데이터베이스를 사용하면 각 제품의 속성을 단일 문서로 기술해서 관리가 쉽고 읽기 속도도 빨라진다. 한 제품의 속성을 변경해도 다른 제품에는 영향을 주지 않는다.
스키마를 업데이트하거나 데이터베이스 중단이 필요하지 않다.
데이터 타입 | 특징 | 예제 |
---|---|---|
CHAR(n) | 고정 길이 string 되도록이면 쓰지말 것 쓸 거면 CHARACTER SET ascii 를 붙일 것 길이가 고정길이보다 적은 문자열을 입력하면 공백으로 채워진다 | country_code char(2) CHARACTER set ascii |
VARCHAR(n) | 가변 길이 string(설정된 max len) max len를 넘어서면 자동으로 잘린다. | phone varchar(20) not null |
TINYTEXT는 쓰지말 것!
데이터 타입 | 특징 | 예제 |
---|---|---|
DATE | 날짜 O, 시간 X | date -> 'YYYY-MM-DD' |
DATETIME | 날짜 O, 시간 O | 'YYYY-MM-DD HH:MM:SS' |
TIMESTAMP | '1970-01-01 00:00:01'UTC~'2038-01-19 03:14:07'UTC 사이의 날짜 및 시간으로 구성된 정수 유형 | |
YEAR | year를 나타내고 1901부터 2155 범위이다. | |
TIME | 'HH:MM:SS' 형태로 시간을 나타내고 '-838:59:59'~'838:59:59' 범위이다. |