[데이터베이스 개론 3판] 10장 연습문제

상준·2023년 12월 9일
0

database

목록 보기
20/24

01 데이터베이스에서 논리적인 작업의 단위로, 하나의 기능을 수행하기 위해 필요한 일련의 연산들을 의미하는 것은?

  1. 트랜잭션
  2. 투플
  3. 로킹

02 트랜잭션에 대한 설명으로 옳지 않은 것은?

  1. 트랜잭션의 연산은 모두 정상적으로 수행되거나 하나도 수행되지 않아야 한다.
  2. 트랜잭션이 성공적으로 수행된 후에도 데이터베이스가 일관성 있는 상태를 유지해야 한다.
  3. 트랜잭션 수행 중 생성된 중간 연산 결과를 다른 트랜잭션의 연산이 접근할 수 다.
  4. 트랜잭션이 성공적으로 수행이 완료된 후 데이터베이스에 반영된 수행 결과는 영구적으로 유지되어야 한다.

03 트랜잭션에 대한 설명으로 옳은 것은?

  1. 트랜잭션의 일부 연산만 데이터베이스에 반영할 수 있다.
  2. 트랜잭션은 병행 제어와 회복 작업의 단위다.
  3. 트랜잭션은 하나의 기능을 수행하기 위한 물리적 작업 단위다.
  4. 트랜잭션의 수행과 관련하여 작업 완료를 의미하는 rollback 연산과 작업 취소를 의미하는 commit 연산이 있다.

04

여러 개의 트랜잭션이 동시에 수행되더라도 각 트랜잭션이 독립적으로 수행될 수 있도록 
현재 수행 중인 트랜잭션이 완료될 때까지 다른 트랜잭션의 연산은 끼어들 수 없다. 
즉, 트랜잭션 T1과 T2가 있다면 T1이 시작되기 전에 T2가 끝나든지 
T1이 끝난 후 T2가 시작되든지 해야 한다.
  1. 원자성(atomicity)
  2. 일관성(consistency)
  3. 격리성(isolation)
  4. 지속성(durability)

05 데이터 무결성을 보장하기 위한 트랜잭션의 특성으로 올바르지 않은 것은?

  1. 자율성(autonomy)
  2. 일관성(consistency)
  3. 격리성(isolation)
  4. 지속성(durability)

06

트랜잭션의 연산이 데이터베이스에 모두 반영되거나, 
모두 반영되지 않아야 하는 all-or-nothing 방식이어야 한다.
  1. 원자성(atomicity)
  2. 일관성(consistency)
  3. 격리성(isolation)
  4. 지속성(durability)

07 트랜잭션 상태에 대한 다음 설명 중 옳은 것은?

  1. 트랜잭션이 성공적으로 수행이 완료되어 commit 연산을 실행한 상태를 활동 상태라고 한다.
  2. 트랜잭션의 모든 연산이 처리된 상태를 부분 완료 상태라고 한다.
  3. 장애가 발생하여 트랜잭션의 수행이 중단된 상태를 철회 상태라고 한다.
  4. 트랜잭션의 수행이 실패하여 rollback 연산을 실행한 상태를 실패 상태라고 한다.

08 트랜잭션을 수행하는 도중에 여러 가지 원인으로 장애가 발생했을 때 데이터베이스를 장애가 발생하기 전의 일관된 상태로 복구시키는 것은?

  1. 재시작
  2. 철회
  3. 회복
  4. 정지

09 트랜잭션 장애가 발생하는 원인으로 거리가 먼 것은?

  1. 처리 대상 데이터의 부재
  2. 디스크 헤드의 고장
  3. 잘못된 데이터 입력
  4. 논리적 연산 오류

10 데이터베이스 시스템에 발생하는 장애의 유형으로 거리가 먼 것은?

  1. 트랜잭션 장애
  2. 시스템 장애
  3. 네트워크 장애
  4. 미디어 장애

11 여러 개의 비소멸 저장 장치를 이용해 데이터 복사본을 만드는 방법으로, 어떤 장애가 발생해도 데이터 소실이 발생하지 않고 데이터를 영구적으로 저장할 수 있는 저장 장치는?

  1. 캐시 저장 장치
  2. 휘발성 저장 장치
  3. 비휘발성 저장 장치
  4. 안정 저장 장치

12 디스크 블록에 저장되어 있는 데이터 X를 메인 메모리의 버퍼 블록으로 이동시키는 연산은?

  1. input(X)
  2. output(X)
  3. read(X)
  4. write(X)

13 프로그램의 변수 값을 메인 메모리 버퍼 블록에 있는 데이터 x에 기록하는 연산은?

  1. input (X)
  2. output (X)
  3. read (X)
  4. write (X)

14 데이터베이스의 회복 기법에 해당하지 않는 것은?

  1. 로그 회복 기법
  2. 미디어 회복 기법
  3. 검사 시점 회복 기법
  4. 로킹 회복 기법

15 데이터베이스 회복 기법 중 덤프를 이용하는 것으로 장애가 발생하면 가장 최근에 복사해둔 덤프를 이용해 장애 발생 이전의 일관된 데이터베이스 상태로 복구하는 것은?

  1. 로그 이용 회복 기법
  2. 미디어 회복 기법
  3. 검사 시점 회복 기법
  4. 로킹 회복 기법

16 병행 제어를 하지 않고 여러 트랜잭션을 동시에 수행하게 되는 경우 발생할 수 있는 문제점이 아닌 것은?

  1. 갱신 분실
  2. 중복성
  3. 모순성
  4. 연쇄 복귀

17

하나의 트랜잭션이 수행한 데이터 변경 연산의 결과를 다른 트랜잭션이 덮어써 변경 연산이 무효화되는 것
  1. 갱신 분실
  2. 중복성
  3. 모순성
  4. 연쇄 복귀

18 병행 제어의 목적으로 옳지 않은 것은?

  1. 시스템 활용도 최대화
  2. 응답 시간 최대화
  3. 데이터베이스 공유 최대화
  4. 데이터베이스 일관성 유지

19 로킹 기법에서 트랜잭션들이 상대가 독점하고 있는 데이터에 대한 unlock 연산이 실행되기를 기다리면서 수행을 중단하고 있는 상태를 무엇이라 하는가?

  1. 중단 상태
  2. 회피 상태
  3. 대기 상태
  4. 교착 상태

20 로킹 단위에 대한 설명으로 옳지 않은 것은?

  1. 로킹 단위가 커질수록 병행성이 낮아진다.
  2. 로킹 단위가 커질수록 lock 연산의 개수가 적어진다.
  3. 로킹 단위가 작아질수록 제어 기법이 단순해진다.
  4. 데이터베이스도 로킹 단위가 될 수 있다.

21 병행 제어에서 로킹 단위가 큰 경우에 비해 작은 경우에 대한 설명으로 옳지 않은 것은?

  1. lock 연산의 개수가 많아진다.
  2. 병행성의 수준이 아진다.
  3. 병행 제어 기법이 복잡해진다.
  4. 교착 상태가 발생하는 경우가 많아진다.

22 로킹 기법에서 트랜잭션이 데이터에 대한 독점권을 요청하는 연산은?

  1. lock 연산
  2. unlock 연산
  3. redo 연산
  4. undo 연산

23 2단계 로킹 규약에 대한 설명으로 옳은 것은?

  1. 트랜잭션이 lock 연산만 실행할 수 있고, unlock 연산은 실행할 수 없는 축소 단계가 있다.
  2. 트랜잭션이 unlock 연산만 실행할 수 있고, lock 연산만 실행할 수 없는 확장 단계가 있다.
  3. 직렬 가능성이 보장된다
  4. 교착 상태가 발생하지 않도록 예방할 수 있다.

24 트랜잭션이 무엇인지 설명하시오.

하나의 작업을 수행하기 위해 필요한 데이터베이스 연산들을 모아놓은 것

25 데이터 무결성과 일관성을 보장하기 위한 트랜잭션의 특성 네 가지가 무엇인지 설명하시오.

원자성, 일관성, 격리성, 지속성

26 한빛 은행에서 A라는 사람이 고객 인증 절차를 거쳐 잔액을 조회한 후, 타인에게 송금하는 도중 장애가 발생하였을 경우 문제가 생긴다. 이러한 경우 부작용을 방지할 수 있는 트랜잭션의 특성은 무엇인가?

원자성

27

트랜잭션의 수행이 성공적으로 완료됐음을 선언하는 연산은 ( commit )이고, 트랜잭션을 수행하기 이전 상태로 되돌리기 위해 작업 취소를 선언하는 연산은 ( rollback )이다.

30 데이터베이스 회복을 위한 기본 연산

( redo ) 연산 : 로그에 기록된 변경 연산 후의 새로운 값을 이용해 변경 연산을 재실행
( undo ) 연산 : 로그에 기록된 변경 연산 이전의 값을 이용해 변경 연산을 취소

31

트랙잭션이 데이터를 변경하면 트랜잭션이 부분 완료되기 전이라도 즉시 데이터베이스에 반영하는 기법으로, 
장애가 발생하여 회복 작업을 하게 되는 경우에 대비하여 데이터 변경에 대한 내용을 로그 파일에 기록한다. 
회복 작업을 수행하는 경우 redo와 undo 연산이 모두 수행 가능하다.

즉시 갱신 회복 기법

32 rollback 연산에 대해 간단히 설명하시오.

작업 취소

33 검사 시점 회복 기법이 검사 시점을 이용하지 않는 일반 로그 회복 기법에 비해 어떠한 장점이 있는지 설명하시오.

검사 시점으로 작업 범위가 정해지므로 불필요한 회복 작업이 없어 시간이 단축됨

34 직렬 스케줄과 직렬 가능 스케줄의 공통점과 차이는 무엇이라고 생각하는가?

정확한 결과를 얻음
직렬 가능 스케줄은 인터리빙 방식을 이용하여 트랜잭션을 병행 수행

35 기본 로킹 규약의 문제를 해결하고 트랜잭션의 직렬 가능성을 보장하기 위해 lock과 unlock 연산의 실행 시점에 대한 새로운 규약을 추가한 것이 2단계 로킹 규약이다.

( 확장 ) 단계 : 트랜잭션이 lock 연산만 실행할 수 있고 unlock 연산은 실행할 수 없는 단계
( 축소 ) 단계 : 트랜잭션이 unlock 연산만 수행할 수 있고 lock 연산은 수행할 수 없는 단계

38 병행 제어가 무엇인지 설명하시오.

병행 수행 시 문제가 발생하지 않고 정확한 결과를 얻을 수 있도록 트랜잭션의 수행을 제어하는 것

39 트랜잭션 스케줄이 무엇인지 설명하시오.

트랜잭션에 포함된 연산들을 실행하는 순서

40 세 가지 유형의 트랜잭션 스케줄

직렬 스케줄 : 인터리빙 방식을 이용하지 않고 트랜잭션별로 연산들을 순차적으로 실행시키는 것
비직렬 스케줄: 인터리빙 방식을 이용해 트랜잭션들을 병행해서 실행시키는 것
(직렬 가능 스케줄) : 직렬 스케줄과 동일한 정확한 결과를 생성하는 비직렬 스케줄

profile
컴공생 공부

0개의 댓글