정규화 용어
| 정규화(Normalization) | 함수의 종속성 등과 같은 이론에 근거하여 관계형 데이터베이스 테이블의 삽입/삭제/갱신 이상현상 발생을 최소화하기 위해 좀 더 작은 단위의 테이블로 설계하는 과정 / 데이터 모델을 정규형에 맞도록 고치는 과정 |
|---|---|
| 정규형(NF) | 정규화한 결과 / 정규화 결과에 의해 도출된 데이터 모델이 갖춰야 할 특성을 만족한 형태 |
| 함수적 종속성(FD) | 테이블의 특정 칼럼 A의 갑을 알면 다른 칼럼 B의 값을 알 수 있을 때, 칼럼 B는 칼럼 A에 함수적 종속성이 있다고 한다. |
| 결정자 | 함수적 종속성 설명에서 칼럼 A를 결정자라고 한다. 즉 주민번호는 고객명을 결정하므로 주민번호는 고객명의 결정자이다. |
| 다치종속(MVD) | 결정자 칼럼 A에 의해 칼럼 V의 값을 다수 개 알 수 있을 때, 칼럼 B는 칼럼 A에 다치종속 되었다고 한다. |
정규화 이론
| 1차 정규화 | 한 속성에 여러 개의 속성값을 갖거나 같은 유형의 속성이 여러개인 경우 해당 속성을 분리 (원자성 확보) |
|---|---|
| 2차 정규화 | 주 식별자에 완전 함수 종속되지 않은 속성을 분리 (부분 종속 속성이 된 속성을 분리) |
| 3차 정규화 | 일반속성끼리 함수종속이 발생한 속성을 분리 |
| 3차 정규화 작업으로 이행적 종속 속성을 분리 | |
| 보이스-코드 정규화 | 결정자 안에 함수 종속을 가진 주식별자 속성을 분리 |
| 4차 정규화 | 다가 종속 속성을 별도의 엔터티로 분리 |
| 5차 정규화 | 결합 종속일 경우는 2개 이상의 엔터티로 분리 |
제 1 정규형
한 속성에 여러 개의 속성 값을 갖거나 같은 유형의 속성이 여러 개인 경우 해당 속성을 분리시켜야 함
ex. 연락처 컬럼 : 전화번호, 이메일 → 따로 엔티티를 만들어서 전화번호/이메일 , 정보 컬럼 따로
제 2 정규형
제1 정규형을 만족, 모든 PK가 아닌 컬럼은 PK 전체에 종속되어야 함
ex. PK에 따라서 정보가 바뀌는 거는 계속 컬럼으로 중복되서 쓸게 아니라 따로 엔티티로 저장
제 3 정규형
제 2 정규형 만족, 일반 속성들 간에도 함수 종속 관계가 존재하지 않아야 함
ex. PK에 따라서 정보가 바뀌는 컬럼을 PK를 제외(2 정규형과 다르게)한 컬럼으로 엔티티로 저장
반정규화
시스템의 성능 향상 및 개발과 유지보수의 단순화를 위해 정규화된 데이터 모델을 분석하여 엔터티/속성/관계를 중복, 통합, 분리 등의 작업으로 수행하는 데이터 모델링 기법을 의미