📘 정처기 공부
🔴 Tier 13 / 12

3 데이터베이스 이론

이상현상 → 정규화 → 키 → 무결성 → 트랜잭션 → 병행제어.

이상현상 (Anomaly)

종류정의
삽입 이상(Insertion)불필요한 데이터 없이는 새 데이터 삽입 불가.
삭제 이상(Deletion)한 데이터 삭제 시 연쇄적으로 필요한 정보까지 손실.
갱신 이상(Update)중복된 값 일부만 수정되어 데이터 불일치(모순) 발생.

정규화 단계 (Normalization)

단계조건 (제거 대상)
1NF모든 속성값이 원자값(도메인 원자값) — 반복 그룹 제거.
2NF부분 함수 종속 제거(기본키 전체에 완전 종속).
3NF이행 함수 종속 제거(A→B→C 형태 제거).
BCNF모든 결정자가 후보키가 되도록(강한 3NF).
4NF다치 종속(다중값 종속) 제거.
5NF조인 종속 제거.
암기팁 도 부 이 결 다 조 — 1NF(메인 원자값) · 2NF(분종속) · 3NF(행종속) · BCNF(정자=후보키) · 4NF(치종속) · 5NF(인종속).

키(Key)의 종류

정의
슈퍼키(Super Key)유일성 O, 최소성 X — 튜플을 유일 식별하는 속성 집합.
후보키(Candidate Key)유일성 + 최소성 모두 만족.
기본키(Primary Key)후보키 중 대표로 선정한 키(NULL·중복 불가).
대체키(Alternate Key)후보키 중 기본키를 제외한 나머지.
외래키(Foreign Key)다른 릴레이션의 기본키를 참조하는 속성.

무결성 제약 3종

무결성규칙
개체(Entity) 무결성기본키는 NULL 불가 + 유일해야 한다.
참조(Referential) 무결성외래키는 참조 릴레이션의 기본키 값 또는 NULL이어야 한다.
도메인(Domain) 무결성속성값은 정의된 도메인(자료형·범위)에 속해야 한다.

트랜잭션 특성 (ACID)

특성의미
원자성(Atomicity)연산은 모두 반영되거나 전혀 반영되지 않음(All or Nothing).
일관성(Consistency)실행 전후 DB가 일관된 상태 유지.
격리성(Isolation)실행 중 다른 트랜잭션이 중간 결과에 접근 불가.
지속성(Durability)완료된 결과는 영구히 반영(장애에도 보존).

병행제어 (Concurrency Control)

기법설명
로킹(Locking)접근 데이터에 잠금(Lock)을 걸어 상호 배제.
2단계 로킹(2PL)확장 단계(Lock만)와 축소 단계(Unlock만)로 분리 — 직렬성 보장.
타임스탬프(Timestamp)트랜잭션에 시간 순서를 부여해 순서대로 처리.

✅ 자가점검

Q1. BCNF의 정의는? 3NF와 무엇이 다른가?

BCNF는 릴레이션의 모든 결정자(Determinant)가 후보키인 상태(= 강한 3NF). 3NF는 이행 함수 종속을 제거하지만, 후보키가 아닌 결정자가 존재할 수 있는데 BCNF는 이를 허용하지 않는다.