-
1NF: 데이터의 중복을 제거하고 각 속성이 원자값(Atomic Value)을 가지도록 합니다.
| ID |
name |
subject |
| 1 |
sam |
math, english |
| 2 |
david |
english, korea |
| ID |
name |
subject |
| 1 |
sam |
math |
| 2 |
sam |
english |
|
david |
english |
|
david |
korea |
- 예: subject 열이 원자값이 아니기에 1차 정규화 진행.
-
2NF: 1NF를 만족하면서, 부분 함수 종속성을 제거합니다.
| ID |
name |
subject |
| 1 |
sam |
math |
| 1 |
sam |
english |
| 2 |
david |
english |
| 2 |
david |
korea |
| student_id |
subject |
| 1 |
math |
| 1 |
english |
| 2 |
english |
| 2 |
korea |
- 이름이 ID에 부분적으로 종속되어 있기에 2차 정규화 진행
-
3NF: 2NF를 만족하면서, 이행적 함수 종속성을 제거합니다.
- 이행 함수 종속: X → Y, Y → Z 일때 X → Z 인경우
- X를 통해 Y를알고 Y를 통해 Z의 정보 까지 알 수 있는 경우를 의미함
- 고유키가 아닌 속성은 기본키에만 의존해야함
-
BCNF, 4NF, 5NF와 같은 다양한 정규화 단계가 있습니다.