navis
데이터베이스 (기말 준비) 본문
1강 데이터베이스의 이해
문제 1: 파일 처리 시스템의 데이터 중복으로 발생할 수 있는 문제가 아닌 것은?
정답: 3 (통일성)
파일 처리 시스템에서는 데이터 중복을 방지할 수 없기 때문에 데이터의 보안성, 경제성, 일관성 측면에서 문제가 발생할 수 있습니다. 하지만 통일성은 데이터 중복과 직접적인 관련이 없습니다.
문제 2: 데이터베이스 3단계 구조에서 논리적 데이터 독립성이 확보되는 과정은?
정답: 4 (외부-개념 사상)
DBMS는 데이터의 추상화를 위해 외부, 개념, 내부의 3단계로 구조화됩니다. 논리적 데이터 독립성은 외부-개념 사상 과정에서 확보됩니다.
문제 3: 구조화된 데이터에 사용자가 데이터를 삽입·수정·삭제하고 저장된 데이터를 검색할 수 있도록 지원하는 데이터베이스 언어는?
정답: 데이터 조작 언어
데이터베이스 언어는 데이터 정의 언어와 데이터 조작 언어로 구분되며, 데이터 조작 언어는 구조화된 데이터에서 다양한 유형의 데이터 조작을 지원하는 명령어로 구성됩니다.
2강 데이터베이스 모델링
문제 1: 사용할 데이터를 선별하고 데이터베이스에 체계적으로 구조화하여 저장·사용할 방법을 정의할 수 있도록 데이터의 의미, 데이터 타입, 연산 등을 명시하기 위한 개념들의 집합을 무엇이라고 하는가?
정답: 4 (데이터 모델)
데이터의 의미, 데이터 타입, 연산 등을 체계적으로 표현할 수 있는 모형을 데이터 모델이라고 합니다.
문제 2: 사용자 요구사항 분석 과정의 순서로 올바른 것은?
정답: 1 (요구사항 도출 → 요구사항 분석 → 요구사항 기록)
사용자 요구사항 분석 과정은 요구사항 도출, 요구사항 분석, 요구사항 기록의 단계를 거칩니다.
문제 3: 관계 집합에 참가한 개체 집합에 대해 한 개체가 다른 개체와 관계를 맺을 수 있는 수량을 명시한 것은?
정답: 사상수 (mapping cardinality)
사상수는 관계 집합에 참가한 개체 집합에 대해 한 개체가 다른 개체와 관계를 맺을 수 있는 수량을 명시합니다.
3강 관계형 모델
문제 1: 관계형 모델에서 표와 유사하게 2차원 구조로 데이터를 표현하는 저장하는 것은?
정답: 2 (릴레이션)
관계형 모델은 2차원 구조의 표와 유사하게 데이터를 표현하는 릴레이션에 데이터를 저장합니다.
문제 2: 두 개의 릴레이션 사이에 명시되는 제약조건으로 한 릴레이션에 있는 레코드가 다른 릴레이션에 있는 레코드를 참조하려면 반드시 존재하는 릴레이션만 참조해야 한다는 제약조건을 명시한다. 다음은 무엇에 대한 설명인가?
정답: 4 (참조 무결성 제약조건)
참조 무결성 제약조건은 두 릴레이션 사이에서 명시되는 조건으로, 한 릴레이션의 레코드가 다른 릴레이션의 존재하는 레코드만을 참조해야 한다는 조건입니다.
문제 3: 다음의 ER 다이어그램을 관계형 모델로 올바르게 변환한 것은?
정답: 1
ER 다이어그램을 관계형 모델로 변환할 때, 두 개체 집합에 대응하는 릴레이션을 생성하며, 각 릴레이션의 속성을 컬럼에 대응시킵니다. 기본키와 외래키 제약조건도 변환합니다.
4강 SQL (1)
문제 1: DDL명령에서 릴레이션의 변경을 위한 명령은?
정답: 2 (ALTER TABLE)
CREATE TABLE에 의해 생성된 테이블의 구조를 변경하기 위한 SQL문은 "ALTER TABLE 테이블이름"입니다.
문제 2: 학생 테이블에서 ‘외모’ 컬럼을 삭제하시오. 다음 요청을 수행하기 위한 SQL문으로 올바른 것은?
정답: 1 (ALTER TABLE 학생 DROP COLUMN 외모)
컬럼을 추가하거나 제거하는 것은 테이블의 구조를 변경하는 것이므로 ALTER TABLE 문을 사용합니다.
문제 3: 다음 중 테이블 정의 시 ‘동일한 컬럼값을 가질 수 없음을 지정’하는 제약조건은?
정답: 4 (UNIQUE)
UNIQUE 제약조건은 동일한 컬럼값을 가질 수 없음을 지정합니다.
5강 SQL (2)
문제 1: 다음 SQL 구문의 ( )안에 필요한 단어는?
정답: 3 (SET)
UPDATE문은 테이블 내에 특정 조건을 만족하는 레코드의 값을 변경하는 명령문으로 “UPDATE 테이블 이름 SET 필드 및 값 리스트 WHERE 조건” 형식을 따른다.
문제 2: 다음 SQL 구문에서 ( )안에 알맞은 것은?
정답: 4 (FROM)
DELETE 문은 FROM 절에 기술된 테이블에 포함된 레코드를 WHERE절에서 기술되는 조건에 따라 삭제하는 명령을 수행한다.
문제 3: 아래 질의를 SQL로 바르게 기술한 것은?
정답: 3
검색을 위한 SQL문은 ‘SELECT 컬럼리스트 FROM 테이블이름 WHERE 조건’ 형식으로 구성된다. “지점명이 ‘종로’”인 조건은 지점명=‘종로’, “금액이 12만원 보다 크다”라는 조건은 금액 > 120000으로 표현되며 두 조건을 모두 만족하는 레코드를 찾고 있으므로 AND 연산으로 결합된다.
6강 SQL (3)
문제 1: 다음은 조인의 종류와 결과에 대한 다이어그램이다. (ㄴ)과 같은 형태의 조인을 무엇이라고 하는가? 단, A, B는 테이블을 나타낸다.
정답: 4 (내부 조인)
주어진 다이어그램은 두 개의 테이블에서 연관성이 있는 레코드를 결합하여 출력할 때, 연관성의 범위를 나타낸다. 좌측부터 왼쪽 외부 조인, 내부 조인, 오른쪽 외부 조인을 의미한다.
문제 2: 다음은 조인의 종류와 결과에 대한 다이어그램이다. (ㄴ)과 같은 형태의 조인을 무엇이라고 하는가? 단, A, B는 테이블을 나타낸다.
정답: 4
‘GROUP BY 소속학과’ 절에 따라 소속학과과 값이 같은 레코드가 그룹이 생성되며 COUNT(*)에 의해 각 그룹별 레코드의 개수를 센다. 따라서 2, 2, 1의 값이 생성되나 ‘HAVING >= 2’절에 의해 소속 교수가 1명인 ‘데이터과학과’의 레코드는 삭제되어 2, 2 값만 출력된다.
문제 3: 강의 스키마를 참조하여 아래의 명령을 수행하기 위한 SQL 명령문으로 정확하게 작성된 것은?
정답: 3
요청된 질의 결과를 생성하기 위해서는 강의정보와 선수강의정보가 필요하다. 따라서 테이블이 자기자신과 조인하는 셀프 조인이 사용된다. 셀프 조인은 반드시 테이블이름에 대한 별칭이 요구된다. 또한 선수강의가 있는 과목정보만 출력하므로 내부 조인이 적용된다.
7강 정규화
문제 1: 다음 중 정규화에 대한 설명으로 올바르지 않은 것은?
정답: 4 ( 릴레이션 간 공통부분을 도출하고 유사 릴레이션을 통합한다. )
정규화는 컬럼 간의 연관관계를 이용하여 릴레이션의 비효율성을 제거한다. 특히 릴레이션 내부에 존재하는 데이터의 중복을 최소화하여 삽입, 갱신, 삭제 이상 현상을 제거하고, 이를 통해 새로운 데이터가 삽입될 때 릴레이션을 재구성해야하는 가능성을 최소화 시킨다.
문제 2: 릴레이션 내의 컬럼 간의 종속 관계를 직관적이고 이해하기 쉽게 직사각형과 화살표로 도식화한 표현 방식을 무엇이라고 하는가?
정답: 2 ( 함수적 종속성 다이어그램 )
컬럼간의 종속관계를 컬럼의 이름만으로 나열할 경우 관계가 전체적으로 파악하기가 어렵기 때문에 모양이 간단한 도형을 사용할 경우 종속 관계를 파악하기가 쉬워진다. 이렇게 종속 관계를 직사각형과 화살표로 표현한 그림을 함수적 종속성 다이어그램이라고 한다.
문제 3: 다음 중 사업자 릴레이션에 포함된 함수적 종속성이라고 할 수 없는 것은?
정답: 1 ( 사업자번호 → 공사구분 )
사업자번호 → 공사구분 종속성에 대해 첫 번째와 두 번째 레코드를 살펴볼 때, 사업자번호의 컬럼값은 ‘11’과 ‘11’로 같지만 공사구분의 컬럼값은 ‘B1’, ‘C1’으로 같지 한다. 따라서 함수적 종속성 정의에 위배되므로 사업자번호 → 공사구분 종속성은 성립하지 않는다.
9강 데이터 저장과 파일
문제 1: 다음 물리적 저장장치들 중 휘발성과 비휘발성 장치를 올바르게 짝지은 것은?
디스크, 메인 메모리, 자기 테이프, 캐시
정답: 2 ( 휘발성-<캐시, 메인 메모리>, 비휘발성-<디스크, 자기 테이프> )
전원 공급이 없을 때 데이터가 사라지는 휘발성 저장장치로는 주로 CPU가 이용하는 주기억장치인 레지스터, 캐시, 메인 메모리가 있다. 반면 전원 공급이 없어도 데이터가 보존되는 비휘발성 저장장치는 디스크와 같이 주기억장치보다 하위에 위치하는 보조 기억장치와 3차 기억장치인 광학 디스크 드라이브와 자기 테이프가 있다.
문제 2: 다음은 어떤 파일구조에 대한 설명인가?
모든 레코드를 파일 내 임의의 위치에 저장하며, 저장하는 순서를 고려하지 않는 파일 구조
정답: 1 ( 힙 파일구조 )
순차 파일구조에서는 레코드들이 특정 컬럼에 대한 값을 기준으로 정렬되어 저장이 되며, 해시 파일구조에서는 레코드가 입력되면 레코드가 저장될 블록 주소를 반환해 주는 해시 함수를 사용한다. 반면 다중 테이블 클러스터링 파일구조는 빈번히 조인되는 테이블을 하나의 파일에 저장하기 위해 미리 테이블이 조인되어 저장되어있는 구조이다.
문제 3: 다음은 어떤 버퍼 교체 전략에 관한 설명인가?
미래에 가장 적게 사용될 블록을 선택하여 버퍼에 적재하기 위해 특정 기간동안 가장 여러번 사용된 블럭을 선택하여 블럭을 교체
정답: 2 ( MFU )
LRU의 경우 최근에 참조된 블록은 다시 참조 될 가능성이 높다고 판단하여 가장 최근에 적게 참조된 플록을 교체하는 전략이며, SJF(최단 작업 우선 스케줄링)와 FCFS(선입 선처리 스케줄링)는 CPU에 프로세스를 할당하기 위한 전략이다.
10강 인덱싱
문제 1: 다음 중 요청된 레코드에 빠르게 접근할 수 있도록 하는 구조인 인덱스의 효율성에 대한 평가기준이 아닌 것은?
정답: 4 ( 기존의 데이터 삭제 시 해당 데이터에 상응하는 탐색키 삭제 비용 )
기존의 데이터에 대한 삭제가 발생하면, 해당 데이터에 상응하는 탐색키 또한 삭제해야 한다. 이 과정에서 삭제하고자 하는 레코드를 찾는 탐색 비용이 발생할 뿐만 아니라 탐색키의 삭제로 인하여 인덱스의 구조가 변형되기 때문에 인덱스의 유형에 따라서 인덱스의 구조를 유지하는 비용이 추가적으로 요구된다.
문제 2: 학생 테이블에서 ‘외모’ 컬럼을 삭제하시오. 다음 요청을 수행하기 위한 SQL문으로 올바른 것은?
모든 탐색키 값에 대해 탐색키 <값, 포인터> 쌍으로 구성된 인덱스 엔트리를 갖고, 인덱스 파일의 크기가 커서 I/O 비용이 증가하여 탐색 시간이 오래 걸릴 수 있는 단점을 지님
정답: 1 ( 밀집 인덱스 )
밀집 인덱스와 같이 모든 탐색키 값에 대하여 탐색키를 갖게 되면 인덱스가 메모리에 상주할 수 있는 정도의 크기라면, 추가적인 I/O 비용의 발생이 없이 원하는 데이터를 찾을 수 있다. 하지만 모든 레코드의 탐색키를 사용하여 인덱스를 생성하면 데이터의 크기가 커질수록 밀집 인덱스도 커지게 되어 메모리에 모두 적재되지 못하여 인덱스를 탐색하면서 추가적인 I/O비용이 발생할 수 있다. 따라서 인덱스의 크기를 줄이기 위해 일부의 탐색키만을 사용하여 인덱스인 희소 인덱스를 사용하기도 하고 다단계 인덱스를 사용하기도 한다.
문제 3: 다음은 B+ 트리의 예시이다. 이순신을 탐색하는 과정에서 거치는 포인터를 올바른 순서로 나열한 것은?
정답: 4 ( 1,5,8 )
이순신을 탐색하기 위해 루트 노드에 있는 정도전과 비교하여 사전 순서로 정도전보다 작은 것을 알 수 있다. 따라서 1번 포인터를 타고 왼쪽의 자식 노드에 접근한다. 그 다음 박지성과 안창호와 비교했을 때, 박지성과 안창호보다 이순신이 더 값이 큰 것을 알 수 있다. 따라서 5번 포인터로 오른쪽 자식 노드에 접근 하여 최종적으로 이순신의 왼쪽에 저장된 8번 포인터를 통하여 디스크에 저장된 이순신 레코드에 접근하게 된다.
11강 해싱과 특수 인덱스
문제 1: 다음 해시 인덱스 구조에서 탐색키를 버킷 주소에 대응시키는 h를 무엇이라고 하는가?
정답: 2 ( 해시 함수 )
해싱 기법이란 탐색키를 특정 버킷에 대응시켜 레코드를 그룹화 함으로서 특정 탐색키를 검색하는 조건에 대해 대응되는 버킷만 검색하여 속도를 높이는 기법을 말한다. 이 때 각각의 탐색키를 특정 버킷에 대응시키는 역할은 해시 함수가 수행한다.
문제 2: 데이터베이스의 크기에 따라 버킷의 개수가 조절되는 형태의 해싱을 무엇이라고 하는가?
정답: 1 ( 동적 해싱 )
문제 3: 다음과 같은 테이블에 대해 성별 컬럼에 비트맵 인덱스를 생성했을 때, ‘남자’에 대한 비트 열로 올바른 것은?
정답: 4 ( 1110100 )
비트맵 인덱스는 컬럼값의 종류가 극히 적은 컬럼에 생성할 수 있는 특수한 형태의 인덱스로 특정 컬럼값 v에 대해 비트열은 각각의 첫 번째 레코드부터 레코드의 컬럼값이 v일 경우 1, v가 아닐 경우 0으로 연결하여 생성한다. 따라서 성별 컬럼에서 첫 번째, 두 번째, 세 번째, 다섯 번째 레코드의 성별 컬럼값이 ‘남자’이므로 ‘남자’에 대한 비트열은 1110100으로 생성된다.
12강 트랜잭션
문제 1: 아래 그림과 같이 시스템 오류 이후, 트랜잭션 T1에 대해, 실행 결과가 데이터베이스에 반영이 되었는지 확인하고, 반영이 되어있지 않았다면, T1를 재실행한다. 이는 트랜잭션의 어떤 특성을 만족시키기 위한 것인가?
정답: 4 ( 지속성 )
한 번 정상적으로 실행이 완료된 트랜잭션의 결과는 데이터베이스의 어떠한 소프트웨어적, 하드웨어적 오류에도 반드시 데이터베이스에 반영되어야 한다. 이러한 트랜잭션의 특성을 지속성(durability)라고 한다.
문제 2: 다음 중 트랜잭션을 동시에 실행시키는 이유에 대한 설명으로 옳지 않은 것은?
정답: 1 ( 데이터베이스의 일관성이 향상된다. )
서로 다른 두 트랜잭션이 같은 데이터 항목에 대하여 연산을 수행할 경우 데이터베이스의 일관성이 보장되지 않을 수 있다. 따라서 트랜잭션을 동시 수행하기 위해서는 추가적인 고려사항이 필요하다.
문제 3: 다음은 무엇에 대한 설명인가?
모든 트랜잭션 순서쌍 Ti와 Tj에 대해, Ti가 기록한 데이터 항목을 Tj가 읽는다면, Ti의 커밋이 Tj의 커밋보다 먼저 나타나는 스케줄
정답: 1 ( 회복 가능한 스케줄(recoverable schedule) )
Ti가 작성한 데이터 항목을 Tj가 읽은 후 , Tj가 먼저 커밋을 할 경우, Ti가 오류가 발생하여 롤백하려고 해도 이미 Tj가 읽은 값에 대해 커밋을 수행하였으므로 회복이 불가능해 진다. 반대로 Ti가 먼저 커밋을 할 경우, 회복 가능한 스케줄이 된다.
13강 동시성 제어
문제 1: 타임스탬프 순서 규약에서 타임스탬프를 할당하는 방법인 것은?
정답: 2 ( 시스템 시계 )
타임스탬프 순서 기법이란 로킹 규약으로 서로 상충되는 트랜잭션의 직렬성 순서를 결정하기 위해 트랜잭션에 부여된 타임스탬프 값을 이용하는 기법을 말한다. 타임스탬프 순서 기법을 구현하는데 시스템 시계(system clock)와 논리적 계수기가 보편적으로 이용된다.
문제 2: 교착상태 방지 기법으로 오래된 트랜잭션이 최근의 트랜잭션을 기다리는 대신 강제 복귀시킨다는 선점(preemptive) 기법인 것은?
정답: 2 ( wound-wait기법 )
교착상태 방지 기법에는 크게 wound-wait와 wait-die기법이 있다. 이 중 wound-wait기법은 선점유 기법을 기반으로 타임스탬프가 작은 트랜잭션(오래된 트랜잭션)을 복귀시키는 방법으로 교착상태를 방지한다.
문제 3: 교착상태의 회복에서 ‘교착상태의 트랜잭션 집합이 주어지면 교착상태를 해결하기 위하여 복귀시킬 트랜잭션을 결정하여야 한다.’라고 할 때, 이 대상을 무엇이라 하는가?
정답: 4 ( 희생자 )
교착상태 회복을 위해서는 교착상태에 관여하고 있는 트랜잭션 중 일부를 복귀시켜야 하는데 복귀로 선택된 트랜잭션을 희생자(victim)이라고 한다.
14강 회복 시스템
문제 1: 다음과 같은 스토리지 구조와 상태에서 트랜잭션에 의해 Write(X)를 실행하기 위한 첫 번째 단계로 올바른 것은(단, 데이터 항목 X는 블록 X에 존재한다고 가정)
정답: 1 ( Input(X)를 수행한다. )
Write(A)를 수행하기 위해서 DBMS는 데이터 항목 A가 존재하는 블록이 현재 메모리 상에 존재하는지 확인한 후, 존재하지 않을 경우 Input(X)를 수행하여 메모리 상으로 읽어들인다. 이 후 X내의 A에 xi값을 할당하고 마지막으로 Output(X)를 수행한다.
문제 2: Write 연산을 수행할 때 마다 데이터베이스가 변경되기 전에 로그 레코드를 우선 로그에 추가하는 방식을 무엇이라고 하는가?
정답: 4 ( Write Ahead Log )
로그는 데이터베이스 회복을 위한 데이터로 어떠한 연산이 수행된 이후에 로그가 기록되지 않은 상태에서 데이터베이스 오류가 발생할 경우, 회복할 수가 없기 때문에 로그 레코드를 먼저 기록한 후, Write 연산을 수행한다. 이를 Write Ahead Log, WAL이라고 한다.
문제 3: 다음 중 체크포인트에 의해 발생하는 작업이라고 할 수 없는 것은?
정답: 1 ( 트랜잭션의 명령의 분석하여 Undo할 트랜잭션과 Redo할 트랜잭션을 구분한다. )
체크포인터는 로그를 이용한 회복 작업에 비용 감소를 위해 주기적으로 수정된 버퍼를 디스크에 반영하고 로그 레코드 를 기록하는 것을 말한다.
'방송통신대 컴퓨터과학과' 카테고리의 다른 글
인공지능 (기말 준비) (0) | 2024.05.26 |
---|---|
운영체제 (기말 준비) (0) | 2024.05.26 |
운영체제 14강 (운영체제 보안) (0) | 2024.05.20 |
알고리즘 13강 (스트링 알고리즘) (0) | 2024.05.16 |
인공지능 13강 (신경회로망) (0) | 2024.05.14 |