관계형 데이터베이스
- 행과 열을 가지는 표 형식 데이터를 저장하는 형태의 데이터베이스
- SQL을 사용해서 조작함
- ex) MySQL, PostgreSQL, 오라클, SQL Server, MSSQL 등
MySQL
대부분의 운영체제와 호환되며, 현재 가장 많이 사용하는 데이터베이스
장점
- 스토리지 엔진이 모듈식 아키텍처로 구성되어 쉽게 스토리지 엔진을 바꿀 수 있음
- 데이터 웨하우징, 트랜잭션 처리, 고가용성 처리
- 쿼리 캐시 지원 -> 캐시에 있는 쿼리와 동일하면 서버는 구문 분석, 최적화 및 실행을 건너뛰고 캐시의 출력만 표시
PostgreSQL
MySQL 다음으로 개발자들이 선호하는 데이터베이스
특징
- 디스크 조각이 차지하는 영역을 회수할 수 있는 장치 VACUUM
- 최대 테이블의 크기는 32TB
- SQL뿐만 아니라 JSON을 이용해 데이터에 접근 가능
- 지정 시간에 복구하는 기능, 로깅, 접근 제어, 중첩 트랜잭션, 백업
NoSQL 데이터베이스
- Not only SQL: SQL을 사용하지 않는 데이터베이스
- ex) MongoDB, redis
MongoDB
도큐먼트 기반 데이터베이스
특징
- JSON을 통해 데이터에 접근할 수 있고, Binary JSON(BSON) 형태로 데이터가 저장됨
- 와이어드타이거 엔진이 기본 스토리지 엔진으로 장착됨
- 확장성이 뛰어나며 빅데이터를 저장할 때 성능이 좋음
- 스키마를 정해놓지 않고 데이터를 삽입할 수 있어 다양한 도메인의 데이터를 기반으로 분석하거나 로깅 등을 구현할 때 강점을 보임
- 도큐먼트를 생성할 때마다 다른 컬렉션에서 중복된 값을 지니기 힘든 유니크한 값인 ObjectID가 생성됨
redis
키-값 데이터 모델 기반의 인메모리 데이터베이스
특징
- 기본적인 데이터 타입은 문자열이며, 최대 512MB까지 저장
- 셋, 해시 등을 지원
- pub/sub 기능을 통해 채팅 시스템, 다른 데이터베이스 앞단에 두어 사용하는 캐싱 계층, 단순한 키-값이 필요한 세션 정보 관리, 정렬된 셋 자료 구조를 이용한 실시간 순위표 서비스에 사용