본문 바로가기
Computer Science/Database

[데이터베이스] 강의 정리 7장 - 정규형과 정규화예제

by ggyongi 2021. 10. 17.
반응형

강의 출처: '데이터베이스의 원리와 응용' / 백현미 / 한양대학교
http://www.kocw.net/home/cview.do?cid=9c591659f017851e 

 

7. 정규형과 정규화예제

 

정규화를 통해 릴레이션은 무손실 분해(nonloss decomposition)되어야 함

1. 릴레이션은 의미적으로 동등한 릴레이션들로 분해되어야 하고 분해로 인한 정보의 손실이 발생하지 않아야 함

2. 분해된 릴레이션들을 자연 조인하면 분해 전의 릴레이션으로 복원가능해야 함

 

<정규형의 종류> (단계가 높아질수록 제약 조건이 까다로워짐)

기본 정규형 / 고급 정규형

기본 정규형: 1정규형, 2정규형, 3정규형, 보이스/코드 정규형

고급 정규형: 4정규형, 5정규형

 

<1정규형(1NF, First Normal Form)>

릴레이션의 모든 속성이 더는 분해되지 않는 원자값만 가지면 제1정규형 만족.

1정규형을 만족해야 관계 데이터베이스의 릴레이션이 될 자격이 있음

아래 표는 다중 값을 가져 제1정규형을 만족하지 못하는 예시이다.

*1정규형을 만족하더라도 이상 현상이 여전히 발생할 수 있음.

 

<2정규형(2NF, Second Normal Form)>

릴레이션이 제1정규형에 속하고, 기본키가 아닌 모든 속성이 기본키에 완전 함수 종속되면 제2정규형을 만족. 아래는 제1정규형을 만족하지만 제2정규형은 만족하지 않는 릴레이션의 예시이다. 이때는 분해가 필요.

 

이렇게 분해를 통해 각각의 릴레이션을 제2정규형에 만족하는 릴레이션으로 만들어줄 수 있음.

*하지만 제2정규형을 만족하더라도 여전히 이상 현상이 발생할 수 있다. 아래는 그 예시다.

 

<3정규형(3NF, Third Normal Form)>

릴레이션이 제2정규형에 속하고, 기본키가 아닌 모든 속성이 기본키에 이행적 함수 종속되지 않으면 제3정규형을 만족함

 

<정규화 예제>

Q1)

해설)

1. 삽입이상 예시

수강신청을 하지 않은 학생은 과목번호가 널값이기 때문에 데이터 삽입이 불가해짐

2. 갱신이상 예시

한 명이 여러 과목 수강했을 시 학생에 대한 정보가 중복 저장될 것임. 이때 학생의 지도교수가 바뀔 경우 모든 튜플이 업데이트되지 않는다면 갱신이상이 발생할 수 있음

3. 삭제이상 예시

학생이 수강취소할 때 그 과목에 대한 주요정보가 손실될 수도 있는 삭제이상이 발생할 수 있음

 

Q2)

해설)

우선 모든 속성이 원자 값으로 구성(다중 X)이 되어있어 제1정규형을 만족하고 있다고 가정.

2정규형을 만족하려면 기본키를 제외한 모든 속성이 기본키에 완전 함수 종속이 되도록 해야 함.

 

여기서 부분 함수 종속 관계를 찾아보자. 일단 기본키는 과목번호와 학번이다.

성적은 {과목번호,학번}에 종속 -> 따라서 기본키에 대해 완전 함수 종속이다.

근데 시간은 {과목번호}에만 종속되기 때문에 기본키에 부분 함수 종속임을 알 수 있다.

뿐만 아니라 이름, 지도교수, 학과이름, 회장이름, 동아리이름, 방번호도 {학번}에만 종속되기 때문에 부분 함수 종속임을 알 수 있다.

 

이들을 적절히 분해해줘야 한다. 다음과 같이 3개의 릴레이션으로 분해될 수 있다.

이렇게 분해한다면 제2정규형을 만족할 수 있다.

 

Q3)

 

해설)

2정규형의 릴레이션이 제3정규형을 만족하려면 이행적 함수 종속 관계가 없어야 한다.

학번->학과이름, 학과이름->학과전화번호이기 때문에 학번과 학과전번호 사이에 이행적 함수 종속 관계가 존재한다. 따라서 분해를 통해 이 관계를 없애주어야 한다.

 

또한 학번이 회장이름과 동아리 이름을 결정하고, 회장이름과 동아리이름이 방번호를 결정하기 때문에 학번과 방번호 사이에도 이행적 함수 종속 관계가 존재함을 알 수 있다. 이 관계 역시 분해를 통해 없애주어야 한다.

 

결론적으로,

학과(학과이름, 학과전화번호)

동아리(회장이름, 동아리이름, 방번호)와 같은 릴레이션이 추가되어야 한다.

최종적으로 총 5개의 릴레이션이 만들어짐으로써 제3정규형을 만족하게 된다.

 

 

비전공자 네카라 신입 취업 노하우

시행착오 끝에 얻어낸 취업 노하우가 모두 담긴 전자책!

kmong.com

댓글