본문 바로가기

CS Knowledge/DataBase

DataBase - Type

 

 

 

이번에는 데이터베이스의 종류에 대해서 정리해보고자 한다.

 

1. 관계형 데이터베이스

2. NoSQL 데이터베이스

 

 

 

1. 관계형 데이터베이스(RDBMS)

- 행과 열을 가지는 표 형식 데이터를 저장

- SQL이라는 언어를 써서 조작

- MySQL(SQL 사용), PostgreSQL, Oracle(PL/SQL 사용), SQL Server(T-SQL 사용), MSSQL 등

- 운영체제와 호환여부를 판단해야 함.

 

 

PostgreSQL

- VACCUM(디스크 조작이 차지하는 영역을 회수 가능)

- 최대 테이블 312TB

- JSON으로 쿼리처리 허용

- 지정 시간에 복구하는 기능

- 로깅, 접근 제어, 중첩된 트랜잭션, 백업 등의 기능을 제공

 

 

 

 

MySQL

 

특징

- 대부분의 운영체제와 호환

- C, C++ 기반

- MyISAM 인덱스 압축 기술

- B-트리 기반의 인덱스

- 스레드 기반의 메모리 할당 시스템

- 매우 빠른 조인

- 최대 64개의 인덱스 제공

- 대용량 데이터를 위해 설계

- 롤백, 커밋, 이중 암호 지원 보안 제공

- 쿼리 캐시를 지원, 입력된 커리 문에 대한 전체 결과 집한을 저장하여 속도 향상 (구문분석, 최적화, 실행 생략)

 

아키텍쳐

- MySQL Connectors : 어플리케이션과의 연결 (JDBC(Spring), Node.js, C++, Python, PHP, Ruby 등)

- MySQL Shell

- MySQL Server Process

   - NoSQL

   - SQL Interface

   - Parser

   - Optimizer

   - Cahces and Buffers : Global and Storage Engines and Buffers

   - Storage Engines : 모듈식 아키텍쳐로 쉽게 스토리지 엔진을 바꿀 수 있으며 데이터 웨어하우싱, 트랜잭션 처리, 고가용성 처리

      - InnoDB

      - MyISAM

      - NDB Cluster

      - Memory

   - File System : Files and Logs

 

 

 

2. NOSQL

- SQL을 사용하지 않음

- MongoDB, Redis 등

 

MongoDB

 

특징

- 기본적으로 하드디스크에 저장

- JSON을 통해 데이터에 접근 가능

- Binary JSON(BJSON) 형태로 데이터가 저장

- 와이어드 타이거 엔진이 기본 스토리지 엔진으로 장착된 키-값 데이터 모델에서 확정한 도큐먼트 기반의 데이터베이스

- 확장성이 뛰어남

- 빅데이터를 저장할 때 성능이 좋다.

- 고가용성과 샤딩, 레플리카셋을 지원

- 스키마를 정해놓지 않고 데이터를 삽입할 수 있기에 다양한 도메인의 데이터베이스를 기반으로 분석, 로깅 구현 가능

- 도큐먼트 생성마다 다른 컬렉션에서 중복된 값을 지니기 힘든 유니크한 값인 ObjectID 생성

 

ObjectID

- 타임스탬프(4바이트) + 랜덤 값(5바이트) + 카운터(3바이트)

 

 

 

Redis

 

특징

- 인메모리 데이터베이스(하드디스크가 아닌 주메모리(RAM)에 저장하고 종료시 손실)

- 키-값 데이터 모델 기반의 데이터베이스

- 기본 데이터 타입 : String, 최대 512MB

- 셋, 해시 지원

 

사용

- pub/sub 기능을 통해 채팅 시스템에 사용

- 다른 데이터베이스 앞단에 두어 사용하는 캐싱 계층에 사용 

- 단순한 키-값이 필요한 세션 정보 관리에 사용 

- 정렬된 셋 자료 구조를 이용한 실시간 순위표 서비스에 사용 가능

 

 

 

 

 

'CS Knowledge > DataBase' 카테고리의 다른 글

DataBase - Join  (0) 2023.04.27
DataBase - Index  (0) 2023.04.26
DataBase - Transaction and Integrity  (0) 2023.04.25
DataBase - ERD, 정규화  (0) 2023.04.05
DataBase - Basic  (0) 2023.04.02