IT 이론지식

데이터베이스 정규화

쥐PT 2024. 4. 2. 11:59
728x90
반응형
SMALL

데이터베이스 정규화는 데이터의 중복성을 최소화하고 데이터베이스의 일관성, 효율성, 유지보수성을 향상시키기 위한 프로세스입니다. 관계형 데이터베이스에서 주로 사용되며, 데이터베이스 설계 단계에서 중요한 요소로 간주됩니다. 이를 통해 데이터베이스의 구조를 최적화하여 데이터를 더 효율적으로 저장하고 관리할 수 있습니다.

 

데이터베이스 정규화의 목적:

  1. 중복 제거: 데이터 중복을 최소화하여 저장 공간을 절약하고 데이터 일관성을 유지합니다.
  2. 데이터 무결성: 데이터베이스의 일관성을 유지하고 삽입, 갱신, 삭제 작업 시 데이터 무결성을 보장합니다.
  3. 쿼리 최적화: 정규화된 데이터 모델을 사용하면 쿼리의 실행 속도를 향상시킬 수 있습니다.
  4. 유지보수 용이성: 데이터 구조가 단순화되고 변경이 필요한 경우 이를 쉽게 반영할 수 있습니다.

 

정규화의 단계:

  1. 제 1 정규형 (1NF): 모든 속성은 원자값(Atomic Value)을 가져야 합니다. 즉, 속성은 더 이상 분해할 수 없는 단일 값이어야 합니다.
  2. 제 2 정규형 (2NF): 모든 속성이 기본키에 대해 완전 함수 종속(Fully Functional Dependency)이어야 합니다. 즉, 기본키가 아닌 속성들은 기본키 전체에 종속되어야 합니다.
  3. 제 3 정규형 (3NF): 모든 속성이 기본키에 대해 이행적 함수 종속(Transitive Dependency)이 아니어야 합니다. 즉, 비기본키 속성 간에는 종속 관계가 없어야 합니다.
  4. 보이스-코드 정규형 (BCNF): 모든 결정자가 후보키여야 합니다.
  5. 제 4 정규형 (4NF): 다치 종속(Multivalued Dependency)이 없어야 합니다.
  6. 제 5 정규형 (5NF): 조인 종속성(Join Dependency)이 없어야 합니다.

 

예시:

가정을 통해 정규화의 개념을 이해해 봅시다.

비정규화된 테이블:

주문_번호   고객_이름   제품_명      제품_가격
1         홍길동      TV          100만원
1         홍길동      냉장고       50만원
2         김철수      컴퓨터      80만원

1NF 적용:

주문_번호   고객_이름   제품_명        제품_가격
1         홍길동      TV            100만원
1         홍길동      냉장고         50만원
2         김철수      컴퓨터        80만원

2NF 적용:

주문_번호   고객_이름   제품_명        제품_가격
1         홍길동      TV            100만원
1         홍길동      냉장고         50만원
2         김철수      컴퓨터        80만원

3NF 적용:

주문_번호   고객_이름   제품_명
1         홍길동      TV
1         홍길동      냉장고
2         김철수      컴퓨터

제품_명      제품_가격
TV          100만원
냉장고       50만원
컴퓨터      80만원

 

이와 같이 정규화를 거친 후, 데이터베이스는 중복이 제거되고, 관련된 테이블 간의 관계가 명확해집니다. 이를 통해 데이터베이스의 일관성과 효율성이 향상되며, 유지보수가 용이해집니다.

정규화는 데이터베이스 설계에서 매우 중요한 단계이며, 데이터 모델의 효율성과 유연성을 높이는 데 큰 영향을 미칩니다.

728x90
반응형
LIST