X→Y이면 Y는 X에 함수적으로 종속된다는 의미
데이터의 일관성, 최소한의 데이터 중복, 최대한의 데이터 유연성을 위한 방법
# Anomaly의 종류
삽입 이상 [Insertion Anomaly] |
릴레이션에 데이터 삽입 시, 의도와는 상관없이 원하지 않은 값들도 함께 삽입되는 현상 |
삭제 이상 [Deletion Anomaly] |
릴레이션에서 한 튜플 삭제 시 의도와 상관없는 값도 함께 삭제되는 연쇄 삭제 현상 |
갱신 이상 [Update Anomaly] |
릴레이션에서 튜플에 있는 속성값 갱신 시 일부 튜플 정보만 갱신되어 정보모순이 생기는 현상 |
제 1 정규화 | 속성[Attribute]의 원자성을 확보 기본키[Primary Key]를 설정 → 엔터티의 유일성을 만족하기 위해 식별자를 찾는 과정 중복속성에 대한 분리 → 칼럼 단위에서 중복된 경우 1:M관계로 두 개의 엔터티로 분리하는 제1 정규화 진행 |
제 2 정규화 | 부분 함수 종속성 제거 → 부분 함수 종속성은 기본키가 2개 이상의 칼럼으로 이뤄진 경우에만 발생 → 부분 함수 종속성이 발생하면 테이블을 분해하여 새로운 테이블 도출 → 즉, 모든 속성이 식별자에 종속해야 하며 그렇지 않은 경우에는 분해 기본키가 하나의 칼럼으로 이뤄지면 제2정규화는 생략 |
제 3 정규화 | 이행 함수 종속성을 제거 → 이행 함수 종속성은 기본키를 제외하고 칼럼간에 종속성이 발생하는 것 → 제3정규화를 통해 기본키를 제외한 칼럼 간에 종속성을 제거 제 1정규화와 제 2정규화를 수행한 다음 수행 |
BNCF [Boyce-Codd Normal Form] |
복수의 후보키가 있고, 후보키들이 복합 속성이어야하며 서로 중첩됨 → 기본키가 후보키를 함수적으로 종속 → 후보키가 기본키를 함수적으로 종속하는 경우 분해 → 해당 후보키 테이블을 새롭게 만들고 기본키로 지정 컬럼은 함수적으로 종속된 기본키 |
제 4정규화 | 여러 칼럼들이 하나의 칼럼을 종속시키는 경우, 분해햐여 다중값 종속성을 제거 |
제 5정규화 | 조인에 의해 종속성이 발생되는 경우 분해 |
※ 실질적으로 제 3 정규화까지만 수행
# 1차 정규화의 대상
# 1차 정규화[2차 정규화 대상]의 예
PK에 대해 반복되는 그룹이 존재하지 않으므로 1차 정규형
# 2차 정규화 적용 전/후의 테이블
[개미의 걸음 SQLD 1과목] 성능 데이터 모델링 ③ 반정규화(De-Normalization) (0) | 2020.12.12 |
---|---|
[개미의 걸음 SQLD 1과목] 성능 데이터 모델링 ② 용량산정 & 대용량 데이터 문제 (0) | 2020.12.11 |
[개미의 걸음 SQLD 1과목] 성능 데이터 모델링의 이해 (0) | 2020.12.09 |
[개미의 걸음 SQLD 1과목] 식별자(Identifier) & 키(KEY) (0) | 2020.12.08 |
[개미의 걸음 SQLD 1과목] 데이터 모델링 요소 ③. 관계(Relationship) (0) | 2020.12.07 |
댓글 영역