[SQLD]

개념

  • 정규화의 목표는 테이블 간 중복된 데이터를 허용하지 않는 것오전.
  • 중복 데이터가 생성되지 않아 무결성을 유지하고 DB 저장 용량을 효율적으로 관리할 수 있습니다.

데이터 중복을 제거하고 불필요한 데이터를 최소화합니다.

  1. 무결성을 유지하고 이상 현상을 방지합니다.
  2. 테이블을 논리적이고 직관적으로 정리할 수 있습니다.
  3. 데이터베이스 구조는 쉽게 확장할 수 있습니다.
  • 정규화에는 여러 단계가 있지만 일반적으로 1~3회의 정규화 과정을 거친다.

1차 정규화(1NF)

  • 테이블 열이 원자 값(하나의 값)을 갖도록 테이블을 분할하는 것을 말합니다.

관계에 속하는 모든 도메인은 원자성만 가능합니다.

  1. 모든 속성에 대한 반복 그룹은 표시되지 않습니다.
  2. 각 관련 데이터 집합은 기본 키를 사용하여 고유하게 식별할 수 있어야 합니다.

  • 위의 표에는 여러 개의 전화번호가 포함되어 있으므로 원자적이지 않습니다.

  • 전화번호 열을 1로 정규화

2차 정규화(2NF)

  • 테이블의 모든 열은 전체 기능 종속성을 충족해야 합니다.
  • 완전한 기능 종속성을 충족한다는 것은 테이블의 기본 키가 복합 키(키 1, 키 2)에 의해 바인딩되는 경우 두 키 중 하나로 다른 열을 결정할 수 없음을 의미합니다.

  • 제조사와 모델이 키가 되며 모델의 전체 이름을 알 수 있습니다.
  • 원산지는 제조업체에서 결정합니다.
    (하위 기능에 따라 다름)
  • 따라서 모델과 제조 국가 간에 연결이 없습니다(완전한 기능적 종속성이 충족되지 않음).

  • 매핑되지 않은 열을 다른 테이블로 2차 정규화!

3차 정규화(3NF)

  • 2NF를 실행하는 테이블에 대한 전이적 종속성을 제거하기 위해 테이블이 분리됩니다.
  • 전이 종속성: A → B, B → C이면 A → C

관계는 2NF를 만족합니다.

기본 키가 아닌 속성은 기본 키에 따라 다릅니다.

  • 현재 테이블에서 토너먼트와 연도가 기본 키입니다.
    승자는 이 두 개의 복합 키를 사용하여 결정됩니다.
  • 단, 당첨자의 생년월일은 기본키가 아닌 당첨자에 의해 결정됩니다.

  • 따라서 위와 같이 분리하고 조인으로 연결할 수 있습니다!