파게로그

정규화(normalization) 본문

콤퓨타 왕기초/SQLD/JDBC/Oracle DB

정규화(normalization)

파게 2021. 3. 16. 00:56

www.youtube.com/watch?v=RXQ1kZ_JHqg

1정규화에 대한 설명이 제각각 달라서 찾아보다가 접하게 되었는데, 내가 애매하다고 생각했던 부분이 실제로도 논란이 되었다는 사실을 소개해주어서 좋았다.

 

정규화(normalization)

  • 결과적으로는, 테이블 분해의 과정

 

정규화의 목적

  • 데이터의 일관성, 최소한의 데이터 중복, 최대한의 데이터 유연성 확보
  • 데이터 모델의 독립성 확보
  • 삽입, 수정, 삭제 이상 등 이상현상(anomaly)의 해결

 

정규화의 절차

  • 제1정규화
    - 함수적 종속성을 근거로 함
    - PK를 잡는 것
    - attribute의 원자성(atomicity)이란, 실로 single-value로 해석하는 편이 적절함
  • 제2정규화
    - 부분 함수 종속성 제거
    - 기본키가 단일 식별자라면(하나의 칼럼으로 이루어진다면) 제2정규형이다.
  • 제3정규화
    - 이행 함수 종속성 제거
    - A→B & A→C는 가능, A→B & B→C는 제거
  • BCNF
    - "모든 결정자는 후보키이어야만 한다"
  • 제4정규화
    - 다치 종속성 제거
  • 제5정규화
    - 조인 종속성을 근거로 함
    - 조인 종속성을 갖는 속성은 후보키이어야 한다

'콤퓨타 왕기초 > SQLD/JDBC/Oracle DB' 카테고리의 다른 글

반정규화(de-normalization)  (0) 2021.03.16
정규화와 성능  (0) 2021.03.16
엔티티 식별자(entity identifier)  (0) 2021.03.15
관계(relationship)  (0) 2021.03.15
속성(attribute)  (0) 2021.03.15
Comments