정보처리기사2026년 4월 16일· 10 min read· 조회 0

정처기 실기 데이터베이스 이론 정리 (ACID·정규화·인덱스)

정처기 실기 데이터베이스 이론 파트에서 출제되는 트랜잭션 ACID, 격리 수준, 락, 교착 상태, 인덱스, 정규화, 이상 현상을 시험 기준으로 정리합니다.

안녕하세요. 문어입니다 🐙


DB 이론은 SQL과 다르게 "개념 단답"이 중심

실기에서 SQL은 쿼리 결과를 묻지만, DB 이론은 개념 자체를 단답으로 묻습니다. ACID, 정규화 단계, 이상 현상, 인덱스 동작 — 모두 용어와 한 줄 정의가 답입니다.

암기 부담이 있지만, 시험에 나오는 개념이 거의 정해져 있어서 범위만 잡으면 효율적으로 대비할 수 있어요.


트랜잭션과 ACID

속성의미
Atomicity (원자성)전부 실행되거나, 전부 취소되어야 함
Consistency (일관성)실행 전후에 DB 무결성 제약이 유지
Isolation (격리성)동시에 실행되는 트랜잭션끼리 서로 간섭하지 않음
Durability (영속성)완료된 트랜잭션의 결과는 영구히 반영

단답으로 "ACID 중 C는 무엇을 의미하는가?" 형태로 나옵니다. 각 항목을 한 줄로 쓸 수 있어야 해요.

트랜잭션 상태

활동 → 부분 완료 → 완료
         ↓
       실패 → 철회
  • 활동(Active) : 실행 중
  • 부분 완료(Partially Committed) : 마지막 연산 종료, 아직 커밋 전
  • 완료(Committed) : 모든 연산 반영
  • 실패(Failed) : 정상 수행 불가
  • 철회(Aborted) : 모든 변경을 롤백

트랜잭션 격리 수준 (Isolation Level)

동시성 허용 범위를 조절하는 옵션입니다. 낮을수록 동시성은 좋지만 이상 현상이 발생합니다.

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

세 가지 이상 현상 요약:

  • Dirty Read : 다른 트랜잭션이 커밋하지 않은 값을 읽음
  • Non-repeatable Read : 같은 조회를 두 번 했는데 중간에 값이 바뀜
  • Phantom Read : 같은 범위 조회인데 중간에 새 행이 추가되어 보임
SERIALIZABLE이 가장 안전하지만 성능 비용이 큽니다. 실무에서는 대부분 READ COMMITTED(Oracle, SQL Server 기본값) 또는 REPEATABLE READ(MySQL InnoDB 기본값)를 씁니다.

락(Lock)과 교착 상태

락 종류

허용 연산
공유 락(Shared Lock)읽기만 가능, 다른 공유 락과 공존
배타 락(Exclusive Lock)읽기·쓰기 독점, 다른 락과 공존 불가

교착 상태(Deadlock) 4가지 조건

다음 네 조건이 동시에 성립해야 교착이 발생합니다.

  1. 상호 배제 : 자원은 한 번에 하나의 프로세스만 사용
  2. 점유와 대기 : 자원을 쥔 채로 다른 자원 요청
  3. 비선점 : 다른 프로세스의 자원을 강제로 뺏을 수 없음
  4. 원형 대기 : 대기 구조가 순환 형태

한 가지 조건이라도 깨지면 교착은 발생하지 않습니다.

교착 처리 전략

전략설명
예방4가지 조건 중 하나를 원천 차단
회피안전 상태 유지 (은행원 알고리즘)
탐지주기적으로 검사 후 회복
무시실무상 드물면 방치 (타조 알고리즘)

인덱스 — B-Tree가 기본

인덱스는 검색 속도를 높이기 위한 보조 자료구조입니다.

클러스터드 vs 논클러스터드

구분클러스터드 인덱스논클러스터드 인덱스
데이터 저장 순서인덱스 순서대로 정렬물리 순서와 무관
테이블당 개수1개여러 개
추가 공간작음상대적으로 큼
조회 속도대량 범위 조회에 유리단건 조회에 유리

인덱스의 장단점

  • 장점 : SELECT 속도 향상, 정렬/그룹화 시 가속
  • 단점 : INSERT/UPDATE/DELETE 시 인덱스도 갱신 → 쓰기 비용 증가, 저장 공간 소모
인덱스를 많이 걸수록 조회가 빨라질 것 같지만, 쓰기 빈도가 높은 테이블에는 오히려 느려집니다. 시험에서 "인덱스의 단점은?"으로 단답이 나옵니다.

정규화 단계

릴레이션을 더 작은 릴레이션으로 분해해 중복과 이상 현상을 줄이는 과정.

단계만족 조건
1NF모든 속성이 원자값(더 이상 쪼갤 수 없는 값)
2NF1NF + 부분 함수 종속 제거
3NF2NF + 이행 함수 종속 제거
BCNF3NF + 모든 결정자가 후보키
4NFBCNF + 다치 종속 제거
5NF4NF + 조인 종속 제거

시험 범위는 보통 BCNF까지입니다.

함수 종속 용어

  • 완전 함수 종속 : 속성이 기본키 전체에 종속
  • 부분 함수 종속 : 속성이 기본키의 일부에만 종속
  • 이행 함수 종속 : A → B → C 관계에서 A → C가 간접적으로 성립

2NF는 부분 종속, 3NF는 이행 종속을 제거합니다. 이 대응이 자주 단답으로 나와요.


이상 현상(Anomaly)

비정규화된 릴레이션에서 발생하는 세 가지 문제.

이상의미
삽입 이상특정 데이터 삽입 시 불필요한 데이터도 함께 넣어야 함
삭제 이상삭제하고 싶은 데이터 외의 데이터가 연쇄로 삭제됨
갱신 이상중복된 데이터 일부만 수정해 불일치 발생

정규화가 이 세 이상을 제거하는 과정이라는 점에서 묶어 기억하면 됩니다.


무결성 제약

유형설명
개체 무결성기본키는 NULL이거나 중복될 수 없음
참조 무결성외래키는 참조하는 테이블의 기본키와 일치하거나 NULL
도메인 무결성속성 값이 정의된 도메인(자료형/제약) 안에 있어야 함
사용자 정의 무결성특정 업무 규칙 (CHECK 제약 등)

키의 종류

설명
후보키(Candidate Key)유일성 + 최소성을 가진 속성 집합
기본키(Primary Key)후보키 중 선택된 하나 (NULL, 중복 불가)
대체키(Alternate Key)기본키로 선택되지 않은 나머지 후보키
외래키(Foreign Key)다른 릴레이션의 기본키를 참조
슈퍼키(Super Key)유일성만 만족(최소성은 없음)
후보키의 조건은 유일성 + 최소성 두 가지입니다. 슈퍼키는 최소성이 없다는 게 차이점.

자주 틀리는 포인트

함정정답
격리 수준 중 MySQL InnoDB 기본값REPEATABLE READ
2NF가 제거하는 것부분 함수 종속
3NF가 제거하는 것이행 함수 종속
클러스터드 인덱스 개수테이블당 1개
ACID의 DDurability(영속성) — 지속성이 아님
외래키 NULL 허용가능(참조 무결성은 NULL 허용)

정리

DB 이론은 한 줄 정의를 정확히 쓸 수 있는가가 전부입니다. ACID 4글자, 정규화 단계별 제거 대상, 이상 현상 3종, 인덱스 장단점 — 이 네 묶음을 손으로 쓸 수 있으면 단답 문제는 다 풀립니다.

정처기 실기 모의고사로 DB 이론 풀어보기 →


관련 글

직접 문제를 풀어보세요

매번 새로운 모의고사와 무한 풀이 모드로 실전 감각을 키울 수 있습니다.