다중 값 종속성은 네 번째 정규 형식을 나눕니다.
관계형 데이터베이스에서 동일한 데이터베이스 테이블에 저장된 정보가 동일한 테이블에 저장된 다른 정보를 고유하게 결정할 때 종속성이 발생합니다. 다중 값 종속 은 테이블에있는 하나 이상의 행의 존재가 동일한 테이블에있는 하나 이상의 다른 행의 존재를 의미 할 때 발생합니다. 즉, 테이블의 두 속성 (또는 열)은 서로 독립적이지만 둘 다 세 번째 속성에 의존합니다.
다중 값 종속성은 정규화 표준 네 번째 정규 형식 (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의 단일 기능 종속성도 있습니다.
학생 이름 | 스포츠 |
---|---|
라비 | 축구 |
라비 | 배구 |
라비 | 테니스 |
베스 | 테니스 |
베스 | 축구 |
복잡한 테이블을 단순화하여 단일 테이블에 너무 많은 이질적인 정보가 포함되도록하기보다는 단일 아이디어 나 주제와 관련된 정보를 포함하도록 정규화를 수행하는 경우가 종종 있습니다.