1. 데이터 정규화란 무엇이며, 왜 필요한가?
데이터베이스의 중복을 최소화하고 데이터 무결성을 보장하기 위해 데이터를 구조화하는 과정
정규화 전(비정규형 데이터)
학번 | 학생명 | 과목 | 담당 교수 |
1001 | 김철수 | 수학, 영어 | 이교수, 박교수 |
1002 | 박영희 | 과학 | 김교수 |
1003 | 이민호 | 수학, 국어, 역사 | 이교수, 최교수, 정교수 |
1) 1NF : 모든 컬럼이 하나의 원자값을 가지도록 정리
학번 | 학생명 | 과목 | 담당 교수 |
1001 | 김철수 | 수학 | 이교수 |
1001 | 김철수 | 영어 | 박교수 |
1002 | 박영희 | 과학 | 김교수 |
1003 | 이민호 | 수학 | 이교수 |
1003 | 이민호 | 국어 | 최교수 |
1003 | 이민호 | 역사 | 정교수 |
2) 2NF : 부분 함수 종속 제거
- 기본키의 일부에만 종속된컬럼을 분리
- 3NF : 이행적 종속 제거
- 기본키 이외의 컬럼이 다른 컬럼을 결정하지 않도록
- BCNF : 모든 결정자가 후보키여야 함
- 4NF : 다치종속 제거
- 5NF : 조인종속 제거
2. 데이터 정규화의 장점/단점
장점 | 데이터 중복 최소화 데이터 무결성 유지 삽입/삭제/갱신 이상 방지 트랜잭션 처리 성능 향상 |
단점 | JOIN 연산 증가 실시간 분석에는 비효율적(비정규화 필요) DB설계 시간이 오래 걸릴 수 있음 |