기본 개념
- 개념
- 데이터베이스의 설계를 재구성하는 기술
- 목적
- 불필요한 데이터(data redundancy) 제거
- 데이터 저장을 논리적으로 함
제1 정규형(1NF)
- 규칙
- 각 컬럼이 하나의 속성만을 가져야 함(=atomic)
- 하나의 컬럼은 같은 종류나 같은 타입을 가져야 함
- 각 컬럼이 유일한 이름을 가져야 함
- 칼럼의 순서가 상관이 없어야 함
- there are no duplicated rows in the table
- primary key ensures
제2 정규형(2NF)
- 규칙
- 제1 정규형 만족
- 기본키가 아닌 모든 컬럼이 부분적 종속이 없어야 함 --> 한 속성이 여러 기본키 중 하나 또는 일부 키에만 종속이 되는 경우
- 기본키가 아닌 모든 컬럼이 완전 함수 종속을 만족해야 함
제3 정규형(3NF)
- 규칙
- 제2 정규형 만족
- 기본 키를 제외한 속성들 간의 이행 종속성(transitive dependency)이 없어야 함
BCNF(3.5NF)
- 규칙
- 제3 정규형 만족
- 모든 결정자가 후보키 집합에 속해야 함
제4 정규형(4NF)
- 규칙
- BCNF 만족
- 다치종속(=다중값 종속) 없어야 함
- 다치종속
- 최소 3개 이상 컬럼
- 속성 A, B, C
- A -> B & A -> C
- B and C are independent from each other