2021. 2. 10. 22:36ㆍMySQL/MySQL로 배우는 데이터베이스 개론과 실습
01. 관계 데이터
모델의 릴레이션에 대한 설명 중 옳지 않은 것은?
2번 : 스키마는 '내포'이라고 한다.
02. 릴레이션의 특징으로 알맞은 것은?
4번
03. 하나의 속성이 가질 수 있는 값을 총칭하여 무엇이라고 하는가?
3번
04. 외래 키에 대한 설명으로 옳은 것은?
1번
05. 한 릴레이션의 기본키를 구성하는 어떠한 속성 값도 NULL 값이나 중복 값을 가질 수 없다는 것을 의미하는 제약조건은?
1번
06. 릴레이션에서 특정 속성에 해당하는 열을 선택하는 데 사용하며, 릴레이션의 수직적 부분 집합을 반환하는 관계 대수 연산자는?
1번
07. 릴레이션 C가 릴레이션 A(X,Y)와 B(Y, Z)를 자연 조인한 결과일 때 다음 중 맞는 설명을 모두 고르시오.
3번
08. 다음 용어를 설명하시오.
(1) 릴레이션 : 열과 행으로 이루어진 테이블
(2) 스키마 : 릴레이션의 데이터 구조 (열)
(3) 릴레이션 인스턴스 : 스키마에 따라 테이블에 실제로 저장되는 데이터의 집합
(4) 릴레이션 차수와 카디날리티 : 차수는 열의 개수 카디날 리티는 행의 개수
(5) 도메인 : 릴레이션에 포함된 소성들이 가질 수 있는 값들의 집합
(6) 투플 : 하나의 행
09. 릴레이션에 대한 다음 물을 답하시오.
(1) 릴레이션 스키마와 릴레이션 인스턴스의 차이점을 설명하시오.
: 스키마는 데이터의 구조를 나타내 주는 열의 집합이고 인스턴스는 그 스키마에 실제 데이터 집합
(2) 도메인 제약조건을 설명하시오.
: 릴레이션 내에 투플들이 각 속성의 도메인에 지정된 값만 가져야 한다는 조건
(3) 기본키 제약조건과 외래 키 제약조건을 설명하시오.
: 기본키는 중복되지 않고 릴레이션에 무조건 존재해야 한다. 외래 키는 기본키를 부모로 같은 도메인으로 연결되어야 한다.
(4) 참조 무결성 제약조건의 옵션 네 가지를 설명하시오.
Restricted : 자식 릴레이션에서 참조하고 있을 경우 부모 릴레이션의 삭제 작업을 거부
Cascade : 자식 릴레이션의 관련 투플을 같이 삭제함
default : 자식 릴레이션의 관련 투플을 미리 설정해둔 값으로 변경함
null : 자식 릴레이션의 관련 투플을 NULL 값으로 설정함
(5) 후보 키와 기본키의 차이점을 설명하시오.
후보 키는 릴레이션을 구성하는 속성들 중에서 튜플을 유일하게 식별하기 위해 사용하는 속성의 부분 집합, 즉 기본키로 사용할 수 있는 속성 기본키는 후보키 주에서 선택한 주키이다.
10. 사원(주민등록번호, 사원번호, 사원 이름, 주소, 생년월일) 릴레이션이 있다. 기본키는(사원 이름, 생년월일)이고, 그 밖에 대체키 1은 주민등록번호, 대체키 2는 사원번호이다. 다음 물음에 답하시오.
(1) (주민등록번호, 주소)는 후보 키인가? 그 이유는 무엇인가?
: 아니다. 주소 속성은 유일하지 않다.
(2) 사원번호는 슈퍼 키인가? 그 이유는 무엇인가?
: 맞다. 투플을 유일하게 구별할 수 있다.
(3) 생년월일은 NULL 값을 가질 수 있는가?
가질 수 있다.
(4) 주소는 NULL 값을 가질 수 있는가?
가질 수 있다.
11. 다음 릴레이션에서 더 이상 삽입되는 데이터가 없다고 가정하고 다음 물음에 답하시오.
(1) 릴레이션 R과 S의 후보 키를 모두 보이시오.
R : 후보키 - A
S : 후보키 - (C, D) or (C, E)
(2) 릴레이션 R과 S의 기본키는 어떤 것이 좋을지 선택하시오.
R : 기본키 - A
S : 기본키 - (C,D) or (C, E)
12. 다음 릴레이션에서 관계 대수식의 결과를 작성하시오.
(1)
(2)
(3)
13. 다음 수강신청 관련 릴레이션에 대한 질의문을 관계 대수식으로 표현하시오.
학생 (학번, 이름, 전공, 학년) 수강 (과목 코드, 학번, 수강학기, 성적) 과목 (과목코드, 과목 이름, 강의실, 요일, 담당교수)
(1) 과목 코드가 1234이고 성적이 A인 모든 학생의 학번을 보이시오.
π학번(σ 과목코드 = 1234 ^ 성적 = A (과목))
(2) 과목코드가 1234인 과목을 등록한 학생의 이름과 전공을 보이시오.
π이름, 전공(σ 과목 코드 = 1234 (학생⋈학생, 과목 코드=수강. 과목 코드 수강))
(3) 과목 1234에 등록하지 않은 학생의 이름을 보이시오.
π이름(σ 과목코드 ≠ 1234 (학생⋈학생,과목코드=수강.과목코드 수강))
(4) 모든 과목에 등록한 학생의 이름을 보이시오.
π이름, 과목 코드 (학생⋈학생. 학번=수강. 학번 수강) %π과목 코드 (과목)
14. [극장 데이터베이스] 다음은 네 개의 지점을 가진 극장 데이터베이스로, 밑줄 친 속성은 기본키이다.
(1) 각 테이블에서 외래 키를 찾아보시오.
상영관 : 극장 번호
예약 : 극장 번호, 상영관 번호, 고객번호
(2) 각 테이블에 저장될 데이터를 세 개씩 적어보시오.
(3) 다음 관계 대수
식이 나타내는 릴레이션은 무엇인지 설명하시오.
- 가격이 6천 원 이상인 상영관 극장 번호
- 극장별 상영관
- 영화 가격이 6천 원 이상인 극장 이름
- 강남에 예약한 고객 이름과 극장 번호
(4) 다음 물음에 대하여 관계 대수식을 작성하시오.
- σ극장 이름, 위치 (극장)
- π영화 제목( σ가격 ≤ 7000 (상영관))
- π이름, 주소 (고객)
- π영화 제목((σ위치=강남 극장) ⋈ 극장. 극장 번호 = 상여관. 극장 번호 상영관 )
- π고객 이름(σ위치=강남 (극장)) ⋈ 극장. 극장 번호=예약. 극장 번호 예약) ⋈ 예약. 고객번호=고객. 고객번호 고객)
15. 판매원 데이터베이스 다음 릴레이션을 보고 물음에 답하시오. Salesperson은 판매원, Order는 주문, Customer는 고객을 나타낸다. 밑줄 친 속성은 기본키이고 custname과 salesperson은 각각 Customer.name과 Salesperson.name을 참조하는 외래 키이다.
(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. [기업 프로젝트 데이터베이스] 다음 릴레이션을 보고 물음에 답하시오. Employee는 사원, Department는 부서, Project는 프로젝트 내용, Works는 사원이 프로젝트에 참여한 내용을 나타낸다. 한 사원이 여러 프로젝트에서 일할 수 있고, 한 프로젝트에서 여러 사원이 일할 수 있다. hours-worked 속성은 각 사원이 각 프로젝트에서 일한 시간을 나타낸다. Department의 manager 속성에는 empno 값이 저장되어 있다고 가정한다.
(1)
- Employee : empno
- Department : deptno
- Project : projno
- Work : empno, projno
(2)
- Employee : deptno
- Department : manager
- Project : deptno
- Work : (empno, projno)
(3)
- π(name) Employee
- **π(name)(**σsex = "여자" (Employee))
- πname, address(Employee ⋈ Department)
- **πname, address(**σdeptname="IT부서" (Employee ⋈ Department))
- **πname(**σprojname="미래" (Project ⋈ Works ⋈ Employee))