Ch 12. 정규화

Section 1. 이상 현상

  • anomaly : 불필요한 NULL이 삽입되거나, 연쇄 삭제, 데이터 일관성이 깨지는 현상

1.1 삽입 현상(insertion anomaly)

  • 데이터 삽입 시 특정 열에 해당하는 값이 없어서 필요하지 않은 NULL을 강제로 입력해야 하는 현상
  • 예) 신규 회원이 가입 되어 회원 정보를 넣지만 주문 정보가 없어 주문 정보를 NULL로 채워야 하는 상황

1.2 삭제 이상(delete anomaly)

  • 데이터 삭제 시 유용한 다른 데이터까지 함께 삭제되는 현상
  • 예) 주문을 취소했는데 회원 정보까지 사라짐

1.3 수정 이상(update anomaly)

  • 중복 데이터중에서 일부만 수정되어 데이터의 불일치 문제가 불생하는 현상(inconsistency)

Section 2. 정규화

  • normalization 이란 anomaly를 테이블 설계를 수정해 정상적으로 만드는 과정
  • 관계형 데이터베이스에 저장될 구조의 중복을 최소화 하는 과정
  • 이렇게 표현된 테이블이 어떤 특정의 제약 조건ㅇㄹ 만족하면 그 제약조건으로 정의된 정규형에 속하게 된다.

2.1 제 1 정규형

  • 하나의 셀에는 하나의 값만 저장할 수 있다.
  • 이 과정에서 기본키가 변경 될 수 있음

2.2 제 2 정규형

  • 기본키 열과 기본 키가 아닌 열 간의 종속 곤계가 있을 경우 이를 별도의 테이블로 분리하는 과정
  • 부분 종속을 없애는 과정
  • 제 1 정규형이고, 키에 속하지 않는 속성 모두가 기본키에 완전 함수 종속이면, 제 2 정규형이다.

2.3 제 3 정규형

  • 기본 키가 아닌 열끼리 종속 관계가 있을 경우 이를 분리하는 과정
  • 제 2 정규형이고, 키에 속하지 않는 모든 속성들이 기본키에 이행적함수 종송이 아닐 때 제 3정규형에 속한다.

2.4 정규형 요약

  • DB 이론으로 제시된 정규형 필요시 참고

2.5 비정규화

  • 정규화 이후에 성능 때문에 고려해 보는 것
  • 분리된 테이블을 성능 향상(Join을 피하기 위해)을 위해 다시 합쳐야 하는 경우