관계형 데이터베이스 핸드북

1. 개요

관계형 데이터베이스(Relational Database, RDB)는 데이터를 테이블(table) 형태로 저장하고, 테이블 간의 **관계(relationship)**를 기반으로 효율적으로 관리·조회하기 위해 고안된 데이터베이스 관리 시스템(DBMS)이다. 1970년대 E. F. Codd의 논문에서 제안된 관계형 모델을 이론적 토대로 삼으며, 오늘날 기업·웹·모바일 서비스 전반에 걸쳐 가장 널리 쓰이는 데이터 저장 방식이다.


2. 탄생 배경 및 필요성

  1. 데이터 독립성(Data Independence)
    • 물리적 저장 방식과 논리적 데이터 모델을 분리해, 저장 구조 변경 시 애플리케이션 수정을 최소화.
  2. 정형화된 질의 언어(SQL)
    • 비절차적 선언형 언어(SQL: Structured Query Language)를 통해 직관적이고 일관된 데이터 조작·조회 지원.
  3. 무결성 제약(Integrity Constraints)
    • 개체 무결성, 참조 무결성, 도메인 무결성 등을 통해 데이터 정확성·일관성 보장.
  4. 동시성 제어 및 트랜잭션(ACID 특성)
    • 원자성(Atomicity), 일관성(Consistency), 독립성(Isolation), 지속성(Durability)을 갖춘 트랜잭션으로 안전한 다중 사용자 환경 구현.

3. 핵심 구조

3.1 테이블과 스키마

  • 테이블(table): 행(row)/열(column)으로 구성된 데이터 집합.
  • 스키마(schema): 테이블·뷰·인덱스·관계 제약 등의 메타데이터 정의.

3.2 관계(Relationship) 종류

  • 1:1(일대일): 두 테이블의 각 행이 정확히 한 행과 연결.
  • 1:N(일대다): 부모 테이블의 하나의 행이 자식 테이블 여러 행과 연결.
  • N:M(다대다): 서로 다수의 행이 연결되며, 일반적으로 교차 테이블(조인 테이블) 사용.

3.3 정규화(Normalization)

  1. 제1정규형(1NF): 컬럼 값이 원자값(더 이상 분해 불가)이어야 함.
  2. 제2정규형(2NF): 부분 함수 종속 제거(기본키 부분집합에 종속된 속성 분리).
  3. 제3정규형(3NF): 이행적 종속 제거(기본키→비주요키→또다른 비주요키 관계 제거).
  4. BCNF, 4NF, 5NF: 보다 엄격한 종속성 제거로 이상 현상 최소화.

3.4 인덱스(Index)

  • B-트리, 해시 기반 인덱스를 통해 검색 성능 향상.
  • 클러스터드(clustered) vs 논클러스터드(non-clustered) 구조 차이.

4. 주요 기능 및 사용법

4.1 SQL 기본

  • DDL: CREATE, ALTER, DROP으로 테이블·스키마 정의·수정·삭제
  • DML: SELECT, INSERT, UPDATE, DELETE로 데이터 조회·삽입·수정·삭제
  • DCL: GRANT, REVOKE로 권한 관리
  • TCL: COMMIT, ROLLBACK으로 트랜잭션 관리

4.2 트랜잭션 관리

  • 시작: BEGIN TRANSACTION
  • 종료: COMMIT (성공 시 반영) / ROLLBACK (실패 시 이전 상태 복구)

4.3 조인(Join)

  • 내부 조인(INNER JOIN): 양쪽 모두 일치하는 행만 반환
  • 외부 조인(LEFT/RIGHT/FULL OUTER JOIN): 한쪽 일치 여부에 따라 NULL 포함
  • 교차 조인(CROSS JOIN): 카르테시안 곱 반환
  • 자기 조인(Self JOIN): 동일 테이블 간의 관계 조회

4.4 뷰(View)

  • 가상 테이블로 복잡한 쿼리를 단순화
  • 읽기 전용 또는 업데이트 가능 뷰로 활용

5. 설계 및 운영 가이드

5.1 데이터 모델링

  1. 개념적 모델링: ER(Entity–Relationship) 다이어그램으로 실세계 개체·관계 도출
  2. 논리적 모델링: 정규화 및 스키마 설계
  3. 물리적 모델링: 인덱스, 파티셔닝, 저장소 최적화

5.2 성능 최적화

  • 쿼리 튜닝: 실행 계획(EXPLAIN), 인덱스 활용, 불필요한 풀 테이블 스캔 제거
  • 파티셔닝 및 샤딩: 대용량 데이터 분산 저장
  • 커넥션 풀링: 다중 동시 접속 시 오버헤드 감소

5.3 보안 및 권한 관리

  • 역할(Role) 기반 접근 제어(RBAC)
  • 암호화: 전송 계층(TLS) 및 저장 시 암호화
  • 감사 로깅(Audit Log)

5.4 백업 및 복구

  • 전체 백업(Full Backup) vs 증분 백업(Incremental Backup)
  • Point-in-Time Recovery로 특정 시점 복원

6. 주요 상용 RDBMS 비교

기능Oracle DatabaseMySQLPostgreSQLMicrosoft SQL Server
라이선스상용/커뮤니티오픈소스/GPL오픈소스/PostgreSQL License상용/무료 Express
ACID 지원완전 지원완전 지원완전 지원완전 지원
파티셔닝지원지원(분할 테이블)지원지원
JSON 처리제한적(PL/JSON)JSONB 지원JSONB 고급 지원JSON 지원
확장성(샤딩)Oracle RACMySQL ClusterCitus 확장Azure SQL Hyperscale
복제(Replication)Data Guard복제 지원스트리밍 복제Always On Availability Groups

7. 결론 및 권장 사항

  • 요구사항 분석 후 적합한 RDBMS 선정
  • 정규화로 무결성 보장, 필요 시 비정규화로 성능 보완
  • 주기적 백업·복구 테스트 시행
  • 모니터링 도구(Prometheus, Grafana 등)로 운영 안정성 확보

본 핸드북은 관계형 데이터베이스의 핵심 개념·구조·사용법·운영 가이드 등을 통합 정리하여, 설계부터 운영까지 실무에 즉시 활용할 수 있도록 구성되었다.

관계형 데이터베이스