0. ERD와 정규화 과정
0. ERD와 정규화 과정
ERD는 DB를 구축할 때 가장 기초적인 뼈대 역할을 하며 릴레이션 간 관계들을 정의한 것이다. 서비스 구축시 가장 먼저 신경써야 하는 부분이며 몸으로 치면 골격이라고 보면 된다.
1. ERD의 중요성
ERD는 시스템 요구 사항을 기반을 작성되며 이 ERD를 기반으로 DB를 구축한다. 구축한 이후에도 디버깅, 프로세스 재설계 할 때 설계도 역할을 하기도 한다.
3. 정규화 과정
정규화 과정은 릴레이션 간 잘못된 종속 관계로 이상 현상이 일어나 이를 해결하거나 저장 공간을 효율적으로 사용하기 위해 릴레이션을 여러 개로 분리하는 과정이다.
정규형 원칙
정규형 원칙이란 같은 의미를 표현하는 릴레이션이지만 좀 더 좋은 구조, 중복성 감소, 독립적인 관계는 별개의 릴레이션으로, 각각의 릴레이션은 독립적인 표현이 가능해야 하는 것을 말한다.
제1정규형
릴레이션의 모든 도메인이 더 이상 분해될 수 없는 원자 값만으로 구성되어야 한다. 속성 값 중 한 개의 기본키에 대해 두 개 이상의 값을 가지는 반복 집합이 있으면 안된다.
제2정규형
릴레이션이 제1정규형이며 부분 함수의 종속성을 제거한 형태를 말한다. 부분 함수의 종속성 제거란 기본키가 아닌 모든 속성이 기본키에 완전 함수 종속적인 것을 말한다.
제3정규형
제2정규형이고 기본키가 아닌 모든 속성이 이행적 함수 종속을 만족하지 않는 상태를 말한다.
이행적 함수 종속
이행적 함수 종속이랑 A -> B와 B - C가 존재하면 논리적으로 A -> C가 성립하는데 이때 C가 A에 이행적으로 함수 종속이 되었다고 한다.
보이스/코드 정규형
보이스/코드 정규형은 제3정규형이고 결정자가 후보키가 아닌 함수 종속 관계를 제거하여 릴레이션의 함수 종속 관계에서 모든 결정자가 후보키인 상태다.
> 결정자 > > 함수 종속 관계에서 특정 종속자를 결정짓는 요소