데이터베이스 이론(Database Theory)
개요(Overview)
이 주제는 관계형 모델(Relational Model)과 정규화 이론(Normalization Theory)부터 트랜잭션 처리(Transaction Processing), 쿼리 최적화(Query Optimization), 그리고 현대의 분산 패러다임(Distributed Paradigms)에 이르기까지 데이터베이스 시스템의 이론적 기반을 다룹니다. 이 레슨들은 모든 데이터베이스 실무자, 백엔드 엔지니어, 그리고 데이터 아키텍트가 올바르고 효율적이며 확장 가능한 데이터 시스템을 설계하기 위해 필요한 학문적 기반을 제공합니다.
사전 준비(Prerequisites)
- 기본 프로그래밍 경험 (Python 또는 다른 언어)
- SQL 기초 지식이 도움되지만 필수는 아님 (기본 원리부터 다룸)
- 기초 집합론 및 논리학 (집합, 관계, 서술논리)
- 파일 시스템과 데이터 저장 개념에 대한 기본 이해
학습 계획(Lesson Plan)
Phase 1: 기초(Foundations) (L01-L04)
| 파일명 |
난이도 |
핵심 주제 |
비고 |
| 01_Introduction_to_Database_Systems.md |
⭐ |
DBMS, Three-Schema Architecture, Data Independence, ANSI/SPARC |
개념적 기반 |
| 02_Relational_Model.md |
⭐⭐ |
Codd's Rules, Relations, Keys, Integrity Constraints, NULL Semantics |
수학적 기반 |
| 03_Relational_Algebra.md |
⭐⭐ |
σ, π, ⋈, ÷, Query Trees, Relational Calculus, SQL Equivalence |
형식 질의 언어 |
| 04_ER_Modeling.md |
⭐⭐ |
Entities, Relationships, Cardinality, EER, ER-to-Relational Mapping |
개념적 설계 |
Phase 2: 설계 이론(Design Theory) (L05-L08)
| 파일명 |
난이도 |
핵심 주제 |
비고 |
| 05_Functional_Dependencies.md |
⭐⭐⭐ |
FDs, Armstrong's Axioms, Closure, Canonical Cover, Attribute Closure |
형식 종속성 이론 |
| 06_Normalization.md |
⭐⭐⭐ |
1NF-5NF, BCNF, Decomposition, Lossless Join, Dependency Preservation |
스키마 정제 |
| 07_SQL_Theory.md |
⭐⭐ |
DDL, DML, Subqueries, Aggregation, Views, NULL Handling, Relational Completeness |
형식 언어로서의 SQL |
| 08_Constraints_and_Triggers.md |
⭐⭐⭐ |
CHECK, UNIQUE, FK Actions, Assertions, Triggers, Active Databases |
선언적 무결성 |
Phase 3: 내부 구조(Internals) (L09-L12)
| 파일명 |
난이도 |
핵심 주제 |
비고 |
| 09_Storage_and_Indexing.md |
⭐⭐⭐ |
Disk I/O, B+ Trees, Hash Indexes, Clustered vs Non-Clustered, Buffer Management |
물리적 저장 계층 |
| 10_Query_Processing.md |
⭐⭐⭐⭐ |
Parsing, Optimization, Cost Estimation, Join Algorithms, Execution Plans |
쿼리 엔진 내부 |
| 11_Transaction_Theory.md |
⭐⭐⭐⭐ |
ACID, Serializability, Conflict/View Equivalence, Schedules, Recoverability |
동시성 이론 |
| 12_Concurrency_Control.md |
⭐⭐⭐⭐ |
2PL, Deadlock, Timestamp Ordering, MVCC, Isolation Levels, Snapshot Isolation |
잠금 및 버전 프로토콜 |
Phase 4: 고급 주제(Advanced Topics) (L13-L16)
| 파일명 |
난이도 |
핵심 주제 |
비고 |
| 13_Recovery_Systems.md |
⭐⭐⭐⭐ |
WAL, ARIES, Checkpointing, Undo/Redo, Shadow Paging, Media Recovery |
장애 복구 |
| 14_NoSQL_and_NewSQL.md |
⭐⭐⭐ |
Key-Value, Document, Column-Family, Graph, CAP, BASE, NewSQL |
관계형을 넘어서 |
| 15_Distributed_Databases.md |
⭐⭐⭐⭐ |
Fragmentation, Replication, 2PC, Paxos/Raft, Distributed Joins, CAP Theorem |
분산 시스템 |
| 16_Database_Design_Project.md |
⭐⭐⭐⭐ |
Full Design Lifecycle: Requirements → ER → Relational → Normalization → SQL |
종합 프로젝트 |
추천 학습 경로(Recommended Learning Path)
Phase 1: 기초 (L01-L04) Phase 2: 설계 이론 (L05-L08)
│ │
▼ ▼
DBMS 개념 함수 종속성
관계형 모델 정규화 (1NF-5NF)
관계 대수 형식 언어로서의 SQL
ER 모델링 제약조건 및 트리거
│ │
└───────────────┬───────────────────────┘
│
▼
Phase 3: 내부 구조 (L09-L12)
저장장치, 인덱싱, B+ 트리
쿼리 처리 및 최적화
트랜잭션 및 동시성
│
▼
Phase 4: 고급 (L13-L16)
복구 (WAL, ARIES)
NoSQL 및 NewSQL 패러다임
분산 데이터베이스
│
▼
종합 설계 프로젝트 (L16)
총계(Total)
- 16개 레슨 (4개 기초 + 4개 설계 이론 + 4개 내부 구조 + 4개 고급)
- 난이도 범위: ⭐ ~ ⭐⭐⭐⭐
- 언어: SQL (주), Python (보조)
- 핵심 개념: 관계형 모델, 정규화, ACID, 직렬화가능성, B+ 트리, ARIES, CAP 정리