Entity Relationship Diagram은 릴레이션 간의 관계들을 정의한 것이며 시스템의 요구사항을 기반으로 작성되고 이를 통해 데이터베이스를 구축한다.
관계형 구조로 표현할 수 있는 데이터를 구성하는 데 유용하지만, 비정형 데이터를 충분히 표현할 수 없다는 단점이 있다.
장점
데이터베이스에서 이상 현상(삽입, 업데이트, 삭제 이상)을 없앨 수 있다
새로운 종류의 데이터를 추가할 때 테이블 구조 수정을 많이 하지 않아도 된다
데이터베이스 구조를 단순화해서 사용자가 더 쉽게 이해할 수 있다
릴레이션의 모든 도메인이 더 이상 분해될 수 없는 원자 값만으로 구성되어야 함
모든 속성은 반드시 하나의 값만 가져야 한다.
다중 값 or 반복 그룹 -> 제1정규형 위배
원자값이 아닌 도메인을 분해
릴레이션이 제1 정규형이며 부분 함수의 종속성을 제거한 형태
모든 속성은 반드시 모든 기본키에 종속되어야 한다. (기본키 일부에만 종속되어서는 안됨)
제2정규형이고 기본키가 아닌 모든 속성이 이행함수 종속성 제거
결정자가 후보키가 아닌 함수 종속성 제거
이상 현상이란 테이블 내의 데이터들이 불필요하게 중복되어 테이블을 조작할 때 발생되는 데이터 불일치 현상을 말한다.
불필요한 정보를 함께 저장하지 않으면 어떤 정보를 저장하는 것이 불가능하다.
반복된 데이터 중에 일부를 수정할 경우 데이터 불일치가 발생한다.
필요한 정보를 함께 삭제하지 않으면 어떤 정보를 삭제하는 것이 불가능하다.
정규화는 이상 현상을 해결하거나 저장 공간을 효율적으로 사용하기 위해 릴레이션을 여러 개로 분리하는 과정이다.
릴레이션의 모든 컬럼은 더 이상 분해할 수 없는 원자 값(atomic value)으로 구성되어야 한다.
1NF를 만족하며 모든 컬럼은 PK에 대해 부분 함수 종속성(Partial Dependency)이 없어야 한다. PK가 2개 이상의 컬럼으로 이루어진 경우에만 발생하므로 PK가 하나의 컬럼으로 이루어진다면 2NF는 생략한다.
2NF를 만족하며 PK를 제외한 컬럼 간의 이행 함수 종속성(Transitive Dependency)이 없어야 한다.
3NF를 만족하며 모든 결정자가 후보키 집합에 속해야 한다.
결정자
함수 종속 관계에서 특정 종속자를 결정짓는 요소로서, X 👉 Y일 때 X는 결정자이고 Y는 종속자이다.
[참고자료]