1 정규형 ( Atomic columns - 컬럼이 원자값을 가져야한다. )
| 이름 | 나이 | 학년 | 좋아하는 음식 |
|---|---|---|---|
| 홍길동 | 19 | 고3 | 국밥 |
| 홍길순 | 17 | 고1 | 떡볶이, 마라탕 |
좋아하는 음식 컬럼을 보면 홍길순은 떡볶이, 마라탕 두개의 값을 가지고 있다.
Atomic columns 룰을 위배한다.
| 이름 | 나이 | 학년 | 좋아하는 음식 |
|---|---|---|---|
| 홍길동 | 19 | 고3 | 국밥 |
| 홍길순 | 17 | 고1 | 떡볶이 |
| 홍길순 | 17 | 고1 | 마라탕 |
나이, 학년 의 중복이 보인다.
나이와 학년이 이름에만 종속되어있기 때문이다. ( 이름만 알면 나이와 학년도 알 수 있다 )
No partial dependencies 룰을 위반했다.
위의 테이블은 이름과 좋아하는 음식을 위한 테이블이어야 한다.
| 이름 | 나이 | 학년 |
|---|---|---|
| 홍길동 | 19 | 고3 |
| 홍길순 | 17 | 고1 |
나이와 학년을 따로 빼오니 홍길순의 나이와 학년이 두번나오는 일이 없어졌다.
3정규형 ( No transitive dependencies - 이행적 종속성이 없어야한다. )
| 이름 | 나이 | 학년 |
|---|---|---|
| 홍길동 | 19 | 고3 |
| 홍길순 | 17 | 고1 |
나이는 이름에 의존하고 있고 학년은 나이에 의존하고 있다. 이행적 종속성을 가지고있다.
No transitive dependecies 룰을 위반한다.
| 이름 | 나이 |
|---|---|
| 홍길동 | 19 |
| 홍길순 | 17 |
| 나이 | 학년 |
|---|---|
| 19 | 고3 |
| 17 | 고1 |