CS

정규화

dhfkdlsj 2025. 1. 10. 21:20

데이터베이스 정규화 (Database Normalization)

1. 데이터베이스 (Database)

  • Data : 사실, 관찰, 측정 등을 통해 얻어진 정보를 의미하며, 정리되지 않은 원시적인 형태의 정보
  • Base : 기초, 기반, 저장소
  • Database : 데이터의 기지 (1950년대 미국에서 처음 사용), 구조화된 정보 또는 데이터의 조직화된 모음 혹은 전자적으로 저장되고 체계적인 데이터 모음 (현대)

2. 정규화 (Normalization)

  • 정(正): 바를 정, 올바르게 하다, 또는 바르게 맞추다.
  • 규(規): 법 규, 규칙이나 기준을 의미.
  • 화(化): 될 화, 변화시키다, 어떤 상태로 만들다.

정리

  • 정규화올바른 기준에 맞게 데이터를 변화시키는 과정이다.
  • 즉, 데이터를 체계적으로 저장하고 관리하는 저장소를 규칙에 맞게 정리하는 것이다.

3. 데이터베이스 정규화란?

  • 데이터베이스 정규화는 데이터를 여러 테이블로 나누어 중복을 줄이고, 데이터 무결성 및 일관성을 유지하는 과정이다.

데이터베이스 정규화의 장점

  1. 데이터 중복 최소화: 저장 공간을 절약할 수 있다.
  2. 이상 현상 방지: 데이터 변경 시 발생할 수 있는 부작용을 줄일 수 있다.
  3. 무결성 및 일관성 유지: 데이터 관리 효율성을 높일 수 있다.

4. 이상 현상 (Anomalies)

이상 현상은 불필요한 데이터 중복으로 인해 데이터 삽입, 수정, 삭제 연산을 할 때 발생할 수 있는 부작용이다.

이상 현상의 종류

  1. 삽입 이상: 데이터를 삽입하기 위해 불필요한 데이터도 함께 삽입해야 하는 문제
  2. 갱신 이상: 중복된 튜플 중 일부만 변경하여 데이터 불일치가 발생하는 문제
  3. 삭제 이상: 튜플을 삭제하면 꼭 필요한 데이터까지 함께 삭제되는 문제

5. 정규화의 단계

  1. 제 1 정규형 (1NF): 모든 필드는 원자값을 가져야 한다.
  2. 제 2 정규형 (2NF): 기본키가 아닌 모든 속성이 기본키에 완전 함수 종속되어야 한다.

  • 기본키는 학생번호, 과목이고, '지도 교수'는 과목에만 종속되어 있다. 이를 부분 함수 종속이라 하며 이를 제거한 것이 제 2 정규형이다.
  1. 제 3 정규형 (3NF): 기본키가 아닌 모든 속성이 기본키 이외의 다른 속성에 종속되지 않아야 한다. 즉, 이행적 함수 종속을 제거해야한다.

  • 기본키는 ID이고, '등급'에 '할인율'이 종속되어 있다. 이를 제거한 것이 제 3 정규형이다.
  1. 기타 정규형: BCNF, 제 4 정규형 (4NF), 제 5 정규형 (5NF) 등이 있다.

6. 정규화의 단점

  • 조인 연산 증가: 정규화된 데이터베이스에서는 데이터가 여러 테이블에 분산되므로 조인 연산이 자주 필요하고, 이로 인해 성능이 저하될 수 있다.

해결 방안: 비정규화

  • 비정규화는 정규화된 데이터베이스에서 일부 테이블을 합치거나, 중복 데이터를 의도적으로 추가하는 과정이다.
  • 읽기 성능 (비정규화)쓰기 성능 (정규화)트레이드 오프를 고려하여 정규화와 비정규화의 균형을 유지하는 것이 중요하다.

참고 문헌