Info > Data Mining > 3-4. RDB > 관계형 데이터 모델과 정규화 이론
▷▶ 관계형 데이터 모델과 정규화 이론
4.1 정규화의 개념
정규화 이론 : 다양한 유형의 검사를 통하여 관계형 데이터 모델의 관계를 보다 구조화된 것으로 개선시켜 나가는 절차에 관한 이론. 구조화된 관계란 데이터베이스 상에서 삽입, 삭제, 수정이 이루어 질 때 문제점이 발생하지 않는 관계
4.1.1 구조화된 관계
데이터베이스에 저장되는 데이터의 중복을 최소화시킴으로써 삽입, 삭제, 수정으로 인한 오류나 데이터의 불일치를 발생시키지 않는 관계.
<그림 4.1> 수강 과목 관계
학번 |
과목 번호 |
과목 이름 |
9419046 |
BB203 |
컴퓨터 프로그래밍 |
==> 삽입이상, 삭제이상, 수정이상
<그림 4.2> 분리되어 구조화된 관계
수강 |
|
과목 |
|
4.1.2 구조화된 관계의 문제점
- 정규형의 수준을 높일수록 데이터의 삽입, 삭제, 수정 이상은 감소되나 데이터베이스의 실행속도나 참조 무결성등의 문제는 더욱 심각해 진다 ->적절한 수준까지의 정규성 추구
- 실무에서는 대락 3차 정규형을 적절한 수준으로 보고있으나 이 수준의
정규형 관계가 너무 세분화 되어 있을 때 특정 관계를 다시 결합시키는 탈정규화(denormalizeation)
방법도 제시.
4.2 함수적 종속과 정규화
4.2.1 함수적 종속
·정규화 이론은 속성간의 함수적 종속관계에 기초. 속성 Y가 속성X에 함수적으로 종속되었다는 것은 X의 속성값이 Y의 속성값을 결정짓는다는 것
X -> Y
·X는 Y의 결정자 (determinant)
4.2.2 1차 정규형
- 반복집단을 포함하지 않는 원자값으로만 구성된 타플을 갖는 관계
<그림 4.1> 비정규형의 관계
주문 |
|
<그림 4.2> 1차 정규형의 관계
주문 |
|
4.2.3 2차 정규형
▶1차 정규형의 문제점
·삽입이상
·삭제이상
·수정이상
-->이러한 문제점을 제거하기 위하여 속성간의 함수적 종속성을 분석하여, 하나의 관계를
두 개 이상의 관계로 분리시켜야 한다.
<그림 4.3> 주문 관계의 함수적 종속
주문 (주문번호, 제품번호, 주문일, 고객이름, 고객번호, 전화, 제품명, 수량 )
·주문번호, 제품번호 -> 수량
·주문번호 -> 주문일, 고객이름, 고객번호, 전화
·제품번호 -> 제품명
▶2차 정규형 : 어느 관계가 1차 정규형의 조건을 만족하면서 주키를 구성하지 않는 나머지 속성이 주키에 완전 함수적 종속을 이룰 때. 즉, 1차 정규형에서 부분종속을 제거한 것.
·완전 함수적 종속 : 주키의 일부만으로는 비주키 속성의 값을 결정지을
수 없다.
·부분 종속
<그림 4.4> 2차 정규형으로 전환된 주문 관계
주문-제품
|
제품
|
||||||||||||
|
|||||||||||||
4.2.4 3차 정규형
▶2차 정규형의 문제점
·삽입이상
·삭제이상
·수정이상
-->이러한 문제점은 속성간의 이전종속 때문에 발생한다. 이전종속을 제거하기 위해서는
이전종속과 관련된 비주키 속성들을 다른 관계로 분리시켜야 한다.
<그림 4.5> 주문-고객 관계의 함수적 종속
주문 (주문번호, 주문일, 고객이름, 고객번호, 전화 )
·주문번호 -> 주문일, 고객이름, 고객번호, 전화
·고객번호 -> 고객이름, 전화
▶3차 정규형 : 어느 관계가 2차 정규형의 조건을 만족하면서 이전 종속이 존재하지 않는 관계.
<그림 4.6> 3차 정규형 관계로 전환된 고객 주문서 관점
주문-제품
|
제품
|
||||||||||||
주문-고객
|
고객
|
4.2.5 보이스-코드 정규형
- 기존의 3차 정규형에서 함수적 종속으로 인하여 추가적으로 발행할 수
있는 문제점을 발견하고 이를 보완하기 위하여 제시한 보다 엄격한 3차 정규형이다.
- 어느 관계의 모든 결정자가 후보키의 역할을 수행할 수 있는 관계.
<그림 4.7> 수강과목-교수 관계 (3차 정규형 관계)
수강과목-교수
학생명 |
과목명 |
교수명 |
홍기호 |
데이터베이스 |
김준식 |
--> ·삽입이상
·삭제이상
·수정이상
==> 보이스-코드 정규형으로 전환시키기 위해 결정자 이지만 후보키가 아닌 교수명
속성을 분리해야함.
학생-교수 ( 학생명, 교수명 )
교수-과목 ( 교수명, 과목명 )
4.2.6 다중값 종속과 4차 정규형
·보이스-코드 정규형을 만족시키는 관계는 함수적 종속으로 인한 문제는
더 이상 발생하지 않으나 다중값 종속으로 인한 문제가 발생할 수 있다.
·다중값 종속 : 가의 어떤 속성값에 대응하는 나의 속성값이 여러개 있고, 가의 어떤
속성값에 대응하는 다의 속성값이 여러개 있으며, 나의 속성값과 다의 속성값 사이에 아무
상관관계가 없을 경우.
<그림 4.8> 직원-특기-언어 관계 |
<그림 4.9> 1차 정규형으로 전환된 직원-특기-언어 관계 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||
--> ·삽입이상 |
(a)모든 가능한 조합 |
(b) 무작위 배정을 통한 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||
==>두개의 상호 독립적인 다중값 속성을 서로 다른 두 관계로 분리
<그림 4.10> 4차 정규형으로 전환된 직원-특기-언어관계
직원-특기 |
|
직원-언어 |
|
4.3 정규화된 관계의 통합
4.3.1 사례
▶ 명문 가구의 고객, 제품, 직원에 대한 관계 스키마
(1) 주문-제품 ( 주문번호, 제품번호, 수량 )
(2) 제품 ( 제품번호, 제품명, 단가 )
(3) 주문고객 ( 주문번호, 주문일, 고객번호
)
(4) 고객 ( 고객번호, 고객이름, 주소, 전화 )
(5) 고객 ( 고객번호, 성명, 주소, 신용 한도액 ) - 3차 정규형 관계
(6) 고객 구매현황 ( 고객번호, 고객이름, 담당직원) - 3차 정규형 관계
(7) 제품 ( 제품번호, 제품명, 재고량, 재주문 시점, 원가, 판매가 ) - 3차 정규형
관계
(8) 직원 ( 직원번호, 성명, 주소, 생년월일, 호봉 ) - 3차 정규형 관계
(9) 직원 매출 현황 ( 직원번호, 성명, 할당액, 최대 할인률 ) - 3차 정규형 관계
4.3.2 관계의 통합
- 동일한 개체를 표현한 여러 관계를 하나의 관계로 통합하는 과정
- 관점 통합 ( 여러 사용자의 관점을 통합하므로 )
- 주의할 점 : 이음 동의어, 동음 이의어, 이전 종속, 일반화의 문제점
▶고객관계
고객 ( 고객번호, 고객이름, 거주지 주소, 배달주소, 전화, 신용 한도액, 담당직원 ) |
- 일반적으로 주키가 동일한 관계는 한 관계로 통합될 수 있다.
(4) 고객 ( 고객번호, 고객이름, 주소, 전화 )
(5) 고객 ( 고객번호, 성명, 주소, 신용 한도액 )
(6) 고객 구매현황 ( 고객번호, 고객이름, 담당직원)
==>
·이음 동의어 : 성명, 고객이름 --> 하나의 명칭으로 통합/사용자가 자신의 친숙한
명칭으로 부를수 있도록 DB내에 속성의 별명를 저장
·동음 이의어 : (4)의 주소-배달주소 , (5)의 주소-고객의 거주지 --> 새로운 속성이름
부여
▶제품관계
제품 ( 제품번호, 제품명, 재고량, 재주문 시점, 원가, 판매가) |
(2) 제품 ( 제품번호, 제품명, 단가 )
(7) 제품 ( 제품번호, 제품명, 재고량, 재주문 시점, 원가, 판매가)
==>
·이음 동의어 : 단가, 판매가 --> 판매가로 통일
▶직원관계
직원 ( 직원번호, 성명, 주소, 생년월일, 호봉, 직원유형
) |
(8) 직원 ( 직원번호, 성명, 주소, 생년월일, 호봉 )
(9) 직원 매출 현황 ( 직원번호, 성명, 할당액, 최대 할인률 )
==> (9)번 관계는 영업직원에만 해당되는 속성 --> 상위 개체와 하위 개체를 나타내는
관계로 구별.
▶최종결과
주문-제품 ( 주문번호, 제품번호, 수량 ) |
Info > Data Mining > 3-4. RDB > 관계형 데이터 모델과 정규화 이론