상세 컨텐츠

본문 제목

[DataBase] 정규화

DataBase

by 로니콜먼 2020. 8. 11. 23:27

본문

정규화

관계형 데이터베이스의 설계에서 중복을 최소화하게 데이터를 구조화하는 프로세스

논리 데이터모델링 단계에서 실행된다.

 

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' 카테고리의 다른 글

[DataBase] ER다이어그램과 ER모델  (0) 2020.08.31
[DataBase] 메타 데이터  (0) 2020.08.31
[DataBase] 데이터 모델링  (0) 2020.08.11

관련글 더보기