본문 바로가기

데이터베이스(Database)/Data Modeling

[DB] 데이터 모델링(8) - 정규화(Normalization)

 

이 글은 전공 수업 내용을 복습할 겸 기록해놓은 글입니다.

추가할 사항이 있거나 잘못된 점이 있으면 댓글로 남겨주세요.

 


 

이상현상(Anomaly)

사진 : 데이터베이스 응용 및 프로그래밍 강의자료

  • 데이터베이스를 잘못 설계해서 발생하는 현상
    삭제 이상(Deletion Anomaly)
    - 특정 데이터를 제거하면 원치 않은 정보도 삭제되는 이상현상
    - ex) 학번이 '1102'인 학생이 'A01'을 수강한 기록을 삭제하는 경우

    삽입 이상(Insertion Anomaly)
    - 새 데이터를 삽입하려면 불필요한 정보도 함께 삽입해야 하는 이상현상
    - ex) 학번이 1104, 이름이 유관순, 연락처가 010-1234-5678인 학생을 추가하는 경우

    갱신 이상(Update Anomaly)
    - 특정 정보를 변경했지만 일부만 변경되어 데이터가 불일치하게 되는 이상현상
    - ex) '1101' 학생의 연락처가 변경된 경우

    이러한 이상현상을 해결하기 위해 정규화를 해줌

 

정규화(Normalization)

  • 정규화
    데이터에 대한 중복성을 제거해 데이터를 관심사별로 분리하는 과정
    - 함수적 종속성에 근거해 이상현상을 방지

    - 정규화된 정도에 따라 1NF, 2NF, 3NF 등으로 나뉨


  • 1NF
    모든 값이 원자 값으로 구성된 상태

  • 2NF
    부분적 함수 종속성이 제거된 상태

  • 3NF
    이행적 함수 종속성이 제거된 상태
    - 식별자가 아닌 속성이 결정자 역할을 하는 함수 종속성을 제거한 상태


  • 정규화 효과
    데이터의 중복이 감소됨
    데이터가 관심사별로 묶이게 됨
    → 성능 향상

    조회 질의에서 조인이 많이 발생
    → 성능 저하

    정규화를 하면 성능은 향상되지만, 처리 조건에 따라 조회 성능이 저하될 수 있음