2020. 8. 14. 09:37ㆍ데이터베이스(DB)
정규화
▶ 이상현상이 발생하는 릴레이션은 분리하여 이상현상을 제거하는 과정
(이상현상: 릴레이션에 두 개 이상의 정보가 들어가 생기는 상황이다. 삽입을 할 때 부득이하게 NULL값이 들어가거나 데이터 삭제 시 연쇄적으로 삭제되거나 데이터를 수정 시 일관성이 훼손되는 상황이 이상현상의 예이다.)
정규형
▶ 제 1 정규형 : 릴레이션의 속성 값이 원자 값을 가지는지 판단
1) 원자값을 가져야 이상현상이 발생하지 않는다.
2) 원자값 : 속성 값을 들 더는 분리할 수 없는 경우, 즉 속성은 단일 값을 가지는 경우를 말한다.
▶ 제 2 정규형 : 릴레이션의 기본키가 복합키일 경우 완전 함수 종속을 만족하는지 판단
1) 완전 함수 종속을 만족해야 이상현상이 발생하지 않는다.
2) 완전 함수 종속 : 복합키의 부분 키들이 결정자가 되지 않는 경우로 예를 들어 (A1, A2)→B일때 A1→B 또는 A2→B를 만족하지 않아야한다.
예를 들어 학생번호와 학생이름이 함수 종속성을 가지고 있고 강좌와 강의시간이 함수 종속성을 가지고 있을 때,
![](https://blog.kakaocdn.net/dn/PG6tO/btqz8YmxBAs/VQUjBhU5Su9L6H6T9uZvDK/img.png)
학생번호와 강좌가 기본키이면서 복합키일때, 강좌를 제외하여도 학생번호랑 학생이름은 여전히 함수 종속성을 만족시킨다. 이러한 상황을 불완전 함수 종속이라고 하며, 불완전 함수 종속이 있는 경우 이상현상이 발생한다.
(불완전 함수 종속 : 복합키의 부분키들이 결정자가 되는 경우로 (A1, A2)→B일때 A1→B 또는 A2→B를 만족하는 상황을 말한다.)
▶ 제 3 정규형 : 속성들이 이행적인 관계를 만족하는지 판단
1) 이행적인 관계를 만족하면 이상현상이 발생한다.
2) 이행적 : 종속적 규칙 중 하나로 A→B, B→C일때 A→C를 만족하는 상황을 말한다.
![](https://blog.kakaocdn.net/dn/WlEf7/btqz6HfWb2T/9kgK6AXpUeP1obIybP70D1/img.png)
강좌를 알면 강의시간을 알고 강의시간을 알면 강사명을 알 수 있을 때 강좌를 알면 강사명을 유추할 수 있다는 것이 이행적 관계이다.
▶ BCNF 정규형 : 결정자가 후보키인지 판단
1) 결정자이면 기본키여야 한다. 후보키인 경우 이상현상이 발생할 수 있다.
2) A와 C는 키본키이고 B가 후보키인 경우, (A , C)→B가 있는 상황에서 B→C이면 결정자가후보키이므로 이상현상이 발생한다. 예를 들어 강좌와 강의교실이 기본키이며 강사명은 후보키인 경우
![](https://blog.kakaocdn.net/dn/bdusVZ/btqz7JKDDzX/Ic7VGiPVkZrGMwEK8QTX41/img.png)
강사명이 강의교실의 결정자이지만 강사명은 기본키가 아니라 후보키인 경우 BCNF 정규형에 해당한다.
'데이터베이스(DB)' 카테고리의 다른 글
[Mysql] mysql 유저 접근 및 DB, 테이블 확인 (0) | 2020.05.08 |
---|