ERD란 ?
DB 구축 시 가장 기초적인 뼈대, 관계를 정리 & 정의 한 것
(당근마켓 클론코딩 예시)
https://www.erdcloud.com/d/2mDmcrHWY3CqW4Rrp
정규화(Normalization)란 ?
릴레이션 간 잘못된 종속 관계로 발생한 이상 현상을 해결 & 방지 하거나 저장 공간을 효율적으로 사용하기 위해 릴레이션을 여러개로 분리 하는 과정
이 정규화 과정은 정규형 원칙을 기반으로 정규형을 만들어가는 과정이다.
정규형 원칙 ?
1 . 같은 의미를 표현하는 릴레이션이지만 좀 더 좋은 구조
2 . 자료의 중복성 감소
3 . 독립적인 관계는 별개의 릴레이션으로 표현
4 . 각각의 릴레이션은 독립적인 표현이 가능해야 함
기본 정규형
제1 정규형(1NF) : 릴레이션의 모든 도메인이 더 이상 분해될 수 없는 원자 값 만으로 구성된 형태
1 . 각 컬럼이 하나의 속성만을 가져야 한다.
2 . 하나의 컬럼은 같은 종류나 타입(type)의 값을 가져야 한다.
3 . 각 컬럼이 유일한(unique) 이름을 가져야 한다.
4 . 칼럼의 순서가 상관없어야 한다.
제2 정규형(2NF) : 제1 정규형을 만족하며 부분함수의 종속성을 제거한 형태
1 . 1정규형을 만족해야 한다.
2 . 모든 컬럼이 부분적 종속(Partial Dependency)이 없어야 한다.
== 모든 컬럼이 완전 함수 종속을 만족해야 한다. (기본키의 부분집합이 결정자가 되어서는 안된다)
-> 부분적 종속이란? 기본키 중에 특정 컬럼에만 종속되는 것
ex) 지도교수 = 부분적 종속 / 성적 = 완전 함수 종속
제3 정규형(3NF) : 제2 정규형을 만족하고 기본키가 아닌 모든 속성이 이행적 함수 종속을 만족하지 않는 형태
참고하면 이해가 잘 되는 블로그
https://code-lab1.tistory.com/48