1. 좋은 릴레이션과 나쁜 릴레이션
1-1. 나쁜 릴레이션의 예
데이터의 부분적인 중복 -> 저장에서 비효율적, 일관성 유지 어려움
갱신 이상 :
- 삽입 이상
- 삭제 이상
- 수정 이상

1-2. 좋은 릴레이션의 개념
어떤 데이터를 효율적으로 저장할까?
릴레이션의 스키마가 얼마나 효율적으로 실세계를 반영하고 있는지 평가
고려 사항
- 한 릴레이션 내의 컬럼 간의 관계 분석
- 원하지 않는 데이터의 종속과 중복 제거
- 새로운 컬럼들이 데이터베이스에 추가될 때, 기존 컬럼과의 관계 수정을 최소화
2. 함수적 종속적
정의: 릴레이션 인스턴스(레코드)를 분석하여 속성들(컬럼들) 간의 연관관계를 표현한 것
3. 정규화
3-1. 정규화의 개념
정규형: 이상 현상을 최소화하도록 특정 조건을 갖춘 릴레이션의 형식
릴레이션 분할을 통해 데이터의 중복성을 최소화
사용과정에서 많은 조인 연산 유발
정규형의 분류
- 제 1 정규형 : 가장 조건이 단순한 정규형, 릴레이션 스키마에서 정의된 모든 속성의 도메인이 원자값을 갖는 상태

-> 한 컬럼에 한 레코드만 표현해야 한다.
- 제 2 정규형 : 릴레이션이 제 1 정규형을 만족하고 기본키의 부분집합이 특정 속성을 종속하고 있지 않은 상태
-> 기본키에 완전히 종속되도록 릴레이션을 분해

- 제 3 정규형 : 제 2 정규형을 만족하고 , 기본키가 아닌 속성들이 어떤 키에도 이행적으로 종속되지 않은 상태

- BC 정규형
- 제 4 정규형
- 제 5 정규형
정규형의 목적 : 특정 정규형의 조건을 만족하도록 릴레이션과 속성을 재구성하는 과정 (릴레이션을 분할하는 과정)
정규화의 기능
- 릴레이션을 효과적으로 표현
- 중복성을 최소화
- 검색 알고리즘을 효과적으로 작성하도록 지원
- 이상 발생 방지
- 릴레이션 재구성의 필요성을 축소
역정규화
- 정규화의 반대
- 정규화를 통해 분리되었던 릴레이션을 통합
- 정보의 중복을 부분적으로 허용
- 데이터 접근 성능을 개선 목적