5 분 소요

👨‍💻🏫KNU 2021-2 SW & media 데이터베이스 필기노트 11

1. 정규화의 개념과 이상 현상

정규화는 불필요한 데이터 중복으로 인한 릴레이션에서 작업중 발생 가능한 부작용을 제거하면서 데이터베이스를 설계하는 과정이다.
이때 불필요한 데이터 중복으로 인한 릴레이션에서 작업중 발생 가능한 부작용을 이상현상이라 한다.

이상 현상의 발생이유는 관련 없는 속성까지 하나의 릴레이션에 모아두기 때문이다. 이를 위해 릴레이션을 관련있는 속성들로만 구성하기위해 릴레이션을
분해하는 과정(정규화)을 거치며 함수적 종속성을 판단하여 정규화를 수행한다.

이상현상

  • 삽입 이상: 새 데이터를 삽입하기위해 불필요 데이터도 삽입해야 하는 문제
  • 갱신 이상: 중복 투플중 일부만을 변경하여 데이터가 불일치하는 문제
  • 삭제 이상: 투플을 삭제하면 필요한 데이터가 삭제되어 데이터가 불일치하는 문제

2. 함수적 종속성

속성들 간의 관련성

하나의 결정자X에대한 종속자Y가 단 하나의 속성을 구성한다면, X는 Y를 함수적으로 결정하며, Y가 X에 함수적으로 종속되어있다는것을 나타낸다.

일반적으로 기본키와 후보키는 릴레이션의 다른 모든 속성들을 함수적으로 결정한다. 기본키나 후보키가 아니라도 다른 속성의 값을 유일하게 결정한다면 이는 함수 종속관게에서 결정자가 될수 있다.

2.1. 완전 함수 종속(FFD)

릴레이션에서 속성집합 Y가 속성 집합 X에 함수적으로 종속되어있지만 속성집합 X의 전체가 아닌 일부분에는 종속되지 않음을 의미한다.

2.2. 부분 함수 종속(PFD)

릴레이션에서 속성 집합 Y가 속성 집합 X의 전체가 아닌 일부분에도 함수적으로 종속됨을 의미한다.

3. 정규화

함수 종속성을 이용해 연관있는 속성으로만 분해하여 이상현상이 발생하지 않는 올바른 릴레이션으로 만드는 과정을 의미한다. 이를 통해 관련없는 함수종속성은 별개 릴레이션으로 표현가능하다.

단, 이때 릴레이션이 의미가 동등한 릴레이션으로 분리되어야하며 분해로인한 정보 손실이 발생되어서는 안된다.

3.1. 정규화 과정

릴레이션이 정규화된 정도이며 정규형의 차수가 높아질수록 요구 제약조건이 많아지게 된다. 따라서 릴레이션의 특성을 고려하여 적합한 정규형을 선택해야한다.

정규형(위로갈수록 비정규형) 설명
비정규형 릴레이션  
제1 정규형 릴레이션 모든 속성이 원자값을 가진다. 다중 값 속성을 포함해서는 안된다.
제2 정규형 릴레이션 기본키가 아닌 모든 속성이 기본키에 완전 종속되어야한다. 부분 함수 종속을 포함해서는 안된다
제3 정규형 릴레이션 기본키가 아닌 모든 속성이 기본키에 대해 이행적 함수 종속이 발생하지 않는것
BCNF형 릴레이션 함수 종속성에서 모든 결정자가 후보키여야한다
일반적인 릴레이션 분해는 3이나 BCNF까지 진행한다.  
제4 정규형 릴레이션 다치종속이 없어야한다
제5 정규형 릴레이션 조인 종속이 없어야한다

이행적 함수종속
X->Y, Y->Z과 같은 관계에서 X->Z는 성립되는 현상
한 릴레이션에 고객번호->등급, 등급->할인율 —>고객번호->할인율이므로 이행적 함수종속이 발생한다.
고객번호->등급, 등급->할인율을 별개 릴레이션으로 구축하면 문제가 없다.

태그:

카테고리:

업데이트:

댓글남기기