본문 바로가기
학교/데이터베이스

MS SQL Server 기반 데이터베이스 배움터 7장 (릴레이션 정규화) 연습문제 풀이

by 코드 이야기 2021. 5. 20.
728x90

https://book.naver.com/bookdb/book_detail.nhn?bid=7000196 

 

데이터베이스 배움터

『데이터베이스 배움터』는 데이터베이스의 기본적인 개념과 실용적인 이론을 중심으로 한 학기 동안 가르치기에 적절한 주제들을 정선하여 저술하였고, 개념을 알기 쉽게 보여주는 그림들을

book.naver.com

 

 

1. 다음 용어들을 간략히 설명하라.
반복 그룹: 한 개의 기본 키값에 대해 두 개 이상의 값을 가질 수 있는 애트리뷰트
결정자: 주어진 릴레이션에서 다른 애트리뷰트(집합 또는 하나)를 고유하게 결정하는 하나 이상의 애트리뷰트
함수적 종속성: 애트리뷰트 A가 애트리뷰트 B의 결정자이면, B가 A에 함수적으로 종속한다고 한다.
이행적 종속성: 애트리뷰트 A, B, C가 있다면 A→B, A→C 이면서 B→C라면 C는 A에 직접 함수적으로 종속하면서 B를 거쳐 A에 이행적으로 종속한다고 한다.
제1정규형: 반복그룹이 나타나지 않으면 제1정규형을 만족한다.
제2정규형: 제1정규형을 만족하면서, 후보 키가 아닌 모든 애트리뷰트들이 기본 키에 완전하게 함수적으로 종속하는 것.
제3정규형: 제2 정규형을 만족하면서, 키가 아닌 모든 애트리뷰트가 릴레이션의 기본키에 이행적으로 종속하지 않는 것
BCNF: 제 3 정규형을 만족하고, 모든 결정자가 후보키인 것. BCNF를 만족하는 릴레이션 스키마들의 집합에서는 갱신 이상이 발생하지 않아 실제적인 정규화의 목표이다. BCNF를 만족하는 릴레이션에서는 중복이 존재하지 않으며, 갱신 이상도 발생하지 않는다.
역정규화: 주어진 응용에서 빈번하게 수행되는 검색 질의들의 수행 속도를 높이기 위해서 이미 분해된 두 개 이상의 릴레이션들을 합쳐서 하나의 릴레이션으로 만드는 작업니다. 즉, 보다 낮은 정규형으로 되돌아가는 것이다.

 

 

 

2. 아래의 릴레이션 R을 보고 올바른 문장을 고르라.

① 이 릴레이션은 제2정규형을 만족시키지 않는다.

② 이 릴레이션은 제2정규형을 만족시킨다.

③ 중요한 정보가 미흡하므로 특정한 답을 고르는 것이 불가능하다.

→ ③ 기본 키를 알 수 없어 특정 답을 고를 수 없다.

 

 

 

3. 한 릴레이션을 아래와 같은 정규형을 만족하도록 정규화하였을 때 삽입 이상을 막을 수 있는가?

① 제 1정규형

② 제 2정규형

③ 제 3정규형

④ BCNF

⑤ (a)부터 (d)까지 모두

→ ④

 

 

 

4. 정규화의 목적을 설명하라.
주어진 릴레이션 스키마를 함수적 종속성과 기본 키를 기반으로 분석하여 원래의 릴레이션을 분해함으로써 중복과 세 가지 갱신 이상을 최소화하는 것이 목적이다.

 

 

5. 다음 릴레이션 R을 보고 물음에 답하라.이 릴레이션에는 네 개의 애트리뷰트 A, B, C, D가 있고, 두 개의 함수적 종속성 (A, B) → C, B → D가 존재한다. (A, B)가 유일한 후보 키이다.


(1) 함수적 종속성 (A, B) → D가 완전 함수적 종속성인가 또는 부분 함수적 종속성인가 또는 이행적 함수적 종속성인가? 그 이유를 간단하게 설명하라.
→ 완전 함수적 종속성이다.
→ D가 (A, B) 하나의 후보 키 애트리뷰트에 부분 함수 종속성을 가지기 때문이다.
→ 이행적으로 종속하려면 A → B, B → D가 되어야 한다.
(2) 이 릴레이션이 만족하는 가장 높은 수준의 정규형이 무엇인가?
→ 모든 애트리뷰트가 원자값(반복 그룹이 아닌 값(집합이 아닌 값))만을 가지는 제1정규형이다.
→ 어떤 후보키에도 속하지 않는 모든 애트리뷰트가 기본키에 완전하게 종속하는 제2 정규형부터는 만족할 수 없다.
(3) 릴레이션 R을 두 개의 릴레이션 R1(A, B, C)와 R2(A, B, D)로 분해하였다. R1과 R2는 제3정규형을 만족하는가?
→ 만족하지 않는다.
→ R1은 제3정규형까지 만족하지만, R2가 제1정규형까지만 만족한다.

 

 

 

11. 아래의 릴레이션에 존재하는 모든 함수적 종속성들을 열거하라. 


B → C
b4→c1, b2→c4, b3→c2 이기 때문이다.

 

 

 

12. 아래와 같은 릴레이션 R을 보고 물음에 답하라.

R (A, B, C, D, E)
기본 키: (A, D)
함수적 종속성: (A, D) -> E, A -> B, B -> C


(1) R이 만족하는 가장 높은 정규형은 무엇인가?
→ 제1정규형까지만 만족한다.
→ 어떤 후보키에도 속하지 않는 모든 애트리뷰트들이 기본 키(A, D)에 종속하지 않기 때문에 제2정규형까지는 만족하지 못한다.


(2) 릴레이션 R을 아래와 같이 두 릴레이션 R1과 R2로 분해하였을 때 R1과 R2가 만족하는 가장 높은 정규형은 무엇인가?
R1 (A, B, C), 함수적 종속성: A→B, B→C
R2 (A, D, E), 함수적 종속성: (A, D)→ E


→ R1: 이행적 종속성이 있기 때문에 제2정규형까지만 만족한다.


→ R2: 제3정규형까지 만족한다.

 

 

 

13. 아래의 학생 릴레이션을 제3정규형을 만족하도록 분해하라.
학생(학번, 학생이름, 학과번호, 학과이름, 과목번호, 과목이름, 성적)
함수적 종속성:
학번 → 학생이름,학과이름, 학과번호
학과번호 → 학과이름
과목번호 → 과목이름
(학번, 과목번호) → 성적


학생R (학번, 학생이름, 학과 번호)


학과R (학과번호, 학과이름)


과목R (과목번호, 과목이름)


성적R (학번, 과목번호, 성적)

 

 

14. 그림 7.20의 릴레이션에 존재하는 함수적 종속성의 다이어그램을 그려라.

 

728x90

댓글