토픽 212 / 224·비교표
정규화 및 역정규화
정규화 vs 역정규화
| 항목 | 정규화 | 역정규화 |
|---|
| 목적 | 무결성, 중복 제거 | 조회 성능 향상 |
| 중복 | 최소화 | 의도적 허용 |
| 조인 | 증가 | 감소 |
| 적용 | OLTP 시스템 | DW/OLAP 시스템 |
| 이상현상 | 방지 | 발생 가능(보상 필요) |
완전종속 vs 부분종속 vs 이행종속
| 항목 | 완전 함수 종속 | 부분 함수 종속 | 이행 함수 종속 |
|---|
| 상태 | 정상(2NF 충족) | 2NF 위반 | 3NF 위반 |
| 의미 | 기본키 전체에 종속 | 기본키 일부에 종속 | X→Y→Z 간접 종속 |
| 해결 | - | 테이블 분리 | 테이블 분리 |
삽입이상 vs 삭제이상 vs 갱신이상
| 항목 | 삽입 이상 | 삭제 이상 | 갱신 이상 |
|---|
| 증상 | NULL 강제 삽입 | 유지 정보 함께 삭제 | 데이터 불일치 |
| 원인 | 불필요 데이터 동시 삽입 | 마지막 데이터 삭제 시 | 중복 데이터 일부만 수정 |
| 해결 | 정규화(테이블 분해) | 정규화(테이블 분해) | 정규화(테이블 분해) |
BCNF vs 3NF
| 항목 | 3NF | BCNF |
|---|
| 조건 | 비키→키 종속 제거 | 모든 결정자가 후보키 |
| 엄격도 | 상대적 완화 | 더 엄격 (BCNF ⊂ 3NF) |
| 분해 시 | 종속성 보존 보장 | 종속성 손실 가능 |
수평분할 vs 수직분할
| 항목 | 수평 분할 | 수직 분할 |
|---|
| 분할 단위 | 행(Row) 단위 | 컬럼(Column) 단위 |
| 기준 | 범위, 해시, 리스트 | 접근 빈도 |
| 적용 | 이력 데이터, 대용량 | 접근빈도 분리 |
파생컬럼 vs 뷰
| 항목 | 파생 컬럼 | 뷰(View) |
|---|
| 계산 시점 | 저장 시점(사전 계산) | 조회 시점(실시간 계산) |
| 저장 | 물리적 저장 | 논리적 정의만 |
| 성능 | 조회 빠름, 동기화 필요 | 조회 시 연산 부하 |
롤업(Roll-Up) vs 롤다운(Roll-Down) vs 개별(Identity)
| 구분 | 롤업(Roll-Up) | 롤다운(Roll-Down) | 개별(Identity) |
|---|
| 전략 | 슈퍼타입에 통합 (Single) | 서브타입에 분산 (Plus) | 각각 테이블 (1:1) |
| 테이블 수 | 1개 | 서브타입 수만큼 | 슈퍼 1 + 서브 N개 |
| NULL | 많음 (다른 서브타입 컬럼) | 없음 | 없음 |
| 조인 | 불필요 | 불필요 (서브타입 단독) | 필요 (슈퍼-서브) |
| 전체 조회 | 단순 SELECT | UNION 필요 | UNION 또는 조인 |
| 적합 상황 | 서브타입 적음, 전체 조회 빈번 | 서브타입별 독립 처리 | 정규화 중시, 변경 유연 |