본문 바로가기

데이터분석(DataBase)/MySQL

MySQL로 배우는 데이터베이스 개론과 실습 답안 - Chapter 02

Chapter 02 관계 데이터 모델

 

### 연습 문제

 

01. 관계 데이터 모델의 릴레이션에 대한 설명 중 옳지 않은 것은?

(2) 릴레이션 스키마를 외연이라고 한다.

 

02. 릴레이션의 특징으로 알맞은 것은?

(4) 모든 속성의 값은 원자값이다.

 

03. 하나의 속성이 가질 수 있는 값을 총칭하여 무엇이라고 하는가?

(3) 도메인

 

04. 외래키(FK)에 대한 설명으로 옳은 것은?

(1) 릴레이션 R1에 속한 속성 집합 FK가 다른 릴레이션 R2의 기본키인 것을 말한다.

 

05. 한 릴레이션의 기본키를 구성하는 어떠한 속성 값도 NULL값이나 중복값을 가질 수 없다는 것을 의미하는 제약조건은?

(1) 개체 무결성 제약조건

 

06. 릴레이션에서 특정 속성에 해당하는 열을 선택하는데 사용하며, 릴레이션의 수직적 부분 집합을 반환하는 관계대수 연산자는?

(1) projection

 

07. 릴레이션 C가 릴레이션A(X,Y)와 B(Y,Z)를 자연 조인한 결과일 때 다음 중 맞는 설명을 모두 고르시오.

(3) C의 차수는 A의 차수보다 많다.

 

08. 다음 용어를 설명하시오.

(1) 릴레이션

: 행과 열로 구성된 테이블이다.

 

(2) 스키마

: 데이터베이스의 릴레이션이 어떻게 구성되는지 어떤 정보를 담고 있는지에 대한 기본적인 구조를 정의하는 릴레이션의 구성요소이다.

 

(3) 릴레이션 인스턴스

: 릴레이션 스키마에 실제로 저장된 데이터의 집합이다.

 

(4) 릴레이션 차수와 카디날리티

: 릴레이션의 차수는 릴레이션의 속성의 개수이다.

: 릴레이션의 카디날리티는 릴레이션의 투플의 개수이다.

 

(5) 도메인

: 각 속성들이 가질 수 있는 값의 집합

 

(6) 투플

: 릴레이션의 행 부분이다.

 

09. 릴레이션에 대한 다음 물음에 답하시오.

(1) 릴레이션 스키마와 릴레이션 인스턴스의 차이점

: 릴레이션 스키마는 저장되는 정보의 형식과 구조를 정의하는 것이고, 릴레이션 인스턴스는 스키마의 구조를 따라서 실제로 저장되는 데이터이다.

 

(2) 도메인 제약조건

: 모든 투플은 릴레이션 스키마에 정의된 각 속성의 도메인에 지정된 값만을 가져야 한다.

 

(3) 기본키 제약조건과 외래키 제약조건

: 기본키 제약조건은 NULL값이나 중복 값을 가질 수 없다는 것이다.

: 외래키 제약조건은 릴레이션 간이 참조 관계를 선언하는 제약조건이다. 자식 릴레이션의 외래키는 부모 릴레이션의 기본키와 속성의 도메인이 동일해야 하며, 자식 릴레이션의 값 변경 시 부모 릴레이션의 값에 제약을 받는다.

 

(4) 참조 무결성 제약조건의 옵션 네가지

RESTICTED: 자식 릴레이션에서 참조하고 있을 경우 부모 릴레이션의 삭제 작업을 거부하는 옵션

DASCADE: 자식 릴레이션의 관련 투플을 같이 삭제하는 옵션

DEFAULT: 자식 릴레이션의 관련 투플을 미리 설정해둔 값으로 변경하는 옵션

NULL: (NULL값을 허가한 경우) 자식 릴레이션의 관련 투플을 NULL 값으로 설정하는 옵션

 

(5) 후보키와 기본키의 차이점

: 후보키는 투플을 유일하게 시식별할 수 있는 속성의 최소 집합이다. 기본키는 여러 후보키 중 하나를 선정하여 대표로 삼는 키이다.

 

10. 사원(민증번호 ,사원번호, 사원이름, 주소, 생년월일) 릴레이션이 있다. 기본키는 (사원이름, 생년월일)이고, 그 밖에 대체키 1은 민증번호, 대체키 2는 사원번호이다.

(1) (민증번호, 주소)는 후보키인가? 그 이유는 무엇인가?

: 후보키가 아니다. 민증번호만 있어도 가능하기 때문에 주소 속성은 필요없다.

 

(2) 사원번호는 수퍼키인가? 그 이유는 무엇인가?

: 수퍼키이다. 투플을 유일하게 식별할 수 있는 속성의 최소 집합이기 때문이다.

 

(3) 생년월일은 NULL값을 가질 수 있는가?

: 아니다. 생년월일은 기본키이기 때문에 NULL값을 가질 수 없다.

 

(4) 주소는 NULL 값을 가질 수 있는가?

: NULL값을 가질 수 있다.

 

11. 

(1) 릴레이션 R과 S의 후보키를 모두 찾으시오.

R 후보키: A

S 후보키: (C,D), (C,E)

 

(2) 릴레이션 R과 S의 기본키는 어떤 것이 좋을지 선택하시오.

R 기본키: A

S 기본키: (C,D)

 

12. 다음 릴레이션의 관계대수식의 결과를 설명하시오.

(1)

(2) 

(3) 

 

13. 

(1) π학번(σ 과목코드 = 1234 ^ 성적 = A (과목))

(2) π이름, 전공(σ 과목 코드 = 1234 (학생⋈학생, 과목 코드=수강. 과목 코드 수강))

(3) π이름(σ 과목코드 ≠ 1234 (학생⋈학생,과목코드=수강.과목코드 수강))

(4) π이름, 과목 코드 (학생⋈학생. 학번=수강. 학번 수강) %π과목 코드 (과목)

 

14. 

(1)

상영관: (극장번호)

예약: (극장번호, 상영관번호, 고객번호)

 

(2) 

 

(3) 

1. 6000원보다 비싼 영화를 상영하는 극장번호를 찾아라.

2. 극장 이름, 극장 위치, 상영관 번호, 영화 제목, 가격, 좌석 수를 찾아라.

3. 영화 가격이 6천원 이상인 상영관 극장 번호

4. 강남에 예약한 고객 이름과 극장 번호

 

(4)

  1. σ극장 이름, 위치 (극장)
  2. π영화 제목( σ가격 ≤ 7000 (상영관))
  3. π이름, 주소 (고객)
  4. π영화 제목((σ위치=강남 극장) ⋈ 극장. 극장 번호 = 상여관. 극장 번호 상영관 )
  5. π고객 이름(σ위치=강남 (극장)) ⋈ 극장. 극장 번호=예약. 극장 번호 예약) ⋈ 예약. 고객번호=고객. 고객번호 고객)

 

15. 

(1) πname (Salesperson)

(2) **πsalesperson (**σ custname="홍길동" (order))

(3) πsalesperson (order)

(4) πname (Salesperson) - πsalesperson (order)

(5) πage (Salesperson ⋈ salesperson.name=order.salesperson ( σcustname="홍길동" (order)))

(6)

(7)

 

16.

(1)

  • Employee : empno
  • Department : deptno
  • Project : projno
  • Work : empno, projno

(2)

  • Employee : deptno
  • Department : manager
  • Project : deptno
  • Work : (empno, projno)

(3)

  1. π(name) Employee
  2. **π(name)(**σsex = "여자" (Employee))
  3. πname, address(Employee ⋈ Department)
  4. **πname, address(**σdeptname="IT부서" (Employee ⋈ Department))
  5. **πname(**σprojname="미래" (Project ⋈ Works ⋈ Employee))
반응형