계산기 사용가능 여부 불가능
데이터베이스론 1 2
데이터베이스론
2011년도 5급(기술) 공무원 공채 제2차시험
응시번호 : 성명 :
제 1 문. 트랜잭션 T1, T2, T3를 수행한 스케쥴 S1에 대한 다음 물음에 답하시오.
(총 20점) T1: r1(X), w1(X), r1(Y)
T2: r2(Z), r2(Y), w2(Y), w2(Z) T3: r3(X), w3(X), w3(Y)
S1: r1(X) r2(Z) r3(X) w1(X) r2(Y) w3(X) r1(Y) w2(Y) w3(Y) w2(Z)
1) 스케줄 S1의 충돌 직렬성(Conflict Serializability) 여부를 밝히고 그 이유를 설명하시오. (10점)
2) 트랜잭션 T1, T2, T3가 기본적인 2PL(basic two-phase locking) 프로토콜을 만족하도록 읽기/쓰기 연산에 대한 잠금(lock) 연산을 삽입하시오. (단, w-lock(v) : v에 대한 쓰기 잠금 연산, r-lock(v) : v에 대한 읽기 잠금 연산, unlock(v) : v에 대한 잠금 해제 연산으로 표기한다) (10점)
제 2 문. 아래 두 릴레이션 스키마에 대한 다음 물음에 답하시오. (단, 밑줄 친 애트리뷰트가
기본키이다) (총 15점)
상품(상품번호, 상품명, 구매부서, 구매자) 기본키 : 상품번호, 후보키 : 상품명
함수종속 :
상품번호 → (상품명, 구매부서, 구매자) 상품명 → (상품번호, 구매부서, 구매자) 구매자 → 구매부서
주문항목(주문번호, 상품번호, 수량, 단가, 소계) 기본키 : (주문번호, 상품번호), 외래키 : 상품번호 함수종속 :
(주문번호, 상품번호) → (수량, 단가, 소계) (수량, 단가) → 소계
1) ‘상품’ 테이블이 속하는 정규형을 밝히고 그 이유를 설명하시오. 만약 이 테이블이 BCNF가 아니라면 이 테이블을 BCNF가 되도록 분해하고, 분해된 테이블에서 기본키와 외래키를 표시하시오. (5점)
2) ‘주문항목’ 테이블이 속하는 정규형을 밝히고 그 이유를 설명하시오. 만약 이 테이블이 BCNF가 아니라면 이 테이블을 BCNF가 되도록 분해하고, 분해된 테이블에서 기본키와 외래키를 표시하시오. (5점)
3) 만약 ‘주문항목’ 테이블이 BCNF가 아니라면 이 테이블을 분해하지 않고 일부 속성을 제거하여 BCNF가 되도록 수정하시오. (단, ‘수량 * 단가 = 소계’이다) (5점)
계산기 사용가능 여부 불가능
데이터베이스론 2 2
제 3 문. E-R 다이어그램에 대한 다음 물음에 답하시오. (총 20점)
Z D X
A B C
Y
G F
E
1) 엔티티 X와 Y의 Cardinality ratio가 1 : 1일 때, 관계 테이블 구조를 두 가지 방식으로 설계하시오. (5점)
2) 위의 두 방식 중 어떤 것이 더 효율적인지 밝히고 그 이유를 설명하시오. (5점) 3) 엔티티 X와 Y의 Cardinality ratio가 1 : N일 때, 관계 테이블 구조를 설계
하시오. (5점)
4) 엔티티 X와 Y의 Cardinality ratio가 M : N일 때, 관계 테이블 구조를 설계 하시오. (5점)
제 4 문. 균형탐색트리인 B-트리와 B+-트리에 대한 다음 물음에 답하시오. (총 25점) 1) B+-트리와 B-트리의 차이점을 비교하여 설명하시오. (5점)
2) 다음 키 값을 갖는 데이터가 공백인 B-트리에 차례대로 입력될 때 키 값
‘mouse’와 ‘duck’이 입력된 후의 모습을 각각 보이시오. (단, 차수는 3이다) (6점) dog, pig, cater, cow, pigeon, mouse, cat, hippo, whale, duck
3) 2)의 데이터가 공백인 B+-트리에 차례대로 입력될 때 키 값 ‘mouse’와 ‘duck’이 입력된 후의 모습을 각각 보이시오. (단, 차수는 3이다) (6점)
4) 2)에서 구축한 B-트리와 3)에서 구축한 B+-트리에서 키 값 ‘mouse’를 삭제한 후의 모습을 각각 보이시오. (8점)
제 5 문. 다음은 음악CD 데이터베이스 스키마의 일부이다. 다음 물음에 답하시오. (단, 밑줄 친 애트리뷰트가 기본키이며 관계대수로 질의를 표현할 때는 주어진
관계대수 연산만을 사용해서 작성한다) (총 20점)
음악CD 데이터베이스 :
제작회사 (제작회사이름, 주소) CD (CD타이틀, 가격, 제작회사이름)
아티스트 (아티스트이름, 주소, 성별, 부류*) 취입 (CD타이틀, 아티스트이름, 취입일자)
* 부류 : 가수, 기타리스트 등을 의미함.
∏ : 프로젝션(Projection) σ : 셀렉션(Selection)
⋈N: 자연조인(Natural Join)
∧ : AND
1) “아티스트 ‘홍길동’이 취입한 CD타이틀과 제작회사이름을 구하라.”라는 질의를 관계대수와 SQL로 각각 표현하시오. (단, SQL 표현시 부속질의어(subquery)를 사용한다) (6점)
2) “여자 기타리스트의 이름과 그들이 취입한 CD타이틀과 가격을 구하라.”라는 질의를 관계대수와 SQL로 각각 표현하시오. (6점)
3) “CD를 3개 이상 제작한 회사에 대해 제작회사의 이름과 제작회사별 CD가격의 합을 구하라.”라는 질의의 결과를 갖는 SQL 뷰 ‘히트음반사’를 정의하는 SQL 문을 작성하시오. (단, 뷰의 애트리뷰트 이름은 임의로 정한다) (8점)