개념
- 정규화의 목표는
테이블 간 중복된 데이터를 허용하지 않는 것
오전. - 중복 데이터가 생성되지 않아 무결성을 유지하고 DB 저장 용량을 효율적으로 관리할 수 있습니다.
데이터 중복을 제거하고 불필요한 데이터를 최소화합니다.
- 무결성을 유지하고 이상 현상을 방지합니다.
- 테이블을 논리적이고 직관적으로 정리할 수 있습니다.
- 데이터베이스 구조는 쉽게 확장할 수 있습니다.
- 정규화에는 여러 단계가 있지만 일반적으로 1~3회의 정규화 과정을 거친다.
1차 정규화(1NF)
- 테이블 열이 원자 값(하나의 값)을 갖도록 테이블을 분할하는 것을 말합니다.
관계에 속하는 모든 도메인은 원자성만 가능합니다.
- 모든 속성에 대한 반복 그룹은 표시되지 않습니다.
- 각 관련 데이터 집합은 기본 키를 사용하여 고유하게 식별할 수 있어야 합니다.
- 위의 표에는 여러 개의 전화번호가 포함되어 있으므로 원자적이지 않습니다.
- 전화번호 열을 1로 정규화
2차 정규화(2NF)
- 테이블의 모든 열은 전체 기능 종속성을 충족해야 합니다.
- 완전한 기능 종속성을 충족한다는 것은 테이블의 기본 키가 복합 키(키 1, 키 2)에 의해 바인딩되는 경우 두 키 중 하나로 다른 열을 결정할 수 없음을 의미합니다.
- 제조사와 모델이 키가 되며 모델의 전체 이름을 알 수 있습니다.
- 원산지는 제조업체에서 결정합니다.
(하위 기능에 따라 다름) - 따라서 모델과 제조 국가 간에 연결이 없습니다(완전한 기능적 종속성이 충족되지 않음).
- 매핑되지 않은 열을 다른 테이블로 2차 정규화!
3차 정규화(3NF)
- 2NF를 실행하는 테이블에 대한 전이적 종속성을 제거하기 위해 테이블이 분리됩니다.
- 전이 종속성: A → B, B → C이면 A → C
관계는 2NF를 만족합니다.
기본 키가 아닌 속성은 기본 키에 따라 다릅니다.
- 현재 테이블에서 토너먼트와 연도가 기본 키입니다.
승자는 이 두 개의 복합 키를 사용하여 결정됩니다. - 단, 당첨자의 생년월일은 기본키가 아닌 당첨자에 의해 결정됩니다.
- 따라서 위와 같이 분리하고 조인으로 연결할 수 있습니다!