데이터베이스의 종류에는
계층형 데이터베이스(HDBMS)
네트워크형 데이터베이스 NDBMS
관계형 데이터베이스 RDBMS
객체지향 데이터베이스 ODBMS
NoSQL
사계열 데이터베이스 TSDB
가 있습니다.
4.4.1 관계형 데이터베이스(RDBMS)
- 행과 열을 가지는 표 형식 데이터를 저장하는 형태의 데이터베이스
- SQL 사용해서 조작합니다.
- MySQL, PostgreSQL, 오라클, SQL Server, MSSQL 등이 있습니다.
MySQL
- 대부분의 운영체제와 호환됩니다.
- 현재 가장 많이 사용하는 데이터베이스입니다.
- C, C++로 만들어졌다.
- MyISAM 인덱스 압축 기술
- B-트리 기반의 인덱스
- 스레드 기반의 메모리 할당 시스템
- 매우 빠른 조인
- 최대 64개의 인덱스를 제공
- 대용량 데이터 베이스를 위해 설계되어 있습니다.
- 롤백,커밋, 이중 암호 지원 보안 등의 기능을 제공합니다.
- 스토리지 엔진이 모듈식 아키텍처이다.
PostgreSQL
- 디스크 조각이 차지하는 영역을 회수할 수 있는 장치인 VACUUM 이 특징이다
- 테이블은 최대 32TB 입니다.
- SQL, JSON을 이용한다.
- 지정시간에 복구하는 기능, 로깅, 접근 제어, 중첩된 트랜잭션, 백업 등을 할 수 있다.
4.4.2 NoSQL 데이터 베이스 (Not only SQL)
- SQL을 사용하지 않는 데이터베이스를 말합니다.
- MongoDB, redis 등이 있습니다.
MongoDB
- JSON을 통해 데이터에 접근하고, Binary JSON(BJSON)로 데이터가 저장됩니다.
- 와이어드타이거 엔진이 기본 스토리지 엔진입니다.
- 도큐먼트 기반입니다.
- 확장성이 뛰어나며, 빅데이터를 저장할 때 성능이 좋고 고가용성과 샤딩, 레플리카셋을 지원합니다.
- 스키마를 정해 놓지 않고 데이터를 삽입할 수 있기 때문에 다양한 도메인의 데이터베이스를 기반으로 분석하거나 로깅 등을 구현할 때 강점입니다.
- 도큐먼트를 생성할 때 마다 다른 컬렉션에서 중복된 값을 지니기 힘든 유니크값인 ObjectID 생성된다.
- 기본키이다.
- 유닉스 시간 기반의 타임스탬프(4바이트), 랜덤값(5바이트), 카운터(3바이트)로 이루어져 있다.
redis
- 인메모리 데이터베이스입니다.
- 키-값 데이터 모델 기반의 데이터베이스입니다.
- 기본적인 데이터타입은 문자열(string)입니다.
- 최대 512GB 저장 가능합니다.
- 셋(set), 해시(hash) 등을 지원합니다.