자격증/정보처리기사 실기

정처기 실기 DB 단답 완벽 대비 — 격리 수준·키 종류·정규화 헷갈림 정리

공감(공부하는감자) 2026. 6. 12. 10:39

안녕하세요, 공부하는 감자입니다 🥔

정처기 실기에서 DB는 두 얼굴이에요. SQL 문제는 쿼리 결과를 계산해야 하지만, DB 이론은 용어와 한 줄 정의를 그대로 쓰는 단답입니다.

그래서 이론 쪽은 출제 범위가 사실상 정해져 있고, 그 범위만 손으로 쓸 수 있게 만들면 점수가 보장되는 영역이에요. 제가 시험 준비하면서 단답으로 나왔을 때 헷갈렸던 순서대로 정리해 봤습니다.

격리 수준 — 표 하나를 통째로 외워야 합니다

트랜잭션 격리 수준은 동시성을 얼마나 허용할지 정하는 옵션인데, 수준별로 어떤 이상 현상이 발생하는지가 시험 포인트예요.

격리 수준 Dirty Read Non-repeatable Read Phantom Read
READ UNCOMMITTED 발생 발생 발생
READ COMMITTED 방지 발생 발생
REPEATABLE READ 방지 방지 발생
SERIALIZABLE 방지 방지 방지

이상 현상 세 가지의 정의도 같이요.

  • Dirty Read — 커밋 안 된 값을 읽는 것
  • Non-repeatable Read — 같은 조회를 두 번 했는데 사이에 값이 바뀌는 것
  • Phantom Read — 같은 범위 조회에 새 행이 끼어드는 것

기본값 문제가 함정이에요. MySQL InnoDB는 REPEATABLE READ, Oracle·SQL Server는 READ COMMITTED가 기본값입니다.

키 종류 — 유일성과 최소성으로 가르기

키 다섯 종류는 정의 한 줄씩만 잡으면 됩니다.

정의
슈퍼키 유일성만 만족 (최소성 없음)
후보키 유일성 + 최소성
기본키 후보키 중 선택된 하나, NULL·중복 불가
대체키 기본키가 못 된 나머지 후보키
외래키 다른 릴레이션의 기본키 참조

후보키의 조건이 "유일성 + 최소성" 두 가지라는 것, 그리고 슈퍼키와의 차이가 최소성이라는 게 핵심이에요. 외래키는 NULL이 허용된다는 점도 함정으로 자주 나옵니다.

무결성 제약도 키와 묶어서 보면 편합니다.

  • 개체 무결성 — 기본키는 NULL·중복 불가
  • 참조 무결성 — 외래키는 참조 대상의 기본키와 일치하거나 NULL
  • 도메인 무결성 — 속성 값은 정의된 도메인 안에
  • 사용자 정의 무결성 — CHECK 같은 업무 규칙

정규화 — 단계와 제거 대상의 매칭

단계별로 뭘 제거하는지 매칭하는 게 전부예요.

단계 조건
1NF 모든 속성이 원자값
2NF 1NF + 부분 함수 종속 제거
3NF 2NF + 이행 함수 종속 제거
BCNF 모든 결정자가 후보키

시험 범위는 보통 BCNF까지입니다(4NF 다치 종속, 5NF 조인 종속은 이름만 알아도 충분해요). 2NF=부분, 3NF=이행 매칭을 뒤집어서 틀리는 분들이 정말 많은데, 함수 종속 용어로 돌아가면 안 헷갈립니다.

부분 종속은 기본키의 일부에만 종속된 것, 이행 종속은 A → B → C로 간접 성립하는 것이에요.

정규화가 없애려는 게 이상 현상입니다. 삽입 이상(원치 않는 데이터까지 같이 넣어야 함), 삭제 이상(필요한 데이터가 연쇄 삭제됨), 갱신 이상(중복 일부만 고쳐 불일치 발생) — 이 세 가지는 정의를 쓰는 문제로 나와요.

ACID와 트랜잭션 상태

ACID는 네 글자 각각의 한 줄 정의를 쓰게 합니다.

글자 속성 한 줄 정의
A 원자성 전부 실행되거나 전부 취소
C 일관성 실행 전후 무결성 제약 유지
I 격리성 동시 실행 트랜잭션 간 간섭 없음
D 영속성 완료된 결과는 영구 반영

"ACID 중 I는 무엇인가?" 같은 식으로 글자 하나를 콕 집어 묻습니다. D가 Durability(영속성)라는 영문 표기까지 써야 할 수 있어요.

트랜잭션 상태 전이(활동 → 부분 완료 → 완료, 실패 → 철회)도 용어 이름이 그대로 답이 됩니다.

단답 연습은 저는 문어CBT에서 DB 유형만 골라 풀면서 했는데, 무료라 부담 없이 반복하기 좋았어요.

 

SQLD·정처기·컴활·ADsP 무료 CBT 모의고사

기출 변형 문제, 자동 채점, 회차별 실력 추적까지 가입 없이 바로 풀어보세요.

sqldpass.com

락과 교착 상태

락은 두 종류입니다. 공유 락은 읽기 전용이고 다른 공유 락과 공존 가능, 배타 락은 읽기·쓰기를 독점하고 어떤 락과도 공존 불가.

교착 상태(Deadlock)는 네 조건이 동시에 성립해야 발생해요.

  • 상호 배제
  • 점유와 대기
  • 비선점
  • 원형 대기

하나라도 깨지면 교착은 안 생깁니다. 처리 전략은 예방(조건 차단), 회피(은행원 알고리즘), 탐지 후 회복, 무시(타조 알고리즘) 네 가지인데 "은행원 알고리즘은 어느 전략인가?" → 회피, 이 매칭이 단골이에요.

인덱스 — 장점만 묻지 않습니다

인덱스는 검색을 빠르게 하는 보조 자료구조(기본은 B-Tree)인데, 시험은 오히려 단점을 물어요. INSERT/UPDATE/DELETE 때마다 인덱스도 갱신해야 해서 쓰기 비용이 늘고, 저장 공간을 추가로 먹습니다.

쓰기가 잦은 테이블에 인덱스를 많이 걸면 오히려 느려진다는 것까지가 답안이에요.

클러스터드 인덱스는 데이터가 인덱스 순서로 정렬 저장되고 테이블당 1개, 논클러스터드는 물리 순서와 무관하고 여러 개 가능 — 이 개수 차이도 자주 나옵니다.

정리하면 DB 이론은 ACID 네 글자, 정규화 단계별 제거 대상, 이상 현상 3종, 격리 수준 표, 인덱스 장단점 — 이 다섯 묶음을 보지 않고 쓸 수 있으면 끝납니다. 표를 가리고 백지에 재현해 보는 게 제일 빠른 점검법이었어요.