PE Notes · DB
FD·4NF·5NF와 샤딩·파티셔닝·쿼리 오프로딩
암스트롱 공리와 다치·조인 종속, 4NF·5NF, 단일 서버 파티셔닝과 다중 서버 샤딩, 읽기 복제 오프로딩을 정리합니다.
3NF와 BCNF를 지나도 남는 이상이 있습니다. 한 과목에 교재 집합과 학생 집합이 서로 독립이면 행이 곱으로 늘어납니다. 과 조인 종속을 없애는 단계가 4NF·5NF입니다. 규모가 커지면 같은 표를 서버 안에서 자르거나(), 서버 사이로 나눕니다().
FD에서 5NF
A → B는 A가 정해지면 B가 정해진다는 뜻입니다. 암스트롱 공리는 반사(부분집합), 증가(양쪽에 속성 추가), 이행 세 가지로 모든 FD를 이끌어 냅니다.
다치 종속 X →→ Y는 X가 Y의 집합을 정합니다. 교재와 학생이 과목에만 매달리고 서로 독립이면 비자명 MVD입니다. 4NF는 BCNF이면서 그런 MVD가 없어야 합니다. 과목-교재, 과목-학생으로 나눕니다.
5NF(PJ/NF)는 원본이 여러 조각의 자연 조인으로만 복원되고, 그 조인 종속이 후보키에서만 나와야 합니다. 실무에서는 거의 목표로 두지 않고, 이론의 끝으로 적습니다.
| 정규형 | 제거 |
|---|---|
| 4NF | 비자명 MVD |
| 5NF | 후보키가 아닌 조인 종속 |
파티셔닝과 샤딩
파티셔닝은 한 DBMS 안에서 큰 표를 여러 물리 조각으로 나눕니다. 범위(연도), 목록(지역), 해시(ID), 복합이 쓴 방법입니다. 조건에 안 맞는 조각은 스캔하지 않습니다(프루닝). 백업·삭제도 조각 단위입니다.
샤딩은 독립 서버에 행을 흩깁니다. 해시·범위·디렉터리·지리 전략이 있습니다. 크로스-샤드 조인과 분산 트랜잭션, 다시 나누기(리샤딩)가 비용입니다.
| 축 | 파티셔닝 | 샤딩 |
|---|---|---|
| 경계 | 단일 서버 | 여러 서버 |
| 목적 | 관리·프루닝 | 수평 확장 |
| 질의 | 엔진이 조각만 스캔 | 라우팅·크로스 샤드 |
쿼리 오프로딩
은 쓰기만 Primary에 두고, SELECT를 복제본으로 보냅니다. 통계·리포트처럼 즉시 일치가 필요 없는 읽기가 대상입니다. 이 있으면 방금 쓴 값이 안 보입니다. 잔액·재고 확인은 Primary에 남깁니다.