계산기 사용가능 여부 불가능
데이터베이스론 3 3
제 5 문. 다음 물음에 답하시오. (총 20점)
1) 분산 데이터베이스에서는 전역 릴레이션에 있는 내용을 사이트에 분산 저장 하기 위해 두가지 기법의 단편(fragmentation)을 사용한다. 다음과 같이 전역 릴레이션 ‘사원’이 있을 때, 이를 이용하여 두 개의 사이트(s1, s2)에 두 가지 단편화 기법으로 분산 저장하는 방법을 설명하시오. (5점)
사원번호 이름 부서명 직급
000 홍길동 총무부 과장
001 박두리 인사부 부장
002 김돌쇠 인사부 대리
003 임하늘 경리부 과장
2) 분산 데이터베이스에서 2-단계 완료 규약(2-phase commit protocol)의 절차에 대해 설명하시오. (5점)
3) 대량의 데이터베이스에서 자동적으로 유용한 새로운 지식이나 정보를 발견하는 데이터마이닝 기술 중에서 연관규칙(association rule) 기술에 대하여 설명하고, 인터넷 서점을 예로 들어 이를 활용할 수 있는 방안을 설명하시오. (10점)
행정안전부 시험출제과장
계산기 사용가능 여부 불가능
데이터베이스론 2 3
제 3 문. 다음 물음에 답하시오. (총 20점)
1) 즉시 갱신 기법(immediate update)에서의 회복 전략에 대해 설명하시오. (5점) 2) 데이터 항목 A, B, C, D는 각각 서로 다른 디스크 블록에 저장되어 있다. 이들
데이터 항목의 전부 또는 일부를 갱신하는 트랜잭션 T1, T2, T3를 동시에 수행하던 중 시스템 실패(failure)가 발생하여 회복작업(recovery)을 수행한다.
복구와 관련하여 즉시 갱신 기법을 사용한다. 아래 로그를 사용하여 복구를 수행한다면, 데이터 항목에 대하여 redo와 undo가 각각 몇 회씩 필요한지 설명하시오. (5점)
(단, 이때 로그(log)의 내용은 다음과 같다. 로그 레코드<Ti, start>는 트랜잭션 Ti가 시작했음을, <Ti, commit>은 Ti를 완료(commit)했음을 기록한 것이다.
<Ti, item, val1, val2>는 트랜잭션 Ti가 데이터 항목 item의 값을 val1에서 val2로 갱신했음을 기록한 것이다)
<T1, start>
<T2, start>
<T1, A, 100, 200>
<T2, B, 50, 70>
<T3, start>
<T1, commit>
<T3, D, 200, 500>
<T2, C, 10, 30>
<T2, commit>
// 실패 발생
3) 검사점 기법(checkpoint)을 적용하여 redo와 undo를 수행할 트랜잭션을 결정 하고 회복작업을 수행할 수 있다. 검사점 주기가 어떻게 다음 사항에 영향을 주는지 설명하시오. (10점)
(1) 고장이 발생하지 않았을 때 시스템 성능 (2) 시스템 실패로부터 회복할 때 걸리는 시간
제 4 문. 다음 그림은 인터넷 서점의 업무를 개체-관계(E-R) 모델을 이용하여 초기
설계한 것이다. 다음 질문에 답하시오. (총 25점)
책 주문 고객
신용카드번호
저자
주문일
고객이름
주소 가격 주문량
제목 ISBN
재고량 배송일
고객번호 출판년도
1) ‘주문’ 테이블을 생성하는 SQL문을 작성하시오. 이때 기본 키(primary key)와 외래키(foreign key)생성도 포함시키시오. (10점)
2) 위 1)번 문제의 ‘주문’에서 한 고객이 서로 다른 날 같은 책을 주문하면 그 주문들을 구분할 수 없다. 이 문제를 해결하려면 위 ‘주문’ 스키마를 어떻게 변경해야 하는지 그 근거를 설명하시오. (5점)
3) ‘주문’ 스키마에는 고객의 신용카드번호가 포함되어 있어 보안에 문제가 있다.
이것을 해결하기 위해 다음과 같은 두 가지 방법이 있다. 각각에 대하여 답하시오. (10점)
(1) 신용카드번호를 제외하고 나머지 속성들로 구성된 뷰를 SQL문을 이용하여 생성하시오. (단, 뷰의 이름은 ‘주문_VIEW’로 하고, 속성 이름은 ‘주문’과 동일하게 부여한다)
(2) SQL의 권한부여 기능을 이용하여 사용자 계정 ‘Kim’에게만 ‘신용카드번 호’를 제외한 속성 값을 볼 수 있도록 한다. 아래 SQL문을 완성하시오.
SELECT (ISBN, 고객번호, 주문량, 주문일, 배송일) ____________________________________________ ;
계산기 사용가능 여부 불가능
데이터베이스론 1 3
데이터베이스론
2010년 시행 행정고등고시(기술직) 제2차시험
응시번호 : 성명 :
제 1 문. 확장성 해싱(extendible hashing)을 이용하여 파일 F를 구성하고 이에 새로운 레코드들을 삽입하고자 한다. 버킷(bucket)당 두 개의 레코드까지 저장 가능 하고, F의 초기 상태는 레코드가 하나도 저장되지 않은 빈 파일이다. F에 여섯 개의 레코드를 차례로 삽입하고자 한다. 아래 표에서 K는 이들 레코드의 식별자인 키 값을, h(K)는 해시 함수 값을 나타낸 것이다. (총 10점)
차례 K h(K)
1 157 10100
2 5 00011
3 88 01100
4 205 10010
5 13 11111
6 125 10001
1) 6번째의 레코드(K=125)까지 삽입한 후의 해시 테이블 구조를 그리시오 (5점) 2) 레코드 삽입 시 버킷의 깊이 값과 디렉토리의 깊이 값을 이용하여 버킷 오버
플로우를 처리하는 과정을 설명하시오. (5점)
제 2 문. 도서관 데이터베이스가 다음과 같을 때, 아래의 질문에 답하시오. 밑줄 친 속성(attribute)은 각 스키마의 기본키를 나타내며, ‘대여’ 테이블의 학번과 도서번호는 학생.학번, 도서.도서번호를 각각 외래키 참조한다. (총 25점)
(단, 도서관에서 모든 종류의 도서는 한권씩만 있다) 학생 <학번, 이름, 학과>
도서 <도서번호, 도서명, 저자, 가격>
대여 <학번, 도서번호, 대출일>
1) ‘전자공학과 학생들이 대여한 도서명을 검색하라.’는 질의를 관계대수로 표현 하시오. (5점)
2) ‘10권이상 대여한 학생들의 학번, 이름, 도서번호, 도서명을 검색하라.’는 질의를 관계대수로 표현하시오. (5점)
3) ‘기계공학과 학생이 대출한 책 중 가격이 20,000원 이상인 도서명과 저자, 대출한 학생의 이름을 검색하라.’는 질의를 SQL 문으로 작성하시오. (5점) 4) ‘학번 ‘070123’인 학생이 대출했던 책을 적어도 한 권 이상 대출한 학생의
이름과 도서명을 검색하라.’는 질의를 SQL 문으로 작성하시오. (5점) 5) ‘전자공학과’ 학생들에 대해 <학번, 이름, 도서명, 대출일> 정보를 갖는 뷰 (view)를 생성하는 SQL 문을 작성하시오. 단 뷰 이름은 ‘Sample_View’ 다. (5점)