총 80문항 · 문제·정답·해설·개념 무료 학습
이 회차는 80문항입니다. 자료를 읽고 푸는 문항이 50문항입니다. 풀이가 붙은 문항이 80문항입니다.
▶ CertLab에서 풀어보기다음에서 설명하는 데이터 마이닝 분석 기법은?
○ 장바구니 분석이라고도 한다.
○ 데이터 간의 발생 빈도를 분석하여 그 속에 숨겨진 규칙을 파악하는 방법으로, 상품이나 서비스 간의 관계를 분석하여 마케팅에 주로 활용한다.
정답 3번
발생 빈도를 분석해 상품 사이의 규칙을 찾는 장바구니 분석은 연관 분석이므로 3번이 해당한다.
시스템 카탈로그에 대한 설명으로 옳지 않은 것은?
정답 3번
시스템 카탈로그는 DBMS가 스스로 생성하고 유지하는 메타데이터이므로 일반 사용자가 수정할 수 있다고 한 3번이 옳지 않다.
다음에서 설명하는 데이터베이스 무결성 제약조건(integrity constraint)은?
○ 기본키 제약(primary key constraint)이라고도 한다.
○ 기본키는 널(NULL) 값을 가져서는 안되며 릴레이션 내에 오직 하나의 값만 존재해야 한다.
정답 1번
기본키 제약이라고도 하며 기본키가 NULL이 될 수 없고 유일해야 하는 제약은 개체 무결성 제약조건이므로 1번이 해당한다.
데이터베이스 모델에서 사용되는 키(key)에 대한 설명으로 옳지 않은 것은?
정답 3번
대체키는 기본키로 선택되지 못한 후보키이지 외래키가 아니므로 3번이 옳지 않다.
릴레이션 R1, R2, R3의 스키마는 R1(A, B, C), R2(C, D, E), R3(E, F)이고, 기본키는 각각 A, C, E이다. 튜플의 수가 R1은 100개, R2는 150개, R3은 75개라고 할 때, R1 ⋈N R2 ⋈N R3의 결과에 대한 설명으로 옳은 것만을 모두 고르면?
ㄱ. R1 ⋈N (R2 ⋈N R3)의 결과와 동일하다.
ㄴ. 결과 릴레이션의 튜플은 최대 100개이다.
ㄷ. 결과 릴레이션의 속성은 8개이다.
정답 3번
ㄱ과 ㄴ은 옳고 ㄷ은 결과 속성이 6개라서 옳지 않으므로 정답은 3번이다.
데이터베이스의 스키마와 인스턴스에 관한 설명을 바르게 연결한 것은?
ㄱ. 데이터베이스의 논리적, 물리적 구조 정의
ㄴ. 특정 시점에 데이터베이스에 저장되어 있는 실제 값
ㄷ. DML(Data Manipulation Language)을 활용하여 생성 및 변환
ㄹ. DDL(Data Definition Language)을 활용하여 생성 및 변환 스키마 인스턴스
정답 2번
ㄱ과 ㄹ은 스키마, ㄴ과 ㄷ은 인스턴스에 대한 설명이므로 정답은 2번이다.
데이터베이스 회복(recovery) 기법에 대한 설명으로 옳은 것은?
정답 1번
트랜잭션이 갱신한 버퍼 페이지를 완료 전에 디스크에 쓸 수 있는 방식이 steal이므로 1번이 옳다.
SQL에서 다음 상품 테이블에 대한 ANY와 ALL 연산의 결과로 옳지 않은 것은?
상품 상품번호 가격 1 25000 2 30000 3 40000
정답 3번
30000은 상품 가격 집합에 있으므로 30000 <> ALL은 거짓이며 참이라고 한 3번이 옳지 않다.
SQL 명령어 중에서 데이터 제어어(DCL)만을 모두 고르면?
ㄱ. CREATE
ㄴ. GRANT
ㄷ. DROP
ㄹ. REVOKE
정답 2번
데이터 제어어는 권한을 주는 GRANT와 회수하는 REVOKE이므로 ㄴ과 ㄹ을 고른 정답은 2번이다.
역정규화(denormalization)에 대한 설명으로 옳지 않은 것은?
정답 2번
역정규화는 검색 시간을 줄이려는 것이지 갱신 시간이 중요한 연산을 돕는 것이 아니므로 2번이 옳지 않다.
다음은 CLUB 테이블과 MEETING 테이블에 대한 SQL문이다. 실행 결과에 대한 설명으로 옳은 것은?
CLUB CID 이름 도시 회비 10 Tennis Atlanta 50 12 Music New York 30 13 Art Atlanta 40 15 Book Dallas 10 17 Audio Macon 20 MEETING CID 날짜 참석수 10 2023-02-10 2 10 2023-04-10 1 13 2023-01-21 3 13 2023-02-21 4 15 2023-09-30 2 (SELECT CID FROM CLUB WHERE 회비=3);
정답 4번
UNION 결과는 CID 15, 17, 13이므로 검색된 레코드의 합이 45인 4번이 옳다.
다음 릴레이션 고객과 주문에 대한 완전외부조인(full outer join) 연산의 결과로 (가), (라)에 들어갈 내용은?
고객 고객ID 고객이름 주소 ok 홍길동 서울 pk 강감찬 경기 주문 주문번호 고객ID 주문제품 100 ok 운동화 101 ak 장갑
[완전외부조인 연산 결과] 고객ID 고객이름 주소 주문번호 주문제품 (가) 홍길동 서울 100 운동화 (나) 강감찬 경기 (라) (라) (다) (라) (라) 101 장갑 (가) (라)
정답 4번
완전 외부 조인은 양쪽 모두 남기므로 (가)는 ok이고 짝이 없는 칸 (라)는 NULL이라 4번이 해당한다.
분산 데이터베이스에 대한 설명으로 옳지 않은 것은?
정답 2번
수평적 단편화는 릴레이션을 튜플 단위로 나누고 속성 단위로 나누는 것은 수직적 단편화이므로 2번이 옳지 않다.
다음은 인덱스에 관한 내용이다. (가), (나)에 들어갈 용어를 바르게 연결한 것은?
○ (가) 는/은 많은 수의 행을 가진 릴레이션을 위해 사용하는 기법으로, 하나 이상의 열에 대해 인덱스를 생성하며 적은 수의 유일한 값들을 갖는 열들에 적합하다.
○ (나) 는/은 디렉터리(directory)와 버킷(bucket) 집합을 사용하는 기법으로, 데이터베이스가 증가하고 축소되는 변화에 유연하다. (가) (나)
정답 4번
많은 행을 가진 릴레이션의 열에 쓰는 것은 비트맵 인덱스, 디렉터리와 버킷을 쓰는 것은 확장성 해싱이므로 4번이 해당한다.
다음 도서 테이블에 대한 SQL문을 수행하였을 때, 결과 테이블의 튜플 수는?
도서 도서번호 도서명 저자명 출판사 1 국어 기초 Anderson Blue 2 국어 심화 Bella White 3 국어 심화 Anderson White 4 영어 기초 Anderson White 5 영어 심화 Cooper Green 6 영어 심화 Cooper Green 7 수학 기초 Anderson Green 8 수학 기초 Frank White 9 수학 심화 Davis Blue 10 수학 심화 Frank Red SELECT DISTINCT 출판사 FROM 도서 WHERE 저자명 = ‘Anderson’;
정답 3번
저자가 Anderson인 책의 출판사는 Blue, White, Green이므로 중복을 제거한 튜플 수는 3이라 3번이 해당한다.
다음 릴레이션 R1과 R2에 대한 디비전 연산(R1 ÷ R2)의 결과는?
R1 A1 A2 A3 s1 t1 u1 s1 t2 u1 s2 t1 u1 s2 t1 u2 s2 t2 u2 s3 t1 u1 s3 t1 u2 s4 t1 u1 s5 t2 t2 R2 A2 A3 t1 u1 t1 u2
정답 2번
R1을 R2로 나누면 R2의 모든 튜플과 함께 나타나는 A1 값만 남으므로 s2와 s3가 되어 2번이 해당한다.
다음은 5개 트랜잭션의 충돌 직렬가능(conflict serializable) 스케줄에 대한 우선순위 그래프이다. 이에 대한 설명으로 옳은 것만을 모두 고르면?
ㄱ. 동등한 직렬 스케줄은 6개이다.
ㄴ. 모든 동등한 직렬 스케줄은 T1에서 시작하고 T5에서 종료한다.
ㄷ. T2와 T3은 동시에 수행할 수 있지만, T5는 T4가 수행된 후에 수행해야 한다.
ㄹ. T2와 T5는 같은 데이터 항목에 대한 write 연산이 없다.
정답 2번
선행 그래프에서 위상 정렬로 6개의 직렬 스케줄이 나오고 T2와 T5 사이에는 간선이 없어 충돌이 없으므로 ㄱ과 ㄹ을 고른 정답은 2번이다.
다음 SQL문을 통해 생성된 학생 테이블에 새로운 속성으로 ‘나이’를 추가하고자 한다. 이를 위한 SQL문으로 옳은 것은? (단, ‘나이’의 데이터 타입은 CHAR(3)이다)
CREATE TABLE 학생 ( 학번 CHAR(10) PRIMARY KEY, 이름 CHAR(20), 주소 CHAR(50), 전화번호 CHAR(13) );
정답 4번
열을 추가하는 문장은 ALTER TABLE 학생 ADD 나이 CHAR(3)이므로 4번이 해당한다.
도서관 데이터베이스의 도서 테이블이 ‘도서ID’, ‘도서명’, ‘대출횟수’를 포함하여 총 30개의 속성으로 구성되어 있다. 100번 이상 대출된 도서만을 대상으로 별도의 서비스를 준비하기 위해 다음과 같이 ‘인기도서’ 뷰를 생성하였을 때 이에 대한 설명으로 옳지 않은 것은? (단, 도서 테이블의 기본키는 ‘도서ID’이며, 도서 테이블에 ‘도서ID’가 123인 레코드는 저장되어 있지 않다)
CREATE VIEW 인기도서 AS SELECT 도서ID, 도서명, 대출횟수 FROM 도서 WHERE 대출횟수 >= 100 WITH CHECK OPTION;
정답 4번
WITH CHECK OPTION이 걸린 뷰에는 대출횟수 100 이상인 행만 입력할 수 있어 대출횟수 5인 행은 거부되므로 4번이 옳지 않다.
다음은 A고객의 포인트 1000점을 B고객에게 전송하는 SQL문이다. 이 SQL문을 하나의 트랜잭션으로 처리할 때 이에 대한 설명으로 옳지 않은 것은? (단, A고객과 B고객의 ‘ID’는 각각 123과 456이며, 트랜잭션 수행 전 ‘포인트’는 각각 5000과 200이다)
UPDATE 고객 SET 포인트 = 포인트 - 1000 WHERE ID = 123; ················· (가) UPDATE 고객 SET 포인트 = 포인트 + 1000 WHERE ID = 456; ················· (나)
정답 1번
고립성에 따라 완료되지 않은 트랜잭션의 중간 결과는 다른 트랜잭션에 보이면 안 되므로 (가)까지의 결과를 접근하게 허용해야 한다는 1번이 옳지 않다.
데이터베이스 및 데이터베이스 관리시스템(DBMS)의 사용자와 관련된 설명으로 옳지 않은 것은?
정답 2번
일반 사용자가 편리하게 접근하도록 인터페이스를 개발하는 사람은 응용 프로그래머이므로 DBA의 일이라고 한 2번이 옳지 않다.
데이터베이스 트랜잭션이 올바르게 수행된다는 것을 보장하기 위해 지원해야 하는 트랜잭션 성질에 대한 설명으로 옳지 않은 것은?
정답 4번
트랜잭션이 실행되는 동안의 값은 다른 트랜잭션이 볼 수 없어야 하는 것이 고립성이므로 접근할 수 있어야 한다고 한 4번이 옳지 않다.
관계형 데이터베이스의 릴레이션에 대한 특성으로 옳지 않은 것은?
정답 2번
도메인은 한 속성이 가질 수 있는 값의 집합이지 투플에 저장된 값의 집합이 아니므로 2번이 옳지 않다.
데이터베이스 및 DBMS에 대한 설명으로 옳은 것은?
정답 2번
데이터 정의어를 이용하면 개념 스키마를 정의할 수 있으므로 2번이 옳다.
뷰에 대한 설명으로 옳지 않은 것은?
정답 1번
뷰는 정의만 저장되고 질의 결과가 물리적 저장 장치에 저장되지 않으므로 저장된다고 한 1번이 옳지 않다.
다음은 각 트랜잭션에서 구매된 물건들을 나타내는 장바구니 분석(market basket analysis) 데이터이다. 연관 규칙 기법으로 이 데이터를 분석할 때 옳지 않은 것은?
Transaction ID Items 1 a, b, c 2 a, c 3 a, b, c, d 4 c, d 5 a, b, d
정답 2번
c ⇒ d의 지지도는 {c, d}가 함께 나온 거래 2건을 전체 5건으로 나눈 40퍼센트이므로 50퍼센트라고 한 2번이 옳지 않다.
개체-관계 모델(E-R Model)을 통해 학생들의 수강 신청 관리시스템 데이터베이스를 설계하고자 한다. 사상 원소 수(mapping cardinality)를 포함한 개체-관계 다이어그램(E-R Diagram)으로 표현할 때, 다음 에 부합하지 않는 다이어그램은? (단, 참여 제약 조건(participation constraint)은 고려하지 않는다)
○ 대학에는 여러 개의 학과가 있고 각 학과에는 여러 명의 학생이 소속되어 있다. 또한 각 학생은 필요에 따라 복수전공 등으로 여러 학과에 소속될 수 있다.
○ 학생은 한 학기에 여러 개의 교과목을 수강하며, 교과목이 운영되려면 반드시 여러 명의 학생이 수강해야 한다.
○ 학과에는 여러 명의 교수가 있으며, 각 교수는 단일 학과에 소속된다.
○ 교수는 한 학기에 여러 교과목을 강의할 수 있고, 각 교과목은 한 명의 교수가 강의한다.
정답 3번
각 교수는 단일 학과에 소속되므로 교수 대 학과가 다대일이어야 하는데 교수 1 대 학과 N으로 그린 3번이 부합하지 않는다.
다음 개체-관계 다이어그램(E-R Diagram)을 관계형 데이터베이스의 스키마(schema)로 적절하게 나타낸 것은? (단, 밑줄이 표시된 속성은 키(key) 속성을 뜻한다)
정답 4번
다대다 관계 WORKS_ON은 양쪽 기본키와 관계 속성 Hours를 가진 별도 릴레이션이 되므로 4번이 해당한다.
다음 ‘학생성적’ 릴레이션과 각 투플의 레코드 번호를 참고하여 ‘성적’ 속성에 대한 비트맵 인덱스를 적절히 표현한 것은?
레코드번호 학생성적 학생ID 성별 성적 0 88 남성 A 1 13 여성 D 2 87 여성 A 3 53 남성 C 4 75 남성 B
정답 1번
성적별로 각 레코드 번호에 해당하는 비트를 1로 표시하면 A는 10100, B는 00001, C는 00010, D는 01000이므로 1번이 해당한다.
다음 릴레이션에서 속성(A, B, C)들의 함수 종속을 화살표(→)로 표현할 때 옳지 않은 것은? (단, 아래 투플을 기준으로 판단하며, 새로운 투플은 추가되지 않는다고 가정한다)
A B C c d i f j g h j g f c b
정답 4번
(B, C) 값이 (j, g)로 같은 두 투플의 A가 f와 h로 다르므로 (B, C) → A가 성립하지 않아 4번이 옳지 않다.
어떤 시스템에서 다음 그림과 같이 7개의 트랜잭션 T0 ~ T6이 수행 완료되었거나 수행 중이다. 시간 tc 시점에서 검사점(checkpoint)이 실행되었고, 시간 tf 시점에서 시스템 장애(failure)가 발생하여 정지되었다고 가정한다. 이때 재실행(redo)해야 하는 트랜잭션만을 모두 고르면?
정답 1번
체크포인트 이후에 시작해 장애 전에 완료된 T3와 T4는 재실행해야 하므로 1번이 해당한다.
다음 두 릴레이션 ‘Emp’와 ‘Dep’에서 id(사번)와 d_code(부서코드)는 각 릴레이션의 기본키이다. 두 릴레이션에 대하여 다음 의 연산 결과와 동일한 결과를 나타내는 SQL문으로 옳은 것은? (단, 아래 릴레이션을 기준으로 판단하며, 새로운 투플은 추가되지 않는다고 가정한다)
Emp Dep id name d_code d_code d_name 10 홍길동 b a 전산부 20 이순신 c b 인사부 30 김유신 a c 총무부
Temp1 ← σ Emp.d_code=Dep.d_code(Emp × σ d_name=‘전산부’(Dep)) Temp2 ← ρ E(id, name, code, d_code, d_name)(Temp1) π d_code(Temp2)
정답 4번
관계대수는 Emp와 전산부 Dep를 조인해 d_code만 뽑는 것이므로 INNER JOIN에 d_name 조건을 준 4번이 해당한다.
다음 릴레이션 ‘프로젝트’에 대하여 아래와 같은 SQL문을 수행한 결과는?
프로젝트 관리번호 관리자사번 연구비 1 1 500 2 1 2200 3 2 900 4 3 400 5 4 1500 6 1 1700 7 2 3000 8 3 1700 9 2 550 10 3 2000 SELECT 관리자사번, SUM(연구비) AS 연구비총액 FROM 프로젝트 WHERE 연구비 > 1000 GROUP BY 관리자사번 HAVING COUNT(*) > 1;
정답 1번
연구비 1000 초과 행을 관리자별로 묶어 2건 이상인 그룹만 남기면 관리자 1은 3900, 3은 3700이므로 1번이 해당한다.
다음 두 릴레이션 ‘고객’과 ‘주문’에 대하여 아래 SQL문의 수행 결과 값은?
고객 주문 ID Name 나이 ID 고객ID 제품 good 김유신 20 1001 good brush best 유관순 30 1002 better book better 강감찬 50 1003 best umbrella nice 이순신 20 1004 nice cup SELECT SUM(나이) FROM 고객 WHERE ID NOT IN (SELECT 고객ID FROM 주문 WHERE 제품 LIKE ‘%u%’);
정답 1번
주문에서 제품에 u가 들어가는 고객ID를 제외하면 고객 better만 남으므로 나이 합은 50이라 1번이 해당한다.
다음 두 릴레이션 ‘학생’과 ‘그룹’을 왼쪽 외부 조인(left outer join)한 결과(학생 그룹)로 옳은 것은?
그룹 학생 GID Score SID GID A 90 100 A B 80 200 B C 70 300 A D 60 400 F E 50
정답 2번
학생을 기준으로 왼쪽 외부 조인하면 그룹에 짝이 없는 학생 400도 남고 Score는 NULL이 되므로 2번이 해당한다.
다음에서 설명하는 모든 조건을 만족하는 릴레이션 R의 정규형은?
○ 릴레이션 R의 함수 종속 관계에서 기본키가 아닌 모든 속성들이 기본키에 이행적 함수 종속이 아니다.
○ 릴레이션 R에 속한 모든 속성의 도메인이 원잣값만으로 되어 있으며, 기본키가 아닌 모든 속성이 기본키에 완전 함수 종속이다.
○ 릴레이션 R의 함수 종속 관계에서 결정자(determinant) 중에 후보키가 아닌 것이 포함되어 있을 수 있다.
정답 2번
이행적 종속이 없고 완전 함수 종속이며 결정자 중 후보키가 아닌 것이 있을 수 있으므로 제3정규형이라 2번이 해당한다.
U1 ~ U5는 데이터베이스 일반 사용자들의 계정명이며, 사용자 U1은 ‘성적’ 테이블을 생성한 이 테이블의 소유자이다. 다음과 같은 순서대로 5번까지 각 사용자들이 SQL문을 수행하였다. 이에 대한 설명으로 옳은 것은?
순번 수행한 사용자 수행한 SQL문 1 U1 GRANT SELECT, INSERT ON 성적 TO U2 WITH GRANT OPTION; 2 U1 GRANT SELECT, INSERT ON 성적 TO U3 WITH GRANT OPTION; 3 U3 GRANT SELECT ON 성적 TO U4; 4 U1 REVOKE SELECT ON 성적 FROM U2; 5 U4 GRANT SELECT ON 성적 TO U5;
정답 3번
U3은 GRANT OPTION으로 SELECT를 받아 U4에게 줄 수 있고 U2의 권한 회수는 U3의 권한에 영향이 없으므로 U4는 SELECT 권한이 있어 3번이 옳다.
NoSQL의 특징으로 옳은 것만을 모두 고르면?
ㄱ. 반정형 데이터(semi-structured data)를 처리하기에는 적합하지 않다.
ㄴ. 트랜잭션의 ACID 성질을 완벽히 보장하는 것이 중요하다.
ㄷ. 문서-기반 모델은 NoSQL에서 사용되는 데이터 모델의 한 종류이다.
ㄹ. 스키마를 요구하지 않는 경우가 있다.
정답 4번
ㄷ과 ㄹ은 옳고 ㄱ과 ㄴ은 옳지 않으므로 정답은 4번이다.
B+-트리 인덱스에 대한 설명으로 옳은 것만을 모두 고르면?
ㄱ. 루트(root)를 포함한 내부 노드(internal node)는 데이터 파일 레코드를 가리키는 포인터를 갖는다.
ㄴ. 트리의 루트(root)에서 단말 노드(leaf node)까지 모든 경로의 길이가 같은 균형 트리(balanced tree) 형태이다.
ㄷ. 단말 노드(leaf node)는 검색키 값을 기초로 선형 순서로 되어 있어 데이터 레코드들을 그 키 값의 순서에 따라 능률적으로 순차 접근할 수 있게 해 준다.
정답 3번
ㄴ과 ㄷ은 옳고 ㄱ은 내부 노드가 데이터 레코드 포인터를 갖지 않으므로 옳지 않아 정답은 3번이다.
다음은 ‘학원생’ 릴레이션이다. 후보키(candidate key)에 해당하는 것은? (단, 아래 투플을 기준으로 판단하며, 투플은 추가ㆍ변경ㆍ삭제되지 않는다고 가정한다)
학원생 학원생이름 전화번호 나이 학교이름 학년 반 홍길동 1237-6542 19 A고 3 1 이순신 3218-8465 18 B고 2 2 홍길동 4567-8910 20 A고 1 1 유관순 3247-6512 18 C고 3 1
정답 1번
전화번호는 모든 값이 서로 다르고 최소 속성이므로 후보키이며 나머지는 값이 중복되거나 최소성을 만족하지 않아 1번이 해당한다.
다음 상황에 대한 트랜잭션(transaction)의 특성은?
제품의 재고량을 갱신하는 트랜잭션이 커밋(commit) 되기 전에 시스템 장애가 발생했다. 장애 후 데이터베이스는 트랜잭션이 수행한 변경 사항을 모두 취소하였고, 시스템은 장애 이전의 상태로 복구되었다.
정답 2번
커밋 전 장애로 변경을 모두 취소하고 이전 상태로 복구하는 것은 모두 수행되거나 전혀 수행되지 않는 원자성이므로 2번이 해당한다.
데이터를 구조 형태에 따라 구분할 때 이에 대한 설명으로 옳지 않은 것은?
정답 4번
반정형 데이터는 구조 정보가 데이터 안에 함께 들어 있으므로 구조와 내용을 별도 파일로 저장한다고 한 4번이 옳지 않다.
다음 릴레이션(relation) R과 S의 카티션 프로덕트(cartesian product) 연산 시 결과 릴레이션의 차수(degree)와 카디널리티(cardinality) 값은?
R S 번호 이름 번호 나이 100 강감찬 100 82 200 이순신 101 53 300 한용운 102 66 차수 카디널리티
정답 4번
카티션 프로덕트의 차수는 두 릴레이션 차수의 합 4, 카디널리티는 튜플 수의 곱 9이므로 4번이 해당한다.
트랜잭션에 대한 설명으로 옳지 않은 것은?
정답 1번
커밋한 트랜잭션은 변경이 영구적으로 반영되어 롤백으로 취소할 수 없으므로 롤백으로 취소가 가능하다고 한 1번이 옳지 않다.
‘학생’ 테이블에 대한 검색 권한을 사용자 ‘홍길동’에게 부여하는 SQL 문을 완성할 때 (가)와 (나)에 들어갈 내용을 바르게 연결한 것은?
(가) (나) ON 학생 TO 홍길동; (가) (나)
정답 3번
검색 권한을 부여하는 문장은 GRANT SELECT ON 학생 TO 홍길동이므로 (가)는 GRANT, (나)는 SELECT인 3번이 해당한다.
SQL에서 UNION과 UNION ALL에 대한 설명으로 옳은 것은?
정답 3번
UNION은 중복된 투플을 제거하고 UNION ALL은 중복된 투플을 그대로 포함하므로 3번이 옳다.
다음 두 릴레이션 학생과 수강에서 아래 관계대수에 의해 생성된 결과로 옳은 것은? (단, 수강 릴레이션의 SID는 학생 릴레이션의 SID를 참조하는 외래키(foreign key)이다)
학생 SID Name Dept 101 홍길동 컴퓨터공학 102 이몽룡 경영학 103 성춘향 컴퓨터공학 104 장보고 경영학 수강 SID CID Grade 101 CS101 A 101 CS102 B 102 MG201 C 103 CS101 B 104 MG202 A π Name, CID( σ Dept='컴퓨터공학'∨Grade='B'(학생⋈N수강))
정답 1번
조인 결과에서 학과가 컴퓨터공학이거나 성적이 B인 행만 남겨 이름과 과목만 뽑으면 홍길동 CS101, 홍길동 CS102, 성춘향 CS101이므로 1번이 해당한다.
NoSQL 데이터베이스에 대한 설명으로 옳은 것은?
정답 4번
문서 기반 데이터베이스는 반정형 데이터 형식을 지원하므로 4번이 옳다.
다음 릴레이션에서 아래 SQL문을 실행하면 나오는 투플의 개수는?
사원 사원번호 이름 부서번호 월급 직책 1 홍길동 10 5000 사원 2 이순신 20 3000 대리 3 강감찬 30 4000 과장 4 장보고 20 2000 부장 5 홍길동 20 5000 대리 6 안중근 10 2000 과장 SELECT 사원번호, 월급, 부서번호 FROM 사원 WHERE 부서번호 IN (SELECT 부서번호 FROM 사원 WHERE 이름 = '홍길동');
정답 4번
홍길동이 속한 부서는 10과 20이므로 부서번호가 10 또는 20인 사원은 1, 2, 4, 5, 6번의 5명이라 4번이 해당한다.
다음 트랜잭션 T1과 T2를 수행한 후 X와 Y의 최종값은? (단, X와 Y의 초깃값은 각각 100, 200이다)
시간T1T2↓X = 20write(X)read(X)X = X - 20write(X)read(Y)Y = Y + 20write(Y)
정답 1번
T1이 X를 20으로 써 놓은 뒤 T2가 그 값을 읽어 0으로 줄이고 Y를 220으로 늘리므로 X와 Y의 최종값은 0과 220이라 1번이 해당한다.
트리거(trigger)에 대한 설명으로 옳지 않은 것은?
정답 1번
트리거는 SQL 표준에 포함되어 있는 기능이므로 표준에 채택된 적이 없다고 한 1번이 옳지 않다.
다음 트랜잭션 T1과 T2에 대한 2단계 로킹 규약(2-phase locking protocol)을 준수하기 위해 (가)와 (나)에 적합한 코드는?
시간T1T2↓lock(X)read(X)X = X + 10write(X)(가)lock(X)read(X)X = X * 20write(X)read(Y)Y = Y + 100write(Y)unlock(Y)(나)read(Y)Y = Y * 20write(Y)unlock(Y)
정답 1번
(가)와 (나) 모두 Y를 먼저 lock한 뒤 X를 unlock해야 확장 단계가 끝나고서 수축 단계가 시작되어 2단계 로킹을 지키므로 lock(Y) 다음 unlock(X) 순서인 1번이 해당한다.
데이터베이스 접근제어(access control)에 대한 설명으로 옳은 것은?
정답 2번
임의 접근제어는 데이터 소유자가 접근 권한을 제어하고 주체 사이에 권한을 위임할 수 있으므로 2번이 옳다.
다음 개체 관계 다이어그램(entity relationship diagram)에 대한 설명으로 옳지 않은 것은?
정답 3번
직원 쪽 표시는 하나 이상, 과제 쪽 표시는 0개 이상이므로 각 직원이 최소한 한 과제를 할당받아야 한다고 한 3번이 옳지 않다.
다음 트랜잭션 T1과 T2에서 발생하는 문제로 옳은 것은?
시간T1T2↓read(X)X = X + 100read(X)X = X * 2write(X)write(X)
정답 2번
T1이 X에 더한 100이 T2의 write로 덮여 사라지므로 갱신 분실이 발생해 2번이 옳다.
참조 무결성 제약조건(referential integrity constraint)에 대한 설명으로 옳은 것만을 모두 고르면?
ㄱ. 두 릴레이션의 연관된 투플들 사이의 일관성을 유지하는 데 사용된다.
ㄴ. 외래키는 참조되는 테이블의 기본키 값이 삭제될 경우, 해당키를 외래키로 가지는 모든 투플을 삭제해야만 한다.
ㄷ. 외래키 값은 참조되는 릴레이션의 후보키(candidate key) 값과 일치하거나 NULL이어야 한다.
정답 2번
ㄱ과 ㄷ은 옳고 ㄴ은 참조되는 기본키 삭제 시 처리 방식이 여럿이라 모든 투플을 삭제해야만 하는 것이 아니므로 정답은 2번이다.
다음 정규화(normalization)에 대한 설명으로 옳은 것만을 모두 고르면?
ㄱ. 제1정규형에서는 릴레이션에 속한 모든 속성의 도메인이 원자값(atomic value)으로만 구성된다.
ㄴ. 제2정규형에서는 이행적 함수 종속이 존재하지 않는다.
ㄷ. 보이스-코드 정규형(BCNF)은 함수 종속의 모든 결정자가 후보키이다.
ㄹ. 제2정규형 이상에서는 다치 종속(multi valued dependency)을 고려하지 않아도 된다.
정답 2번
ㄱ과 ㄷ은 옳고 ㄴ은 이행적 종속 제거가 제3정규형의 조건이며 ㄹ은 다치 종속을 제4정규형에서 다루므로 정답은 2번이다.
다음 릴레이션 R에 대한 SQL문의 실행 결과는?
R A B 1 5 1 7 2 1 2 3 2 2 3 12 4 5 4 4 5 6 5 5 SELECT COUNT(*) AS T FROM ( SELECT A FROM R GROUP BY A HAVING SUM(B) > 10 ) AS S;
정답 3번
안쪽 질의는 SUM(B)가 10을 넘는 A 그룹 1, 3, 5를 골라 이를 바깥에서 세므로 결과는 열 이름 T와 값 3이라 3번이 해당한다.
인덱스(index)에 대한 설명으로 옳지 않은 것은?
정답 3번
희소 인덱스는 정렬된 데이터 파일의 클러스터링 인덱스에서 쓸 수 있으므로 사용할 수 없다고 한 3번이 옳지 않다.
다음 뷰(view)에 대한 설명으로 옳은 것만을 모두 고르면?
ㄱ. 실체화된 뷰(materialized view)는 뷰 정의 쿼리 결과를 물리적으로 저장해 두고 일정 주기로 갱신할 수 있다.
ㄴ. 뷰는 데이터 보안 강화, 복잡한 쿼리 단순화를 위해 사용할 수 있다.
ㄷ. 뷰에 GROUP BY 절을 포함하는 경우에는 뷰를 갱신할 수 있다.
정답 1번
ㄱ과 ㄴ은 옳고 ㄷ은 GROUP BY를 포함한 뷰는 갱신할 수 없으므로 정답은 1번이다.
데이터베이스 정의에 대한 설명으로 옳지 않은 것은?
정답 4번
데이터베이스는 저장 위치가 아니라 저장된 내용의 값으로 데이터를 참조하므로 저장 위치를 통해 참조한다고 한 4번이 옳지 않다.
개체-관계 모델에 대한 설명으로 옳지 않은 것은?
정답 3번
관계도 개체 사이의 연관성을 나타내면서 속성을 가질 수 있으므로 관계는 속성을 갖지 않는다고 한 3번이 옳지 않다.
관계 데이터 모델에서 키(key)에 대한 설명으로 옳지 않은 것은?
정답 1번
슈퍼키는 유일성만 만족하는 속성 집합일 뿐 널 값을 갖지 못하는 것은 기본키이므로 슈퍼키가 널 값을 포함할 수 없다고 한 1번이 옳지 않다.
다음 3단계 데이터베이스 구조 스키마의 (가) ~ (다)에 들어갈 용어를 바르게 연결한 것은?
(가) (나) (다)
정답 3번
사용자에 가까운 (가)는 외부 스키마, 가운데 (나)는 개념 스키마, 저장 장치에 가까운 (다)는 내부 스키마이므로 3번이 해당한다.
관계 대수 연산자 중 두 릴레이션의 차수가 같지 않거나 대응 속성 간 도메인이 일치하지 않아도 수행이 가능한 연산자는?
정답 4번
카티션 프로덕트는 두 릴레이션의 모든 튜플을 짝지어 늘어놓는 연산이라 차수나 도메인이 같지 않아도 수행할 수 있으므로 4번이 해당한다.
다음 ‘사원’과 ‘부서’ 릴레이션에 대해 SQL문을 실행할 경우 위반하는 제약조건은? (단, 밑줄 친 속성은 기본키, ‘사원’ 릴레이션의 부서코드는 ‘부서’ 릴레이션의 부서코드에 대한 외래키이다)
사원 부서 사번 이름 부서코드 계약액 부서코드 부서명 16031 이순신 190 820000 190 판매부 18039 유관순 240 950000 160 생산부 20024 안중근 190 935000 230 개발부 21098 이봉창 160 900000 240 회계부
INSERT INTO 사원(사번, 이름, 부서코드, 계약액) VALUES (25002, '장보고', 180, 850000);
정답 3번
부서코드 180은 부서 릴레이션에 없는 값이라 외래키가 참조하는 기본키 값과 일치하지 않으므로 참조 무결성 제약조건 위반이라 3번이 해당한다.
시스템 카탈로그에 대한 설명으로 옳지 않은 것은?
정답 3번
시스템 카탈로그는 DBMS가 스스로 생성하고 유지하는 메타데이터라서 일반 사용자가 직접 수정해야 한다고 한 3번이 옳지 않다.
다음 을 고려한 개체-관계 다이어그램(ERD, E-R Diagram)의 관계형 데이터베이스 스키마는?
○ 밑줄 친 속성은 기본키이다.
○ 같은 이름의 사원들이 존재할 수 있다.
○ 한 명의 사원이 여러 개의 전화번호를 가질 수 있다.
○ 전화번호 속성은 하나의 전화번호만 저장할 수 있는 크기이다.
정답 2번
전화번호는 다중값 속성이라 사번과 전화번호를 함께 기본키로 하는 별도 릴레이션으로 뽑아야 하므로 2번이 해당한다.
함수적 종속(functional dependency)을 표현한 X → Y에 대한 설명으로 옳지 않은 것은? (단, X와 Y는 동일 릴레이션에 존재하는 속성들의 부분 집합이다)
정답 4번
부분 함수 종속은 결정자가 복합 속성일 때 그 일부에만 종속되는 경우이므로 X가 단일 속성이라고 한 4번이 옳지 않다.
논리적 명칭을 통해 데이터에 접근을 보장하는 분산 데이터베이스의 투명성은?
정답 2번
논리적 명칭으로 데이터에 접근하게 해 위치를 몰라도 되도록 하는 투명성은 위치 투명성이므로 2번이 해당한다.
다음 ‘주문’ 릴레이션에서 아래 SQL문을 실행한 결과는?
주문 고객번호 도서번호 판매가격 주문일자 1 1 7000 2026-01-08 2 6 15000 2026-02-22 1 2 13000 2026-02-16 2 5 8000 2026-01-29 3 2 13000 2026-03-21 4 4 35000 2026-02-25 1 3 22000 2026-02-26 4 3 22000 2026-03-14
SELECT 고객번호, SUM(판매가격) AS 총금액 FROM 주문 WHERE 주문일자 >= '2026-02-01' GROUP BY 고객번호 HAVING COUNT(도서번호) >= 2 ORDER BY 고객번호;
정답 1번
2026년 2월 이후 주문만 남긴 뒤 고객별로 묶어 건수가 2 이상인 고객 1과 4만 고르면 합계가 35000과 57000이므로 1번이 해당한다.
DBMS의 오류 복구를 위해 주기적으로 덤프를 수행할 경우, 덤프의 수행 단계를 순서대로 바르게 나열한 것은?
(가) 변경된 버퍼 블록을 디스크에 기록한다. (나) 로그 레코드를 안정 저장 장치에 기록한다. (다) 데이터베이스 내용을 안정 저장 장치에 기록한다. (라) 메인 메모리의 모든 로그 레코드를 안정 저장 장치에 기록한다.
정답 3번
덤프는 로그를 안정 저장 장치에 먼저 기록하고 버퍼 블록을 디스크에 쓴 뒤 데이터베이스 내용을 복사하고 마지막에 덤프 기록을 남기므로 (라), (가), (다), (나) 순인 3번이 해당한다.
다음 ‘제품’, ‘주문’, ‘고객’ 릴레이션에서 아래 SQL문을 실행한 결과는?
제품 주문 고객 제품번호 제품명 주문번호 제품번호 고객번호 고객번호 고객명 1 노트북 101 1 1 1 이홍위 2 태블릿 102 2 2 2 한명회 3 휴대전화 103 2 1 3 엄흥도
SELECT p.제품번호, p.제품명, o.주문번호, c.고객명 FROM 제품 p LEFT JOIN 주문 o ON p.제품번호 = o.제품번호 LEFT JOIN 고객 c ON o.고객번호 = c.고객번호 ORDER BY p.제품번호, o.주문번호;
정답 1번
제품을 기준으로 주문과 고객을 차례로 왼쪽 외부 조인하면 주문이 없는 제품 3은 주문번호와 고객명이 NULL로 남으므로 1번이 해당한다.
2단계 로킹 규약(two-phase locking protocol)에 대한 설명으로 옳지 않은 것은?
정답 4번
모든 직렬 가능 스케줄이 2단계 로킹을 지키는 것은 아니므로 모든 직렬 가능 스케줄이 2단계 로킹 규약을 준수한다고 한 4번이 옳지 않다.
다음 트랜잭션 실행에 따라 발생하는 문제를 해결하기 위해 SQL을 이용하여 설정할 수 있는 고립도 중 가장 낮은 등급은?
시간T_1T_2T_3↓read(x)write(x)read(x)read(x)write(x)read(x)read(x)
정답 3번
T1이 x를 세 번 읽는 사이 T2와 T3가 각각 x를 고쳐 써 반복 불가 읽기가 생기므로 이를 막는 가장 낮은 등급은 REPEATABLE READ라 3번이 해당한다.
트랜잭션 T_1 , T_2 , T_3 에서 데이터 x, y에 대한 읽기(read)와 쓰기(write) 작업이 다음 순서로 스케줄링 될 경우, 스케줄 S의 선행 그래프로 옳은 것은?
S:T_1T_2T_3↓read(x)write(x)read(y)write(y)read(y)read(x)read(y)write(y)
정답 1번
x에서 T1→T2, y에서 T2→T1·T2→T3·T1→T3까지 네 간선이 모두 나오므로 이 넷을 다 그린 1번이 해당한다.
다음 SQL문을 통해 ‘department’와 ‘student’ 테이블을 생성하고 투플을 추가한 후 (가), (나) 문을 실행한 결과에 대한 설명으로 옳은 것은?
CREATE TABLE department ( dcode CHAR(5) NOT NULL, dename VARCHAR(20), PRIMARY KEY(dcode)); CREATE TABLE student ( sno INT NOT NULL, dept CHAR(5), PRIMARY KEY(sno), FOREIGN KEY(dept) REFERENCES department(dcode) ON DELETE CASCADE); INSERT INTO department VALUES ('D1', 'Computer'); INSERT INTO department VALUES ('D2', 'AI'); INSERT INTO department VALUES ('D3', 'Electronics'); INSERT INTO student VALUES (100, 'D1'); INSERT INTO student VALUES (200, 'D1'); INSERT INTO student VALUES (300, 'D2'); INSERT INTO student VALUES (400, 'D3'); DELETE FROM student WHERE dept = 'D1'; -- (가) DELETE FROM department WHERE dcode = 'D3'; -- (나)
정답 3번
(가)에서 D1 학생 둘이 삭제되고 (나)에서 D3 학과를 삭제하면 참조하는 학생 400이 연쇄로 삭제되어 학과 2개, 학생 1개가 남으므로 3번이 옳다.
데이터베이스 보안에 대한 설명으로 옳지 않은 것은?
정답 4번
릴레이션의 생성자는 자신이 생성한 릴레이션에 대한 모든 권한을 자동으로 부여받으므로 자동으로 받지 않는다고 한 4번이 옳지 않다.
다음 에서 교착상태 예방 방법별 동작에 대한 설명으로 옳지 않은 것은?
트랜잭션 T 에 대한 타임스탬프 TS( T )는 트랜잭션의 시작 시각을 표현하며, TS( T_j ) < TS( T_i )는 T_j 가 T_i 보다 먼저 작업을 시작했다는 의미이다. 트랜잭션 T_j 가 항목 x에 대해 배타 로크(exclusive lock)를 획득하였으며, 트랜잭션 T_i 가 항목 x에 대해 배타 로크를 획득하고자 한다.
정답 2번
wound-wait에서는 오래된 요청자가 젊은 상대를 철회시키고 젊은 요청자는 기다리므로 Tj가 대기한다고 한 2번이 옳지 않다.
비트맵 인덱스에 대한 설명으로 옳지 않은 것은?
정답 2번
비트맵 인덱스는 값마다 비트 벡터를 만들고 그 길이가 레코드 수 n이므로 크기가 log2 n 비트라고 한 2번이 옳지 않다.