2007년 8월 9일에 시행한 국가직 7급 공무원 시험 데이터베이스론 기출문제입니다.
문 1. 사용자 A가 어떤 릴레이션에 대한 SELECT 권한을 WITH GRANT OPTION과 함께 사용자 B에게 허가하고, 사용자 B가 그 릴레이션에 대한 SELECT 권한을 WITH GRANT OPTION과 함께 사용자 C에게 허가하고, 사용자 C가 그 릴레이션에 대한 SELECT 권한을 WITH GRANT OPTION과 함께 사용자 D에게 허가했을 때, 사용자 A가 사용자 B로부터 SELECT 권한을 취소하면 사용자 C와 D의 권한은 어떻게 되는가?
① C의 권한은 유지되고, D의 권한은 취소된다.
② C의 권한은 취소되고, D의 권한은 유지된다.
③ C와 D의 권한이 유지된다.
④ C와 D의 권한이 취소된다.
문 2. 동시성 제어(concurrency control) 수단을 제공하지 않는 데이터베이스 시스템에서 아무런 제약없이 트랜잭션들이 데이터베이스를 동시에 접근하는 것을 허용할 때 발생될 수 있는 문제들을 기술한 것으로 옳지 않은 것은?
① 데이터베이스 모순성 문제
② 트랜잭션 장애 문제
③ 트랜잭션 갱신분실 문제
④ 트랜잭션 연쇄복귀 문제
문 3. 아래 독점로크 (exclusive lock:X)와 공유로크 (shared lock:S) 호환성 행렬의 빈칸에 알맞은 것은? (‘-’는 로크가 없음을 의미하며, Y는 로크 요청을 허용, N은 로크 요청을 거부하는 것을 나타낸다)
요청로크 현상태 |
X | S |
X | N | (a) |
S | (b) | (c) |
- | (d) | Y |
① N Y N Y
② N N Y Y
③ N N N Y
④ Y Y N N
문 4. 관계형 DBMS의 system catalog에 포함된 내용이 아닌 것은?
① 릴레이션 정보
② 인덱스 정보
③ 뷰 정보
④ 트랜잭션 정보
문 5. 데이터 웨어하우스(data warehouse)의 설명으로 가장 적절한 것은?
① 제품의 생산을 위한 프로세스를 전산화하여 부품조달에서 생산계획, 납품, 재고관리 등을 효율적으로 처리할 수 있는 공급망 관리 솔루션
② 데이터 수집이나 보고를 위해 작성된 각종 양식, 보고서 관리, 문서보관 등 여러 형태의 문서관리
③ 의사결정 지원을 위한 주제 지향적, 통합적, 시간 변이적 데이터의 집합체
④ 기업의 기획, 운영 그리고 통제에 필요한 의사결정 지원을 위해 가장 최신의 정보를 제공하는 정보시스템
문 6. 릴레이션 R(A,B,C,D)이 복합 애트리뷰트 를 기본키로 가지고 있다고 하자. 함수종속이 다음과 같을 경우, 이 릴레이션은 어떤 정규형에 속하는가?
(A, B) → C, D B → C C → D |
② 제2정규형
③ 제3정규형
④ 보이스/코드 정규형
문 7. 아래 E-R 다이어그램을 관계 데이터 모델로 변환하려고 한다. 다음 중 독립적인 릴레이션으로 표현해야만 하는 것을 모아 놓은 것은? (단, E-R 다이어그램에서 이중 사각형은 약한 개체, 이중 다이아몬드는 약한 개체에 대한 관계, 이중 원은 다중값을 의미한다)
② R1, R3, B
③ R2, s, C
④ R3, A, C
문 8. 다음 두 테이블이 대학교의 학과와 학생 정보를 유지하고 있다고 하자. 여기서 학과 테이블의 학과번호와 학생 테이블의 학번은 각 테이블의 기본 키이며 학생 테이블의 학과번호는 외래 키이다. 아래 수정(update) 문들 중에서 투플을 성공적으로 수정할 수 있는 것은 어느 것인가?
<학과>
학과번호 | 학과명 | 전화번호 | 위치 |
1 | 전자계산학과 | 750-8446 | 자4-410 |
2 | 컴퓨터공학과 | 750-6380 | 공6-205 |
3 | 전자공학과 | 750-6320 | 공4-101 |
4 | 전기공학과 | 750-7432 | 공4-230 |
<학생>
학번 | 이름 | 학년 | 나이 | 학과번호 |
100 | 이기자 | 3 | 22 | 1 |
101 | 박문수 | 2 | 22 | 1 |
102 | 정도령 | 2 | 21 | 3 |
103 | 강태공 | 1 | 20 | 4 |
where 학과명='컴퓨터공학과'
② update 학생 set 학과번호=5
where 학번=100
③ update 학과 set 학과번호=3
where 학과명='컴퓨터공학과'
④ update 학생 set 학번=103
where 학번=100
문 9. 다음과 같이 데이터베이스 테이블과 속성이 정의되어 있다. 여기서 밑줄 친 속성은 기본키(Primary Key)를 나타낸다.
Professor (PID, PName, Dept, Phone) // 교수ID, 교수이름, 학과, 전화번호 Student (SID, SName, Dept, Addr, PID) // 학생ID, 학생이름, 학과, 주소, 학생지도교수ID Club (CID, ClubName, SID, Room, Phone, PID) // 동아리ID, 동아리이름, 동아리회장, 동아리방, 전화번호, 지도교수ID StuClub (SID, CID, Year) // 학생ID, 동아리ID, 가입연도 |
다음에 주어진 SQL 실행결과는?
SELECT DISTINCT Student.SName FROM Student WHERE NOT EXISTS ( SELECT * FROM Club WHERE NOT EXISTS ( SELECT * FROM StuClub WHERE Student.SID=StuClub.SID AND Club.CID=StuClub.CID )); |
② 어떤 동아리에도 가입하지 않은 학생이름
③ 존재하지 않는 동아리에 가입한 학생이름
④ 학생ID와 동아리ID가 같지 않은 학생이름
문 10. 2-단계 완료 규약(two-phase commit protocol)에 관한 설명 중 옳지 않은 것은?
① 2-단계 완료 규약은 연동된 데이터베이스 시스템에서 트랜잭션의 원자성을 지원하기 위한 방법이다.
② 조정자가 존재하여 여러 데이터베이스 시스템들간의 commit나 rollback이 일치하도록 보장한다.
③ 갱신 연산과 연관된 모든 데이터베이스 시스템으로부터 전달된 강제 쓰기(force-write)에 대한 응답이 모두 'Not OK'일 경우에만 조정자는 'rollback'으로 결정한다.
④ 갱신 연산과 연관된 모든 데이터베이스 시스템으로부터 전달된 강제 쓰기(force-write)에 대한 응답이 모두 'OK'일 경우에만 조정자는 'commit'로 결정한다.
문 11. 데이터 독립성에 대한 설명 중 옳지 않은 것은?
① 데이터베이스 관리 시스템이 추구하는 목적 중 하나라고 할 수 있다.
② 응용 프로그램이 변경되더라도 데이터의 논리적 구조나 물리적 구조가 영향을 받지 않는 것을 의미한다.
③ 기존 응용 프로그램의 수정을 요구하지 않고 데이터베이스의 물리적 구조를 변경할 수 있는 능력을 물리적 데이터 독립성이라고 한다.
④ 뷰를 이용해 논리적 데이터 독립성을 어느 정도 제공할 수 있다.
문 12. 로그를 이용한 회복 기법에 관한 설명 중 옳지 않은 것은?
① 지연 갱신을 기반으로 하는 복구 기법은 로그에
, start> 레코드와
② 즉시 갱신을 기반으로 하는 복구 기법은 로그에
, start> 레코드와
③ 지연 갱신을 기반으로 하는 복구 기법은 시스템 실패가 발생할 경우 undo를 수행할 필요가 없다.
④ 즉시 갱신을 기반으로 하는 복구 기법은 변경 연산을 위한 로그 레코드에 변경된 후의 값만을 가지면 된다.
문 13. 상용 데이터베이스에서 트랜잭션의 원자성(atomicity)을 보장하기 위해 사용되는 파일은?
① 데이터 파일
② 컨트롤 파일
③ 백업 파일
④ 로그 파일
문 14. 어떤 릴레이션 내의 동일한 애트리뷰트에 대한 인덱스를 B-트리와 B+-트리를 사용하여 각각 구성한다고 하자. 다음 설명 중에서 옳지 않은 것은?
문 15. 데이터베이스에 저장되어 관리되는 데이터베이스 시스템의 구성 요소가 아닌 것은?
① 메타데이터(metadata)
② 데이터 디렉토리(data directory)
③ 트리거(trigger)
④ DDL 컴파일러
문 16. 다음 중 apriori 알고리즘과 가장 관계가 깊은 데이터마이닝 방법은?
① clustering
② classification
③ association rules
④ neural network
문 17. 릴레이션 ‘지도’(기본키는 학번)에서 다음과 같은 종속성이 있다고 할 때 릴레이션 ‘지도’ 에서 발생할 수 있는 이상 현상(anomaly)이 아닌 것은?
<지도>
학번 | 지도교수 | 학과 |
2006001 | 이대용 | 컴퓨터교육과 |
2006002 | 이대용 | 컴퓨터교육과 |
2006003 | 김영희 | 컴퓨터공학과 |
2006004 | 김철수 | 컴퓨터교육과 |
종속성 학번 -> 지도교수, 학번 -> 학과, 지도교수 -> 학과 |
② 김영희 교수의 소속이 컴퓨터공학과라는 정보를 삭제하면 학번이 2006003인 학생의 정보도 같이 연쇄 삭제되어야 한다.
③ 학번이 2006004인 학생의 투플을 삭제하면 지도교수인 김철수 교수가 컴퓨터교육과에 속한다는 정보를 잃게 된다.
④ 이대용 교수의 소속이 컴퓨터교육과에서 정보과학과로 변경되면 학번이 2006001과 2006002인 학생의 투플에 대하여 모두 변경해야 한다.
문 18. 다음은 Foreign Key를 정의하는 SQL CREATE 구문 중 일부이다.
FOREIGN KEY (열_이름_리스트) REFERENCES 기본테이블 [ (열_이름_리스트) ] [ ON DELETE 옵션 ] [ ON UPDATE 옵션 ] |
① NO ACTION
② CHECK
③ CASCADE
④ SET NULL
문 19. 다음과 같이 나열된 순서로 키가 삽입되어 B+-트리가 구성되었을 때 루트노드에 존재하는 키 값은? (단, 차수는 3이다)
삽입순서 : 13, 8, 4, 11, 6, 19, 16, 10 |
② 11
③ 13
④ 19
문 20. 학생(STUDENT) 테이블에 영문학과 학생 50명, 법학과 학생 100명, 수학과 학생 50명의 정보가 저장되어 있을 때, 다음 SQL문 ㉠, ㉡, ㉢의 실행 결과 투플 수는 각각 얼마인가?(단, DEPT필드는 학과명, NAME필드는 이름을 의미한다)
㉠SELECT DEPT FROM STUDENT; ㉡SELECT DISTINCT DEPT FROM STUDENT; ㉢SELECT NAME FROM STUDENT WHERE DEPT=‘영문학과’; |
① 3 3 1
② 200 3 1
③ 200 3 50
④ 200 200 50
문제번호 | 정답 | 문제번호 | 정답 | 문제번호 | 정답 | 문제번호 | 정답 |
1 | ④ | 6 | ① | 11 | ② | 16 | ③ |
2 | ② | 7 | ③ | 12 | ④ | 17 | ② |
3 | ② | 8 | ① | 13 | ④ | 18 | ② |
4 | ④ | 9 | ① | 14 | ④ | 19 | ① |
5 | ③ | 10 | ③ | 15 | ④ | 20 | ③ |
댓글 쓰기