데이터베이스 디자인의 다중 값 종속성

다중 값 종속성은 네 번째 정규 형식을 나눕니다.

관계형 데이터베이스에서 동일한 데이터베이스 테이블에 저장된 정보가 동일한 테이블에 저장된 다른 정보를 고유하게 결정할 때 종속성이 발생합니다. 다중 값 종속 은 테이블에있는 하나 이상의 행의 존재가 동일한 테이블에있는 하나 이상의 다른 행의 존재를 의미 할 때 발생합니다. 즉, 테이블의 두 속성 (또는 열)은 서로 독립적이지만 둘 다 세 번째 속성에 의존합니다.

다중 값 종속성은 정규화 표준 네 번째 정규 형식 (4NF)을 방지합니다. 관계형 데이터베이스는 레코드 디자인 지침을 나타내는 다섯 가지 표준 형식을 따릅니다. 데이터의 업데이트 이상 및 불일치를 방지합니다. 네 번째 정규 형식은 데이터베이스 에서 다 대 일 관계를 처리 합니다 .

기능 종속성 대 다중 값 종속성

다중 값 종속성을 이해하려면 함수 종속성을 다시 방문하는 것이 좋습니다.

속성 X가 속성 Y를 고유하게 결정하면 Y는 기능적으로 X에 종속됩니다. 이는 X -> Y로 작성됩니다. 예를 들어, 아래의 학생 테이블에서 Student_Name은 Major :

재학생
학생 이름 주요한
라비 미술사
베스 화학


이 기능 종속성은 Student_Name -> Major로 작성 될 수 있습니다 . 각 Student_Name은 정확히 하나의 메이저를 결정합니다.

데이터베이스에서 학생들이 수행하는 스포츠를 추적하기를 원하면 가장 쉬운 방법은 Sport라는 또 다른 열을 추가하는 것입니다.

재학생
학생 이름 주요한 스포츠
라비 미술사 축구
라비 미술사 배구
라비 미술사 테니스
베스 화학 테니스
베스 화학 축구


문제는 라비와 베스가 여러 스포츠를하는 것입니다. 모든 추가 스포츠에 대해 새로운 행을 추가해야합니다.

이 표는 전공과 스포츠가 서로 독립적이지만 둘 다 학생에 달려 있기 때문에 다중 값 의존성을 도입했습니다.

이것은 간단한 예제이며 쉽게 식별 할 수 있지만 크고 복잡한 데이터베이스에서 다중 값 종속성이 문제가 될 수 있습니다.

다중 값 종속은 X -> - Y로 작성됩니다.이 경우 :

학생 이름 -> -> 전공
Student_Name -> -> 스포츠

이것은 "Student_Name multidetermines Major"및 "Student_Name multidetermines Sport"로 읽습니다.

다중 값 종속성은 세 번째 특성에 종속적 인 두 개 이상의 특성으로 구성되기 때문에 항상 최소한 세 개의 특성을 필요로합니다.

다중 값 종속성 및 정규화

다중 값 종속성이있는 테이블은 불필요한 중복을 생성하고 일치하지 않는 데이터에 기여할 수 있으므로 Fourth Normal Form (4NK)의 표준화 표준을 위반합니다. 이를 4NF로 가져 오려면이 정보를 두 개의 테이블로 분리해야합니다.

아래 표에는 이제 Student_Name -> Major의 기능 종속성이 있으며 다중 값 종속성은 없습니다.

학생과 전공
학생 이름 주요한
라비 미술사
라비 미술사
라비 미술사
베스 화학
베스 화학

이 표에는 Student_Name -> Sport의 단일 기능 종속성도 있습니다.

학생 및 스포츠
학생 이름 스포츠
라비 축구
라비 배구
라비 테니스
베스 테니스
베스 축구

복잡한 테이블을 단순화하여 단일 테이블에 너무 많은 이질적인 정보가 포함되도록하기보다는 단일 아이디어 나 주제와 관련된 정보를 포함하도록 정규화를 수행하는 경우가 종종 있습니다.