데이터베이스 기출 문제 정리 (2017년~2022년)
- 정보처리기사 실기 기출 문제 중에서 데이터베이스(Database)와 관련된 문제를 정리해 본다.
- SQL(Structed Query Language)
- 이 문제들은 복원을 한 것으로, 실제 출제된 문제와 다를 수 있다.
2017년 1회
문제 1
Q. 데이터베이스 시스템에서 데이터의 입력, 갱신, 삭제 등의 이벤트(Event)가 발생할 때마다 자동적으로 수행되는 사용자 정의 프로시저가 무엇인지 쓰시오.
문제 2
Q. 트랜잭션의 특성에는 원자성, 일관성, 독립성, 영속성이 있다. 이중에서 일관성과 영속성의 개념을 간단히 서술하시오.
일관성 : 트랜잭션 수행이 성공적으로 완료되면 언제나 일관성 있는 데이터베이스 상태로 반환한다.
영속성 : 트랜잭션의 실행이 성공적으로 실행 완료된 후에는 시스템에 오류가 발생하더라도 트랜잭션에 의해 변경된 내용은 계속 보존되어야 한다.
문제 3
Q. 데이터베이스와 관련한 다음 <처리 조건>에 부합하는 SQL문을 작성하시오.
<처리 조건>
1. 테이블명은 학생으로 정의한다.
2. 학생 테이블의 구조는 다음과 같다.
3. 학생 테이블에 학번이 98170823, 성명이 '한국산', 학년이 3, 과목이 '경영학개론', 연락처가 '?-1234-1234'인 학생의 정보를 입력하시오.
속성명 데이터타입 비고 학번 INT PRIMARY KEY 성명 VARCHAR(20) 학년 INT 과목 VARCHAR(20) 연락처 VARCHAR(20)
4. 문자형은 싱글(작은) 따옴표로 입력하고 문장의 끝에는 세미콜론(;)을 반드시 표기하시오.
INSERT INTO 학생 VALUES(98170823, '한국산', 3, '경영학개론', '?-1234-1234');
문제 4
Q. 데이터베이스와 관련한 다음 <처리 조건>에 부합하는 SQL문이 완성되도록 괄호에 적합한 옵션을 쓰시오.
<처리 조건>
- <학생> 테이블을 제거한다.
- <학생> 테이블을 참조하는 모든 데이터도 함께 제거한다.
<SQL 문>
DROP TABLE 학생 ( );
2017년 2회
문제 1
Q. 이상(Anomaly) 현상이 발생하는 원인과 종류 3가지를 쓰시오.
- 원인 : 테이블에서 일부 속성들의 종속으로 인해 데이터의 중복이 발생하고, 이 중복(Redundancy)으로 인해 테이블 조작 시 문제가 발생하는 현상
- 종류
▶ 삽입 이상(Insertion Anomaly)
▶ 삭제 이상(Deletion Anomaly)
▶ 갱신 이상(Update Anomaly)
문제 2
Q. 트랜잭션은 데이터베이스에서 하나의 논리적 기능을 수행하기 위한 일련의 연산 집합으로서 작업의 단위가 된다. 트랜잭션의 연산 ROLLBACK과 COMMIT 중 COMMIT의 개념을 간략히 설명하시오.
COMMIT 연산은 트랜잭션 처리가 정상적으로 종료되어 트랜잭션이 수행한 변경 내용을 데이터베이스에 반영하는 연산이다.
문제 3
Q. 다음 <보기>에 제시된 데이터베이스 설계 5단계를 순서대로 쓰시오.
<보기>
개념적 설계, 요구 사항 분석, 물리적 설계, 구현, 논리적 설계
요구 사항 분석, 개념적 설계, 논리적 설계, 물리적 설계, 구현
문제 4
Q. 데이터베이스와 관련한 다음 <처리 조건>에 부합하는 SQL문을 작성하시오.
<처리 조건>
- <학생> 테이블에서 이름이 Scott인 튜플을 삭제하시오.
- 문자형은 싱글(작은)따옴표로 입력하고, 문장의 끝에는 세미콜론(;)을 반드시 표기하시오.
DELETE FROM 학생 WHERE 이름 = 'Scott';
2017년 3회
문제 1
Q. 데이터 마이닝의 개념과 데이터 마이닝의 기법 중 군집화의 개념을 서술하시오.
데이터 마이닝 : 데이터 웨어하우스에 저장된 데이터 집합에서 사용자의 요구에 따라 유용하고 가능성 있는 정보를 발견하기 위한 기법
군집화 : 상호 간의 유사한 특성을 갖는 데이터들을 집단화(Clustering)하는 방법
문제 2
Q. 관계 대수에서 사용되는 순수 관계 연산자 중 DIVISION에 대한 설명이다. 다음 괄호 ( ) 안에 들어갈 알맞은 기호를 쓰시오.
두 릴레이션 R(X)와 S(Y)에 대해 Y⊆X이고, X-Y=Z라고 하면, R(X)와 R(Z, Y)는 동일한 표현이다. 이때 릴레이션 R(Z, Y)에 대한 S(Y)의 DIVISION 연산은 S(Y)의 모든 튜플에 연관되어 있는 R(Z)의 튜플을 선택하는 것으로 다음과 같이 표기한다.
[표기 형식]
R[속성r ( ) 속성s]S
문제 3
Q. 데이터베이스와 관련한 다음 <처리 조건>에 부합하도록 괄호 (1) ~ (4)를 채워 SQL문을 완성하시오.
<처리 조건>
1. 이름, 학번, 전공, 성별, 생년월일로 구성된 <학생> 테이블을 정의하는 SQL문을 작성하시시오. 단, 제약 조건은 다음과 같다.
- 이름은 NULL이 올 수 없고, 학번은 기본키다.
- 전공은 <학과> 테이블의 학과코드를 참조하는 외래키로 사용된다.
- <학과> 테이블에서 삭제가 일어나면 관련된 튜플들의 전공 값을 NULL로 만든다.
- <학과> 테이블에서 학과코드가 변경되면 전공 값도 같은 값으로 변경된다.
- 생년월일은 1980-01-01 이후의 데이터만 저장할 수 있다.
- 제약 조건의 이름은 '생년월일제약'으로 한다.
- 각 속성의 데이터형은 적당하게 지정한다. 단, 성별은 도메인 'SEX'를 사용한다.
2. SQL문의 문법은 ISO/IEC 9075 표준을 따른다.
<SQL문>
CREATE TABLE 학생 (이름 VARCHAR(15) ( 1 ), 학번 CHAR(8), 전공 CHAR(5), 성별 SEX, 생년월일 DATE, ( 2 ) KEY(학번), ( 3 ) KEY(전공) ( 4 ) 학과(학과코드) ON DELETE SET NULL, ON UPDATE CASCADE, CONSTRANT 생년월일제약 CHECK(생년월일 >= '1980-01-01'));
(1) NOT NULL
(2) PRIMARY
(3) FOREIGN
(4) REFERENCES
문제 4
Q. 데이터베이스와 관련된 용어 중 하나인 비정규화의 개념을 서술하시오.
비정규화 : 정규화로 인해 여러 개로 분해된 릴레이션들에게 원하는 정보를 얻기 위해서는 조인을 사용하여 다시 연결해야 하는데, 지나치게 자주 조인을 사용하면 응답 속도가 떨어지므로 정규화에 위배되지만 성능 향상을 위해 다시 테이블을 합쳐야 한다. 이것을 비정규화라고 한다.
2018년 1회
문제 1
Q. 다음 데이터베이스 함수 종속과 관련된 다음 설명에서 괄호(①, ②)에 가장 부합하는 답안을 쓰고 괄호(③)에는 완전 함수 종속의 개념에 대해 간단히 서술하시오.
함수 종속은 데이터의 의미를 표현하는 것으로, 현실 세계를 표현하는 제약 조건이 되는 동시에 데이터베이스에서 항상 유지되어야 할 조건이다.
어떤 릴레이션(관계) R에서 A와 B를 각각 R의 애트리뷰트(속성/column) 집합이라고 가정할 때 애트리뷰트 A의 값 각각에 대해서 시간에 관계없이 항상 애트리뷰트 B의 값이 오직 하나만 연관되어 있을 때 B는 A에 함수 종속이라 하고 A → B로 표기한다.
만약 B가 A에 종속되어 A 값을 알면 B 값을 알 수 있을 때 A를 ( ① )(이)라고 하고, B를 ( ② )(이)라고 한다.
함수 종속에는 이행적 함수 종속, 부분 함수 종속, 완전 함수 종속이 있다.
완전 함수 종속의 개념에 대해 간단히 서술하시오.
( ③ )
① 결정자(Determinant)
② 종속자(Dependent)
③ 어떤 애트리뷰트(속성)가 기본키에 대해 완전히 종속적인 경우 완전 함수 종속이라고 한다.
문제 2
Q. 다음 <처리 조건>에 유의하여 <학생> 테이블에 대한 알맞은 SQL문을 작성하시오.
<학생>
학번 이름 학년 수강과목 점수 연락처 180101 김기사 1 데이터베이스 90 123-4567 180102 박산업 2 전자계산기 80 234-5678 180103 최사무 3 정보통신 98 345-6789 180104 조합격 4 시스템분석 85 456-7890
<처리 조건>
1. 학생 테이블에서 3학년과 4학년 학생의 학번과 이름을 검색하는 SQL문을 작성하시오.
2. 원소 함수 ln을 사용하시오.
원소 함수 ln(value1, value2, ...)
3. SQL문의 끝에는 세미콜론(;)으로 표시하시오.
문제 3
Q. 다음 데이터베이스 관리 시스템의 내용을 참고하여 괄호(①, ②)에 들어갈 알맞은 DBMS 구성 요소 명칭을 작성하시오.
데이터베이스 관리 시스템(Database Management System : DBMS)이란 응용 프로그램과 데이터베이스 사이의 중재자로서 사용자의 요구사항에 효율적으로 서비스를 수행하기 위하여 제공되는 데이터베이스 관리 소프트웨어이다. DBMS는 물리적인 데이터 저장 구조와 외부 인터페이스 사이의 다양한 소프트웨어들로 구성되어 있다.
① DDL 컴파일러 / DDL 처리기 / DDL 번역기 (한 가지 선택)
② 트랜잭션 관리자
문제 4
Q. 데이터베이스와 관련된 다음 설명 중, 괄호(①, ②, ③)에 들어갈 가장 적합한 용어를 쓰시오.
회복(Recovery)은 트랜잭션들을 실행하는 도중 장애(Failure)가 발생하여 데이터베이스가 손상되었을 경우 손상되기 이전의 정상 상태로 복구하는 작업이다.
- 실행 장애(Action Failure) : 사용자의 실수, 무결성 규정 위반 등으로 질의 실행이 실패하는 현상
- 트랜잭션 장애(Transaction Failure) : 트랜잭션 내부에서 입력 데이터 오류, 불명확한 데이터, 시스템 자원 요구의 과다 등 비정상적인 상황으로 인하여 트랜잭션 실행이 중지되는 현상
- ( ① ) 장애(System Failure) : 데이터베이스에는 손상을 입히지 않으나 하드웨어 오동작, 정전, 소프트웨어(운영체제나 DBMS 등) 오류, 교착 상태 등에 의해 실행중인 모든 트랜잭션들이 더 이상 실행을 계속할 수 없는 현상
- 미디어 장애(Media Failure) : 저장 장치인 디스크 블록의 손상이나 디스크 헤드의 충돌 등에 의해 데이터베이스 일부 또는 전부가 물리적으로 손상되는 현상
회복 관리기는 로그(Log), 메모리 ( ② ) 등을 이용하여 회복 기능을 수행하는 DBMS의 핵심 구성 요소이다. 회복 관리기는 트랜잭션 실행이 성공적으로 완료되지 못하면 로그를 이용하여 트랜잭션이 데이터베이스에 생성했던 모든 변화를 취소(Undo)시켜서, 트랜잭션 실행 이전의 원래 상태로 되돌리는 역할을 담당한다.
회복 기법의 종류는 다음과 같다.
- 연기 갱신(Deferred Update) 기법 : 연기 갱신 기법은 트랜잭션이 성공적으로 종료될 때까지 데이터베이스에 대한 실질적인 갱신을 연기하는 기법이다.
- 즉각 갱신(Immediate Update) 기법 : 즉각 갱신 기법은 트랜잭션이 데이터를 변경하면 트랜잭션이 부분 완료되기 전이라도 즉시 실제 데이터베이스에 반영하는 기법이다.
- 그림자 페이지(Shadow Paging) 기법 : 그림자 페이지 기법은 갱신 이전의 데이터베이스를 일정 크기의 페이지 단위로 구성하여 각 페이지마다 복사본인 그림자 페이지로 별도 보관해 두고, 실제 페이지를 대상으로 트랜잭션에 대한 변경 작업을 수행하는 기법이다.
- ( ③ ) 기법 : 시스템 장애가 발생하였을 경우, Redo와 Undo를 수행하기 위해 로그 전체를 조사해야 하는 경우를 피하기 위한 기법이다.
① 시스템(System)
② 덤프(Dump)
③ 검사점(Check Point)
2018년 2회
문제 1
Q. 다음 데이터베이스의 DCL(Data Control Language)과 관련된 다음 설명에서 괄호(① ~ ④)에 가장 적합한 답을 쓰시오.
DCL은 데이터의 보안, 무결성, 회복, 병행 제어 등을 정의하는 데 사용하는 언어이다. DCL은 데이터베이스관리자(DBA)가 데이터 관리를 목적으로 사용한다.
DCL의 유형 중, ( ① )은(는) 트랜잭션의 모든 변경 내용들을 영구적으로 데이터베이스에 반영하는 명령어이다. 트랜잭션이 성공적으로 끝나면 데이터베이스가 새로운 일관성(Consistency) 상태를 가지기 위해 수행된 모든 변경을 데이터베이스에 반영하여 ( ① )하여야 한다.
DCL의 유형 중, ( ② )은(는) 변경된 모든 내용들을 취소하고 데이터베이스를 이진 상태로 되돌리는 명령어이다. 트랜잭션의 일부를 성공적으로 끝내지 못하면 데이터베이스가 비일관성(Inconsistency)인 상태를 가질 수 있기 때문에(즉 트랜잭션이 수행한 일부 변경이 데이터베이스에 반영될 가능성이 있기 떄문에) 일부분만 ( ① )된 트랜잭션은 ( ② )되어야 한다.
DCL의 유형 중, ( ③ )은(는) 데이터베이스 관리자가 데이터베이스 사용자에게 권한을 부여하는 명령어이며, ( ④ )은(는) 권한을 취소하기 위한 명령어이다. 부여할 수 있는 권한의 종류에는 ALL, SELECT, INSERT, DELETE, UPDATE, ALTER 등이 있다. ( ③ )와(과) ( ④ )의 추가적인 옵션 중 권한 취소 시 권한을 부여받았던 사용자가 다른 사용자에게 부여한 권한도 연쇄적으로 취소하는 옵션은 ( ⑤ )이다.
① COMMIT
② ROLLBACK
③ GRANT
④ REVOKE
⑤ CASCADE
문제 2
Q. 스키마와 관련한 다음 설명에서 괄호(①~③)에 가장 적합한 답을 쓰시오.
스키마는 데이터베이스의 구조와 제약 조건에 관한 전반적인 명세(Specification)를 의미하며, 데이터베이스를 구성하는 데이터 개체(Entity), 속성(Attribute), 관계(Relationship) 및 데이터 조작 시 데이터 값들이 갖는 제약 조건 등에 관해 전반적으로 정의한다.
( ① )은(는) 사용자나 응용 프로그래머가 각 개인의 입장에서 필요로 하는 데이터베이스의 논리적 구조를 정의한 것이다. 전체 데이터베이스의 한 논리적인 부분으로 볼 수 있으므로 서브 스키마(Sub Schema)라고도 한다. 하나의 데이터베이스 관리 시스템에는 여러 개가 존재할 수 있으며, 하나의 ( ① )은(는) 여러 개의 응용 프로그램이나 사용자에 의해 공유될 수 있다.
단순히 스키마라고 하면 ( ② )을(를) 의미하며, 개체 간의 관계와 제약 조건을 나타내고 데이터베이스의 접근 권한, 보안 정책 및 무결성 규정에 관한 명세를 정의한 것이다. 데이터베이스의 전체적인 논리적 구조로서, 모든 응용 프로그램이나 사용자들이 필요로 하는 데이터를 통합한 조직 전체의 데이터베이스 명세로서 하나만 존재한다.
( ③ )은(는) 데이터베이스의 물리적 구조를 정의한 것으로, 물리적 저장장치의 관점에서 본 전체 데이터베이스의 명세로서 하나만 존재한다. ( ② )의 물리적 저장 구조에 대한 정의를 기술하고, 시스템 프로그래머나 시스템 설계자가 보는 관점의 스키마이다.
① 외부 스키마(External Schema)
② 개념 스키마(Conceptual Schema)
③ 내부 스키마(Internal Schema)
문제 3
Q. <학생> 테이블에 최대 3문자로 구성되는 학년 속성을 추가하는 SQL문의 괄호(1), (2)를 채워 SQL문을 완성하시오.
<SQL문>
( 1 ) TABLE 학생 ( 2 ) 학년 VARCHAR(3);
① ALTER
② ADD
문제 4
Q. 관계대수와 관련한 다음 설명에서 괄호 (① ~ ④)에 가장 적합한 답을 쓰시오.
관계대수는 관계형 데이터베이스에서 원하는 정보와 그 정보를 어떻게 유도하는가를 기술하는 절차적 언어이다. 관계대수는 하나 또는 두 개의 릴레이션을 입력으로 받아들여 결과로서 새로운 릴레이션을 생성해내는 연산들의 집합이다. 관계대수의 연산에는 기본 연산인 SELECT, PROJECT, JOIN, DIVISION 등과 집합 연산인 UNION, DIFFERENCE, INTERSECTION, CARTESIAN, PRODUCT 등이 있다.
순수 관계 연산자와 일반 집합 연산자에서 사용하는 연산 기호
구분 연산자 연산 기호 순수 관계 연산자 SELECT ( ① ) PROJECT ( ② ) JOIN ( ③ ) DIVISION ( ④ ) 일반 집합 연산자 합집합(UNION) ( ⑤ ) 교집합(INTERSECTION) ( ⑥ ) 차집합(DIFFERENCE) ( ⑦ ) 카티션 프로덕트(CARTESIAN PRODUCT) ( ⑧ )
① σ
② π
③ ▷◁
④ ÷
⑤ ∪
⑥ ∩
⑦ -
⑧ ×
2018년 3회
문제 1
Q. <학생> 테이블을 참고하여 다음의 각 질문에서 요구하는 답을 쓰시오.
<학생>
학번 이름 학년 16212060 이해준 1 15212066 조은별 3 15212022 박지영 2 132112031 양세옥 4 14212054 이범용 2 12212001 곽광진 1 13212052 김태균 3
(1) 다음 SQL문의 실행 결과로 표시되는 레코드의 개수를 쓰시오.
SELECT COUNT(*) FROM 학생 WHERE 학년=4;
(2) <학생> 테이블에서 이름이 '이'로 시작하는 학생들의 학번을 검색하되, 학년을 기준으로 내림차순으로 출력하는 SQL문을 쓰시오.
(1) 1
(2) SELECT 학번 FROM 학생 WHERE 이름='이%' ORDER BY 학년 DESC;
문제 2
Q. 다음 관계형 데이터 모델과 관련된 다음 설명에서 괄호(① ~ ⑥)에 가장 적합한 답을 쓰시오.
관계형 데이터 모델은 데이터를 테이블(Table) 또는 릴레이션(Relation)의 구조로 표현하는 논리적 데이터 모델이다. 관계형 데이터 모델에서는 데이터를 원자 값(Atomic Value)으로 갖는 이차원의 테이블로 표현하는데, 이를 릴레이션이라 한다. 릴레이션의 구조는 물리적인 저장 구조를 나타내는 것이 아닌 논리적 구조이므로 다양한 정렬 기준을 통하여 릴레이션을 표현할 수 있다.
릴레이션은 구조를 나타내는 릴레이션 스키마(Relation Schema)와 실제 값들인 릴레이션 인스턴스(Relation Instance)로 구성된다. 릴레이션의 열을 속성 또는 ( ① )(이)라 하고, 행을 ( ② )(이)라 한다. 릴레이션에서 하나의 ( ① )이(가) 취할 수 있는 같은 타입의 원자(Atomic) 값들의 집합을 ( ③ )(이)라고 한다. ( ③ )은(는) 실제 ( ① ) 값이 나타날 때 그 값의 합법 여부를 시스템이 검사하는 데에도 이용된다.
<학생> 릴레이션
학번 이름 학년 신장 학과 15001 홍길동 2 170 CD 15002 이순신 1 169 CD 14012 임꺽정 2 180 ID 15032 장보고 4
- ( ① ) : 데이터베이스를 구성하는 가장 작은 논리적 단위이며, 파일 구조상의 데이터 항목 또는 데이터 필드에 해당한다. <학생> 릴레이션의 ‘학번’, ‘이름’, ‘학년’, ‘신장’, ‘학과’가 여기에 속한다.
- ( ② ) : 릴레이션을 구성하는 각각의 행을 말하며, ( ① )의 모임으로 구성된다. 파일 구조에서 레코드와 같은 의미이다. <학생> 릴레이션의 ‘15001’, ‘홍길동’, ‘2’, ‘170’, ‘CD’가 하나의 ( ② )(이)다.
- ( ③ ) : <학생> 릴레이션에는 표시되지 않았으나 ‘학년’에 1~4의 숫자 값만을 저장하도록 제한해 두었다면 이것이 ( ③ )이(가) 된다.
- ( ④ ) : 데이터베이스에서 아직 알려지지 않거나 모르는 값으로서 ‘해당 없음’ 등의 이유로 정보 부재를 나타내기 위해 사용하는, 이론적으로 아무것도 없는 특수한 데이터를 말한다. <학생> 릴레이션에서 ‘장보고’ 학생의 데이터 중 비어있는 ‘신장’과 ‘학과’의 값이 이에 해당한다.
- ( ⑤ ) : ( ① )의 수를 의미하는 용어로, <학생> 릴레이션에서 ( ⑤ )은(는) 5다.
- ( ⑥ ) : ( ② )의 수를 의미하는 용어로, <학생> 릴레이션에서 ( ⑥ )은(는) 4다.
① 애트리뷰트(Attribute) / 컬럼(Column)
② 튜플(Tuple) / 로우(Row)
③ 도메인(Domain)
④ 널(NULL)
⑤ 차수 / 디그리(Degree)
⑥ 카디널리티(Cardinality) / 기수 / 대응수
2019년 1회
문제 1
Q. SQL과 관련한 다음 설명에서 괄호(①~②)에 가장 적합한 답을 쓰시오.
관계형 데이터베이스에서 사용되는 SQL은 데이터베이스의 조작과 관리에 사용되는 프로그래밍 언어이다. 1974년 IBM 연구소에서 개발한 SEQUEL에서 유래한 SQL은 국제표준 데이터베이스 언어이며, 많은 회사에서 관계형 데이터베이스(RDB)를 지원하는 언어로 채택하고 있다. 관계대수와 관계해석을 기초로 한 혼합 데이터 언어이며, 데이터 구조의 정의, 데이터 조작, 데이터 제어 기능을 모두 갖추고 있다.
DCL은 이러한 SQL에서 데이터 관리를 목적으로 사용하는 언어이다. 주로 데이터의 보안, 무결성, 회복, 병행 수행 제어 등을 정의하는 데 사용된다. 그 중 ( ① )은(는) 데이터베이스 사용자에게 사용 권한을 부여하는데 사용하는 명령어이다.
( ① )은(는) ALL, SELECT, INSERT, DELETE, UPDATE, INDEX, ALTER 등의 다양한 권한을 다른 사용자에게 부여할 수 있으며, 부여받을 권한을 다른 사용자에게 다시 부여할 수 있는 권한을 부여하는 WITH GRANT OPTION 또한 존재한다.
예) GILDONG에게 STUDENT 테이블에 대한 모든 권한과 다른 사람에게도 권한을 부여할 수 있는 권한까지 부여한다.
( 1 ) ALL ON STUDENT TO GILDONG WITH GANT OPTION;
이와 반대로 부여된 권한을 취소하는 명령어는 ( ② )(이)라고 한다. 취소할 수 있는 권한의 종류는 ( ① )와(과) 동일하다. ( ② )(에)는 WITH GRANT OPTION을 취소할 수 있는 GRAND OPTION FOR가 있으며, 권한 해제 시 권한을 부여받았던 사용자가 다른 사용자에게 부여한 권한도 연쇄적으로 해제시키는 CASCADE가 있다.
예) GILDONG에게 부여된 STUDENT 테이블에 대한 권한은 유지하고, 다른 사용자에게 권한을 부여할 수 있는 권한만 취소한다.
( 2 ) GRANT OPTION FOR ALL ON STUDENT FROM GILDONG;
① GRANT
② REVOKE
문제 2
Q. 데이터베이스와 관련한 다음 설명에서 각 지문 ①~⑥에 가장 적합한 답을 쓰시오.
( ① )은(는) 기존의 관리 방법이나 분석 체계로는 처리하기 어려운 막대한 양의 정형 또는 비정형 데이터 집합으로, 스마트 단말의 빠른 확산, 소셜 네트워크 서비스의 활성화, 사물 네트워크의 확대로 데이터 폭발이 더욱 가속화됨에 따라 등장하였다. ( ① )이(가) 주목받고 있는 이유는 기업이나 정부, 포털 등이 ( ① )을(를) 효과적으로 분석하여 미래를 예측해 최적의 대응 방안을 찾고, 이를 수익으로 연결하여 새로운 가치를 창출할 수 있기 때문이다.
이렇게 실시간으로 발생하는 대용량의 연속적인 데이터의 흐름을 관리하는 시스템을 ( ② )(이)라고 한다. 연속적인 데이터의 흐름을 데이터 스트림이라고 하는데, ( ② )은(는) 이러한 데이터 스트림에 대해 등록된 질의를 연속으로 수행할 수 있도록 대용량의 데이터 스트림 처리에 최적화되어 있다.
데이터를 데이터베이스에 저장할 때 불필요하게 중복되어 릴레이션 조작 시 예기치 못한 곤란한 현상이 발생하는 것을 ( ③ )(이)라고 한다. 의도와는 상관없이 원하지 않은 값들이 삽입되거나, 삭제되거나, 갱신 시 모순이 발생하는 현상들이 모두 ( ③ )에 해당한다.
이러한 ( ③ )을(를) 방지하기 위해 데이터들의 중복성 및 종속성을 배제하는 정규화를 수행한다. 테이블에 속한 모든 속성의 도메인이 원자 값만으로 되어 있는 정규형을 1NF라고 한다. 아래 그림은 1NF에서 ( ④ )을(를) 제거하여 ( ⑤ )을(를) 만드는 과정이다.
<Table R>
A(key) B(key) C D A345 1001 Seoul Pmre D347 1001 Busan Preo A210 1007 Gwangju Ciqen A345 1007 Seoul Esto B230 1007 Busan Loid D347 1201 Busan Preo
<Table R의 함수적 종속 관계>
↓
A, B → C, D
( ⑥ )
<Table R1>
A(key) B(key) D A345 1001 Pmre D347 1001 Preo A210 1007 Ciqen A345 1007 Esto B230 1007 Loid D347 1201 Preo
<Table R2>
A(key) C A345 Seoul D347 Busan A210 Gwangju B230 Busan
<Table R>에서 함수적 종속관계를 보았을 때, C는 key에 해당하는 A와 B중 A에만 종속되는 ( ④ )이므로 C를 테이블에서 분리하면 <Table R1>과 <Table R2>와 같이 ( ⑤ )에 해당하는 테이블이 완성된다.
① 빅데이터(Big Data)
② 데이터 스트림 관리 시스템(Data Stream Management System : DSMS)
③ 이상(Anomaly)
④ 부분 함수 종속 / 부분 함수적 종속
⑤ 제 2정규형 / 2NF
⑥ A → C
문제 3
Q. 다음 릴레이션에 대한 (1), (2)의 물음에 답하시오.
릴레이션 <사원>
고객번호 이름 성별 주소 001 이동규 남 서울시 002 방지혜 여 춘천시 003 한동욱 남 안산시
(1) <사원> 릴레이션의 차수는 얼마인가?
(2) <사원> 릴레이션의 카디널리티는 얼마인가?
(1) 4
(2) 3
문제 4
Q. 다음 트랜잭션과 관련된 다음 설명에서 괄호 ( )에 공통으로 들어갈 가장 적합한 답을 쓰시오.
트랜잭션은 데이터베이스에서 하나의 논리적 기능을 수행하기 위한 일련의 연산 집합으로서 작업의 단위이며, 데이터베이스 관리 시스템에서 회복 및 병행 수행 시 처리되는 작업의 논리적 단위이다. 하나의 트랜잭션은 정상적으로 종료될 경우 COMMIT 연산이 수행되어 변경 내용을 데이터베이스에 반영하며, 비정상적으로 종료될 경우 ROLLBACK 연산이 수행되어 모든 변경 작업을 취소하고 이전상태로 되돌린다.
이러한 트랜잭션이 갖추어야 할 특성으로는 ( ), 원자성(Atomicity), 일관성(Consistency), 영속성(Durability)이 있다.
( )은(는) 한 트랜잭션이 데이터를 갱신하는 동안 이 트랜잭션이 완료되기 전에는 갱신중인 데이터를 다른 트랜잭션들이 접근하지 못하도록 하는 성질이다. 여러 트랜잭션들이 동시에 수행되어도 그 결과는 순차적으로 실행된 결과와 같아야 함을 의미한다. 예를 들어 A계좌와 B계좌가 존재하여 A계좌에서 B계좌로 일정 금액을 이체하는 트랜잭션을 수행할 때 다른 트랜잭션이 A계좌와 B계좌에 접근할 수 없어야 한다.
독립성(Isolation) / 격리성
2019년 2회
문제 1
Q. 다음 <회원> 릴레이션에서 대체키에 해당하는 속성의 개수를 적으시오. 단, 밑줄이 그어진 속성은 기본키로 지정된 속성이다.
<회원>
ID 이름 소속 지역 전화번호 2009001 허진욱 테니스 수원 010-5146-7812 2009112 김춘삼 테니스 서울 010-9711-1845 2010323 신민주 탁구 인천 010-4848-7915 2017794 임꺽정 야구 성남 010-5348-8776 2018655 김형규 볼링 서울 NULL
1개
*[이름] : 속성 값 중 중복된 값이 없으므로 대체키에 해당한다.
*[전화번호] : NULL이 있으므로 대체키에 해당하지 않는다.
문제 2
Q. 다음 데이터베이스 관리 시스템의 내용을 참고하여 괄호(①, ②)에 들어갈 알맞은 DBMS 구성 요소 명칭을 작성하시오.
데이터베이스 관리 시스템(Database Management System : DBMS)이란 응용 프로그램과 데이터베이스 사이의 중재자로서 사용자의 요구사항에 효율적으로 서비스를 수행하기 위하여 제공되는 데이터베이스 관리 소프트웨어이다. DBMS는 물리적인 데이터 저장 구조와 외부 인터페이스 사이의 다양한 소프트웨어들로 구성되어 있다.
① DDL 컴파일러 / DDL 처리기 / DDL 번역기
② 트랜잭션 관리자
문제 3
Q. 다음 <SCORE> 테이블에 대해 <SQL>을 수행한 결과를 적으시오.
<SCORE>
DEPT DB TERM ALGO 001 100 NULL 100 002 NULL NULL 0 003 100 100 200
<SQL>
SELECT SUM(DB) FROM SCORE; SELECT SUM(TERM) FROM SCORE; SELECT SUM(ALGO) FROM SCORE;
200, 100, 300
문제 4
Q. 데이터베이스와 관련한 다음 <처리 조건>에 부합하는 SQL문을 작성하시오.
<처리 조건>
1. 테이블명은 학생으로 정의한다.
2. 학생 테이블의 구조는 다음과 같다.
속성명 데이터 타입 비고 학번 INT PRIMARY KEY 성명 VARCHAR(20) 학년 INT 과목 VARCHAR(20) 연락처 VARCHAR(20)
3. 학생 테이블에 학번이 193739, 성명이 '홍길동', 학년이 3, 과목이 '경영학개론', 연락처가 '010-1234-1234'인 학생의 정보를 입력하시오.
4. 문자형은 싱글(작은)따옴표로 입력하고, 문장의 끝에는 세미콜론(;)을 반드시 표기하시오.
INSERT INTO 학생 VALUES(193793, '홍길동', 3, '경영학개론', '010-1234-1234');
문제 5
Q. 다음은 T1~T5의 트랜잭션이 병행 처리되는 과정에서 시스템 오류로 시스템 장애(System Failure)가 발생한 상황을 <그림>으로 나타낸 것이다. 시스템 회복을 위해 REDO와 UNDO를 수행한다고 가정했을 때, REDO와 UNDO가 수행되는 트랜잭션을 적으시오. 단, 각 트랜잭션의 왼쪽과 오른쪽 끝의 원은 각 시작과 완료를 의미한다.
<그림>
- REDO : T2, T4
- UNDO : T3, T5*REDO : 트랜잭션의 시작(start)과 완료(commit)에 대한 기록이 있는 트랜잭션들의 작업을 재작업한다.
*UNDO : 트랜잭션의 시작을 나타내는 'start'는 있지만, 완료를 나타내는 'commit' 기록이 없는 트랜잭션들이 작업한 변경 내용들을 모두 취소한다.
2020년 1회
문제 1
Q. 다음은 트랜잭션의 특징이다. 괄호(①, ②)에 들어갈 알맞은 특징을 쓰시오.
( ① ) 트랜잭션의 연산은 데이터베이스에 모두 반영되도록 완료(Commit)되든지 아니면 전혀 반영되지 않도록 복구(Rollback)되어야 한다. (All or Nothing) 일관성 트랜잭션이 그 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태로 변환한다. ( ② ) 둘 이상의 트랜잭션이 동시에 병행 실행되는 경우 어느 하나의 트랜잭션 실행 중에 다른 트랜잭션의 연산이 끼어들 수 없다. 지속성 성공적으로 완료된 트랜잭션의 결과는 시스템이 고장나더라도 영구적으로 반영되어야 한다.
① 원자정(Atomicity)
② 독립성(Isolation)
문제 2
Q. 데이터베이스에서 비정규화(Denormalization)의 개념을 설명하시오.
비정규화란 정규화된 데이터 모델을 통합, 중복, 분리하는 과정으로, 의도적으로 정규화 원칙을 위배하는 행위이다.
문제 3
Q. 학생(STUDENT) 테이블에 전기과 학생이 50명, 전산과 학생이 100명, 전자과 학생이 50명 있다고 할 때, 다음 SQL문 ①~③의 실행 결과로 표시되는 튜플의 수를 쓰시오. (단, DEPT 필드는 학과를 의미한다.)
① SELECT DEPT FROM STUDENT; ② SELECT DISTINCT DEPT FROM STUDENT; ③ SELECT COUNT(DISTINCT DEPT) FROM STUDENT WHERE DEPT='전산과';
① 200
② 3
③ 1
문제 4
Q. 데이터 마이닝(Data Mining)의 개념을 설명하시오.
데이터 마이닝은 데이터 웨어하우스에서 저장된 데이터 집합에서 사용자의 요구에 따라 유용하고 가능성 있는 정보를 발견하기 위한 기법이다.
2020년 2회
문제 1
Q. 다음 <학생> 테이블을 참고하여 <처리조건>에서 요구하는 SQL문을 작성하시오.
<학생>
학번
(varchar)이름
(varchar)학년
(number)수강과목
(varchar)점수
(number)연락처
(varchar)20E0232 김인영 3 세무행정 45 010-5412-4544 19D0024 이성화 2 토목개론 3 010-1548-4796 20E0135 성유수 4 실용법학 3.5 010-9945-7411 20E0511 우인혁 1 데이터론 2 010-3451-4972
<처리 조건>
- 3, 4학년의 학번, 이름을 조회한다.
- IN 예약어를 사용해야 한다.
- 속성명 아래의 괄호는 속성의 자료형을 의미한다.
SELECT 학번, 이름 FROM 학생 WHERE 학년 IN (3, 4);
문제 2
Q. 데이터를 제어하는 DCL의 하나인 ROLLBACK에 대해 간략히 서술하시오.
트랜잭션이 실패한 경우, 작업을 취소하고 이전 상태로 되돌리기 위해 사용하는 명령어
문제 3
Q. 다음 <student> 테이블을 참고하여 'name' 속성으로 'idx_name'이라는 인덱스를 생성하는 SQL문을 작성하시오.
<student>
stid name score deptid 2001 brown 85 PE01 2002 white 45 EF03 2003 black 67 UW11
CREATE INDEX idx_name ON student(name);
문제 4
Q. 보안 위협의 하나인 SQL Injection에 대해 간략히 서술하시오.
웹 응용 프로그램에 SQL 구문을 삽입하여 내부 데이터베이스(DB) 서버의 데이터를 유출 및 변조하고 관리자 인증을 우회하는 공격 기법
문제 5
Q. 다음은 데이터베이스 구축까지의 과정을 나열한 것이다. 괄호에 들어갈 알맞은 답을 쓰시오.
요구 분석 → ( ) → ( ) → ( ) → 구현
개념적 설계, 논리적 설계, 물리적 설계
2020년 3회
문제 1
Q. <학생> 테이블에서 '이름'이 "민수"인 튜플을 삭제하고자 한다. 다음 <처리조건>을 참고하여 SQL문을 작성하시오.
<처리 조건>
- 명령문의 마지막의 세미콜론(;)은 생략이 가능하다.
- 인용 부호가 필요한 경우 작은 따옴표(' ')를 사용한다.
문제 2
Q. 데이터베이스의 스키마(Schema)에 대해 간략히 서술하시오.
데이터베이스의 구조와 제약 조건에 관한 전반적인 명세를 기술한 것
문제 3
Q. 다음에서 설명하는 관계 대수 연산자의 기호를 쓰시오.
릴레이션 A, B가 있을 때 릴레이션 B의 조건에 맞는 것들만 릴레이션 A에서 분리하여 프로젝션을 하는 연산이다.
문제 4
Q. 다음의 <성적> 테이블에서 과목별 점수의 평균이 90점 이상인 '과목이름', '최소점수', '최대점수'를 검색하고자 한다. <처리조건>을 참고하여 적합한 SQL문을 작성하시오.
<성적>
학번 과목번호 과목이름 학점 점수 a2001 101 컴퓨터구조 6 95 a2002 101 컴퓨터구조 6 84 a2003 302 데이터베이스 5 89 a2004 201 인공지능 5 92 a2005 302 데이터베이스 5 100 a2006 302 데이터베이스 5 88 a2007 201 인공지능 5 93
<결과>
과목이름 최소점수 최대점수 데이터베이스 88 100 인공지능 92 93
<처리 조건>
- WHERE 문은 사용하지 않는다.
- GROUP BY와 HAVING을 이용한다.
- 집계함수(Aggregation Function)를 사용하여 명령문을 구성한다.
- '최소점수', '최대점수'는 별칭(Alias)을 위한 AS문을 이용한다.
- 명령문의 마지막의 세미콜론(;)은 생략이 가능하다.
- 인용 부호가 필요한 경우 작은 따옴표(' ')를 사용한다.
SELECT 과목이름, MIN(점수) AS 최소점수, MAX(점수) AS 최대점수 FROM 성적 GROUP BY 과목이름 HAVING AVG(점수) >= 90;
문제 5
Q. 다음 <속성 정의서>를 참고하여 <학생> 테이블에 대해 20자의 가변 길이를 가진 '주소' 속성을 추가하는 <SQL문>을 완성하시오. (단, SQL문은 ISO/IEC 9075 표준을 기반으로 작성하시오.)
<속성 정의서>
속성명 데이터타입 제약조건 테이블명 학번 CHAR(10) UNIQUE 학생 이름 VARCHAR(8) NOT NULL 학생 주민번호 CHAR(13) 학생 학과 VARCHAR(16) FOREIGN KEY 학생 학년 INT 학생
<SQL문>
( 1 ) TABLE 학생 ( 2 ) 주소 VARCHAR(20);
(1) ALTER
(2) ADD
2020년 4,5회
문제 1
Q. 데이터베이스의 회복(Recovery) 기법에 관련된 다음 설명에서 괄호에 들어갈 알맞은 답을 쓰시오.
( )은 트랜잭션이 데이터를 변경하면 트랜잭션이 부분 완료되기 전이라도 즉시 실제 DB에 그 내용을 반영하는 기법으로, 장애가 발생하여 회복 작업할 경우를 대비하여 갱신된 내용들을 로그(Log)에 보관시킨다. ( )에서 회복작업을 수행할 경우 Redo 와 Undo 모두 수행이 가능하다.
즉각 갱신 기법
문제 2
Q. 질의 내용에 대한 SQL문을 완성하시오.
<질의>
학생 테이블에서 학과별 튜플의 개수를 검색하시오. (단, 아래의 실행 결과가 되도록 한다.)
<학생>
학번 이름 학년 학과 주소 20160011 김영란 2 전기 서울 19210113 이재우 3 컴퓨터 대구 21168007 함소진 1 전자 부산 19168002 우혜정 3 전자 광주 18120073 김진수 4 컴퓨터 울산
<실행 결과>
학과 학과별튜플수 전기 1 컴퓨터 2 전자 2
<처리 조건>
- WHERE 조건절은 사용할 수 없다.
- GROUP BY는 반드시 포함한다.
- 집계함수(Aggregation Function)를 적용한다.
- 학과별튜플수 컬럼이름 출력에 Alias(AS)를 활용한다.
- 문장 끝의 세미콜론(;)은 생략해도 무방하다.
- 인용 부호 사용이 필요한 경우 단일 따옴표(' ' : Single Quotation)를 사용한다.
SELECT 학과, COUNT(*) AS 학과별튜플수 FROM 학생 GROUP BY 학과;
문제 3
Q. 데이터베이스의 이상(Anomaly)의 종류 3가지를 쓰시오.
삽입 이상(Insertion Anomaly), 삭제 이상(Deletion Anomaly), 갱신 이상(Update Anomaly)
문제 4
Q. 데이터베이스 보안에서 가용성(Availability)에 대해 간략히 서술하시오.
가용성은 인가받은 사용자는 시스템 내의 정보와 자원을 언제라도 사용할 수 있다는 보안 요건이다.
2021년 1회
문제 1
Q. 데이터베이스 설계에 대한 다음 설명에서 괄호(①~③)에 들어갈 알맞은 답을 쓰시오.
( ① ) : 논리적 구조로 표현된 데이터를 디스크 등의 저장장치에 저장할 수 있는 데이터로 변환하는 과정으로, 파일의 저장 구조 및 액세스 경로를 결정하며, 테이블 정의서 및 명세서가 산출된다.
( ② ) : 현실 세계에 대한 인식을 추상적 개념으로 표현하는 과정으로, 개념 스키마 모델링과 트랜잭션 모델링을 수행하며, 요구 조건 명세를 E-R 다이어그램으로 작성한다.
( ③ ) : 현실의 자료를 특정 DBMS가 지원하는 자료구조로 변환하는 과정으로, 트랜잭션의 인터페이스를 설계하고, 정규화를 통해 스키마를 평가 및 정제한다.
① 물리적 설계
② 개념적 설계
③ 논리적 설계
문제 2
Q. <EMP_TBL> 테이블을 참고하여 <SQL문>의 실행 결과를 쓰시오.
<EMP_TBL>
EMPNO SAL 100 1500 200 3000 300 2000
<SQL문>
SELECT COUNT(*) FROM EMP_TBL WHERE EMPNO > 100 AND SAL >= 3000 OR EMPNO = 200;
1
문제 3
Q. 다음 테이블에서 카디널리티(Cardinality)와 디그리(Degree)를 구하시오.
<회원>
ID 이름 거주지 신청강의 191-SR05 백영현 마포구 E01 024-RU09 차수인 관악구 S03 181-SQ03 허채빈 서대문구 E02 059-RL08 윤지호 광진구 S03 029-SX07 배서희 서대문구 E02
- 카디널리티(Cardinality) : 5
- 디그리(Degree) : 4
문제 4
Q. 데이터 모델의 구성요소에 대한 다음 설명에서 괄호(①, ②)에 들어갈 알맞은 답을 쓰시오.
1. ( ① )은 데이터베이스에 저장된 실제 데이터를 처리하는 작업에 대한 명세로서 데이터베이스를 조작하는 기본 도구에 해당한다.
2. ( ② )는 논리적으로 표현된 객체 타입들 간의 관계로서 데이터의 구성 및 정적 성질을 표현한다.
3. 제약 조건은 데이터베이스에 저장될 수 있는 실제 데이터의 논리적인 제약 조건을 의미한다.
① 연산(Operation)
② 구조(Structure)
문제 5
Q. 데이터베이스 보안에 관련된 다음 설명에 해당하는 용어를 쓰시오.
접근 통제는 데이터가 저장된 객체와 이를 사용하려는 주체 사이의 정보 흐름을 제한하는 것이다. 이러한 접근 통제에 관한 기술 중 ( )는 데이터에 접근하는 사용자의 신원에 따라 접근 권한을 부여하여 제어하는 방식으로, 데이터의 소유자가 접근 통제 권한을 지정하고 제어한다. 객체를 생성한 사용자가 생성된 객체에 대한 모든 권한을 부여받고, 부여된 권한을 다른 사용자에게 허가할 수도 있다.
임의 접근 통제(DAC, Discretionary Access Control)
2021년 2회
문제 1
Q. 데이터베이스에 상태 변화를 일으키는 트랜잭션(Transaction)의 특성 중, 원자성(Atomicity)에 대해 간략히 서술하시오.
트랜잭션의 연산은 데이터베이스에 모두 반영되도록 완료(Commit)되든지 아니면 전혀 반영되지 않도록 복구(Rollback)되어야 한다는 특성이다.
문제 2
Q. 데이터베이스에 대한 다음 설명에서 괄호에 공통으로 들어갈 알맞은 답을 쓰시오.
테이블을 만들 때는 이상(Anomaly)을 방지하기 위해 데이터들의 중복성 및 종속성을 배제하는 정규화를 수행한다. 아래 그림은 부분 함수적 종속을 제거하여 제 ( ) 정규형을 만드는 과정이다.
<Table R>
A(key) B(key) C D A345 1001 Seoul Pmre D347 1001 Busan Preo A210 1007 Gwangju Ciqen A345 1007 Seoul Esto B230 1007 Daegu Loid D347 1201 Busan Drag
<Table R의 함수적 종속 관계>
↓
A, B → C, D
A → C
<Table R1>
A(key) B(key) D A345 1001 Pmre D347 1001 Preo A210 1007 Ciqen A345 1007 Esto B230 1007 Loid D347 1201 Drag
<Table R2>
A(key) C A345 Seoul D347 Busan A210 Gwangju B230 Daegu
<Table R>의 경우, C는 key에 해당하는 A와 B중 A에만 종속되는 부분 함수적 종속이다. 이 문제 해결을 위해 <Table R1>에서 C를 분리하여 <Table R1>과 <Table R2>로 만들면 제 ( ) 정규형에 해당하는 테이블이 완성된다.
2
문제 3
Q. SQL과 관련한 다음 설명에서 괄호(1), (2)에 들어갈 알맞은 답을 쓰시오.
UPDATE문은 테이블에 있는 튜플의 내용을 갱신할 때 사용하는 명령문으로, DML에 해당한다. 다른 DML로는 INSERT, DELETE가 있으며, 각각 새로운 튜플을 삽입하거나 삭제할 때 사용한다.
<학부생> 테이블
학부 학과번호 입학생수 담당관 정경대학 110 300 김해율 공과대학 310 250 이성관 인문대학 120 400 김해율 정경대학 120 300 김성수 인문대학 420 180 이율해
다음은 <학부생> 테이블에서 '입학생수'가 300 이상인 튜플의 '학과번호'를 999로 갱신하는 SQL문이다.
( 1 ) 학부생 ( 2 ) 학과번호 = 900 WHERE 입학생수 >= 300;
(1) UPDATE
(2) SET
문제 4
Q. 다음 <사원> 테이블과 <동아리> 테이블을 조인(Join)한 <결과>를 확인하여 <SQL문>의 괄호(1), (2)에 들어갈 알맞은 답을 쓰시오.
<사원>
코드 이름 부서 1601 김명해 인사 1602 이진성 경영지원 1731 박영광 개발 2001 이수진
<동아리>
코드 동아리명 1601 테니스 1731 탁구 2001 볼링
↓
코드 이름 동아리명 1601 김명해 테니스 1602 이진성 1731 박영광 탁구 2001 이수진 볼링
<SQL문>
SELECT a.코드, 이름, 동아리명 FROM 사원 a LEFT JOIN 동아리 b ( 1 ) a.코드 = b.( 2 );
① ON
② 코드
문제 5
Q. 다음은 <회원> 테이블에서 '이름'이 "이"로 시작하는 회원들을 '가입일' 순으로 내림차순 정렬하는 <SQL문>이다. 괄호(1), (2)에 들어갈 알맞은 답을 쓰시오.
<회원> 테이블
회원번호 이름 성별 가입일 1001 이진성 남 2021-06-23 1002 조이령 여 2021-06-24 1003 최민수 남 2021-06-28 1004 김차희 여 2021-07-03 1005 이미경 여 2021-07-10
<SQL문>
SELECT * FROM 회원 WHERE 이름 LIKE '( 1 )' ORDER BY 가입일 ( 2 );
(1) 이%
(2) DESC
문제 6
Q. 데이터베이스의 병행 제어(Concurrency Control) 기법 중 하나로, 접근한 데이터에 대한 연산을 모두 마칠 때까지 추가적인 접근을 제한함으로써 상호 베타적으로 접근하여 작업을 수행하도록 하는 기법을 쓰시오.
로킹(Locking)
2021년 3회
문제 1
Q. 데이터를 제어하는 DCL의 하나인 GRANT의 기능에 대해 간략히 서술하시오.
문제 2
Q. <A> 테이블과 <B> 테이블을 참고하여 <SQL문>의 실행 결과를 쓰시오.
<A>
NAME Smith Allen Scott
<B>
RULE S% %T%
<SQL문>
SELECT COUNT(*) CNT FROM A CROSS JOIN B WHERE A.NAME LIKE B.RULE;
4
2022년 1회
문제 1
Q. 다음 설명에 해당하는 DB의 트랜잭션 연산을 <보기>에서 찾아 적으시오.
DBMS는 데이터베이스에 치명적인 손실이 발생했을 때 이를 복구하기 위해 데이터베이스의 처리 내용이나 이용 상황 등 상태 변화를 시간 흐름에 따라 기록한 로그를 생성한다.
- ( 1 ) : 데이터베이스가 비정상적으로 종료되었을 때, 디스크에 저장된 로그를 분석하여 트랜잭션의 시작(start)와 완료(commit)에 대한 기록이 있는 트랜잭션들의 작업을 재작업한다. 즉, 로그를 이용하여 해당 데이터 항목에 대해 이전 값을 이후 값으로 변경하는 연산이다.
- ( 2 ) : 데이터베이스가 비정상적으로 종료되었을 때, 디스크에 저장된 로그를 분석하여 트랜잭션의 시작을 나타내는 'start'는 있지만, 완료를 나타내는 'commit' 기록이 없는 트랜잭션들이 작업한 내용들을 모두 취소한다. 즉, 로그를 이용하여 해당 데이터 항목에 대해 이후 값을 이전 값으로 변경한다.
<보기>
(ㄱ) ROLLBACK (ㄴ) UNDO (ㄷ) LOG (ㄹ) COMMIT (ㅁ) REDO (ㅂ) RECOVERY (ㅅ) BACKUP
(ㅇ) CHECK
(1) (ㅁ)
(2) (ㄴ)
문제 2
Q. 다음은 <성적> 테이블에서 이름(name)과 점수(score)를 조회하되, 점수를 기준으로 내림차순 정렬하여 조회하는 <SQL문>이다. 괄호(① ~ ③)에 알맞은 답을 적어 <SQL문>을 완성하시오.
<성적>
name class score 강감찬 A 85 홍길동 C 74 김기수 C 95 마동석 A 90 김유신 B 82
<SQL문>
SELECT name, score FROM 성적 ( 1 ) BY ( 2 ) ( 3 )
(2) score
(3) DESC
문제 3
Q. 데이터의 중복으로 인해 테이블 조작 시 문제가 발생하는 현상을 이상(Anomaly)이라고 한다. 이상 중 삭제 이상(Deletion Anomaly)에 대해 간략히 서술하시오.
데이터 삭제 시 원하지 않는 다른 데이터도 삭제되는 이상 현상이다.
문제 4
Q. 키(Key)에 대한 다음 설명에서 괄호(①, ②)에 들어갈 알맞은 용어를 쓰시오.
키(Key)는 데이터베이스에서 조건에 만족하는 튜플을 찾거나 순서대로 정렬할 때 기준이 되는 속성을 말한다.
- 슈퍼키(Super Key)는 한 릴레이션 내에 있는 속성들의 집합으로 구성된 키로 릴레이션을 구성하는 모든 튜플에 대해 ( ① )을 만족한다.
- 후보키(Candidate Key)는 릴레이션을 구성하는 속성들 중에서 튜플을 유일하게 식별하기 위해 사용되는 속성들의 부분집합으로, ( ① ) 과 ( ② )을 만족하는 특징이 있다.
① 유일성(Unique)
② 최소성(Minimality)
2022년 2회
문제 1
Q. 데이터베이스에 대한 다음 설명에서 괄호에 공통으로 들어갈 알맞은 용어를 쓰시오.
- ( ) 은 관계 데이터의 연산을 표현하는 방법으로 관계 데이터 모델의 제안자인 코드(E. F. Codd)가 수학의 술어 해석(Predicate Calculus)에 기반을 두고 관계 데이터베이스를 위해 제안했다.
- 원하는 정보가 무엇이라는 것만 정의하는 비절차적 특성을 지니며, 원하는 정보를 정의할 때 계산 수식을 사용한다.
- 튜플 해석식을 사용하는 튜플 ( )과 도메인 해석식을 사용하는 도메인 ( )으로 구분된다
관계 해석(Relational Calculus)
문제 2
Q. 다음은 <제품(제품명, 단가, 제조사) 테이블을 대상으로 "H" 제조사에서 생산한 제품들의 ‘단가’ 보다 높은 ‘단가’를 가진 제품의 정보를 조회하는 <SQL문> 이다. 괄호에 알맞은 답을 적어 <SQL문> 을 완성하시오.
<SQL문>
SELECT 제품명, 단가, 제조사
FROM 제품
WHERE 단가 > ( ) (SELECT 단가 FROM 제품 WHERE 제조사 = 'H');
ALL
문제 3
Q. 다음 <TABLE> 을 참조하여 <SQL문> 을 실행했을 때 출력되는 결과를 쓰시오.(<TABLE>에 표시된 ‘NULL’은 값이 없음을 의미한다.)
<TABLE>
INDEX COL1 COL2 1 2 NULL 2 4 6 3 3 5 4 6 3 5 NULL 3
<SQL문>
SELECT COUNT(COL2) FROM TABLE WHERE COL1 IN (2, 3) OR COL2 IN (3, 5);
3
문제 4
Q. 다음은 <EMPLOYEE> 릴레이션에 대해 <관계 대수식>을 수행했을 때 출력되는 <결과>이다. <결과>의 각 괄호(① ~ ③)에 들어갈 알맞은 답을 쓰시오.
<관계 대수식>
$π_{\text{TTL}} \text{(EMPLOYEE)}$
<EMPLOYEE>
INDEX AGE TTL 1 48 부장 2 25 대리 3 41 과장 4 36 차장
<결과>
① ② ③ ④ ⑤
① TTL
② 부장
③ 대리
④ 과장
⑤ 차장
문제 5
Q. 함수적 종속(Functional Dependency)에 대한 다음 설명에서 괄호(① ~ ②)에 들어갈 알맞은 용어를 <보기>에서 찾아 쓰시오. (단, 테이블 <R>의 속성 ‘학생’과 ‘학과’의 밑줄은 키(Key)임을 의미한다.)
<R>
학생 학과 성적 학년 이순신 컴퓨터공학 A+ 2 이순신 전기공학 B 2 유관순 경제학 B+ 1 강감찬 문예창작 C 3 강감찬 한국사 C+ 3 홍길동 영문학 B 4
- 테이블 <R>에서 '성적'은 기본키인 { 학생, 학과 }에 대해 ( ① ) Functional Dependency이다.
- 테이블 <R>에서 '학년'은 기본키인 { 학생, 학과 } 중 '학생'만으로 식별이 가능하므로 기본키에 대해 ( ② ) Functional Dependency이다.
- 임의의 테이블에 속성 A, B, C가 있을 때 A → B이고, B → C 일 때 A → C인 관계는 ( ③ ) Functional Dependency이다.
<보기>
(ㄱ) Hybrid (ㄴ) Multi Valued (ㄷ) Transitive (ㄹ) Full (ㅁ) Defined (ㅂ) Natural
(ㅁ) Relational (ㅇ) Partial
① (ㄹ)
② (ㅇ)
③ (ㄷ)
2022년 3회
문제 1
Q. 관계 대수에 대한 다음 설명에서 괄호(①~⑤)에 들어갈 알맞은 용어를 쓰시오.
관계대수는 관계형 데이터베이스에서 원하는 정보와 그 정보를 검색하기 위해서 어떻게 유도하는가를 기술하는 절차적인 언어이다. 관계대수에 사용되는 연산은 다음과 같다.
- 합집합(UNION)은 두 릴레이션에 존재하는 튜플의 합집합을 구하되 결과로 생성된 릴레이션에서 중복되는 튜플은 제거되는 연산으로, 사용하는 기호는 ( ① ) 이다.
- 차집합(DIFFERENCE)은 두 릴레이션에 존재하는 튜플의 차집합을 구하는 연산으로, 사용하는 기호는 ( ② ) 이다.
- 교차곱(CARTESIAN PRODUCT)은 두 릴레이션에 있는 튜플들의 순서쌍을 구하는 연산으로, 사용하는 기호는 ( ③ )이다.
- 프로젝트(PROJECT)는 주어진 릴레이션에서 속성 리스트(Attribute List)에 제시된 속성 값만을 추출하여 새로운 릴레이션을 만드는 연산으로, 사용하는 기호는 ( ④ ) 이다.
- 조인(JOIN)은 공통 속성을 중심으로 두 개의 릴레이션을 하나로 합쳐서 새로운 릴레이션을 만드는 연산으로, 사용하는 기호는 ( ⑤ ) 이다
① ∪
② -
③ ×
④ π
⑤ ⋈
문제 2
Q. 다음과 같이 테이블을 정의하고 튜플을 삽입하였을 때, 각 번호(①, ②)의 SQL문을 실행한 결과를 쓰시오.
CREATE TABLE 부서 (
부서코드 INT PRIMARY KEY,
부서명 VARCHAR(20)
);
CREATE TABLE 직원 (
직원코드 INT PRIMARY KEY,
부서코드 INT,
직원명 VARCHAR(20),
FOREIGN KEY(부서코드) REFERENCE 부서(부서코드)
ON DELETE CASCADE
);
INSERT INTO 부서 VALUES(10, '영업부');
INSERT INTO 부서 VALUES(20, '기획부');
INSERT INTO 부서 VALUES(30, '개발부');
INSERT INTO 직원 VALUES(1001, 10, '강감찬');
INSERT INTO 직원 VALUES(1002, 10, '김유신');
INSERT INTO 직원 VALUES(1003, 20, '홍길동');
INSERT INTO 직원 VALUES(1004, 20, '이순신');
INSERT INTO 직원 VALUES(1005, 20, '을지문덕');
INSERT INTO 직원 VALUES(1006, 30, '유성룡');
INSERT INTO 직원 VALUES(1007, 30, '김태백');
①
SELECT DISTINCT COUNT(부서코드) FROM 직원 WHERE 부서코드 = 20;
②
DELETE FROM 부서 WHERE 부서코드 = 20; SELECT DISTINCT COUNT(부서코드) FROM 직원;
① 3
② 4
문제 3
Q. 학생(STUDENT)테이블에 전기과 학생이 50명, 전산과 학생이 100명, 전자과 학생이 50명 있다고 할 때, 다음 SQL문 ①, ②, ③의 실행 결과로 표시되는 튜플의 수를 쓰시오.(단, DEPT 필드는 학과를 의미한다.)
① SELECT DEPT FROM STUDENT;
② SELECT DISTINCT DEPT FROM STUDENT;
③ SELECT COUNT(DISTINCT DEPT) FROM STUDENT WHERE DEPT = '전산과';
① 200
② 3
③ 1
'Certificate > DPE' 카테고리의 다른 글
[정보처리기사 실기] 2022년 정보처리기사 1회/2회 필기 기출 복원 문제 (2) | 2022.05.05 |
---|---|
[정보처리기사 실기] 단원별 핵심 키워드 정리 (0) | 2022.05.05 |
[정보처리기사 실기] 예상 문제 모음 ① (최신 경향) (6) | 2022.05.04 |
[정보처리기사 실기] 단답형/약술형 문제 모음 (7) | 2022.05.02 |
[정보처리기사 실기] 프로그래밍 기출 문제 정리 (2017년~2022년) (4) | 2022.03.27 |
[정보처리기사 실기] 개념 암기 (2) | 2022.03.26 |
[정보처리기사 실기] 시험 대비 (0) | 2022.03.06 |
[정보처리기사 실기] 12. 제품 소프트웨어 패키징 (2) | 2022.03.06 |