정규화(제1정규형, 제2정규형, 제3정규형, 보이스/코드 정규형)
정규화란?
정규화(normalization): 데이터베이스 이상 현상을 해결하거나, 저장 공간을 효율적으로 사용하기 위해 릴레이션을 여러 개로 분리하는 과정
목적: 반복적인 데이터를 분리하고 각 데이터가 종속된 테이블에 적절하게 배치되도록 하기 위함.
기본 정규형 - 제1정규형, 제2정규형, 제3정규형, 보이스/코드 정규형
고급 정규형 - 제4정규형, 제5정규형
1) 제1정규형
제1정규형(1NF): 릴레이션에 속하는 속성의 속성값이 원자값.
- 릴레이션: 각 개체를 표현하는 속성들의 관계
2) 제2정규형
제2정규형(2NF): 기본키에 속하지 않은 모든 속성이 기본키에 완전 함수 종속.
- 완전 함수 종속: 종속자가 기본키에만 종속. 기본키가 여러 속성으로 구성되어 있다면, 기본키를 구성하는 모든 속성이 포함된 기본키의 부분집합에 종속.
ex) 주민번호(결정자) → 이름(종속자 1)
주민번호(결정자) → 성별(종속자 2)
주민번호를 제외한 속성들(이름, 성별)은 다른 속성에 종속될 수 없다. (이름 → 성별 X)
- 부분 함수 종속: 기본키가 복합키일 때, 기본키를 구성하는 속성 중 일부에게 종속.
ex) 기본키가 {이름, 성별} 일 때,
성립하는 관계: {이름, 성별} → 주소
이름 → 주소
3) 제3정규형
제3정규형(3NF): 이행적 함수 종속성 제거
- 이행 함수 종속: X → Y, Y → Z 일 때 X → Z가 성립한다. (X → Y → Z)
4) 보이스/코드 정규형
보이스/코드 정규형(BCNF): 모든 결정자가 후보키 집합에 속함.
참고 사이트)
완전 함수 종속, 부분 함수 종속, 이행 함수 종속 - https://developer111.tistory.com/80
함수 종속성(완전 함수 종속, 부분함수 종속, 이행함수 종속)의 개념
함수 종속성 (functional dependency) '데이터베이스의 릴레이션 R(테이블)에서 X와 Y를 R의 부분집합이라고 할 때, X의 값 각각에 대해 Y의 값이 오직 하나로 결정 될때 Y는 X에 종속 된다고 한다.' 위의
developer111.tistory.com
정규형 - [DB] 8. 정규형 (1NF, 2NF, 3NF, BCNF) (rebro.kr)
[DB] 8. 정규형 (1NF, 2NF, 3NF, BCNF)
[목차] 1. 제1 정규형 2. 제2 정규형 3. 제3 정규형 4. BCNF 정규형이란 정규화된 결과를 말하며, 제1 정규형, 제2 정규형, 제3 정규형, BCNF, 제4 정규형, 제5 정규형이 있다. 실무적으로 제4, 제5 정규형은
rebro.kr