
데이터베이스론(7급) 7 - 1 데이터베이스론(7 급) (과목코드 : 029) 2026년군무원채용시험 응시번호: 성명: 1. 아래의부서(dept) 테이블에대한설명중가장 적절하지않은것은? create table dept ( dept_id number, dept_name char(10), manager_id number not null, constraint pk_dept primary key(dept_id), constraint fk_dept foreign key(manager_id) references emp(e_id) ); ①어떤부서를어느직원이관리(Manage)하는지 알수있다. ②dept 테이블에나타나는dept_id 값은서로 다른값을가져야한다. ③dept 테이블에나타나는manager_id 값은 emp 테이블에나타나야한다. ④dept 테이블에나타나는manager_id 값은 서로같은값을가질수없다. 2. 키(Key)라는말이들어가는용어들중, 하나의 릴레이션에서동일키값을가진레코드가중복 으로나타날수없는것들만모아놓은것으로 가장적절한것은? ①보조키(Secondary Key), 외래키(Foreign Key) ②후보키(Candidate Key), 슈퍼키(Super Key) ③부분키(Partial Key), 후보키(Candidate Key) ④기본키(Primary Key), 외래키(Foreign Key) 3. 데이터베이스시스템의구성모듈에대한설명 으로가장적절하지않은것은? ①데이터베이스시스템은기능적인관점에서 저장장치관리자(Storage Manager)와질의 처리기(Query Processor)로구성된다. ②저장장치관리자(Storage Manager)는버퍼 관리와파일관리기능을담당한다. ③질의처리기(Query Processor)는사용자질의를 처리하기위한트랜잭션기능을제공한다. ④데이터베이스의저장장치에는데이터파일, 데이터사전, 인덱스등이저장된다. 4. 아래의개체- 관계다이어그램(E-R Diagram) 설명으로가장적절한것은? ①수행관계는어느부서가어느프로젝트를 언제부터(since) 수행해왔는지를나타낸다. ②프로젝트별로프로젝트번호값이서로다를 필요는없다. ③동일한이름을가지는여러부서는존재할 수없다. ④부서의예산과프로젝트예산은속성명이 같으므로값도서로일치해야만한다. 데이터베이스론(7급) 7 - 2 5. 다음개체- 관계다이어그램(E - R Diagram)을 관계형모델로변환할때생성되는릴레이션으로 가장적절하지않은것은? (단, 부양가족은약한 개체(Weak Entity)이며, 부양가족의이름속성은 구별자(Discriminator)이다. 사원의주키는ID이고, 프로젝트의주키는코드이다. 그리고연락처는 다중값속성(Multi-valued Attribute)이다) ①사원(사원ID, 이름, 연락처) ②프로젝트(프로젝트코드, 이름) ③부양가족(사원ID, 이름, 관계) ④참여(사원ID, 프로젝트코드) 6. 함수종속성의집합F의최소커버(Minimal Cover)란F와동등한함수종속성의최소집합을 의미한다. F가아래와같은함수종속성으로 구성될때, F의최소커버로가장적절한것은? F: { A →B, B →D, AB →C, C →BD } ①{ A →BCD, C →BD } ②{ A →B, B →D, C →B } ③{ A →BCD, B →D, C →BD } ④{ A →C, B →D, C →B } 7. 피연산자인두릴레이션의차수가같고대응 속성간도메인이일치해야만수행이가능한 관계대수연산자로서가장적절한것은? ①차집합(Difference) ②자연조인(Natural Join) ③크로스프러덕트(Cross Product) ④동등조인(Equi Join) 8. 관계대수E가주어질때, card(E)는E의결과 릴레이션의튜플수를나타내며, deg(E)는E의 결과릴레이션의애트리뷰트수를나타낸다고 하자. 릴레이션 R과 S가 다음과 같을 때, card(E) 또는deg(E)의결과로가장적절하지 않은것은? R A B C 김 이 박 김 KB JB SH SH 100 500 600 200 S B D KB SH IM JB 서울 서울 대구 광주 ①deg(R × S) = 5 ②card(R ⋈S) = 4 ③deg(ΠA,B(R) ÷ ΠB(σD=‘서울’(S)) = 1 ④card(σC<300(R) × S) = 2 데이터베이스론(7급) 7 - 3 9. 학생테이블의스키마는학생(학번: integer, 이름: string, 나이: integer, 전공: string)이다. 다음질의에해당하는SQL 문의(가)에들어갈 내용으로가장적절한것은? 질의: ‘의학’ 전공하는학생누구보다도나이가 더많은공학전공학생의학번을구하시오. select S1.학번 from 학생S1 where S1.전공=‘공학’ and S1.나이 > (가) (select S2.나이from 학생S2 where S2.전공= ‘의학’); ①MAX ②FOR ③ALL ④EXISTS 10. 수강테이블에대한수정권한을‘직원01’ 사용자 에게부여하고, ‘직원02’ 사용자가가지었던교과목 테이블에대한수정권한은회수하려한다. 이를위한아래의두SQL 문의(가) ~ (라)에 들어갈내용을순서대로나열한것으로가장 적절한것은? (가) UPDATE ON 수강(나) 직원01; (다) UPDATE ON 교과목(라) 직원02; ①ALLOW, OF, REVOKE, OF ②GRANT, TO, CANCEL, FROM ③GRANT, TO, REVOKE, FROM ④ALLOW, OF, CANCEL, OF 11. 다음SQL 문들을순차적으로성공수행한관계 데이터베이스를고려하자. 아래와같은데이터 베이스에대하여, 오류가발생하지않고성공적 으로수행할SQL 문으로가장적절한것은? create table 직원( 직원id number primary key, 이름char(20) unique, 나이number); create table 부서( 부서id char(4) primary key, 부서이름char(20) unique, 관리자id number not null, foreign key (관리자id) references 직원(직원 id)); insert into 직원values (101, ‘홍길동’, 40); insert into 부서 values (‘SD01’, ‘개발1부’, 101); ①insert into 직원values (102, ‘홍길동’, 45); ②insert into 부서(부서id, 부서이름) values (‘SD02’, ‘개발2부’); ③insert into 부서values (‘SD02’, ‘개발2부’, 101); ④insert into 직원values (102, 김홍동, 35); 데이터베이스론(7급) 7 - 4 12. 다음의dept, emp 두테이블에대해서, 아래 두SQL 문을실행한결과값을순서대로나열한 것으로서가장적절한것은? dept did dname 10 경영회계 20 연구개발1부서 30 판매1부서 emp eid ename did 100 SMITH 10 101 WARD 20 102 CLARK 10 select count(*) from dept d JOIN emp e on d.did=e.did; select count(*) from dept d LEFT OUTER JOIN emp e on d.did=e.did; ①2, 3 ②3, 4 ③3, 3 ④2, 4 13. 참조무결성을다음과같이정의하였다. 에 들어갈명령과그의미가가장잘못연결된 것은무엇인가? create table 학생( ... foreign key(학과이름) references 학과, ... ); ①on delete set default - 학과를 삭제하면 그 학과를 참조하던 학생의 학과이름을 null로변경한다. ②on delete cascade - 학과를삭제하면그학과를 참조하던모든학생도같이삭제한다. ③on update cascade - 학과이름이변경되면 그학과를참조하던학생의학과이름도같이 변경한다. ④on update no action - 학과릴레이션에서 학과이름을변경하려할때그학과를참조 하는학생이있으면변경을허용하지않는다. 14. 저장프로시저(Stored Procedure)에대한설명 으로가장적절하지않은것은? ①데이터베이스프로그램을서버에저장하여 여러응용프로그램이공유할수있다. ②CHECK 문으로표현하기어려운복잡한 제약조건을검사하는데사용할수있다. ③IN, OUT 등의명령을이용하여매개변수를 정의할수있다. ④BEFORE, AFTER 등의명령을이용하여 실행조건을정의할수있다. 데이터베이스론(7급) 7 - 5 15. 과목(과목이름, 담당교수, 시수)와수강(학생이름, 과목이름) 릴레이션에서‘김’ 교수가담당하는 모든과목을수강한학생이름을검색하는SQL로 가장적절하지않은것은? (단, 과목릴레이션은 과목이름이 기본키이고, 학생은여러과목을 수강할수있다. 그리고except 연산은차집합을 구현한SQL 명령이다) ①select distinct E.학생이름 from 수강E join 과목C on E.과목이름= C.과목이름 where C.담당교수=‘김’ group by E.학생이름 having count(E.과목이름) = (select count(*) from 과목where 담당교수=‘김’); ②select distinct 학생이름from 수강E1 where exists ((select 과목이름from 과목C where 담당교수=‘김’) except (select 과목이름from 수강E2 where E2.학생이름= E1.학생이름and E2.과목이름= C.과목이름)); ③select distinct 학생이름from 수강E1 where not exists (select * from 과목C where 담당교수=‘김’ and not exists (select * from 수강E2 where E2.학생이름= E1.학생이름and E2.과목이름= C.과목이름)); ④select distinct 학생이름from 수강 where 과목이름in (select 과목이름from 과목where 담당교수=‘김’) group by 학생이름 having count(과목 이름) = (select count(*) from 과목where 담당교수=‘김’); 16. 다음은JDBC(Java Database Connectivity)를 이용한데이터베이스연결프로그램의일부이다. 프로그램이수행되기위해서세밑줄부분에 들어갈Method들을순서대로나열한것으로가장 적절한것은? Connection con1 = DriverManager.getConnection(url, “test”, “dbtest”); Statement s1 = con1. (); String q1 = “SELECT name FROM Student”; ResultSet rs1 = s1. (q1); while (rs1.next()) { String st1 = rs1. (“name”); } ①prepareStatement, executeQuery, getData ②prepareStatement, execute, getString ③createStatement, execute, getData ④createStatement, executeQuery, getString 17. 다음professor 테이블의 기본키에B + 트리 인덱스가생성되어있다. 해당인덱스에대한 설명으로가장적절한것은? create table professor ( pid integer primary key, name char(50), phones char(13)); ①해당B + 트리인덱스의모든노드는예외없이 50 % 이상차있어야한다. ②해당B + 트리인덱스의리프노드가모두 동일한레벨에위치하는것은아니다. ③professor 테이블레코드가pid 순서에따라 물리적으로 저장되었다면, 해당 B + 트리 인덱스는군집(Clustered) 인덱스로볼수있다. ④pid 이외의컬럼에대해서는신규B + 트리 인덱스를구성할수없다. 데이터베이스론(7급) 7 - 6 18. RAID 수준에대한설명으로가장적절한것은? ①RAID 0은하나의디스크가고장나도데이터가 유지된다. ②RAID 1은패리티(Parity) 블록을이용하여 디스크장애를해결한다. ③RAID 5는두개의디스크장애가동시에 발생해도이를복구할수있다. ④RAID 6은에러정정코드를사용하여디스크 장애를해결한다. 19. 릴레이션주문(고객번호, 고객이름, 제품번호, 판매사, 판매사전화번호)은 다음의 함수 종속(Functional Dependency)을가진다. 주문 릴레이션에대한설명으로가장적절한것은? 고객번호→고객이름, 제품번호→판매사, 판매사→판매사전화번호 ①주문릴레이션은3NF를따른다. ②고객번호는후보키(Candidate Key)가아니다. ③서로다른판매사를가진동일한제품번호가 존재할수있다. ④고객(고객번호, 고객이름), 제품(제품번호, 판매사, 판매사전화번호)으로분할하면분할된 두릴레이션은모두BCNF를따른다. 20. 다음과같은트랜잭션스케줄을허용하는SQL Isolation Level을가장적절하게짝지은것은? 트랜잭션1 트랜잭션2 read A A = A+100 write A commit read A read A commit ①Serializable, Read Committed ②Repeatable Read, Read Committed ③Serializable, Repeatable Read ④Read Committed, Read Uncommitted 21. 엄격2 - 단계로킹규약(Strict 2 - phase Locking)에 따른동시성제어(Concurrency Control)를하고, 세트랜잭션T1, T2, T3가다음의연산을왼쪽 부터오른쪽으로순차적으로요청한다고하자. 여기서 RN(X)는 트랜잭션 TN이 X를 읽는 연산을, WN(X)는트랜잭션TN이X를쓰는 연산을나타낸다. 연산에필요한로크(Lock)를 기다리지않고얻어서바로수행할수있는 연산들로만모아놓은것으로서가장적절한것은? R2(A) W1(B) W3(C) R3(A) W2(A) R1(C) ①R2(A)와R1(C) ②W3(C)와R3(A) ③R3(A)와R1(C) ④R3(A)와W2(A) 데이터베이스론(7급) 7 - 7 22. 다음은즉시갱신(Immediate Update)을사용 하는DBMS에서System Crash가일어났을때의 로그(Log) 기록이다. (단, 로그레코드는트랜 잭션id, 데이터, 이전값(Old Value), 새로운값 (New Value) 순으로나타난다) 복구(Recovery)를 수행한내용으로가장적절한것은? [T1, begin_transaction] [T1, D, 10, 20] [T1, commit] [T2, begin_transaction] [T3, begin_transaction] [checkpoint, {T2, T3}] [T3, D, 20, 30] [T3, commit] [T2, C, 20, 30] [T5, begin_transaction] [T5, B, 20, 30] [T4, begin_transaction] [T4, A, 10, 20] [T4, commit] <----System Crash ①복구후올바른A, B 값은각각20과30이다. ②트랜잭션 T1에 대해서도 복구를 수행할 필요가있다. ③트랜잭션T2와T5에대해서는Undo를수행한다. ④복구후올바른D 값은20이다. 23. 개인의교육정도(X1)와수입(X2) 값을바탕으로 채무 불이행 가능성(Y)을 예측하기 위해 Y = a0 + a1X1 + a2X2 함수를설정하고계수a0, a1, a2를학습하는데이터마이닝알고리즘으로 가장적절한것은? ①Regression ②Bayesian 분류자 ③Support Vector Machine ④의사결정트리 24. 고객이구매한장바구니가다음과같을때, 아래의 연관규칙에대한설명으로가장적절한것은? 고객ID 장바구니 A 우유, 빵, 커피 B 빵, 우유, 치즈 C 사탕, 과자, 콜라 D 빵, 커피, 과자, 냅킨 E 빵, 우유, 아이스크림 F 치즈, 우유 연관규칙: “우유를사는고객은빵도산다.” ①위연관규칙의신뢰도는50 %이다. ②위연관규칙의지지도는50 %이다. ③C 고객의장바구니에는우유와빵모두 나타나지않으므로위연관규칙의신뢰도와 지지도계산에영향을미치지않는다. ④C 고객의장바구니에우유가있었다면위 연관규칙의지지도는상향된다. 25. 분산트랜잭션의원자성을유지할때사용하는 2단계완료프로토콜(2 - phase Commit Protocol : 2PC)의설명으로가장적절하지않은것은? ①조정자는<prepare T> 메시지를트랜잭션T가 실행된모든노드에전송한다. ②모든노드로부터<ready T> 메시지를받으면, 조정자는 T를 완료시키고 <commit T> 메시지를다시모든노드에전송한다. ③특정노드가고장나서<ready T> 메시지를 보내지않았다면, 조정자는그노드가복구될 때까지T의완료여부결정을연기한다. ④한노드로부터<abort T> 메시지를받으면, 조정자는모든노드에게<abort T> 메시지를 보내고T를철회한다.




















2026 세무사 행정소송법 해설 이승철
2025 법원직 9급 부동산등기법 해설 알파캣
2025 국회직 9급 한국사 해설 한Pro