본문 바로가기

자격증/정보처리기사 자격증 공부

(실기) Section 039. 정규화(Normalization)

반응형

1. 정규화(Normalization)

  • 정규화는 테이블의 속성들이 상호 종속적인 관계를 갖는 특성을 이용하여 테이블을 무손실 분해하는 과정이다.
  • 정규화의 목적은 가능한 한 중복을 제거하여 삽입, 삭제, 갱신 이상의 발생 가능성을 줄이는 것이다.
  • 정규형에는 제 1정규형, 제 2정규형, 제 3정규형, 제 4정규형, 제 5정규형이 있으며, 순서대로 정규화의 정도가 높아진다.

2. 정규화 과정

아래의 <주문목록> 테이블을 가지고 정규화 과정을 살펴보자. <주문목록> 테이블의 기본키는 제품번호이다.

제품번호 제품명 재고수량 주문번호 고객번호 주소 주문수량
1001 모니터 2000 A345
D347
100
200
서울
부산
150
300
1007 마우스 9000 A210
A345
B230
300
100
200
광주
서울
부산
600
150
300
1201 키보드 2100 A345
D347
100
200
서울
부산
150
300
  • 제 1정규형
    • 제 1정규형은 테이블 R에 속한 모든 속성의 도메인이 원자 값만으로 되어 있는 정규형이다. 즉 테이블의 모든 속성 값이 원자값으로만 되어 있는 정규형이다.
    • <주문목록> 테이블에서는 하나의 제품에 대해 여러 개의 주문관련 정보가 발생하고 있다. 따라서 <주문목록> 테이블은 제 1정규형이 아니다.
  • 제 2정규형
    • 제 2정규형은 테이블 R이 제1정규형이고, 기본키가 아닌 모든 속성이 기본키에 대하여 완전 함수적 종속을 만족하는 정규형이다.
  • 제 3정규형
    • 제 3정규형은 테이블 R이 제 2정규형이고 기본키가 아닌 모든 속성이 기본키에 대해 이행적 함수적 종속을 만족하지 않는 정규형이다.
  • BCNF
    • BCNF는 테이블 R에서 모든 결정자가 후보키인 정규형이다.
    • 일반적으로 제 3정규형에 후보키가 여러 개 존재하고, 이러한 후보키들이 서로 중첩되어 나타나는 경우에 적용가능하다.
  • 제 4 정규형
    • 제 4정규형은 테이블 R에 다중 값 종속 A ->>B가 존재할 경우 R의 모든 속성이 A에 함수적 종속 관계를 만족하는 정규형이다.
  • 제 5정규형
    • 제 5정규형은 테이블 R의 모든 조인 종식이 R의 후보키를 통해서만 성립되는 정규형이다.

문제1. 데이터베이스에서 정규화의 개념을 간략히 서술하시오.

--> 정규화는 테이블의 속성들이 상호 종속적인 관계를 갖는 특성을 이용하여 테이블을 무손실 분해하는 과정이다.

문제 2. 다음과 같이 왼쪽 릴레이션을 오른쪽 릴레이션으로 정규화를 하였을 때 어떤 정규화 작업을 한것인지 쓰시오.

--> 제 1정규화, 속성은 원자값만을 갖는다.

문제 3. 다음은 정규화 과정을 간단하게 정리한 것이다. 괄호 (1~6)에 각 정규화 과정별로 필요한 작업이 무엇인지 간략히 서술하시오.

(1) --> 도메인 원자값 만족
(2) --> 부분적 종속 제거
(3) --> 이행적 종속 제거
(4) --> 결정자이면서 후보키가 아닌 것 제거
(5) --> 다치 종속 제거
(6) --> 조인 종속성 이용

문제 4. 함수적 종속은 중복의 원인이 되며, 삽입, 삭제, 갱신 등의 이상을 발생시킨다. 함수적 종속이 일어나는 근본적인 이유는 여러 종류의 사실들을 하나의 릴레이션으로 표현하기 떄문이다. 이러한 문제들을 해결하는 방법은 속성들 간의 종속성을 분해해서 기본적으로 하나의 종속성은 하나의 릴레이션에 표현되도록 분해하는 것이다. 이러한 분해 과정을 무엇이라고 하는지 쓰시오

--> 정규화

문제 5. 다음의 정규화 과정은 어떤 단계의 정규화 과정인지와 해당 정규화 과정에서 필요한 작업을 간략히 서술하시오.

--> 제 3정규화의 결과이다.

--> 이행적 함수 종속을 제거한다.

문제 6. 정규화 과정에 대한 다음 설명에서 괄호에 공통으로 들어갈 알맞은 정규형을 쓰시오.

제 2정규형

반응형