Database · 한장정리
[기술사토픽] 관계형 모델 & 정규화 완벽 정리 - 한장정리
ER모델 구성요소, 관계 대수 연산, 함수 종속성과 1NF~BCNF 정규화 단계, 이상현상까지 기술사 빈출 주제를 완벽 정리합니다.
Ⅰ.데이터 구조화 기술, 관계형 모델의 개요
개념: 관계형 모델(Relational Model)은 Codd(1970)가 제안한 데이터 모델로, 데이터를 2차원 테이블(릴레이션) 형태로 표현하고 관계 대수를 기반으로 데이터를 조작합니다.
특징: (1) 릴레이션 — 행(튜플)과 열(속성)로 구성 (2) 기본키(PK)로 튜플 유일 식별 (3) 외래키(FK)로 릴레이션 간 참조 무결성 유지
가. ER모델 구성요소
| 구성요소 | 표기 | 설명 | 예시 |
|---|---|---|---|
| 개체(Entity) | 사각형 | 독립적으로 존재하는 현실 객체 | 학생, 과목 |
| 속성(Attribute) | 타원형 | 개체의 특성·성질 | 학번, 이름 |
| 관계(Relationship) | 마름모 | 개체 간 연관성 | 수강(학생-과목) |
| 기본키 속성 | 밑줄 타원 | 개체를 유일하게 식별 | 학번(PK) |
| 카디널리티 | 1:1, 1:N, M:N | 관계의 대응 수 | 학생:과목 = M:N |
나. 관계 대수 핵심 연산
| 연산 | 기호 | 설명 |
|---|---|---|
| 선택(Select) | σ (시그마) | 조건에 맞는 튜플 추출 (행 선택) |
| 추출(Project) | π (파이) | 특정 속성만 추출 (열 선택) |
| 조인(Join) | ⋈ | 공통 속성으로 릴레이션 결합 |
| 합집합(Union) | ∪ | 두 릴레이션의 합 (중복 제거) |
| 차집합(Difference) | − | 한쪽에만 있는 튜플 |
Ⅱ.정규화 단계 & 이상현상
정규화(Normalization)란 릴레이션의 이상현상(Anomaly)을 제거하고 데이터 중복을 최소화하기 위해 릴레이션을 분해하는 과정입니다.
가. 이상현상 3가지
| 이상현상 | 설명 | 예시 |
|---|---|---|
| 삽입 이상 | 불필요한 데이터 함께 삽입 필요 | 과목 없이 학생 등록 불가 |
| 삭제 이상 | 의도치 않은 데이터 함께 삭제 | 마지막 수강 삭제 시 학생 정보 소실 |
| 갱신 이상 | 중복 데이터 일부만 수정되어 불일치 | 교수명 변경 시 일부만 반영 |
나. 정규화 단계 (1NF → BCNF)
1NF
원자값
모든 속성이 원자값(반복 그룹 제거)
모든 속성이 원자값(반복 그룹 제거)
2NF
부분 종속 제거
기본키 전체에 완전 함수 종속
기본키 전체에 완전 함수 종속
3NF
이행 종속 제거
A→B→C 이행적 종속 제거
A→B→C 이행적 종속 제거
BCNF
결정자=후보키
모든 결정자가 후보키
모든 결정자가 후보키
4NF/5NF
다치/조인 종속
실무 적용 드묾
실무 적용 드묾
암기 팁
1NF→2NF: 부분 종속 제거 / 2NF→3NF: 이행 종속 제거 / 3NF→BCNF: 결정자=후보키
역정규화: 성능 향상을 위해 의도적으로 정규화 되돌리기 (조회 성능 vs 무결성 트레이드오프)
Ⅲ.함수 종속성 & 정규화 비교표
| 정규형 | 조건 | 제거 대상 | 핵심 키워드 |
|---|---|---|---|
| 1NF | 원자값 속성 | 반복 그룹, 다중값 | Atomic Value |
| 2NF | 1NF + 완전 함수 종속 | 부분 함수 종속 | Partial Dependency |
| 3NF | 2NF + 이행적 종속 제거 | 이행 함수 종속 | Transitive Dependency |
| BCNF | 3NF + 결정자=후보키 | 비후보키 결정자 | Determinant = Candidate Key |
Ⅳ.결론 및 전문가 의견
결론
정규화는 데이터 무결성과 중복 제거의 핵심 기술입니다.
향후 빅데이터 환경에서는 성능을 위한 역정규화(De-normalization)와 NoSQL의 비정규화 설계가 병행되며, 상황에 맞는 트레이드오프 판단이 중요합니다.
"정규화는 데이터를 '올바르게 저장'하는 원칙이고, 역정규화는 데이터를 '빠르게 읽기' 위한 현실적 타협이다."
블로그: 기술사 학습노트 · imt-log.tistory.com
'데이터베이스' 카테고리의 다른 글
| SQL 핵심 문법과 쿼리 최적화 정리 (0) | 2026.04.06 |
|---|---|
| NoSQL 데이터베이스 종류와 특징 비교 정리 (0) | 2026.03.19 |
| 데이터베이스 인덱스 쿼리 최적화 완벽 정리 (0) | 2026.03.19 |
| 트랜잭션 ACID 동시성 제어 락 개념 정리 (0) | 2026.03.19 |
| 데이터베이스 완전정복 — 기술사 핵심 토픽 모음 (0) | 2026.03.18 |