데이터베이스의 역사

계층형에서 분산 SQL, 그리고 벡터 DB까지 흐름과 쟁점을 한눈에

데이터베이스의 역사: 파일에서 분산 트랜잭션까지

데이터베이스(Database, DB)는 단순한 저장소가 아니라, 애플리케이션의 일관성, 성능, 확장성, 규정 준수를 떠받치는 기반 운영체제다. 지난 60여 년 동안 DB는 하드웨어의 발전, 네트워크 모델의 변화, 분산 시스템 이론의 성숙과 함께 끊임없이 진화해 왔다. 이 글은 그 여정을 핵심 사건과 개념 중심으로 빠르게 훑는다.

한눈에 보는 타임라인

1

1960s: 계층형·네트워크형 모델의 시대

IBM IMS로 대표되는 계층형(hierarchical)과 CODASYL 네트워크 모델이 주류였다. 하드웨어 제약에 최적화된 구조였지만, 스키마 변경과 질의 유연성이 약했다.

2

1970s: 관계형 모델의 탄생

E. F. Codd가 관계형 모델과 정규화를 제시했다. 선언적 질의 언어(SQL)의 토대가 마련되며 데이터 독립성과 이론적 기반이 확립됐다.

3

1980s: 상용 RDBMS의 부상

Oracle, IBM DB2, Informix가 상용화되며 트랜잭션 처리와 동시성 제어가 성숙했다. ANSI SQL 표준(86/89/92)로 상호운용성의 기반이 만들어졌다.

4

1990s: OLTP·OLAP, 복제와 고가용성

인터넷 보급과 함께 온라인 트랜잭션 처리(OLTP)가 폭발적으로 증가했다. 리플리케이션, 페일오버, 데이터 웨어하우징과 OLAP 큐브가 도입됐다.

5

2000s: 웹 규모와 NoSQL의 등장

Google, Amazon 같은 빅테크의 규모 문제로 키-값, 문서, 컬럼 패밀리, 그래프 등 다양한 NoSQL이 등장했다. CAP 정리와 BASE 철학이 실무로 파고들었다.

6

2010s: NewSQL·분산 SQL과 클라우드 네이티브

Google Spanner, CockroachDB 등 분산 트랜잭션과 글로벌 일관성을 표방한 시스템이 등장했다. 매니지드 서비스와 자동화 오퍼레이션이 표준이 됐다.

7

2020s: 서버리스·HTAP·벡터 DB

서버리스 확장, OLTP와 OLAP을 통합하려는 HTAP, 임베딩을 저장·검색하는 벡터 DB가 부상했다. AI/검색과 DB의 경계가 흐려지고 있다.

핵심 개념 요약
  • 데이터 독립성(Data Independence): 애플리케이션과 저장 구조를 분리해 유지보수성을 높인다.
  • 정규화(Normalization): 중복을 줄이고 이상(anomaly)을 방지하는 이론적 설계 원칙.
  • 동시성 제어(Concurrency Control): 여러 트랜잭션이 충돌 없이 안전하게 동작하도록 보장한다.

관계형 vs. 비관계형: 언제 무엇을 선택할까?

관계형은 스키마 엄격성, 조인, ACID를 바탕으로 금융·결제·재고 같은 핵심 시스템을 지탱한다. 복잡한 질의를 짧은 SQL로 표현할 수 있다.

sql상품별 월간 매출 Top 5
{SELECT p.id, p.name, SUM(oi.quantity * oi.price) AS revenue FROM orders o JOIN order_items oi ON o.id = oi.order_id JOIN products p ON p.id = oi.product_id WHERE o.paid = TRUE AND o.created_at >= DATE_TRUNC('month', NOW()) GROUP BY 1,2 ORDER BY revenue DESC LIMIT 5;}
ACID: 신뢰의 최소 단위
  • Atomicity: 트랜잭션은 전부 수행되거나 전혀 수행되지 않는다.
  • Consistency: 트랜잭션 전·후로 제약조건이 유지된다.
  • Isolation: 동시 실행이 직렬 실행과 동일한 결과를 보장한다.
  • Durability: 커밋된 변경은 장애 이후에도 남는다.
CAP 정리: 분산 시스템의 선택지

하나의 네트워크 파티션이 발생하면, 분산 시스템은 **일관성(Consistency)**과 가용성(Availability) 사이에서 하나를 희생해야 한다. 현실의 시스템은 요구사항에 맞춰 강한 일관성(예: 분산 트랜잭션) 또는 결과적 일관성(예: 대규모 가용성) 쪽으로 설계 트레이드오프를 선택한다.

실무에서 자주 쓰는 오늘의 도구들

빅데이터, 클라우드, 그리고 분산 SQL

2000년대 중반, 대용량 배치 처리의 표준으로 Hadoop/MapReduce가 떠올랐고, Google의 Bigtable·GFS 논문은 HBase·Cassandra의 영감을 제공했다. 2010년대 들어 클라우드 매니지드 서비스가 기본 선택지가 되며 운영 복잡도가 크게 낮아졌다. 분산 합의와 물리적 시간원을 결합한 Spanner 류 시스템은 전 지구 규모 일관성이라는 새로운 기준을 세웠다.

A simple relational model of data for large shared data banks.

E. F. CoddA Relational Model of Data for Large Shared Data Banks, 1970

지금, 그리고 다음

  • HTAP: 트랜잭션과 분석을 하나의 시스템으로 통합하려는 시도.
  • 서버리스 DB: 사용량 기반 과금과 자동 확장(예: PlanetScale, Aurora Serverless).
  • 벡터 검색: 임베딩 기반 유사도 검색으로 AI 애플리케이션을 가속.
  • 엣지·오프라인 동기화: CRDT와 로컬 우선 전략으로 사용자 경험을 개선.
실전 선택 가이드
  • 강한 무결성과 스키마 중심 도메인: 먼저 PostgreSQL을 고려하자.
  • 낮은 지연의 캐싱·세션: Redis로 외부화하고 만료전략을 명확히.
  • 스키마가 자주 변하는 컨텐츠·이벤트: 문서형을 검토하되 트랜잭션 범위를 체크.
  • 선형 확장·타임시리즈: 파티셔닝 키 전략을 먼저 설계한 뒤 컬럼 패밀리.

참고자료