Notice
Recent Posts
Recent Comments
Link
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

Skipalong's tistory

240313 TIL - 정규화 본문

TIL

240313 TIL - 정규화

Skipalong 2024. 3. 14. 01:44

오늘은 정규화에 대해 정리해보겠다.

정규화란?

  • 정의
    • 데이터베이스 정규화는 데이터 중복성을 줄이고, 데이터 무결성을 향상시키기 위해 데이터를 구조화하는 과정
  • 목적
    • 중복 제거 : 데이터 중복을 줄여 저장 공간을 효율적으로 사용
    • 데이터 무결성 향상 : 데이터베이스 내의 데이터 정확성, 일관성을 유지
    • 업데이트 이상 최소화 : 데이터 수정, 삭제, 삽입 시 발생할 수 있는 문제점들을 줄임
  • 효과
    • 저장 공간의 효율적 사용데이터 무결성 및 일관성 유지 데이터베이스 수정 시 발생할 수 있는 오류 감소
  • 제1 정규화, 제2 정규화, 제3 정규화, 보이스/코드 정규형이 있음

제1 정규화

  • 모든 필드의 값이 원자값을 가지도록 테이블을 구조화하는 것 즉, 각 필드에는 반복되는 그룹이나 리스트가 없어야 함

제2 정규화

  • 모든 테이블이 제1 정규형을 만족하며, 기본 키가 아닌 모든 필드가 기본 키에 완전 함수적으로 종속되는 상태

제3 정규화

  • 모든 테이블이 제2정규형을 만족하며, 기본 키가 아닌 모든 필드가 이행적 종속을 만족하지 않는 상태 즉, 기본 키가 아닌 모든 필드가 기본 키에만 종속되어야 함
  • 이행적 종속
  • A→B, B→C → A→C 일 때 C는 A에 이행적으로 종속

보이스/코드 정규화

  • 제3 정규형
  • 테이블이 이미 제3 정규형(3NF)에 있어야 함
  • 모든 결정자가 후보 키여야 함 즉, 비후보 키 속성이 다른 속성을 결정하지 않아야 함
  • 결정자
  • X→Y일때 X는 결정자, Y는 종속자

  • 데이터 중복을 줄이고, 업데이트 이상 현상을 방지하여 데이터베이스의 무결성을 보장
  • 특히, 후보 키가 아닌 결정자에 의한 종속성을 제거함으로써 보다 엄격한 데이터 구조를 유지할 수 있음
  • 성능이 100% 좋아지는 것은 아님, 테이블이 나뉘기 때문에 조인을 해야하는 경우도 발생할수 있음

 

이렇게 정규화 과정에 대해 알아보았는데 전에 정규화에 대해 한 번 정리를 했었지만 이번에는 보이스/코드 정규화에 대한 내용을 새로 알았고 제1,2,3 정규화에 대해 다시 한 번 리마인드 하는 기회가 되었던 것 같다 그리고 제 4,5 정규화도 있다고 하는데 나중에 기회가 되면 한 번 알아보면 좋을 것 같다.