[기술면접] RDBMS의 정규화

ayboori·2023년 8월 22일
0

CS Study

목록 보기
2/22

정규화 목적 - 이상 현상 (Anomaly) 방지

데이터들이 불필요하게 중복 되어 릴레이션 (테이블) 조작 시 예기치 않게 발생하는 곤란한 현상

  • 삽입 이상
    (=Insertion~) 데이터 삽입 시 원하지 않는 값들로 인해 삽입할 수 없게 되는 현상
  • 삭제 이상
    (=Deletion~) 튜플 삭제 시 의도와 상관 없는 값들도 함께 삭제,
    연쇄 삭제 발생하는 현상
  • 갱신 이상
    (=Update ~) 속성 값 갱신 시 일부 튜플의 정보만 갱신,
    정보에 불일치성(Incomsistency) 이 생기는 현상

- 정규화란 무엇인가?

  • 테이블의 속성들이 상호 종속적인 관계를 갖는 특성을 이용하여 테이블을 무손실 분해하는 과정
  • 중복을 최소화하면서 데이터 구조를 짜는 프로세스
  • 데이터 무결성 유지 / DB의 저장 용량 확보

정규화 단계

  • 제 1정규형 (1NF)
    테이블의 모든 속성을 원자화
    (= 한 속성이 여러 개의 값을 가지지 않음)
  • 제 2정규형 (2NF)
    기본키가 아닌 모든 속성이 기본키에 대하여 완전 함수 종속을 만족 = 부분적 함수적 종속 제거

주 식별자가 아닌 속성을 분리한다

  • 제 3정규형 (3NF)
    이행 함수 종속 제거
    A→ B이고, B→ C면서 A→ C가 함께 있는 경우를 분리
    BCNF 모든 결정자가 후보키인 정규형
    = 결정자이면서 후보키 아닌 것 제거
    직접 영향 주는 결정자를 후보키로 분리
  • 제 4정규형 (4NF)
    다치 종속성 제거
    = 1: 다끼리만 남기기
    즉  A →→ B가 존재할 때 모든 속성이 A에 함수적 종속
  • 제 5정규형(5NF)
    테이블의 모든 조인 종속이 후보키를 통해서만 성립
    조인 종속성 이용

💡 요약 답변
정규화란 데이터의 중복을 최소화하면서, 데이터 구조를 짜는 프로세스입니다. 정규화 과정은 이상 현상을 방지하기 위해 수행합니다. 이상 현상은 데이터들이 불필요하게 중복 되어 릴레이션 (테이블) 조작 시 예기치 않게 발생하여 데이터의 값을 제대로 다룰 수 없는 현상을 말하며, 삽입 이상, 삭제 이상, 갱신 이상 등이 있습니다. 정규화 단계는 각 총 6개의 정규형을 만족하도록 하는 과정을 거칩니다.

profile
프로 개발자가 되기 위해 뚜벅뚜벅.. 뚜벅초

0개의 댓글