정보처리기사 · 데이터베이스 구축 과목
정보처리기사 물리 설계와 트랜잭션 개념 정리
중요도 ★★★★☆ · 30% (추정)
AI가 새로 쓴 글 가운데, 작성과 분리된 AI 검증(다시 읽고 사실·수치 확인)을 통과한 단원만 싣습니다. 틀린 곳을 발견하면 알려 주세요.
핵심 개념
트랜잭션의 ACID
트랜잭션은 모두 되거나 전혀 안 되어야 하고(원자성), 실행 전후가 일관되어야 하며(일관성), 서로 끼어들지 않아야 하고(독립성), 완료된 결과는 남아야 합니다(영속성).
외우는 요령A(원자) C(일관) I(독립) D(영속).
로킹 단위
한 번에 잠그는 범위입니다. 크게 잠그면 관리가 쉽지만 동시에 쓸 수 있는 사람이 줄고(병행성 낮음), 작게 잠그면 그 반대입니다.
외우는 요령'크게 잠그면 편하지만 붐빈다'.
뷰
실제 자료를 저장하지 않고 다른 표에서 필요한 부분만 보여 주는 가상 표입니다. 고칠 때는 ALTER 로 바꿀 수 없어 지우고 다시 만듭니다.
외우는 요령'창문(view)으로 보기만 한다'.
인덱스
책의 찾아보기처럼 원하는 자료를 빨리 찾도록 따로 만든 구조입니다. 검색은 빨라지지만 자료를 넣고 고칠 때는 인덱스도 고쳐야 해 느려질 수 있습니다.
외우는 요령'찾기는 빠르게, 쓰기는 조금 느리게'.
자주 나오는 포인트
- ACID 의 네 가지 성질과 뜻을 짝짓는 문제가 자주 나옵니다.
- 로킹 단위와 병행성의 관계(반비례)를 묻는 문제가 나옵니다.
- 뷰는 ALTER 로 고칠 수 없다는 점이 단골입니다.
대표 문제 3개
검수를 마친 예상문제 가운데 이 단원의 대표 문제입니다.
문제 1. 트랜잭션의 성질 가운데 '트랜잭션의 연산은 모두 반영되거나 전혀 반영되지 않아야 한다'는 것은?
- ① 영속성(Durability)
- ② 일관성(Consistency)
- ③ 독립성(Isolation)
- ④ 원자성(Atomicity)
▼ 정답과 해설 보기▲ 정답과 해설 접기
정답: ④ 원자성(Atomicity)
핵심: 원자성: 모두 반영(Commit)되거나 전혀 반영되지 않거나(Rollback)
원자성은 '전부 아니면 전무'입니다. 계좌 이체에서 돈이 빠져나가기만 하고 들어가지 않는 일이 없어야 합니다.
틀린 선지
- ① 영속성(Durability): 완료된 결과는 고장이 나도 영구히 남아야 한다는 성질입니다.
- ② 일관성(Consistency): 트랜잭션이 끝난 뒤에도 데이터베이스가 올바른 상태를 유지해야 한다는 성질입니다.
- ③ 독립성(Isolation): 동시에 실행되는 트랜잭션들이 서로 끼어들 수 없다는 성질입니다.
문제 2. 트랜잭션의 성질 가운데 '성공적으로 끝난 트랜잭션의 결과는 시스템에 고장이 나더라도 영구적으로 반영되어야 한다'는 것은?
- ① 독립성(Isolation)
- ② 원자성(Atomicity)
- ③ 일관성(Consistency)
- ④ 영속성(Durability)
▼ 정답과 해설 보기▲ 정답과 해설 접기
정답: ④ 영속성(Durability)
핵심: 트랜잭션 ACID: 원자성·일관성·독립성·영속성
영속성(지속성)은 COMMIT 된 결과가 사라지지 않는다는 성질입니다.
틀린 선지
- ① 독립성(Isolation): 실행 중인 트랜잭션에 다른 트랜잭션이 끼어들 수 없다는 성질입니다.
- ② 원자성(Atomicity): 트랜잭션의 연산은 모두 반영되거나 전혀 반영되지 않아야 한다는 성질입니다.
- ③ 일관성(Consistency): 트랜잭션이 끝난 뒤에도 데이터베이스가 모순 없는 상태를 유지해야 한다는 성질입니다.
문제 3. 데이터베이스에서 인덱스(Index)를 만드는 가장 큰 목적은?
- ① 자료를 저장하는 공간을 줄인다
- ② 자료를 검색하는 속도를 높인다
- ③ 자료를 입력하는 속도를 높인다
- ④ 자료를 암호화하여 보안을 높인다
▼ 정답과 해설 보기▲ 정답과 해설 접기
정답: ② 자료를 검색하는 속도를 높인다
핵심: 인덱스: 검색 속도 향상
인덱스는 책 뒤의 '찾아보기'처럼 <키 값, 위치>를 정리해 둔 것입니다. 전체를 훑지 않고도 원하는 자료를 빨리 찾을 수 있습니다.
틀린 선지
- ① 자료를 저장하는 공간을 줄인다: 인덱스를 만들면 저장 공간이 오히려 더 필요합니다.
- ③ 자료를 입력하는 속도를 높인다: 입력할 때 인덱스도 함께 고쳐야 해서 느려질 수 있습니다.
- ④ 자료를 암호화하여 보안을 높인다: 인덱스는 보안 기능이 아닙니다.