본문 바로가기

자격증 공부

정보처리기사 실기 문제 정리 240421

CHAPTER 04. 데이터베이스 활용

SECTION 01. 이상(Anomaly)과 함수적 종속

01. 다음 괄호에 들어갈 알맞은 내용

 ( 1 ) : 관계 데이터베이스의 논리적 설계 과정에서 하나의 릴레이션에 많은 속성들이 존재함으로써 데이터의 종속과 중복으로 인해 여러 가지 문제점이 발생하게 됨. ( 1 ) 현상은 릴레이션을 처리하는데 발생하는 여러가지 문제점으로 삽입, 삭제, 갱신 등의 종류가 있음

 ( 2 ) : 관계 데이터베이스에서 ( 1 ) 현상과 함께 고려해야 할 문제가 종속. 종속이란 임의의 한 릴레이션에서 속성 A, B 가 존재하는 경우 A의 값을 알면 B의 값을 알 수 있거나 A의 값에 따라 B의 값이 달라진다면, B는 A에 함수적으로 종속되었다고 하고, 기호로는 A -> B로 표기함. 이러한 종속 관계에서 한 속성이 오직 기본키(primary Key)에만 종속되는 경우 ( 2 ) 관계에 있다고 함

 ( 3 ) : ( 3 )(은)는 종속의 종류 중에서 임의의 한 릴레이션에서 하나 속성이 기본키(primary Key)가 아닌 이외의 속성에 종속되거나 기본키(primary Key)가 2개 이상 혼합키로 구성된 경우 이 중 일부 속성에 종속이 되는 경우

 ( 4 ) : 릴레이션에서 A, B, C 세 가지 속성 간의 종속 관계가 A -> B, B -> C 일 때, A -> C 가 성립되는 경우, 즉 A를 알면 B를 알 수 있고, B를 알면 C를 알 수 있을 때, A를 알면 C를 알 수 있는 경우 ( 4 )(이)라고 함

-> 1 : 이상(Anomaly)

-> 2 : 완전 함수 종속

-> 3 : 부분 함수 종속

-> 4 : 이행적 함수 종속

 

SECTION 02. 정규화

01. 다음 괄호에 들어갈 알맞은 내용

 ( 1 ) : 데이터베이스의 논리적 설계 시 하나의 릴레이션에 많은 속성들이 존재하게 하고, 데이터의 중복과 종속으로 인해 이상(Anomaly) 현상이 발생할 수 있음. 이러한 이상(Anomaly) 현상을 제거하기 위해 릴레이션의 무결성을 유지하면서 정확한 정보를 제공하기 위해 여러 개의 릴레이션으로 분해하는 것을 ( 1 )(이)라고 함

 ( 2 ) :  '주문번호', '부품번호', '부품가격', '주문량'의 속성으로 구성된 [주문현황] 테이블이 있음

 [주문현황] 테이블은 '주문번호'와 '부품번호'가 합성키인 (주문번호, 부품번호)가 기본키임. 또한 모든 도메인이 원자값으로 구성되어 있으므로 ( 2 )(을)를 만족하고 있음

 ( 3 ) : 위 [주문현황] 테이블의 종속 관계를 분석한 결과 '부품가격'은 기본키인 (주문번호, 부품번호) 외에 '부품번호'만으로도 구분할 수 있으므로 '부품번호'에 종속되어 있음을 알 수 있음. 이와 같이 기본키가 아닌 속성에 종속이 되는 것을 부분 함수 종속이라 하며 이와 같은 종속을 해결하기 위해서는 ( 3 )(을)를 수행함으로써 해결할 수 있음

 ( 4 ) : 릴레이션에서 A를 알면 B를 알 수 있고, B를 알면 C를 알 수 있을 때, A를 알면 C를 알 수 있는 경우 이행적 함수 종속 관계가 성립된다고 할 수 있음. 이와 같은 경우 ( 4 )(을)를 수행하여 종속 관계를 해결할 수 있음

-> 1 : 정규화

-> 2 : 제1정규형

-> 3 : 제2정규형

-> 4 : 제3정규형

 

SECTION 03. 트랜잭션(Transaction)

01. 다음 괄호에 들어갈 알맞은 내용

 ( 1 ) : 데이터베이스에 보관된 자료를 이용하여 작업을 수행하는 가장 기본적인 작업의 단위가 되며, 여러개의 연산이 하나의 논리적 기능을 수행하기 위한 연산들의 집합을 말함. 한 카드회사의 신용카드를 발급 받아 카드를 이용해 물건을 구매하는 과정을 살펴보면, 카드 인식 -> 금액 입력 -> 카드 회사 송신 -> 승인 -> 승인 내역 수신 -> 완료와 같은 과정을 거치게 됨. 이와 같이 하나의 작업을 수행하는 데 이루어지는 연산들의 집합을 ( 1 )(이)라고 함

 ( 2 ) : ( 1 )(은)는 모든 연산은 반드시 한꺼번에 완료되어야 하며, 그렇지 못한 경우 모두 취소되어야 함. 이와 같은 성질을 ( 2 )(이)라 함. 그 외에 실행된 후에도 언제나 일관성 있는 데이터베이스 상태가 되어야 하며, 결과에 모순이 생겨서는 안되도록 하는 일관성의 성질을 가짐

 ( 3 ) : 데이터베이스 내의 하나의 ( 1 )(이)가 수행 중에는 다른 ( 1 )(이)가 접근할 수 없으며 각각의 트랜잭션은 독립적이어야 함. 이러한 성질을 ( 3 )(이)라 함. 또한 성공적으로 종료된 결과는 계속 유지되어야 하는 영속성의 성질을 가짐

 ( 4 ) : 데이터 베이스 내의 ( 1 )(이)가 수행되는 과정의 상태는 다음과 같음

 - 실행 : 현재 ( 1 ) 실행 중인 상태

 - 부분완료 : ( 1 )의 실행은 모두 마쳤으나 데이터베이스에 저장하기 이전 상태

 - ( 4 ) : 성공적으로 완료된 ( 1 )의 연산 결과를 데이터베이스에 저장한 상태를 말함

 - 실패 : ( 1 )의 실행이 오류에 의해 더 이상 진행될 수 없는 상태

 - 철회 : ( 1 )의 실행이 취소되는 상태

-> 1 : 트랜잭션(Transaction)

-> 2 : 원자성

-> 3 : 격리성

-> 4 : 완료

 

SECTION 04. 회복 기법과 병행 제어

 ( 1 ) : 데이터베이스를 구축하여 이용하는 과정에서 여러 가지 문제가 발생할 수 있음. 회복(Recovery)이란 여러 가지 요인으로 인해 손상된 데이터베이스를 손상되기 이전의 정상적인 상태로 되돌리는 과정으로 즉시 갱신 기법, ( 1 ), Check Point 기법, 그림자 페이지 기법 등이 있음. 즉시 갱신 기법과 ( 1 ), Check Point 기법은 로그(log)를 이용하는 기법으로, 이 중 ( 1 )(은)는 트랜잭션이 수행되어 부분완료 될 때까지 지연시킨 후 로그(log)의 내용을 이용해 문제를 해결하는 기법

 ( 2 ) : 동시에 여러 개의 트랜잭션이 수행되는 것을 병행 실행이라고 하며 병행 실행 시 트랜잭션의 병행 제어를 함으로써 트랜잭션의 성질 중 격리성을 만족하도록 해야 함. 병행 제어를 위한 대표적인 방법으로 ( 2 ) 기법이 있음. 하나의 트랜잭션이 실행되는 동안 다른 트랜잭션이 사용 중인 데이터에 접근하지 못하도록 'LOCK'을 설정해 실행하고, 실행이 완료되면 'UNLOCK'을 통해 해제하게 됨

 ( 3 ) : 병행 제어를 하지 않았을 경우 트랜잭션이 수행되는 과정에서 연산 결과의 일부가 없어지는 갱신 분실, 트랜잭션이 수행되어 얻어진 결과가 일관성 없어지는 모호성, 그리고 트랜잭션이 수행되던 중 하나 트랜잭션이 취소되어 연쇄적으로 다른 트랜잭션도 취소되는 현상인

( 3 )(이)가 발생할 수 있음

-> 1: 지연 갱신

-> 2 : 로킹(Locking)

-> 3 : 연쇄복귀