[CS] 데이터베이스 정규화

최지나·2024년 1월 26일
2

CS

목록 보기
49/55

정의

데이터의 중복을 최소화하고 이상 현상을 방지하기 위해 테이블을 쪼개는 것

  • 이상현상 : 삽입 이상, 갱신 이상, 삭제 이상
  • 데이터의 저장 공간을 효율적으로 사용, 데이터의 무결성 유지
  • 릴레이션 내 속성들의 함수적 종속성을 기반으로 동작
    • 함수적 종속성: X(결정자) -> Y(종속자) , X가 Y를 함수적으로 결정한다
    • 완전 함수 종속: Y가 X 전체에 종속된것
    • 부분 함수 종속: Y가 X 일부에 종속된 것

제 1 정규형

  • 릴레이션의 모든 도메인이 원자값으로만 구성되어야 한다는 규칙

제 2 정규형

  • 기본키가 아닌 모든 속성이 기본키에 완전함수 종속

제 3 정규형

  • 기본키가 아닌 속성이 기본키에 이행적으로 종속되지 있지 않아야 한다
    • 이행 함수 종속: A-> B, B-> C이면 A-> C

보이스/코드 정규형(BCNF)

  • 모든 결정자가 후보키여야 한다

정규화의 필요성?

  • 정규화 과정은 데이터 중복을 줄이고, 데이터 무결성을 유지하는데 중요한 역할을 하지만, 과도한 정규화는 데이터베이스의 성능 저하를 초래할 수 있음 (복잡한 조인 연산이 필요할 수 있기 때문에)
profile
의견 나누는 것을 좋아합니다 ლ(・ヮ・ლ)

0개의 댓글