본문 바로가기
자격증

정보처리기사 실기 정리& 요약 - 이상/함수적 종속/정규화_⭐

by 경이 Kyung I 2020. 7. 3.
반응형

*은 개인적으로 외우는 방식으로 개인적 의견입니다.

정리 혹은 급한 경우에 참고하세요.

제목에 ⭐이 있으면 해당 내용 꼭 외우세요 시험에 잘나옵니다.

1. 이상 (Anomaly)

개념

- 이상이란 테이블에서 일부 속성들의 종속으로 인해 데이터 중복이 발생하고, 이 중복으로 인해 테이블 조작 시 문제가 발생하는 현상을 의미한다.

이상의 종류

종류

개념

삽입 이상

(Insertion Anomaly)

테이블에 데이터를 삽입할 때 의도와는 상관없이 원하지 않은 값들로 인해 삽입할 수 없게 되는 현상

삭제 이상

(Deletion Anomaly)

테이블에서 한 튜플을 삭제할 때 의도와는 상관없는 값들도 함께 삭제되는, 즉 연쇄 삭제가 발생하는 현상

갱신 이상

(Update Anomaly)

테이블에서 튜플에 있는 속성 값을 갱신할 때 일부 튜플의 정보만 갱신되어 정보에 불일치성이 생기는 현상

<수강>

학번

과목번호

성적

학년

100

C413

A

4

100

E412

A

4

200

C123

B

3

300

C312

A

1

300

C324

C

1

400

C123

A

4

400

C312

A

4

400

C324

A

4

400

C413

B

4

400

E412

C

4

500

C312

E

2

예시

설명

삽입이상

학번이 "600"인 학생의 학년이 "2"라는 사실만을 삽입하고자 하는 경우

기본키는 학번과 과목번호이기 때문에 삽입할 때 반드시 과목번호가 있어야 한다.

삭제이상

학번이 "200"인 학생이 과목번호 "C123"의 등록을 취소하고 자 하는 경우

학번이 "200"인 학생의 과목번호가 "C123"인 과목을 취소하고자 그 학생의 튜플을 삭제하면 학년 정보까지 같이 삭제된다. 과목만 취소하고자 했지만 유지 되어야 할 학년 정보까지 삭제 되기 때문에 정보 손실이 발생한다.

갱신이상

학번이 "400"인 학생의 학년을 "4"에서 "3"으로 변경하고자 하는 경우

학번이 "400"인 모든 튜플의 학년 값을 갱신해야 하는데 실수로 일부 튜플만 갱신하면 학번 "400"인 학생의 학년은 "3","4" 즉 2가지 값을 가지게 되어 정보에 불일치성이 생기게 된다.

2. 함수적 종속 (Functional Dependency)

개념

- 함수적 종속은 데이터의 의미를 표현하는 것으로, 현실 세계를 표현하는 제약 조건이 되는 동시에 데이터베이스에서 항상 유지되어야 할 조건이다.

<학생>

학번

이름

학년

학과

400

이순신

4

컴퓨터공학과

422

유관순

4

물리학과

301

강감찬

3

수학과

320

홍길동

3

체육과

해설: <학생> 테이블에서 이름, 학년, 학과는 각각 한번 속성에 함수적 종속이다. 이것을 기호로 표시하면 다음과 같다.

X -> Y의 관계를 갖는 속성 X와 Y에서 X를 결정자라 하고 Y를 종속자라고 한다.

학번이 결정자 이름이 종속자

<수강>

학번

과목번호

성적

학년

100

C413

A

4

100

E412

A

4

200

C123

B

3

300

C312

A

1

300

C324

C

1

400

C123

A

4

400

C312

A

4

400

C324

A

4

400

C413

B

4

400

E412

C

4

500

C312

E

2

<표시>

학번, 과목번호 -> 성적 --------- 완전 함수적 종속 (Full Functional Dependency)

학번 -> 학년 --------- 부분 함수적 종속 (Partial Functional Dependency)

완전 함수적 종속 (Full Functional Dependency)

- 어떤 테이블 R에서 속성 Y가 다른 속성 집합 X 전체에 대한 함수적 종속이면서 속성 집합 X의 어떠한 진부분 집합 Z(즉, Z ⊂ X)에도 함수적 종속이 아닐 때 속성 Y는 속성 집합 X에 완전 함수적 종속이라고 합니다.

부분 함수적 종속 (Partial Functional Dependency)

- 어떤 테이블 R에서 속성 Y가 다른 집합 X 전체에 대해 함수적 종속이면서 속성 집합 X의 임의의 진부분 집합에 대해 함수적 종속일 때, 속성 Y는 속성 집합 X에 부분 함수적 종속이라고 합니다.

3. 정규화 (Normalization)

개념

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

- 정규화의 목적은 가능한 한 중복을 제거 하여 삽입, 삭제, 갱신 이상의 발생 가능성을 줄이는 것이다.

- 정규형에는 제 1 정규형 (1NF; First Normal Form) ~ 제 5 정규형 (5NF; Fifth Normal Form) 이 있으며 순서대로 정규화의 정도가 높아진다.

제 1 정규형 (1NF; First Normal Form)

- 제 1 정규형은 테이블 R에 속한 모든 속성의 도메인이 원자 값만으로 되어 있는 정규형이다. 즉 테이블의 모든 속성 값이 원자 값으로만 되어 잇는 정규형이다.

문제) <주문목록> 테이블에서 반복되는 주문 관련 정보를 분리하여 제 1 정규형으로 만드시오.

<주문목록>

제품번호

제품명

재고수량

주문번호

고객번호

주소

주문수량

1001

모니터

2000

A345

D347

100

200

서울

부산

150

300

1007

마우스

9000

A210

A345

B230

300

100

200

광주

서울

부산

600

400

700

1201

키보드

2100

D347

200

부산

300

<제품>

제품번호

제품명

재고수량

1001

모니터

2000

1007

마우스

9000

1201

키보드

2100

<제품주문>

주문번호

제품번호

고객번호

주소

주문수량

A345

1001

100

서울

150

D347

1001

200

부산

300

A210

1007

300

광주

600

A345

1007

100

서울

400

B230

1007

200

부산

700

D347

1201

200

부산

300

제 2 정규형 (2NF; Second Normal Form)

- 제 2정규형은 테이블 R이 제 1정규형이고 기본키가 아닌 모든 속성이 기본키에 대하여 완전 함수적 종속을 만족하는 정규형이다.

문제) <제품주문> 테이블에서 주문번호에 함수적 종속이 되는 속성들을 분리하여 제 2정규형을 만드시오.

<제품주문>

주문번호

제품번호

고객번호

주소

주문수량

A345

1001

100

서울

150

D347

1001

200

부산

300

A210

1007

300

광주

600

A345

1007

100

서울

400

B230

1007

200

부산

700

D347

1201

200

부산

300

<주문목록>

주문번호

제품번호

주문수량

A345

1001

150

D347

1001

300

A210

1007

600

A345

1007

400

B230

1007

700

D347

1201

300

<주문>

주문번호

고객번호

주소

A345

100

서울

D347

200

부산

A210

300

광주

B230

200

부산

제 3 정규형 (3NF; Third Normal Form)

- 제 3정규형은 테이블 R이 제 2정규형이고 기본키가 아닌 모든 속성이 기본키에 대해 이행적 함수적 종속을 만족하지 않는 정규형이다.

문제) <주문> 테이블에서 이행적 함수적 종속을 제거하여 제 3정규형을 만드시오.

<주문>

주문번호

고객번호

주소

A345

100

서울

D347

200

부산

A210

300

광주

B230

200

부산

<주문>

주문번호

고객번호

A345

100

D347

200

A210

300

B230

200

<고객>

고객번호

주소

100

서울

200

부산

300

광주

BCNF

- BCNF는 테이블 R에서 모든 결정자가 후보키인 정규형이다.

- 일반적으로 제 3정규형에 후보키가 여러 개 존재하고, 이러한 후보키들이 서로 중첩되어 나타나는 경우에 적용 가능하다.

문제) <수강_교수> 테이블에서 결정자가 후보키가 아닌 속성을 분리하여 BCNF를 만드시오.

<수강_교수>

학번

과목명

담당교수

171746

데이터베이스

홍길동

171747

네트워크

유관순

171748

인공지능

윤봉길

171749

데이터베이스

홍길동

171747

데이터베이스

이순신

171749

네트워크

유관순

<수강>

학번

담당교수

171746

홍길동

171747

유관순

171748

윤봉길

171749

홍길동

171747

이순신

171749

유관순

<교수>

담당교수

과목명

홍길동

데이터베이스

이순신

데이터베이스

윤봉길

인공지능

유관순

네트워크

제 4 정규형 (4NF; Fourth Normal Form)

- 제 4정규형은 테이블 R에 다중 값 종속 A ->-> B가 존재할 경우 R의 모든 속성이 A에 함수적 종속 관계를 만족하는 정규형이다.

제 5 정규형 (5NF; Fifth Normal Form)

- 제 5정규형은 테이블 R의 모든 조인 종속이 R의 후보키를 통해서만 성립되는 정규형이다.

- 정규화 과정 정리 -

* 정규화 단계 암기 요령

두부를 좋아하는 정규화가 두부가게에 가서 가게에 있는 두부를 다 달라고 말하니 주인이 깜짝 놀라며 말했다.

두부이걸다줘? ----> 도부이결다조

메인이 원자값

분적 함수 종속 제거

행적 함수 종속 제거

정자이면서 후보키가 아닌 것 제거

치 종속

인 종속성 이용

반응형

댓글