Database

[오라클로 배우는 데이터베이스 개론과 실습] 7장 연습문제

랄라릿요 2020. 6. 15. 14:57

오라클로 배우는 데이터베이스 개론과 실습 7장 연습문제 풀이입니다.

학교 과제로 혼자서 푼 내용을 공유합니다. 오류가 있다면, 댓글로 알려주세요 :)

 

① ② ③ ④

 

1. 정규화의 필요성으로 거리가 먼 것은? 

② 중복 데이터의 활성화

 

 

2. 관계 데이터베이스의 정규화에 대한 설명으로 옳지 않은 것은?

② 정규화의 목적은 각 릴레이션에 분산된 종속성을 하나의 릴레이션에 통합하는 것이다.

[풀이] 정규화의 목적은 이상현상이 발생하는 릴레이션을 분해하여 이상현상을 없애는 것임

 

 

3. 정규화 과정에서 발생하는 이상현상에 관한 설명으로 옳지 않은 것은?

② 속성 간의 종속관계를 분석하여 여러 개의 릴레이션을 하나로 결합하여 이상현상을 해결한다.

[풀이] 정규화는 속성 간의 종속 관계를 분석해 여러 개의 릴레이션을 분해하여 이상현상을 해결한다. 

 


4. 데이터의 중복으로 인해 릴레이션 조작시 발생하는 이상현상에 관한 설명 중 옳지 않은 것은?

③ 데이터 수정시 중복된 투플들 중에서 일부 투플이 잘못된 값으로 수정될 경우 정보의 모순성이 생기는데 이를 모순이상이라고 한다.

[풀이] 수정이상이라고 한다.

 

 

5. 제 1정규형에서 제 2정규형이 되기 위한 조건은?

④ 키가 아닌 모든 속성이 기본 키에 완전 함수 종속되어야 한다.

 

 

6. 제 2정규형에서 제 3정규형이 되기 위한 조건은?

① 이행적 함수 종속을 제거해야 한다.[풀이]

 

 

7. 제 3정규형에서 보이스코드 정규형(BCNF)이 되기 위한 조건은?

④ 결정자가 후보키가 아닌 함수적 종속을 제거해야한다.

 


8. 보이스코드 정규형(BCNF)에 대한 옳은 설명으로만 짝지어진 것은?

① ㄱ, ㄴ

[풀이] 

ㄷ : 복합속성을 허용하지 않는다 -> 결정자가 복합속성일 수 있다

ㄹ : 이행적 종속을 허용한다 -> 3NF는 비이행적 종속(직접종속)을 만족해야 한다

 

 

9. 다음 중 보이스코드 정규형(BCNF)을 만족하기 위한 조건으로 옳게 짝지어진 것은?

② ㄱ, ㄴ, ㄷ, ㄹ

[풀이]

ㄱ : 결정자이면서 후보키가 아닌 것 제거 -> BCNF 조건

ㄴ : 이행적 함수 종속 제거 -> 3NF 조건

ㄷ : 부분함수 종속 제거 -> 2NF 조건

ㄹ : 도메인이 원자값 -> 1NF 조건

 

 

10. 다음과 같이 어떤 릴레이션 R과 그 릴레이션에 존재하는 종속성이 주어졌을 때 릴레이션 R은 몇 정규형인가?

릴레이션: R(A, B, C)
기본키: (A, B)
함수 종속성: AB->C, C->B

③ 제 3정규형

 

 

11. 다음 릴레이션에서 함수 종속성과 키를 찾아보시오. 필요한 전제 사항을 포함하여 답하시오.

성적기록(학번, 강좌번호, 학기, 성적)

함수 종속성 : 학번-> 학기, (학번, 강좌번호) -> 성적

키 : (학번, 강좌번호)

 

 

12. 다음 릴레이션에서 AB는 후보키가 될 수 있는가? 아니라면 후보키를 찾아보시오.

릴레이션: R(A, B, C, D, E)
함수 종속성: AB->C, CD->E, DE->B

...?

 

 

13. 다음 릴레이션 R을 보고 오른쪽 함수 종속성 중에서 성립하는 것을 모두 고르시오

A

B

C

D

1

1

1

1

2

2

2

2

2

1

3

1

4

3

4

3

[보기] A -> B, A -> C, A -> D, B -> A, B -> C, B -> D, C -> A, C -> B, C -> D, D -> A, D -> B, D -> C 

: 함수 종속성을 만족하는 것은 B -> D, C -> A, C -> B, C -> D, D -> B이다. 

 

 

14. 다음 릴레이션 R을 보고 아래 함수 종속성이 성립하는지 답하시오. 그 이유도 설명하시오.

A

B

C

b

c

h

e

i

f

g

i

f

e

b

a

14-(1). A -> C 

: 성립하지 않는다. 왜냐하면 e->f, e->a에서 e의 값에 유일하게 종속되지 않는다.

14-(2). A -> B

: 성립하지 않는다. 왜냐하면 e->i, e->b에서 e의 값에 유일하게 종속되지 않는다.

14-(3). B -> C

: 성립한다. 왜냐하면 c->h, i->f, b->a로 속성 B는 속성 C에 유일하게 종속된다.  

14-(4). (B, C) -> A

: 성립하지 않는다. 왜냐하면 (i, f)->e, (i, f)->g로 (i, f)의 값에 유일하게 종속되지 않는다.

14-(5). (A, B) -> C

: 성립한다. 왜냐하면 (b, c)->h, (e,i)->f, (g, i)->f, (e, b)->a로 속성 (A, B)는 속성 C에 유일하게 종속된다.

14-(6). (A, C) -> B

: 성립한다. 왜냐하면 (b, h)->c, (e, f)->i, (g, f)->i, (e, a)->b로 속성 (A, C)는 속성 B에 유일하게 종속된다.

 

 

15. 아래의 릴레이션 R1(A, B, C)을 릴레이션 R2(A, B)와 R3(A, C)로 분해한 후, 속성 A를 사용하여 다시 조인하면 어떤 가짜 투플이 생기는지 확인해보시오. 생긴다면 이유는 무엇인지 설명하시오.

A

B

C

1

1

1

1

2

2

2

3

3

: (1, 1, 2), (1, 2, 1)의 가짜 투플이 생긴다. 왜냐하면, 속성 A를 사용해 조인하는데 R2, R3 릴레이션의 공통 속성인 A가 어느 한 릴레이션의 기본키가 되지 못하기 때문이다.

 

 

17. 다음 릴레이션 X에서 성립하는 정규형은 무엇인가?

(1)

: 제 2정규형이다. 왜냐하면 이행적 종속이 존재한다.

(H, I) -> J -> M

(H, I) -> K -> N

(H, I) -> L -> O

 

(2)

: 제 1정규형이다. 왜냐하면 완전 함수 종속을 만족하지 못한다.

(D, O) -> N, T, C, R, Y

D -> N

 

 

19. 릴레이션 Book(booktitle, authorname, booktype, listprice, authorgorup, publisher)에서 함수 종속성은 다음과 같다.

(1) Book 릴레이션은 몇 정규형인가? 그 이유를 설명하시오.

: 제 1정규형이다. 왜냐하면 (booktitle, authorname) -> publisher 과 booktitle -> booktype으로 완전 함수 종속을 만족하지 못하며, booktitle -> booktype -> listprice로 비이행적 종속한다.

 

(2) 정규화를 수행하시오.

R1(booktitle, booktype)

R2(booktype, listprice)

R3(authorname, authorgroup)

R4(booktitle, authorname, publisher)