Info > Data Mining > 3-4. RDB > 관계형 데이터 모델과 정규화 이론


▷▶ 관계형 데이터 모델과 정규화 이론

 

4.1 정규화의 개념

정규화 이론 : 다양한 유형의 검사를 통하여 관계형 데이터 모델의 관계를 보다 구조화된 것으로 개선시켜 나가는 절차에 관한 이론. 구조화된 관계란 데이터베이스 상에서 삽입, 삭제, 수정이 이루어 질 때 문제점이 발생하지 않는 관계

 

4.1.1 구조화된 관계

데이터베이스에 저장되는 데이터의 중복을 최소화시킴으로써 삽입, 삭제, 수정으로 인한 오류나 데이터의 불일치를 발생시키지 않는 관계.

<그림 4.1> 수강 과목 관계

학번

과목 번호

과목 이름

9419046
9419143
9419143
9419272
9419272
.

BB203
BB201
BB353
BB203
BB353
.

컴퓨터 프로그래밍
경영의 이해
정보 시스템
컴퓨터 프로그래밍
정보시스템
.

==> 삽입이상, 삭제이상, 수정이상

 

<그림 4.2> 분리되어 구조화된 관계

수강

학번

과목번호

9419046
9419143
9419143
9419272
9419272
.

BB203
BB201
BB353
BB203
BB353
.

과목

과목번호

과목이름

BB203
BB201
BB353
BB203
BB353
.

컴퓨터 프로그래밍
경영의 이해
정보 시스템
컴퓨터 프로그래밍
정보시스템
..

 

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> 비정규형의 관계

주문

주문번호

주문일

고객번호

고객이름

전화

제품번호

제품명

수량

2157

95.10.20

C1560

이명훈

362-2342

BD307
TB115
CH115

로얄 침대 퀸
로얄식탁
로얄식탁 의자

1
1
6

2158

95.10.20

C0714

김철규

332-6114

SP120
TT120

듀크 쇼파
듀크 차 탁자

1
1

2159

95.10.20

C1560

이명훈

362-2342

SP120

듀크 쇼파

1

.
.

.
.

.
.

.
.

.
.

.
.

.
.

.
.

 

<그림 4.2> 1차 정규형의 관계

주문

주문번호

주문일

고객번호

고객이름

전화

제품번호

제품명

수량

2157

95.10.20

C1560

이명훈

862-2342

BD307

로얄 침대 퀸

1

2157

95.10.20

C1560

이명훈

862-2342

TB115

로얄 식탁

1

2157

95.10.20

C1560

이명훈

862-2342

CH115

로얄 식탁 의자

6

2158

95.10.20

C0714

김철규

332-6114

SP120

듀크 쇼파

1

2158

95.10.20

C0714

김철규

332-6114

TT120

듀크 차 탁자

1

2159

95.10.20

C1560

이명훈

862-2342

SP120

듀크 쇼파

1

..

..

..

..

..

..

..

..

 

4.2.3 2차 정규형

▶1차 정규형의 문제점

·삽입이상
·삭제이상
·수정이상
-->이러한 문제점을 제거하기 위하여 속성간의 함수적 종속성을 분석하여, 하나의 관계를 두 개 이상의 관계로 분리시켜야 한다.

 

<그림 4.3> 주문 관계의 함수적 종속

주문 (주문번호, 제품번호, 주문일, 고객이름, 고객번호, 전화, 제품명, 수량 )

·주문번호, 제품번호 -> 수량
·주문번호 -> 주문일, 고객이름, 고객번호, 전화
·제품번호 -> 제품명

 

▶2차 정규형 : 어느 관계가 1차 정규형의 조건을 만족하면서 주키를 구성하지 않는 나머지 속성이 주키에 완전 함수적 종속을 이룰 때. 즉, 1차 정규형에서 부분종속을 제거한 것.

·완전 함수적 종속 : 주키의 일부만으로는 비주키 속성의 값을 결정지을 수 없다.
·부분 종속

 

<그림 4.4> 2차 정규형으로 전환된 주문 관계

주문-제품

주문번호

제품번호

수량

2157
2157
2157
2158
2158
2159
..

BD307
TB115
CH115
SP120
TT120
SP120
..

1
1
6
1
1
1
..

제품

제품번호

제품명

BD307
TB115
CH115
SP120
TT120-
..

로얄 침대 퀸
로얄 식탁
로얄 식탁 의자
듀크 쇼파
듀크 차 탁자
..

 

주문-고객

주문번호

주문일

고객이름

고객번호

전화

2157
2158
2159
..

95.10.20
95.10.20
95.10.20
..

이명훈
김철규
이명훈
..

C1560
C0714
C1560C
..

362-2342
332-6114
362-2342
..

 

4.2.4 3차 정규형

▶2차 정규형의 문제점

·삽입이상
·삭제이상
·수정이상
-->이러한 문제점은 속성간의 이전종속 때문에 발생한다. 이전종속을 제거하기 위해서는 이전종속과 관련된 비주키 속성들을 다른 관계로 분리시켜야 한다.

 

<그림 4.5> 주문-고객 관계의 함수적 종속

주문 (주문번호, 주문일, 고객이름, 고객번호, 전화 )

·주문번호 -> 주문일, 고객이름, 고객번호, 전화
·고객번호 -> 고객이름, 전화

 

▶3차 정규형 : 어느 관계가 2차 정규형의 조건을 만족하면서 이전 종속이 존재하지 않는 관계.

 

<그림 4.6> 3차 정규형 관계로 전환된 고객 주문서 관점

주문-제품

주문번호

제품번호

수량

2157
2157
2157
2158
2158
2159
..

BD307
TB115
CH115
SP120
TT120
SP120
..

1
1
6
1
1
1
..

제품

제품번호

제품명

BD307
TB115
CH115
SP120
TT120-
..

로얄 침대 퀸
로얄 식탁
로얄 식탁 의자
듀크 쇼파
듀크 차 탁자
..

주문-고객

주문번호

주문일

고객번호

2157
2158
2159
..

95.10.20
95.10.20
95.10.20
..

C1560
C0714
C1560C
..

고객

고객이름

고객번호

전화

이명훈
김철규
이명훈
..

C1560
C0714
C1560C
..

362-2342
332-6114
362-2342
..

 

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 > 관계형 데이터 모델과 정규화 이론