• 검색 결과가 없습니다.

[실습으로 배우는 데이터모델링]

N/A
N/A
Protected

Academic year: 2022

Share "[실습으로 배우는 데이터모델링]"

Copied!
11
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

[실습으로 배우는 데이터모델링]

1. 정규화의 목표 및 표준형태

<심화학습 1>

■ 정규화 정의

완전히 정규화된 데이타모형은 논리적 데이타설계의 목적인 정확성, 일치성, 단순성, 비중복성, 안정성을 보장해 주는 관점에서의 최적의 논리적 데이타 모형이다.

■ 정규화 이론의 의의

- DATA MODEL의 정규화 정규화작업은 관계형 데이타베이스의 개념이지만 그 원칙은 개념 및 논리 데이타모델링에 적용된다

- 정규화 단계별 규칙을 사용하여 ATTRIBUTE의 위치를 적절히 하는 것

- 정규화 작업이 완료된 E-R Model은 바로 정규화된 관계형데이타베이스 설계로 옮겨진다.

- 제3정규형은 데이타중복을 제거하기 위한 데이타베이스 설계의 일반적인 목표 - 그 이상의 정규형은 별로 폭넓게 사용되지 않는다.

■ 정규화를 하는 궁극적인 이유

- 정규화는 데이타의 중복을 최소화

- 데이타의 중복은 데이타의 일관성을 해친다 - 트랜젝션이 여러 테이블을 불필요하게 처리한다

- 정규화 작업은 ENTITY 나 RELATIONSHIP, 테이블의 누락을 방지하는데 도움을 준다

■ 정규형(normal forms)의 가치

– 릴레이션이 올바르게 설계된 정도를 평가하는 기준 – 데이터 관리의 관점에서 릴레이션을 평가

– 정규형이 올라갈수록 더욱 정확하게 설계된 릴레이션

■ 정규화의 원칙

– 무손실 표현

– 데이터 중복성 감소 – 분리의 원칙

(2)

[실습으로 배우는 데이터모델링]

본 교재의 판권 및 저작권은 삼성에스디에스의 소유이므로 무단전재나 복사를 금합니다.

<심화학습 2>

■ 정규형과 릴레이션 구조의 분석

- 정규형은 데이터관리의 모순이 발생하는 원인을 분석하고 이에 따라 등급을 부여한 것 이를 파악하기 위해서는

– 릴레이션 구조의 파악 릴레이션 키 식별

– 발생 가능한 데이터관리 모순의 식별 데이터 입력, 갱신, 삭제시 문제점 – 데이터관리 모순의 발생 원인 도출

실제 현상과 릴레이션 구조가 일치하지 않기 때문 함수종속성, 다중종속성 파악

– 데이터관리 모순의 발생 원인 제거 독립된 릴레이션으로 구성 등

■ 정규화과정의 절차

(3)

[실습으로 배우는 데이터모델링]

<학습 정리>

○ 정규화의 정의를 기술하세요

- 애트리뷰트간의 종속성(함속적 종속성)을 분석하여 기본적으로 하나의 종속성이 하나의 테이블로 표현되도록 분해할 때, 이러한 분해과정을 정규화(Normalization)이라 한다.

○ 정규화의 두 가지 목표를 기술하세요

① 데이터가 불필요하게 테이블 내에서 반복되는 일을 최소화한다.

② 질문에 대한 응답시간을 최소화한다.

(4)

[실습으로 배우는 데이터모델링]

본 교재의 판권 및 저작권은 삼성에스디에스의 소유이므로 무단전재나 복사를 금합니다.

2. 단계별 정규화의 정의

<심화 학습1>

■ 정규화 목적

- 데이타 모형의 단순화 - 데이타 모형의 일관성 유지 - 속성유형의 배열검증

- 실체유형, 하부유형, 속성유형의 누락여부 검증 - 데이타구조 안정성 최대화

■ 정규화 절차

(5)

[실습으로 배우는 데이터모델링]

<심화 학습2>

■ 정규화 절차 설명

- 정규화작업은 관계형 데이타베이스의 개념이지만 그 원칙은 개념 데이타 모델링에 적용된다.

- 정규화단계별 규칙을 사용하여 Attribute의 위치를 적절히 한다.

- 정규화 작업이 완료된 ER Model은 바로 정규화된 관계형데이타베이스 설계로 옮겨진다.

- 제 3 정규형은 데이타중복을 제거하기 위한 데이타베이스 설계의 일반적인 목표 - 그 이상의 정규형은 별로 폭 넓게 사용되지 않는다.

가) 제1정규형

- 모든 Attribute는 반드시 하나의 값을 가져야 한다.

(반복형태가 있어서는 안됨)

- 어떤 Attribute가 다수의 값을 가지고 있다면 M:1관계의 새로운 Entity를 추가한다.

나) 제2 정규형

- 모든 Attribute는 반드시 기본키전부에 종속되어야 한다.

(기본키일부에만 종속되어서는 안됨)

- 어떤 Attribute가 기본키전체에 종속되어 있지 않으면 잘못된 위치이며 새로운 Entity를 만들거나 추가한다.

다) 제3 정규형

- 기본키가 아닌 모든 Attribute간에는 서로 종속될 수 없다.

(Attribute간 종속성 배제)

<학습 정리>

비 정규형 테이블

1차 정규형 테이블

2차 정규형 테이블

3차 정규형 테이블

보이스코드 정규형 테이블

반복 그룹제거

부분적 함수종속제거

모든 결정자를 키로 처리 이행적 함수종속제거

(6)

[실습으로 배우는 데이터모델링]

본 교재의 판권 및 저작권은 삼성에스디에스의 소유이므로 무단전재나 복사를 금합니다.

3. 1차 정규형 사례 실습

<심화 학습1>

■ 1차 정규화의 심화연구

- 제 1차 정규화는 모든 속성들은 단일 값(Atomic Value)을 갖는다는 정의를 만족해야 합니다.

1차 정규화는 매우 당연한 정의입니다.

- 데이터베이스의 속성은 배열형태(반복그룹의 값을 갖는)를 취할 수 없기 때문에 다수 개의 데이터를 기록할 필요가 있는 경우에도 별도의 엔티티로 분리시켜 1:M의 관계로 설정해야 합니다.

<심화 학습2>

■ 1차 정규화의 연구예제

(7)

[실습으로 배우는 데이터모델링]

- 위의 예에서 볼 수 있듯이 물품 주문시스템에서 한 고객이 한 번 주문 시 여러 종류의 물품을 주문할 수도 있으므로 좌측 ERD는 1차 정규화에 위배됩니다.

- 그러므로 1차 정규화에 위배되는 물품코드 속성을 별도의 엔티티로 분리한 오른쪽 ERD 형태로 구성해야 합니다.

- 위의 예에서 주문 엔티티의 주문 고객연락처의 속성도 1차 정규화에 위배될 수도 있으나(보통 특정 개인의 연락처가 다수일 수 있으므로) 위의 예에서는 주문결과 통보나 주문에 문제가 발생할 경우 주문을 낸 고객에게 연락을 취할 대표적인 유무선 번호 하나만을 입력받도록

가정한 경우입니다.

<학습 정리>

○ 수강-지도관계 업무정의로부터 이상현상을 제거함으로써 이상현상에 대한 문제점을 정리하였다

○ 이러한 이상현상은 테이블에 입력, 수정, 삭제를 가할 경우 해당 튜플뿐만 아니라 다른 튜플에까지 연쇄적인 변형이 발생하는 현상으로 올바르게 정규화시키면 발생하지 않는다.

○ 사례에서 살펴본 이상현상은 설계자가 수강-지도체계를 올바르게 설계하지 못하고 전체를 한 개의 TABLE로 작성하여 발생한 것이다.

- 앞의 FDD로부터 부분종속성이 존재하는 형태이므로 1차 정규형이다.

- 따라서 앞의 FDD에서 부분종속성은 제거해야만 2차 정규형이 될 수 있다.

(8)

[실습으로 배우는 데이터모델링]

본 교재의 판권 및 저작권은 삼성에스디에스의 소유이므로 무단전재나 복사를 금합니다.

4. 2차, 3차 정규형 사례 실습

<심화학습 1>

■ 2차 정규화의 심화연구

- 제 2차 정규화는 1차 정규화가 고려된 엔티티의 기본 키에 모든 속성들이 완전 함수적 종속이어야 합니다.

- 완전 함수적 종속이란 기본 키를 구성하는 모든 속성에 종속되어야 한다는 의미입니다.

- 기본 키의 일부 속성에만 종속적인 경우에는 2차 정규화가 아닙니다.

<심화 학습2>

■ 2차 정규화의 연구예제

(9)

[실습으로 배우는 데이터모델링]

- 위의 좌측의 ERD 중에 주문품목 엔티티의 단가 속성은 주문품목코드에만 함수적 종속관계에 있습니다.

- 즉, 부분 함수 종속관계이므로 2차 정규화를 만족하지 못합니다.

- 오른쪽의 ERD는 왼쪽의 ERD를 2차 정규화에 맞게 분해해 놓은 ERD인데 오른쪽의 품목 엔티티와 주문품목 엔티티를 JOIN하면 왼쪽의 주문품목 엔티티와 동일한 결과를 얻을 수 있습니다.

- 이와 같이 하나의 엔티티를 정보의 손실없이 두 개 이상의 엔티티로 나누는 것을 무손실분해라고 합니다.

<학습 정리>

○ "학번"과 "과목번호"가 결합하여 복합키의 형태로 "성적"이라는 속성을 완전종속시키기로 했으면서도,

"학번"이 별도로 "지도교수명"과 "학과명"을 완전종속시킴으로 해서, "과목번호"의 입장에서는 보면 부분종속성이 발생된다.

○ 2차정규형의 FDD에서 '학번' → '학번' → '지도교수명'의 관계를 의미한다.

- 이를 '학번' → '지도교수명'의 관계와 '학번' → '지도교수명'의 관계로 분리하면 이행종속성을 제거할 수 있다.

○ 3차정규형의 테이블은 2차정규형 때 발생되었던 데이터 이상현상이 모두 해결되는 것을 볼 수 있다.

- 2차 정규형 때의 이상현상은 이행종속성 때문이라고 결론지을 수 있다.

(10)

[실습으로 배우는 데이터모델링]

본 교재의 판권 및 저작권은 삼성에스디에스의 소유이므로 무단전재나 복사를 금합니다.

5. BCNF 사례 실습

<심화 학습1>

■ 3차 정규화의 심화연구

- 이행적 함수적 종속관계에 있으면 안 된다는 것입니다.

- 좀 더 쉽게 설명하면 일반 속성들간의 종속관계가 없어야 3차 정규화를 만족시킨다고 할 수 있습니다.

- 3차 정규화는 2차 정규화를 만족시켜야 성립합니다. 따라서 모든 속성들은 기본 키에 완전 함수적 종속관계이므로 일반 속성들간에 함수적 종속관계에 있는 경우는 기본 키에 대해 이행적 함수 종속이라고 할 수 있고, 이러한 이행적 함수종속을 제거하는 것이 3차 정규화의 목적이라고 할 수 있습니다.

<심화 학습2>

■ 3차 정규화의 연구예제

(11)

[실습으로 배우는 데이터모델링]

- 앞의 '주문' 엔티티에서 담당사원을 알면 담당부서를 알 수 있으므로 서로 종속관계에 있다고 할 수 있으며,

- 고객주민번호를 알면 고객에 대한 모든 정보를 알 수 있기 때문에 이 역시 서로 종속관계에 있다고 말할 수 있습니다.

- 제 3차 정규화에서는 이렇게 기본 키가 아닌 속성에 종속되어 있는 속성들을 제거하는 것입니다 - 위의 ERD는 제 3 정규화 과정을 수행한 후의 결과 ERD의 모습입니다.

<학습정리>

○ 보이스-코드 정규형(BCNF : Boyce-Codd Normal Form)

- 함수적 종속성에서 표현된 모든 결정자 X는 반드시 Key가 된다.

- BCNF는 역사적으로는 원래 4NF가 출현한 다음에 제안되었으나 실제 위치상으로는 3NF와 4NF 에 속하는 형태로서 함수적종속성(FD) 으로 불리는 단일치종속성만을 고려하는 경우에는 가장 바람직한 정규형이다.

○ 3NF 역시 다음의 두 가지 관점에서 볼 때 BCNF와 함께 바람직한 정규형이라 할 수 있다.

① 불필요성 중복이 극소화될 수 있는 측면

② 테이블 수를 최적화하는 측면

○ 이러한 근거로 3NF와 BCNF 모두 DB설계상의 두 가지 목표를 동시에 달성할 수 있는 정규형이라 할 수 있다.

참조

관련 문서

4 소거 바람직하지 못한 행동을 제거하기 위한 강화 4. 소거 – 바람직하지 못한 행동을

스피치 경험 부족한 사람에게 유혹적인 방법이지만 청중 반응에 적응할 수 없기 때문에 유능한 연사는 절대로 채택하지 않는다..  대본 낭독-실행 노력이 별로 필요하지 않고 불안증도

두 변수가 높은 상관관계를 갖는다고 해도, 한 변수가 다른 변수의 원인이 된다는 것을 의미하지는 않는다. 예 , 식당의

기호는 어떤 것을 대신 표상하는 물리적 실체이다 기호의 종류에는 도상 지표 상징이 있다. 도상과 지표 상징은 각각 독립적으로만 사용되지 않고 둘

친구들과 동료들을

FOREIGN KEY (ESSN) REFERENCES EMPLOYEE (SSN), FOREIGN KEY (PNO) REFERENCES PROJECT (PNUMBER)) ; CREATE TABLE DEPENDENT. ( ESSN

근래에는 도치 이상의 마모성이나 흡수성 그리고 중량감을 줄여줄 수 있는 인공 합성 수지치와.. 초경질 레진치가 개발되어

 실행을 위해 외부 스키마 상에서 표현된 요구를 개념 스키마에 대한 요구로 변환, 다시 내부 스키마에 대한 요구로 변환하여 저 장된 데이타베이스