6장 - 정규화 (2)

728x90
반응형

출처 : http://www.kocw.net/home/cview.do?lid=512031e7e034e77f

 

데이터베이스의 원리와 응용

본 강의에서는 데이터베이스 입문자들에게 꼭 필요한 데이터베이스 기초 이론, 데이터 모델과 연산, SQL, 데이터베이스 설계에 대해 공부하고자 한다.

www.kocw.net

 

기본 정규형과 정규화 과정

 

정규화(Normalization)

  • 함수 종속성을 이용해 릴레이션을 연관성이 있는 속성들로만 구성되도록 분해해서 이상 현상이 발생하지 않는 바람직한 릴레이션으로 만들어 가는 과정
  • 정규화를 통해 릴레이션은 무손실 분해(nonloss decomposition)되어야 함
    • 릴레이션은 의미적으로 동등한 릴레이션들로 분해되어야 하고 분해로 인한 정보의 손실이 발생하지 않아야 함
    • 분해된 릴레이션들을 자연 조인하면 분해 전의 릴레이션으로 복원 가능해야 함

 

정규형(NF: Normal Form)

  • 릴레이션이 정규화된 정도
  • 각 정규형마다 제약조건이 존재
    • 정규형의 차수가 높아질수록 요구되는 제약조건이 많아지고 엄격해짐
    • 정규형의 차수가 높아질수록 데이터 중복이 줄어 이상 현상이 발생하지 않는 바람직한 릴레이션이 됨
  • 릴레이션의 특성을 고려하여 적합한 정규형을 선택

 

 

정규형은 보이스/코드 정규형(BCNF), 제 1 정규형(1NF)부터 제 5 정규형(5NF) 까지 총 6 단계로 이루어져 있다. 제 5 정규형으로 갈수록 제약 조건이 더 엄격해진다.

 

 

제 1 정규형(1NF)

  • 릴레이션에 속한 모든 속성의 도메인이 원자 값(atomic value)으로만 구성되어 있으면 제 1 정규형에 속한다.
  • 제 1 정규형을 만족해야 관계 데이터베이스의 릴레이션이 될 자격이 있다.
  • 모든 튜플이 동일한 수의 속성을 가져야 한다.
  • 그림 9-16의 경우 이벤트번호와 당첨여부에서 다중 값을 가지는 속성이 있기 때문에 제 1 정규형을 만족하지 못한다.
  • 그림 9-17이 제 1정규형을 만족하는 릴레이션이다.

  • 하지만 제 1 정규형의 경우 원자 값으로만 이루어졌지 이상 현상이 발생하지 않는다라고는 보장할 수 없다.
    • 기본키인 {고객아이디, 이벤트번호}에 완전 함수 종속되지 못하고 일부분인 고객아이디에 종속되는 등급과 할인률 속성이 존재하기 때문이다.
  • 이 문제를 해결하기 위해 부분 함수 종속이 제거되도록 이벤트참여 릴레이션을 분해한다. → 분해된 릴레이션은 제 2 정규형에 속하게 된다.

 

 

제 2 정규형(2NF)

  • 릴레이션이 제 1 정규형에 속하고(다중 값을 가지지 않고), 기본키가 아닌 모든 속성이 기본키에 완전 함수 종속되면 제 2 정규형에 속한다.
  • 즉, 위 예시에서 기존의 릴레이션을 고객 릴레이션과 이벤트참여 릴레이션으로 분해하면 제 2 정규형을 만족하게 된다.

  • 하지만 고객 릴레이션의 경우 할인률이 고객아이디와 등급으로 인한 이행적 함수 종속이 존재하기 때문에 이상 현상이 발생할 수 있다.
  • 이 문제를 해결하기 위해 이행적 함수 종속이 제거되도록 고객 릴레이션을 분해한다. → 분해된 릴레이션은 제 3 정규형에 속하게 된다.

 

 

제 3 정규형(3NF)

  • 릴레이션이 제 2 정규형에 속하고, 기본키가 아닌 모든 속성이 기본키에 이행적 함수 종속되지 않으면 제 3 정규형에 속한다.
  • 기존의 이행적 함수 종속 관계에 있던 고객 릴레이션을 고객 릴레이션과 고객등급 릴레이션으로 분해한다.

 

 

 

 

 

 

 

728x90
반응형

'Study > 데이터베이스' 카테고리의 다른 글

8장 - 데이터베이스 언어 SQL (1)  (0) 2024.11.23
7장 - 관계 데이터 연산  (0) 2024.11.22
6장 - 정규화 (1)  (2) 2024.11.21
5장 - 관계 데이터 모델  (1) 2024.11.20
4장 - 데이터 모델링  (1) 2024.11.19