Database/DB
Database Chapter 9 - 정규화
Garonguri
2022. 3. 26. 19:22
728x90
- 정규화란?
- 이상 현상(삽입 이상, 갱신 이상, 삭제 이상)을 제거하면서 데이터베이스를 올바르게 설계해나가는 과정.
- 릴레이션을 관련이 있는 속성들로만 구상하기 위해 릴레이션을 분해하는 과정.
- 함수의 종속성 고려해야 함.
- 목표 : 관련이 없는 함수 종속성은 별도의 릴레이션으로 표현하는 것.
- 정규형 ? : 릴레이션이 정규화 되어있는 정도 : 차수가 높을 수록 데이터 중복에 의한 이상 현상 발생 빈도가 적다.
- 비>1>2>3>BCNF>4>5 순으로 포함 관계에 있다.
- 기본 정규형
- 제 1 정규형 : 릴레이션에 속한 모든 속성의 도메인이 원자값으로 구성되어 있어야 한다.
- 제 2 정규형 : 제1정규형에 속해있고, 기본키가 아닌 모든 속성이 기본키에 완전 함수 종속되어야 한다.
- 제 3 정규형 : 제2정규형에 속해있고, 기본키가 아닌 모든 속성이 기본 키에 이행적 함수 종속이 되지 않아야 한다.
- BCNF 정규형 : 릴레이션의 함수 종속 관계에서 모든 결정자가 후보키이면 보이스/코드 정규형에 속한다.
- 고급 정규형
- 제 4 정규형 : BCNF에 속해있고, 함수 종속이 아닌 다치 종속을 제거해야 만족 가능하다.
- 제 5 정규형 : 제4정규형에 속해있고, 후보키를 통하지 않는 조인 종속을 제거해야 만족 가능하다.
- 이상 현상의 종류
- 1. 삽입 이상
- 새 데이터를 삽입하기 위해 불필요한 데이터도 함께 삽인해야하는 문제.
- 2. 갱신 이상
- 중복된 튜플들 중 일부만 수정하여 데이터가 불일치하게되는 모순이 발생하는 문제
- 3. 삭제 이상
- 튜플을 삭제할 때 꼭 필요한 데이터까지 삭제되어 데이터가 손실되는 연쇄 삭제 현상
- 1. 삽입 이상
- 함수의 종속성
- 하나의 릴레이션을 구성하는 속성의 부분 집합을 X, Y라고 할 때, 언제나 X가 Y를 함수적으로 결정하는 경우, Y가 X에 종속되어 있다고 의미한다. 즉, X의 값에 따라 Y가 결정될 때.
- 현재 시점에서 릴레이션에 포함된 속성 값 만으로 판단할 수 없다. 속성 값은 무한히 변할 수 있기 때문에, 속성 자체가 가진 특성과 의미를 기반으로 판단해야 한다.
- 완전 함수 종속
- Y는 X에 함수적으로 종속되어 있지만, X에 종속된 것이지 X의 일부분에 종속된 것이 아닌 경우
- 부분 함수 종속
- Y는 X에 함수적으로 종속되어 있고, X의 일부분에도 종속되어 있는 경우
Q. 정규화란?
함수적 종속성을 이용하여, 릴레이션을 연관성이 있는 속성들로만 구성되도록 분해하여 이상 현상이 발생하지 않는 올바른 릴레이션으로 만들어 나가는 과정.
Q.기본 정규형의 정규화 과정
비정규형 -> (속성의 도메인이 원자값으로만 구성되도록 분해) -> 제1정규형
제1정규형 -> (부분 함수 종속 제거) -> 제2정규형
제2정규형 -> (이행적 함수 종속 제거) -> 제3정규형
제3정규형 -> (후보키가 아닌 결정자 제거) -> 보이스코드 정규형
728x90