ACAIT

[데베입] 데이터베이스개론 3판 Chapter 09 연습문제 풀이 본문

전공 및 코드/데이터베이스 입문(SQL)

[데베입] 데이터베이스개론 3판 Chapter 09 연습문제 풀이

831x99 2023. 5. 14. 23:14

1. 정규화에 대한 설명으로 옳지 않은 것은?
① 논리적 데이터베이스 설계방법 중 하나다.
② 좋은 데이터베이스 스키마를 생성하고 불필요한 데이터의 중복을 방지하는 데 목적이 있다.
③ 정규형에는 제1정규형, 제2정규형, 보이스/코드 정규형, 제4정규형, 제5정규형 등이 있다.
④ 속성들 간의 종속 관계를 분석하여 잘못 설계된 릴레이션들을 결합하면서 문제를 해결한다.
: 속성들 간의 종속 관계를 분석하여 잘못 설계된 릴레이션들을 결합하면서 문제를 해결한다.
 
2. 정규화의 필요성으로 거리가 먼 것은?
① 수정, 삭제 시 이상 현상을 최소화한다.
② 데이터 중복을 활성화해서 효과적인 검색을 지원한다.
③ 릴레이션을 분해하여 관련 있는 속성들로만 릴레이션을 구성한다.
④ 릴레이션 구조의 안정성을 최대화한다.
: 데이터 중복을 활성화해서 효과적인 검색을 지원한다.
 
3. 정규화를 하지 않으면 릴레이션을 조작할 때 데이터의 중복 때문에 곤란한 현상이 발생할 수 있다. 이러한 이상 현상에 해당하지 않는 것은?
① 삭제 이상
② 삽입 이상
③ 검색 이상
④ 갱신 이상
: 검색 이상
 
4. 다음 중 릴레이션을 조작할 때 발생할 수 있는 이상 현상에 관한 설명으로 옳지 않은 것은?
① 이상은 속성들 간에 존재하는 여러 종류의 종속 관계를 하나의 릴레이션에 표현할 때 발생한다.
② 데이터를 삽입할 때 불필요한 데이터가 함께 삽입되는 현상을 삽입 이상이라 한다.
③ 릴레이션의 한 투플을 삭제할 때 연쇄 삭제로 인해 꼭 필요한 데이터가 함께 삭제되는 현상을 삭제 이상이라고 한다.
④ 속성들 간의 종속 관계를 분석하여 여러 개의 릴레이션을 하나로 결합하면서 이상 현상을 해결한다.
: 속성들 간의 종속 관계를 분석하여 여러 개의 릴레이션을 하나로 결합하면서 이상 현상을 해결한다.
 
5. 어떤 릴레이션 R에서 X와 Y를 각각 R의 속성 집합의 부분 집합이라고 할 경우 속성 X의 값 각각에 대해 시간에 관계없이 항상 속성 Y의 값이 오직 하나만 연관되어 있을 때 Y가 X에 함수적으로 종속되어 있다고 한다. 이를 기호로 옳게 표기한 것은?
① X >> Y
② Y >> X
③ Y → X
④ X → Y
: X Y
 
6. 어떤 릴레이션에 속한 모든 속성이 원자 값만 가지며, 기본키가 아닌 속성 모두가 기본키에 완전 함수 종속이지만 이행적 함수 종속이 나타나면 어떤 정규형에 해당하는가?
① 제1정규형
② 제2정규형
③ 제3정규형
④ 보이스/코드 정규형
: 2정규형
 
7. 이행적 함수 종속 관계를 의미하는 것은?
① A → B이고 B → C일 때, A → C를 만족하는 관계.
② A → B이고 B → C일 때, C → A를 만족하는 관계.
③ A → B이고 B → C일 때, B → A를 만족하는 관계.
④ A → B이고 B → C일 때, C → B를 만족하는 관계.
: A B이고 B C일 때, A C를 만족하는 관계.
 
8. 정규화 과정 중 제1정규형에서 제2정규형이 되기 위한 조건은?
① 제1정규형을 만족하고 모든 속성의 도메인이 원자 값이어야 한다.
② 제1정규형을 만족하고 기본키가 아닌 모든 속성들이 기본키에 이행적으로 함수 종속되지 않아야 한다.
③ 제1정규형을 만족하고 다치 종속이 제거되어야 한다.
④ 제1정규형을 만족하고 기본키가 아닌 모든 속성이 기본키에 완전 함수 종속되어야 한다.
: 1정규형을 만족하고 기본키가 아닌 모든 속성이 기본키에 완전 함수 종속되어야 한다.
 
9. 제2정규형에서 제3정규형이 되기 위한 조건은?
① 이행적 함수 종속 제거
② 부분적 함수 종속 제거
③ 다치 종속 제거
④ 결정자이면서 후보키가 아닌 것 제거
: 이행적 함수 종속 제거
 
10. 정규화에 관한 설명으로 옳지 않은 것은?
① 모든 속성의 도메인이 원자 값만 가지면 릴레이션은 제1정규형에 해당한다.
② 정규화는 제1정규형에서 제5정규형으로 갈수록 만족시켜야 할 제약조건이 많아진다.
③ 릴레이션이 제1정규형을 만족하면서, 기본키가 아닌 모든 속성이 기본키에 완전 함수 종속이면 제2정규형에 해당한다.
④ 릴레이션이 제2정규형을 만족하고, 결정자이면서 후보키가 아닌 것을 제거하면 제3정규형에 해당한다.
: 릴레이션이 제2정규형을 만족하고, 결정자이면서 후보키가 아닌 것을 제거하면 제3정규형에 해당한다.
 
11. 다음과 같이 왼쪽 릴레이션을 오른쪽 릴레이션으로 정규화하였다. 오른쪽 릴레이션은 어떤 정규형에 속하는가?

사원명취미
김나리등산, 독서
박지훈영화감상
우예진여행, 악기연주

사원명취미
김나리등산
김나리독서
박지훈영화감상
우예진여행
우예진악기연주


① 제1정규형
② 제2정규형
③ 제3정규형
④ 제4정규형
: 1정규형
 
12. 수강 릴레이션이 다음과 같을 때, 수강 릴레이션에 대한 설명으로 옳지 않은 것은?

학번과목번호학점과목이름
100A01AJAVA
101B01DC#
101B03A데이터베이스
100B01BC#
200A02C파이썬

① 제2정규형을 만족한다.
② 아직 수강생이 없는 새로운 과목을 삽입할 때, 삽입 이상이 발생한다.
③ 학번이 101인 학생이 수강을 취소하면 삭제 이상이 발생한다.
④ 과목 이름을 수정하려 할 때 갱신 이상이 발생할 수 있다.
: 2정규형을 만족한다.
 
13. A, B, C, D 속성으로 구성된 릴레이션 R은 {A, B}가 기본키다. 함수 종속이 다음과 같은 경우, 이 릴레이션은 어떤 정규형에 속하는가?
[ {A, B} → C {A, B} → D B → C C → D ]
① 제1정규형
② 제2정규형
③ 제3정규형
④ 제4정규형
: 1정규형
 
14. 지도 릴레이션이 다음과 같은 함수 종속성을 가지고 있을 때 지도 릴레이션에서 발생할 수 있는 이상 현상이 아닌 것은?

학번지도교수학과
101박경일IT융합비즈니스과
102박경일IT융합비즈니스과
103오지연컴퓨터공학과
104오지연컴퓨터공학과
105김이나항공서비스과


[ 학번 → 지도교수, 학번 → 학과, 지도교수 → 학과 ]
① 박경일 교수의 소속이 경영정보과로 변경되면 학번이 101, 102인 학생의 투플을 전부 변경해야 한다.
② 지도학생이 아직 배정되지 않은 김정우 교수가 컴퓨터공학과에 속한다는 데이터를 삽입할 수 없다.
③ 학번이 105인 학생의 투플을 삭제하면 김이나 교수가 항공서비스과에 속한다는 데이터도 함께 삭제된다.
④ 김이나 교수의 소속이 항공서비스과라는 데이터를 삭제하면 학번이 105인 학생의 데이터도 함께 삭제된다.
: 김이나 교수의 소속이 항공서비스과라는 데이터를 삭제하면 학번이 105인 학생의 데이터도 함께 삭제된다.
 
15. 다음 설명을 읽고 각 물음에 답하시오.
[ X → Y가 성립하고, Y → Z도 성립하면 X → Z가 성립된다. ]
(1) 어떤 함수 종속 관계와 관련된 설명인가?
: 이행적 함수 종속
 
(2) 정규화 과정에서 이러한 함수 종속 관계를 제거하는 단계는?
① 1NF → 2NF
② 2NF → 3NF
③ 3NF → BCNF
④ BCNF → 4NF
: 2NF 3NF
 
16. 잘못 설계된 릴레이션을 조작할 때 발생하는 이상 현상 중 다음이 설명하는 것은?
[ 중복된 투플 중에서 일부 투플의 속성 값만을 변경함으로써 정보의 모순성이 생기는 현상 ]
: 갱신 이상
 
17. 다음 릴레이션에 존재하는 함수 종속성을 모두 찾으시오.

ABC
238
596
796
591


① A → B
② B → C
③ {A, B} → C
④ {B, C} → A
: A B
 
18. 제3정규형에서 보이스/코드 정규형으로 정규화하기 위해서는 어떤 작업이 필요한가?
: 후보키가 여러 개인 릴레이션에서 결정자가 후보키가 아닌 함수 종속을 제거하여 모든 결정자 집합을 후보키에 해당하도록 분해해야 한다.
 
19. 정규화에 대한 설명으로 옳은 것을 모두 고르시오.
(A) 정규화는 릴레이션을 결합하여 종속성을 증가시키는 것이다.
(B) 제2정규형은 반드시 제1정규형을 만족해야 한다.
(C) 제1정규형은 모든 속성의 도메인이 원자 값만으로 되어 있는 릴레이션이다.
(D) 보이스/코드 정규형은 강한 제3정규형이라고도 한다.
: B, C, D
 
20. 데이터베이스 이상 현상의 종류 세 가지를 간단히 설명하시오.
: 데이터베이스 이상 현상의 종류 세 가지는 삽입 이상, 갱신 이상, 삭제 이상으로 구성된다. 삽입 이상은 종속되는 새 속성을 추가하고자 할 때 결정하는 속성 값이 없을 경우 릴레이션에 추가할 수 없어 불필요한 데이터를 함께 삽입해야 하는 문제다. 갱신 이상은 동일한 속성 값으로 중복된 투플이 있을 경우 일부 투플만 변경하여 데이터 일관성이 유지되지 않는 모순 현상이다. 삭제 이상은 투플을 삭제하면 꼭 필요한 데이터까지 같이 삭제될 수 있는 데이터 손실 현상이다.
 
21. 다음과 같은 함수 종속성을 가지는 릴레이션은 어떤 정규형에 속하는가? 단, A가 기본키다.
[ A → (B, C, D) B → C ]
: 결정자 A가 종속자 B, C, D를 결정하고, 결정자 B는 종속자 C를 결정해서 A C가 되는 이행적 함수 종속이므로 제3정규형은 만족하지 않는 제2정규형이다.
 
22. 다음과 같은 함수 종속성을 가지는 릴레이션은 어떤 정규형에 속하는가? 단, {A, B}가 기본키다.
[ {A, B} → C {A, B} → D B → C ]
: 기본키 {A, B} B만으로 C를 결정할 수 있기 때문에 부분 함수 종속이므로 제2정규형은 만족하지 않는 제1정규형이다.
 
23. 다음과 같은 함수 종속성을 가지는 릴레이션은 어떤 정규형에 속하는가? 단, {A, B}가 기본키다.
[ {A, B} → C C → B ]
: 결정자 {A, B}의 종속자인 B를 통해 다시 결정자 집합 안에 있는 B를 결정할 수 있으므로 후보키가 아닌 결정자가 존재하는 것이기 때문에 보이스/코드 정규형은 만족하지 않는 제3정규형이다.
 
24. 보이스/코드 정규형에 대한 설명으로 옳은 것을 모두 고르시오.
(A) 보이스/코드 정규형에 속하는 릴레이션은 반드시 제3정규형에 속한다.
(B) 제3정규형에 속하지만 보이스/코드 정규형에 속하지 않는 릴레이션도 있다.
(C) 모든 결정자가 후보키인 릴레이션이 보이스/코드 정규형에 속한다.
(D) 이행적 함수 종속을 제거한 릴레이션은 보이스/코드 정규형에 속한다.
: A, B, C
 
25. 다음 릴레이션 T에 존재하는 함수 종속성을 모두 구하시오.

T   
ABCD
a1b1c1d1
a1b1c2d2
a1b2c3d1
a1b1c4d4


: B A
C (A, B, D)
D A
{A, C} (B, D)
{B, C} (A, D)
{B, D} (A, C)
{C, D} (A, B)
{A, B, C} D
{A, B, D} C
{A, C, D} B
{B, C, D} A
 
26. 다음과 같이 수강 릴레이션을 학생담당강사 릴레이션과 과목담당 릴레이션으로 정규화하였다. 학생담당강사와 과목담당 릴레이션은 어떤 정규형에 해당하는가?

수강  
학번과목명강사번호
101영어T01
102중국어T02
103일본어T04
104영어T01
105중국어T03

학생담당강사 
학번강사번호
101T01
102T02
103T04
104T01
105T03
과목담당 
강사번호과목명
T01영어
T02중국어
T03중국어
T04일본어


: 후보키가 아닌 결정자가 존재하지 않도록 분해했으므로 보이스/코드 정규형이다.
 
27. 다음 릴레이션의 함수 종속성을 보고 물음에 답하시오.

학번이름지도교수학과이름학과전화번호과목번호성적시간회장이름동아리이름방번호
           

<함수 종속>
(a) 학번 → (이름, 지도교수. 학과이름, 회장이름, 동아리이름, 방번호)
(b) 학과이름 → 학과전화번호
(c) 과목번호 → 시간
(d) {학번, 과목번호} → 성적
(e) {회장이름, 동아리이름} → 방번호
 
(1) 위의 릴레이션에서 발생 가능한 삽입·갱신·삭제 이상 문제를 예를 들어 설명하시오.
: 기본키가 [학번, 과목번호]이므로 신규 과목 개설 후 수강 신청이 아직 완료되지 않았다면 기본키 집합 중 학번에 NULL 값이 들어가므로 개체 참조 무결성 제약조건이 위반되어 삽입 불가하다. 또다른 예로 신규 학생을 입력하는데 수강 신청 한 과목이 없을 경우에는 기본키 집합 중 과목번호에 NULL 값이 들어가므로 개체 참조 무결성 제약조건이 위반되어 삽입 불가하다. 두 가지 예 모두 각각 NULL 값이 들어가지 않도록 불필요한 임시 값을 삽입해야 하는 것이 삽입 이상이다.
기본키가 [학번, 과목번호]이므로 한 학생이 여러 과목을 수강 신청 할 경우 동일한 학번에 과목번호 외의 나머지 속성은 모두 중복된다. 이렇게 중복된 투플이 있는 상태에서 학과전화번호가 변경될 경우 속성 값을 일부만 변경하게 된다면 동일한 투플에 대한 학과전화번호 속성 값의 데이터 일관성이 유지되지 않는 갱신 이상이 발생한다.
기본키가 [학번, 과목번호]이므로 만약 한 과목만 수강하는 학생이 있을 때 그 과목이 폐강되어 투플을 삭제할 경우 과목번호 속성뿐만 아니라 학번, 이름, 지도교수, 학과이름, 학과전화번호, 성적, 시간, 회장이름, 동아리이름, 방번호 이 모든 속성이 삭제된다. 결과적으로 폐강 과목 투플을 삭제하게 되면 한 과목만 수강하는 학생의 투플에 속한 나머지 모든 속성이 삭제되므로 중요 정보가 삭제되는 삭제 이상이 발생한다.
 
(2) 모든 릴레이션이 제2정규형을 만족하도록 분해하고, 각 릴레이션의 기본키도 표시하시오.
: 부분 종속 함수를 제거하기 위해 분해해야 하는데, d의 속성 집합 중 학번에 부분 함수 종속인 a, d의 속성 집합 중 과목번호에 부분함수 종속인 c 두 가지를 분해해야 한다.

학번과목번호성적
   
학번이름지도교수학과이름학과전화번호회장이름동아리이름방번호
        
과목번호시간
  

 
(3) (2)의 모든 릴레이션이 제3정규형을 만족하도록 분해하고, 각 릴레이션의 기본키도 표시하시오.
: 이행적 종속 함수를 제거하기 위해 분해해야 하는데, 학생 릴레이션의 학번 학과이름, 학과이름 학과전화번호이므로 결과적으로 학번 학과전화번호로 이행적 함수 종속되며, 마찬가지로 학생 릴레이션의 학번 (회장이름, 동아리이름), (회장이름, 동아리이름) 방번호이므로 결과적으로 학번 방번호로 이행적 함수 종속되는 두 가지를 분해해야 한다.

학번과목번호성적
   
학번이름지도교수학과이름회장이름동아리이름
      
학과이름학과전화번호
  
회장이름동아리이름방번호
   
과목번호시간
  

 
(4) (3)의 모든 릴레이션이 보이스/코드 정규형을 만족하도록 분해하고, 각 릴레이션의 기본키도 표시하시오.
: 후보키가 아닌 결정자를 제거하기 위해 분해 과정을 거쳐야 하는데, 투플을 구분하기 위해 구별할 수 있는 후보키가 여러 개 존재하는 릴레이션은 동아리 릴레이션이다. 동아리 릴레이션은 [회장이름, 동아리이름], [회장이름, 방번호]가 후보키이다.

학번과목번호성적
   
학번이름지도교수학과이름회장이름동아리이름
      
학과이름학과전화번호
  
회장이름동아리이름
  
회장이름방번호
  
과목번호시간