정규화
관계형 데이터베이스의 설계에서 중복을 최소화하게 데이터를 구조화하는 프로세스
논리 데이터모델링 단계에서 실행된다.
1) 제1 정규형
- 정의
릴레이션에 속한 모든 속성의 도메인이 원자 값으로만 구성. 관계형 데이터베이스의
릴레이션은 모든 속성이 원자값을 가지는 특성에 따라 최소 제1 정규형을 만족해야
관계형 데이터베이스의 자격이 있다.
학번 |
과목코드 |
성적 |
1725045, 1725053 |
07 |
4.2/4.5 |
1725046, 1725039 |
04 |
3.7/4.5 |
모든 속성의 도메인이 원자 값으로 구성되어야 하므로 다음과 같이 학번의 값들을
나눠주는 제1 정규화 작업 수행
학번 |
과목코드 |
성적 |
1725045 |
07 |
4.2/4.5 |
1725046 |
04 |
3.7/4.5 |
- 문제점
제1 정규형만 만족시키는 릴레이션에서 부분 함수 종속성을 가지게 되는 경우 삽입 이상, 갱신 이상, 삭제 이상 세 가지 이상 현상이 모두 나타나게 된다.
2) 제2 정규형
- 정의
제1 정규형에 속하면서, 기본키가 아닌 모든 속성이 기본키에 완전 함수 종속. 주의할
점은 정규화를 통해 분해된 릴레이션들이 조인을 통해 원래의 구조로 복원될 수
있어야 한다는 것이다.
학번 |
과목코드 |
성적 |
학부 |
1725045 |
07 |
4.2/4.5 |
컴퓨터공학 |
1725046 |
04 |
3.7/4.5 |
호텔경영 |
위의 표에서 과목코드와 성적은 기본키에 완전 함수 종속적이다. 기본키인 학번을
가지고 과목코드와 성적이 결정되지만, 과목코드에 해당하는 학부는 학번에 따라
결정되는 것이 아니므로 다음과 같이 제2 정규화 수행
학번 |
과목코드 |
성적 |
1725045 |
07 |
4.2/4.5 |
1725046 |
04 |
3.7/4.5 |
- 문제점
제2 정규형에서도 이상 현상이 발생하는 이유는 이행적 함수 종속이 존재하기 때문이다. 이행적 함수 종속을 없애주는 과정이 제3 정규화.
3) 제3 정규형
- 정의
제 2 정규형에 속하면서, 기본키가 아닌 모든 속성이 기본키에 이행적 함수 종속을 제거하는 작업. 이행적 함수 종속은 키가 아닌, 속성들 사이의 함수 종속성을 말한다.
즉, 제3 정규형은 속성을 통해서 알아낼 수 있는 종속성을 없애는 것.
ex) 슈퍼키로는 B를 알아낼 수 없지만, 슈퍼키를 통해 A를 알아내 그 정보를 토대로
B까지 알아낼 수 있는 경우
학번 |
학부 |
등록금 |
1725045 |
컴퓨터공학 |
3,200,000 |
1725046 |
호텔경영 |
3,000,000 |
위의 표의 경우 학번을 통해 학부를 알 수 있고, 학부를 통해 등록금을 알 수 있다.
이행적 함수 종속이 존재하는 경우이다. 다음과 같이 제3 정규화를 통해 종속성을
제거한다
학부 |
등록금 |
컴퓨터공학 |
3,200,000 |
호텔경영 |
3,000,000 |
[DataBase] ER다이어그램과 ER모델 (0) | 2020.08.31 |
---|---|
[DataBase] 메타 데이터 (0) | 2020.08.31 |
[DataBase] 데이터 모델링 (0) | 2020.08.11 |