본문 바로가기
정보처리기사

[정처기 실기] 문제 풀이 - 데이터 베이스 기본

by 공불러 2023. 4. 10.
728x90
반응형

정처기실기문제

데이터 베이스 기본

트랜잭션의 특성에 대한 설명에 알맞는 개념을 넣으시오.

 

1. 트랜잭션을 구성하는 연산 전체가 모두 정상적으로 실행되는 성질

2 .시스템이 가지고 있는 고정요소는 트랜잭션 수행전과 수행 후가 동일해야한다는 성질

3. 동시에 실행되는 트랜잭션들이 서로 영향을 미치면 안된다는 성질

4. 성공이 완료된 트랜잭션의 겨로가는 영속적윽로 데이터베이스에 저장되어야 한다는 성질

 

더보기

1. Atomicity : all or nothing

2. consistency

3. isolation

4. Durability

원일고지

 

phantom read(환영 데이터)

 

다음 설명으로 올바른 개념은?

먼저 실행된 트랜잭션의 결과를 나중에 실행된 트랜잭션이 덮어 쓸 때 발생하는 오류

 

더보기
트랜잭션 병행 제어 불가시 일어나는 오류
갱현모연

덮어쓴다는 것은 기존의 데이터를 새로운 데이터로 Update(갱신) 할 때 일어나는 것이므로 갱신이 손실됨
뒤에 업로드한 건 삭제되는 오류
갱신 손실(Lost Update)

 

다음 설명으로 올바른 개념은?

트랜잭션의 중간 수행결과를 다른 트랜잭션이 참조하여 발생하는 오류

 

더보기
현황 파악오류(Dirty Read)
아직 커밋 안했는데, 와서 보고 있으니까 완전한 데이터를 안본게 됨

트랜잭션 A가 데이터를 수정 중이지만 아직 커밋하지 않은 상태에서, 트랜잭션 B가 해당 데이터를 읽어들이는 경우
트랜잭션 A가 커밋하지 않고 롤백할 경우, 트랜잭션 B가 읽은 데이터는 더 이상 유효하지 않은 데이터가 됨

Read Uncommitted

 

 

다음 설명으로 올바른 개념은?

두 트랜잭션이 동시에 실행되어 데이터베이스의 일관성이 결여되는 오류

 

더보기
모순성(incosistency)
일관성(consistency)이 유지되지 않는 상태로 서로 다른 사용자들이 데이터를 바꿀 때 생김
모순이라기보단 비일관적인 상태로 기억하는 게 좋음

 

다음 설명으로 올바른 개념은?

복수의 트랜잭션이 데이터 공유 시 특정 트랜잭션이 처리를 취소할 경우 트랜잭션이 처리한 곳의 부분을 취소하지 못하는 오류

 

더보기
연쇄 복귀(Cascading Rollbak)

계층적 복귀(rollbak)란 여러 개의 트랜잭션이 동시에 실행 될때 하나의 트랜잭션에서 문제가 발생하여 롤백될 경우, 그 트랜잭션에 의해 영향을 받은 다른 트랜잭션들도 함께 롤백

 

 

다음 설명으로 올바른 개념은?

같은 자원을 액세스하는 다중 트랜잭션 환경에서 DB의 일관성과 무결성을 유지하기 위해 트랜잭션의 순차적 진행을 보장하는 직렬화 기법

 

더보기
병행제어 기법 로낙타다
Locking

순차적 진행 보장

Locking은 다른 트랜잭션이 데이터를 수정하려고 할 때 충돌을 방지하여 데이터의 무결성을 보장
Locking은 너무 많이 사용하면 동시성이 감소할 수 있으며, 데드락이 발생할 수 있습니다.
Locking을 사용하는 경우 트랜잭션 처리 속도가 느려질 수 있음
데이터베이스에서는 적절한 Locking 수준을 설정하여 동시성과 데이터 무결성을 균형있게 유지

 

 

 

다음 설명으로 틀린 내용은?

1. 데이터베이스, 파일, 레코드는 로킹의 단위가 될 수 있음

2. 로킹 단위가 커지면 데이터베이스 공유도 증가

3. 로킹 단위가 작아지면 로킹 오버헤드가 증가

한꺼번에 로킹할 수 있는 객체의 크기를 로킹 단위라고 함

 

더보기
2번 로킹 단위와 데이터베이스 공유도는 반비례

로킹 단위와 데이터베이스 공유도, 오버헤드는 반비례 관계

 

다음 설명으로 올바른 개념은?

트랜잭션이 어떠한 검증도 수행하지 않고 일단 트랜잭션을 수행하고, 트랜잭션 종료 시점에서 검증을 수행하여 데이터 베이스에 반영하는 기법

 

더보기
낙관적 검증(Optimistic Validation)

일단 실행해봐~ 나중에 검증해서 반영할께~

 

다음 설명으로 올바른 개념은?

트랜잭션과 트랜잭션이 읽거나 갱신한 데이터에 대해 트랜잭션이 실행을 시작하기 전에 타임 스탬스를 부여하여 부여된 시간에 따라 트랜잭션 작업을 수행하는 기법

 

더보기
타임스탬프(Time Stamp)

특정 이벤트 발생 시간을 저장하기 위한 데이터 유형
오류 : 부여된 시간에 따라 작업을 수행하는 것이 아니라, 트랜잭션이 수행되는 시작 시점에 타임스탬프를 부여하여 충돌을 감지하기 위한 것

 

 

다음 설명으로 올바른 개념은?

트랜잭션의 타임스탬프와 접근하려는 데이터의 타임스탬프를 비교하여 직렬가능성이 보장되는 적절한 버전을 선택하여 접근하도록 하는 기법

 

더보기
MMVC 멀티 버전 동시제어성

타임스탬프를 데이터의 버전으로 보면, 이러한 버전을 관리하는 기법임.
Read Committed에서 쓰임

 

다음 설명으로 올바른 개념은?

연산 중인 데이터에 대해서 다른 트랜잭션의 연산은 불가하고 읽을 수만 있는 상태

 

더보기
Read Uncommitted 커밋안했는데, 읽긴해도 된다.

가장 낮은 고립화 수준으로, 다른 트랜잭션이 커밋하지 않은 데이터를 읽을 수 있음
dirty read

 

다음 설명으로 올바른 개념은?

앞선 트랜잭션이 데이터 영역을 순차적으로 읽고 있으면 데이터 전체 영역에 접근할 수 없는 상태

 

더보기
Serializable Read 순차적으로 읽고있는 중이다. 오지 마라.

가장 높은 고립화 수준으로, 모든 트랜잭션을 순차적으로 실행하듯이 처리하여 일관성을 보장

 

다음 설명으로 올바른 개념은?

앞선 트랜잭션이 데이터를 읽고 있으면, 이 트랜잭션이 종료될 때까지 갱신이나 삭제가 불가한 상태

 

더보기
Read committed 커밋하고나서 읽어라

커밋된 데이터만 읽을 수 있으며, 다른 트랜잭션이 아직 커밋하지 않은 데이터는 읽을 수 없음

 

다음 설명으로 올바른 개념은?

앞선 트랜잭션이 연산을 완료할 때까지 연산 대상 데이터에 대한 읽기를 제한하는 상태

 

더보기
Repeatable Read 내가 읽을 때, 같이 읽는 것은 가능 하지만, 갱신 삭제는 안됨 읽는 데이터가 반복가능해야하니까

한 트랜잭션 내에서 같은 쿼리를 실행하더라도 결과가 항상 동일하게 나올 수 있도록 보장

Phantom read

 

728x90
반응형

댓글