Ref.
[SQL] 정규화의 개념
관계형 데이터베이스(RDBMS)의 설계에서 중복을 최소화하게 데이터를 구조화하는 프로세스.
데이터를 정규화하지 않으면 쿼리의 성능이 저하된다.
정규화의 종류에는 1NF(1정규화), 2NF, 3NF, BCNF(보이스-코드 정규화), 4NF, 5NF, (6NF)가 있다.
비공식적으로 3NF면 정규화되었다고 한다.
비공식적으로 3NF면 정규화되었다고 한다.

사용내역(컬럼)에 거래번호, 일자 ,잔고가 원자값을 가지지 않는다.
이는 1정규화로 처리해준다.

학과장은 소속학과에 포함되어있는 내용이다. ( 소속학과의 대장이 학과장이기 때문이다 )
위와 같은 경우를 부분함수 종속이라고 표현한다.
이를 2정규화를 통해 제거하여 처리해준다.

A → B 이고 B → C 일때 A → C인 관계를 이행함수종속 이라고 한다.
예를들어 홍길동 → 컴퓨터과 이고 컴퓨터과 → 공대일때 홍길동 → 공대 의 관계가 성립한다.
이때 3정규화를 통한 소속대학의 분리로 처리해준다.
예를 들어 사람 테이블에서 슈퍼키는 (보이는 데이터가 전부라고 할 때) {학번} 또는 {주민번호}, {이름, 나이} 등이 있다.하나의 레코드를 식별할 수만 있으면 된다. 하지만 후보키는 개수를 최소한으로 한 것이다. 예를 들어 {학번} 또는 {주민번호} 가 개수가 제일 작으므로 후보키가 될 수 있다. 이때, 후보키 중에서 최소성과 유일성을 만족하는 키를 하나만 고르면 그게 기본키(primary key)가 된다. 학번을 선택한다면, 학번에 PK가 된다. 후보키중에서 PK를 정하고 남은 키들은 대체키(Candidate key)라고 부른다. 주민번호가 그 예이다.