정규화 절차 | 설명 |
---|---|
제1정규화 | - 속성(Attribute)의 원자성을 확보한다. - 속성의 중복값을 제거한다. - 기본키(Primary)를 설정한다. |
제2정규화 | - 기본키가 2개 이상의 속성으로 이루어진 경우, 부분 함수 종속성을 제거(분해)한다. - 부분 함수 종속성이란, 기본키가 2개 이상인 칼럼으로 이루어진 경우에반 발생한다. 기본키가 1개이면 이 과정을 스킵한다. - 복합 인스턴스에 대해 각 인스턴스의 종속적 중복을 삭제한다. |
제3정규화 | - 기본키를 제외한 칼럼 간에 종속성을 제거한다. - 즉, 이행 함수 종속성을 제거한다. - 일반 속성의 종속성을 제거한다. |
BCNF | - 기본키를 제외하고 후보키가 있는 경우, 후보키가 기본키를 종속시키면 분해한다. - BCNF는 복수의 후보키가 있고, 후보키들이 복합 속성이어야 하며, 서로 중첩되어야 한다. |
제4정규화 | 여러 칼럼들이 하나의 칼럼을 종속시키는 경우, 분해하여 다중값 종속성을 제거한다. - 다치 종속성을 제거한다. |
제5정규화 | 조인에 의해서 종속성이 발생되는 경우 분해한다. |
[ANSI Join]
SELECT 사원번호, 부서코드, 부서명, 이름, 전화번호, 주소
FROM 직원, 부서
WHERE 직원.부서코드 = 부서.부서코드;
==>
SELECT 사원번호, 부서코드, 부서명, 이름, 전화번호, 주소
FROM 직원 INNER JOIN 부서 ON
직원.부서코드=부서.부서코드;