2011년 3월 14일 월요일

[데이터베이스] 관계데이터베이스 정규화

1. 데이터의 논리적 표현

  1) 이상 ( anomaly) 
  -  attribute (속성) 간에 존재하는 여러 종속관계를 하나의 릴레이션에 표현함으로 나타나는 현상 
  - 삭제이상, 삽입이상, 갱신이상

  2) 정규화 ( nomalization)
  - 이상 문제를 해결하기 위해 attribute 간의 종속관계를 분석하여 여러 개의 relation 으로 분해하는 과정

2. 함수종속

  - 어떤 릴레이션에서 속성들의 부분집합을 x,y 라 할 때 , 임의 튜플에서 x값이 y 값을 함수적으로 결정한다면,
    y 가 x 에 함수적으로 종속되었다고 하고 x → y 로 표현함 (x가 y 에 영향을 줌)

  - 함수종속의 성질 : 완전 함수 종속, 부분 함수 종속

  - 이행적 함수종속 : a →b 이고 b→c 이면, a→c 이다

3. 정규형 ( 릴레이션을 분해하는 과정)

  - 제 1 정규형 ( 1NF )
   - 모든 도메인이 원자 값만으로 된 릴레이션
   - 중복을 제거한 원자값의 형태
   - 기본키는 NULL 이 될수 없다

 - 제 2 정규형 ( 2NF )
   - 1NF 이고 모든 attribute 들이 기본키에 완전 함수 종속인 경우
  - 키가 아닌 속성은 기본키에 완전히 함수적으로 종속되어야 한다
   - 종속을 가질수 있는 키는 하나여야 함
  - 부분적 함수 종속 제거
   - 한 릴레이션에 기본키로 이용되는 키가 1개 이상일 경우 분리
     (a,b,c,d,e) → (a,b,c) , (a,d,e)

 - 제 3 정규형 ( 3NF )
   - 2NF 이고 모든 attribute 들이 기본키에 이행적 함수 종속이 아닌 경우
   - 이행적 함수종속 제거
   - 기본키가 아닌 두열은 상호간 종속이 없어야 함
   - 기본키가 아닌 값들중 변경 발생시 다른 열에서 변경이 발생하면 안됨
   - 키가 아닌 모든 속성은 키값에 전부 함수적 종속 상태
   - 기본키가 있고 속성중에 다른 속성의 기본키가 되는 경우 이 부분을 제거

 - 보이스/코드 정규형 (BCNF) (제 4 정규형 ) ( 제5 정규형)
   - 릴레이션의 모든 속성이 후보키인 경우

 - 제 4 정규형 ( 4NF )
   - 릴레이션에서 다치종속 관계가 성립하는 경우
   - 한개의 속성에 두개 이상의 속성이 종속된 상태가 다치 종속
   - 종속자를 기준으로 다치 종속된 속성을 분리하면 제4 정규화

 - 제 5 정규형 ( 5NF )
   - 릴레이션에서 조인종속성이 성립하는 경우
   - 후보키를 통하지 않는 조인 종속제거
   - 모든 조인 종속이 적어도 다음중 하나를 가질때

댓글 없음:

댓글 쓰기