본문으로 바로가기

3과목 : 데이터베이스 구축

 

1. 릴레이션 R의 모든 결정자(determinant)가 후보키이면 그 릴레이션 R은 어떤 정규형에 속하는가?

1. 제 1 정규형
2. 제 2 정규형
3. 보이스/코드 정규형
4. 제 4 정규형

1. 1NF 조건 : 원자값으로 구성
2. 2NF 조건 : 부분 함수 종속 제거 (완전 함수적 종속 관계)
3. 3NF 조건 : 이행 함수 종속 제거
4. BCNF 조건 : 결정자 함수 종속
5. 4NF 조건 : 다중값(다치) 종속성 제거
6. 5NF 조건 : 조인 종속성 제거

2. 다음 관계형 데이터 모델에 대한 설명으로 옳은 것은?

1. relation 3개, attribute 3개, tuple 5개
2. relation 3개, attribute 5개, tuple 3개
3. relation 1개, attribute 5개, tuple 5개
4. relation 1개, attribute 3개, tuple 5개


3. Commit과 Rollback 명령어에 의해 보장 받는 트랜잭션 특성은?

1. 병행성
2. 보안성
3. 원자성
4. 로그

트랜잭션의 특성
 - 원자성(Atomicity)
    - 트랜잭션의 연산은 데이터베이스에 모두 반영되도록 완료(Commit)되든지 아니면 전혀 반영되지 않도록 복구(Rollback)되어야 함

 - 일관성(Consistency)
    - 트랜잭션이 그 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태로 변환

 - 격리성,독립성(Isolation)
    - 둘 이상의 트랜잭션이 동시에 병행 실행되는 경우 어느 하나의 트랜잭션 실행 중에 다른 트랜잭션의 연산이 끼어들 수 없음

 - 영속성,지속성(Durability)
    - 성공적으로 완료된 트랜잭션의 결과는 시스템이 고장나더라도 영구적으로 반영되어야 함

4. 관계 데이터베이스인 테이블 R1에 대한 아래 SQL 문의 실행결과로 옳은 것은?

학번 이름 학년 학과 주소
1000 홍길동 1 컴퓨터공학 서울
2000 김철수 1 전기공학 경기
3000 강남길 2 전자공학 경기
4000 오말자 2 컴퓨터공학 경기
5000 장미화 3 전자공학 서울

 

[SQL 문]

SELECT DISTINCT 학년 FROM R1;

 

1.

학년
1
1
2
2
3

2.

학년
1
2
3

3.

이름 학년
홍길동 1
김철수 1
강남길 2
오말자 2
장미화 3

4.

이름 학년
홍길동 1
강남길 2
장미화 3

5. DCL(Data Control Language) 명령어가 아닌 것은?

1. COMMIT
2. ROLLBACK
3. GRANT
4. SELECT

DDL(Data Define Language)
[CREATE] SCHEMA, DOMAIN, TABLE, VIEW, INDEX를 정의
[ALTER] TABLE에 대한 정의를 변경하는데 사용
[DROP] SCHEMA, DOMAIN, TABLE, VIEW, INDEX를 삭제

DCL(Data Control Languate)
[COMMIT] 명령에 의해 수행된 결과를 실제 물리적 디스크로 저장하고 데이터베이스 조작 작업이 정상적으로 완료되었음을 관리자에게 알려줌
[ROLLBACK] 데이터베이스 조작 작업이 비정상적으로 종료되었을때 원래의 상태로 복구
[GRANT] 데이터베이스 사용자에게 사용 권한을 부여
[REVOKE] 데이터베이스 사용자의 사용 권한을 취소

DML(Data Manipulation Language)
[SELECT] 테이블에서 튜플을 검색
[INSERT] 테이블에 새로운 튜플을 삽입
[DELETE] 테이플에서 튜플을 삭제
[UPDATE] 테이블에서 튜플의 내용을 갱신

6. 병행제어 기법 중 로킹에 대한 설명으로 옳지 않은 것은?

1. 로킹의 대상이 되는 객체의 크기를 로킹 단위라고 한다.
2. 데이터베이스, 파일, 레코드 등은 로킹 단위가 될 수 있다.
3. 로킹의 단위가 작아지면 로킹 오버헤드가 증가한다.
4. 로킹의 단위가 커지면 데이터베이스 공유도가 증가한다.

로킹 단위
 - 로킹 단위는 병행제어에서 한꺼번에 로킹할 수 있는 객체의 크기를 의미
 - 데이터베이스, 파일, 레코드, 필드 등은 로킹 단위가 될 수 있음
 - 로킹 단위가 크면 로크 수가 작아 관리하기 쉽지만 병행성 수준이 낮아지고 데이터베이스 공유도가 저하
   (로킹 단위가 크다 -> 로크의 수가 적어진다 -> 제어 기법이 간단해 진다 -> 병행성이 감소한다)
 - 로킹 단위가 작으면 로크 수가 많아 관리하기 복잡해 오버헤드가 증가하지만 병행성 수준이 높아지고 데이터베이스 공유도가 증가
   (로킹 단위가 작다 -> 로크의 수가 많아진다 -> 제어 하기 까다롭다 -> 병행성이 증가한다) 

7. 관계데이터 모델의 무결성 제약 중 기본키 값의 속성 값이 널(null)값이 아닌 원자 값을 갖는 성질은?

1. 개체 무결성
2. 참조 무결성
3. 도메인 무결성
4. 튜플의 유일성

개체 무결성(Entity Integrity)
 - 기본 테이블의 기본키를 구성하는 어떤 속성도 Null 값이나 중복값을 가질 수 없는 규정

도메인 무결성(Domain Integrity)
 - 주어진 속성 값이 정의된 도메인에 속한 값이어야 한다는 규정

참조 무결성(Referential Integrity)
 - 외래키 값은 Null이거나 참조 릴레이션의 기본키 값과 동일해야 함
 - 릴레이션은 참조할 수 없는 외래키 값을 가질 수 없다는 규정

사용자 정의 무결성(User-Defined Integrity)
 - 속성 값들이 사용자가 정의한 제약조건에 만족해야 한다는 규정

8. 뷰(View)의 장점이 아닌 것은?

1. 뷰 자자체로 인덱스를 가짐
2. 데이터 보안 용이
3. 논리적 독립성 제공
4. 사용자 데이터 관리 용이

뷰(View)
 - 사용자에게 접근이 허용된 자료만을 제한적으로 보여주기 위해 하나 이상의 기본 테이블로부터 유도된 이름을 가지고 있는 가상 테이블
 - 뷰는 저장장치 내에 물리적으로 존재하지 않지만 사용자에게는 있는 것처럼 간주 됨
 - 뷰는 조인문의 사용 최소화로 사용상의 편의성을 최대화
 - 가상 테이블이기 때문에 물리적으로 구현되어 있지 않음
 - 데이터의 논리적 독립성을 제공할 수 있음
 - 필요한 데이터만 뷰로 정의해서 처리할 수 있기 때문에 관리가 용이하고 명령문이 간단해짐
 - 뷰가 정의된 기본 테이블이나 뷰를 삭제하면 그 테이블이나 뷰를 기초로 정의된 다른 뷰도 자동으로 삭제

9. 분산 데이터베이스의 투명성(Transparency)에 해당 하지 않는 것은?

1. Location Transparency
2. Replication Transparency
3. Failure Transparency
4. Media Access Transparency


10. 정규화의 목적으로 옳지 않은 것은?

1. 어떠한 릴레이션이라도 데이터베이스 내에서 표현 가능하게 만든다.
2. 데이터 삽입시 릴레이션을 재구성할 필요성을 줄인다.
3. 중복을 배제하여 삽입, 삭제, 갱신 이상의 발생을 야기한다.
4. 효과적인 검색 알고리즘을 생성할 수 있다.

정규화의 목적
 - 데이터 구조의 안정성 및 무결성을 유지
 - 효과적인 검색 알고리즘을 생성할 수 있음
 - 데이터의 중복을 배제하여 이상(Anomaly)의 발생 방지 및 자료 저장 공간의 최소화가 가능
 - 데이터 모형의 단순화
 - 자료 검색과 추출의 효율성을 추구

11. 다음에 해당하는 함수종속의 추론규칙은?

X->Y이고 Y->Z이면 X->Z이다.

1. 분해 규칙
2. 이행 규칙
3. 반사 규칙
4. 결합 규칙

이행적 종속(Transitive Dependency)관계 : A->B이고 B->C이고 A->C를 만족하는 관계를 의미

12. 다음 R과 S 두 릴레이션에 대한 Division 연산의 수행 결과는?

1.

D3
A
B

2.

D2
2
2

3.

D3
A

4.

D1
a
b

13. player 테이블에는 player_name, team_id, height 컬럼이 존재한다. 아래 SQL문에서 문법적 오류가 있는 부분은?

(1) SELECT player_name, height
(2) FROM player
(3) WHERE team_id = 'Korea'
(4) AND height BETWEEN 170 OR 180 ;

1. (1)
2. (2)
3. (3)
4. (4)


14. 데이터베이스 로그(log)를 필요로 하는 회복 기법은?

1. 즉각 갱신 기법
2. 대수적 코딩 방법
3. 타임 스탬프 기법
4. 폴딩 기법

대수적 코딩 방법(Algebraic Coding)
 - 키를 이루고 있는 각 자리의 bit수를 다항식의 계수로 하여 이 다항식을 해시표의 크기로 정한 다항식으로 나눌 때 얻은 나머지 다항식의 계수를 홈주소로 결정하는 방법

타임 스탬프 기법(Time stamp)
 - 데이터베이스 병행제어를 위해 데이터 항목에 타임스탬프를 부여하여 직렬가능성을 보장하는 기법

폴딩 기법(Folding)
- 레코드 키값을 여러 부분으로 나눈 후 각 부분의 값을 더하거나 XOR(배타적 논리합) 한 값을 홈 주소로 삼는 기법

15. DML(Data Manipulation Language) 명령어가 아닌 것은?

1. INSERT
2. UPDATE
3. ALTER
4. DELETE

DDL(Data Define Language) 
[CREATE] SCHEMA, DOMAIN, TABLE, VIEW, INDEX를 정의 
[ALTER] TABLE에 대한 정의를 변경하는데 사용 
[DROP] SCHEMA, DOMAIN, TABLE, VIEW, INDEX를 삭제 

DCL(Data Control Languate) 
[COMMIT] 명령에 의해 수행된 결과를 실제 물리적 디스크로 저장하고 데이터베이스 조작 작업이 정상적으로 완료되었음을 관리자에게 알려줌 
[ROLLBACK] 데이터베이스 조작 작업이 비정상적으로 종료되었을때 원래의 상태로 복구 
[GRANT] 데이터베이스 사용자에게 사용 권한을 부여 
[REVOKE] 데이터베이스 사용자의 사용 권한을 취소 

DML(Data Manipulation Language) 
[SELECT] 테이블에서 튜플을 검색 
[INSERT] 테이블에 새로운 튜플을 삽입 
[DELETE] 테이플에서 튜플을 삭제 
[UPDATE] 테이블에서 튜플의 내용을 갱신

16. 다음과 같이 위쪽 릴레이션을 아래쪽 릴레이션으로 정규화를 하였을 때 어떤 정규화 작업을 한 것인가?

국가 도시
한국 서울, 부산
미국 워싱턴, 뉴욕
중국 베이징

             

국가 도시
대한민국 서울
대한민국 부산
미국 워싱턴
미국 뉴욕
중국 베이징

1. 제 1정규형
2. 제 2정규형
3. 제 3정규형
4. 제 4정규형


17. 관계대수의 순수관계 연산자가 아닌 것은?

1. Select
2. Cartesian Product
3. Division
4. Project

Join(⋈)
 - 공통 속성을 중심으로 두 개의 릴레이션을 하나로 합쳐서 새로운 릴레이션을 만드는 연산

Division(÷)
 - X⊃Y인두개의릴레이션R(X)와 S(Y)가 있을때, R의 속성이 S의 속성값을 모두 가진 튜플에서 S가 가진 속성을 제외한 속성만을 구연하는 연산

Project(π)
 - 주어진 릴레이션에서 속성 리스트에 제시된 속성 값만을 주출하여 새로운 릴레이션을 만드는 연산

Select(σ)
 -릴레이션에 존재하는 튜플 중에서 선택 조건을 만족하는 튜플의 부분집합을 구하여 새로운 릴레이션을 만드는 연산

18. 다음 중 SQL의 집계 함수(aggregation function)가 아닌 것은?

1. AVG
2. COUNT
3. SUM
4. CREATE


19. 릴레이션 조작 시 데이터들이 불필요하게 중복되어 예기치 않게 발생하는 곤란한 현상을 의미하는 것은?

1. normalization
2. rollback
3. cardinality
4. anomaly

이상(Anomaly)의 개념 및 종류
 - 정규화를 거치지 않으면 데이터베이스 내에 데이터들이 불필요하게 중복되어 릴레이션 조작 시 예기치 못한 곤란한 현상이 발생하는데, 이를 이상(Anomaly)이라 하며 삽입 이상, 삭제 이상, 갱신 이상이 있음

삽입 이상(Insertion Anomaly)
 - 릴레이션에 데이터를 삽입할 때 의도와는 상관없이 원하지 않는 값들도 함께 삽입되는 현상

삭제 이상(Deletion Anomaly)
 - 릴레이션에서 한 튜플을 삭제할 때 의도와는 상관없는 값들도 함께 삭제되는 연쇄가 일어나는 현상

갱신 이상(Update Anomaly)
 - 릴레이션에서 튜플에 있는 속성값을 갱신할 때 일부 튜플의 정보만 갱신되어 정보에 모순이 생기는 현상

20. 릴레이션에 대한 설명으로 거리가 먼 것은?

1. 튜플들의 삽입, 삭제 등의 작업으로 인해 릴레이션은 시간에 따라 변한다.
2. 한 릴레이션에 포함된 튜플들은 모두 상이하다.
3. 애트리뷰트는 논리적으로 쪼갤 수 없는 원자값으로 저장한다.
4. 한 릴레이션에 포함된 튜플 사이에는 순서가 있다.

- 릴레이션의 특징
 - 한 릴레이션에는 똑같은 튜플이 포함될 수 없으므로 릴레이션에 포함된 튜플들은 모두 상이
 - 한 릴레이션에 포함된 튜플 사이에는 순서가 없음
 - 튜플들의 삽입, 삭제 등의 작업으로 인해 릴레이션은 시간에 따라 변함
 - 릴레이션 스키마를 구성하는 속성들 간의 순서는 중요하지 않음
 - 속성의 유일한 식별을 위해 속성의 명칭은 유일해야 하지만, 속성을 구성하는 값은 동일한 값이 있을 수 있음
 - 속성의 값은 논리적으로 더 이상 쪼갤 수 없는 원자값만을 저장
 - 릴레이션을 구성하는 튜플을 유일하게 식별하기 위해 속성들의 부분집합을 키로 설정