Wielowartościowa zależność w bazach danych

Spisu treści:

Wielowartościowa zależność w bazach danych
Wielowartościowa zależność w bazach danych
Anonim

W relacyjnej bazie danych zależność występuje, gdy informacje przechowywane w tej samej tabeli bazy danych jednoznacznie określają inne informacje przechowywane w tej samej tabeli. Zależność wielowartościowa występuje, gdy obecność co najmniej jednego wiersza w tabeli implikuje obecność co najmniej jednego innego wiersza w tej samej tabeli. Innymi słowy, dwa atrybuty (lub kolumny) w tabeli są od siebie niezależne, ale oba zależą od trzeciego atrybutu.

Image
Image

Wielowartościowa zależność uniemożliwia normalizację standardowej czwartej postaci normalnej. Relacyjne bazy danych mają pięć normalnych form, które reprezentują wytyczne dotyczące projektowania rekordów. Zapobiegają anomaliom aktualizacji i niespójnościom danych. Czwarta forma normalna dotyczy relacji wiele do jednego w bazie danych.

Zależność funkcjonalna a zależność wielowartościowa

Aby zrozumieć wielowartościową zależność, warto przyjrzeć się ponownie, czym jest zależność funkcjonalna.

Jeżeli atrybut X jednoznacznie określa atrybut Y, wtedy Y jest funkcjonalnie zależne od X. Jest to zapisane jako X -> Y. Na przykład w poniższej tabeli Uczniowie, Nazwisko_Ucznia określa Kierunek:

Nazwa_studenta Główne
Ravi Historia sztuki
Beth Chemia

Tę zależność funkcjonalną można zapisać: Student_Name -> Major. Każda nazwa_ucznia określa dokładnie jedną specjalizację i nie więcej.

Jeśli chcesz, aby baza danych śledziła również sporty, które uprawiają ci uczniowie, możesz pomyśleć, że najprostszym sposobem na to jest dodanie kolejnej kolumny zatytułowanej Sport:

Nazwa_studenta Główne Sport
Ravi Historia sztuki Piłka Nożna
Ravi Historia sztuki Siatkówka
Ravi Historia sztuki Tenis
Beth Chemia Tenis
Beth Chemia Piłka Nożna

Problem polega na tym, że Ravi i Beth uprawiają kilka sportów. Konieczne jest dodanie nowego wiersza dla każdego dodatkowego sportu.

Ta tabela wprowadziła wielowartościową zależność, ponieważ kierunek i sport są od siebie niezależne, ale oba zależą od ucznia. Jest to prosty przykład i łatwy do zidentyfikowania, ale zależność wielowartościowa może stać się problemem w dużej, złożonej bazie danych.

Zapisana jest zależność wielowartościowa X ->-> Y. W tym przypadku:

Nazwisko_studenta ->-> Major

Nazwisko_studenta ->- > Sport

To jest odczytywane jako "Imię_ucznia określa w wielu przypadkach specjalność" i "Nazwa_ucznia określa w wielu przypadkach sport."

Zależność wielowartościowa zawsze wymaga co najmniej trzech atrybutów, ponieważ składa się z co najmniej dwóch atrybutów zależnych od trzeciego.

Wielowartościowa zależność i normalizacja

Tabela z wielowartościową zależnością narusza standard normalizacji czwartej postaci normalnej, ponieważ tworzy niepotrzebne nadmiarowości i może przyczynić się do niespójnych danych. Aby zwiększyć to do 4NF, konieczne jest rozbicie tych informacji na dwie tabele.

Poniższa tabela ma teraz zależność funkcjonalną Student_Name -> Major i nie ma zależności wielowartościowych:

Nazwa_studenta Główne
Ravi Historia sztuki
Ravi Historia sztuki
Ravi Historia sztuki
Beth Chemia
Beth Chemia

Chociaż ta tabela ma również pojedynczą zależność funkcjonalną: Student_Name -> Sport:

Nazwa_studenta Sport
Ravi Piłka Nożna
Ravi Siatkówka
Ravi Tenis
Beth Tenis
Beth Piłka Nożna

Normalizacja jest często osiągana poprzez uproszczenie złożonych tabel, tak aby zawierały informacje związane z pojedynczym pomysłem lub tematem, zamiast prób, aby pojedyncza tabela zawierała zbyt wiele różnych informacji.

Zalecana: