Database Families

데이터베이스 종류는 우열이 아니라 저장 모델과 질문의 차이다

RDBMS, NoSQL, NewSQL, 특수 목적 DB는 같은 데이터를 다르게 바라봅니다. 먼저 데이터 모양, 정합성, 확장 방식, 주된 질의를 확인해야 선택이 단순해집니다.

정형 관계

RDBMS

테이블, SQL, 트랜잭션, 제약 조건으로 정확한 관계를 관리합니다.

OracleMySQLPostgreSQL
목적별 모델

NoSQL

키-값, 문서, wide-column, 그래프처럼 접근 패턴에 맞춘 모델을 씁니다.

RedisMongoDBCassandra
분산 SQL

NewSQL

SQL과 트랜잭션을 유지하면서 분산 합의와 수평 확장을 결합합니다.

SpannerCockroachDBTiDB
특수 목적

Purpose-built

검색, 시계열, 벡터, 분석처럼 특정 질의 성격에 집중합니다.

ElasticInfluxDBVector DB
Schema 구조가 고정적인가 정형 테이블인지, 문서처럼 자주 바뀌는 구조인지 봅니다.
Consistency 틀리면 얼마나 위험한가 결제와 권한은 강한 보장이, 캐시는 지연 허용이 가능할 수 있습니다.
Scale 무엇이 커지는가 읽기, 쓰기, 저장량, 지역 분산 중 병목이 어디인지 구분합니다.
Query 어떤 질문이 많은가 조인, 키 조회, 검색, 관계 탐색, 유사도 검색은 서로 다른 도구가 맞습니다.
정리
데이터베이스 선택은 분류표에서 이름을 고르는 일이 아니라, 가장 자주 실패할 수 있는 요구사항을 어떤 저장 모델이 자연스럽게 감당하는지 확인하는 일입니다.