Zależność funkcjonalna w systemach DBMS: typy z przykładami

⚡ Inteligentne podsumowanie

Zależność funkcjonalna to ograniczenie, które określa, jak jeden atrybut jest powiązany z innym w systemie DBMS. Stanowi podstawę normalizacji poprzez identyfikację wyznaczników i zależności, i jest klasyfikowana jako zależności wielowartościowe, trywialne, nietrywialne i przechodnie.

  • ➡️ Podstawowa idea: W X → Y wyznacznik X ustala wartość zależnego Y, zapisaną strzałką.
  • 🏷️ Kluczowe terminy: Wyznacznik, zależność, aksjomat, rozkład i unia opisują sposób nazywania zależności i manipulowania nimi.
  • 📐 Aksjomaty Armstronga: Zwrotność, augmentacja i przechodniość wywnioskowują każdą zależność, jaką zbiór logicznie implikuje.
  • 🔀 Cztery typy: Zależności wielowartościowe, trywialne, nietrywialne i przechodnie opisują odrębne relacje atrybutów.
  • 🧹 Link normalizacyjny: Zależności napędzają normalizację, która eliminuje redundancję i anomalie aktualizacji.
  • 🔑 Zamknięcie: Zamknięcie atrybutu ujawnia klucze kandydujące i czy zachodzi zależność.
  • Korzyści: Dobre zależności świadczą o dobrym projekcie i odróżniają schematy dobrej jakości od schematów złej jakości.

Zależność funkcjonalna w systemie DBMS

Co to jest zależność funkcjonalna?

Zależność funkcjonalna (FD) To ograniczenie, które określa relację między atrybutami w systemie zarządzania bazą danych (DBMS). Zależność funkcjonalna pomaga utrzymać jakość danych w bazie danych. Odgrywa ona kluczową rolę w odróżnianiu dobrych i złych projektów baz danych.

Zależność funkcyjna jest oznaczona strzałką „→”. Zależność funkcyjna Y od X jest reprezentowana przez X → Y. Zrozummy zależność funkcyjną na przykładzie.

Przykład:

Numer pracownika imię i nazwisko pracownika Wynagrodzenie Miasto
1 Dana 50000 San Francisco
2 Francis 38000 Londyn
3 Andrew 25000 Tokio

W tym przykładzie, jeśli znamy wartość numeru pracownika, możemy uzyskać imię i nazwisko pracownika, miasto, wynagrodzenie itd. Możemy zatem stwierdzić, że miasto, imię i nazwisko pracownika oraz wynagrodzenie są funkcjonalnie zależne od numeru pracownika.

Kluczowe terminy

Oto kilka kluczowych terminów dotyczących zależności funkcjonalnych w bazie danych:

Kluczowe terminy OPIS
Aksjomat Aksjomaty to zbiór reguł wnioskowania stosowanych do wnioskowania wszystkich zależności funkcyjnych w relacyjnej bazie danych.
Rozkład Zasada ta sugeruje, że jeśli masz tabelę zawierającą dwa elementy określone przez ten sam klucz podstawowy, powinieneś rozważyć podzielenie jej na dwie różne tabele.
Zależny Jest on wyświetlany po prawej stronie diagramu zależności funkcjonalnych.
wyznacznik Jest on wyświetlany po lewej stronie diagramu zależności funkcjonalnych.
Unia Oznacza to, że jeśli dwie tabele są oddzielne i mają taki sam klucz podstawowy, należy rozważyć ich połączenie.

Reguły zależności funkcyjnych (aksjomaty Armstronga)

Poniżej przedstawiono trzy najważniejsze reguły zależności funkcyjnych w bazie danych. Są one znane jako aksjomaty Armstronga i można z nich wyprowadzić każdą inną regułę wnioskowania.

  • Zasada zwrotna: Jeśli X jest zbiorem atrybutów, a Y jest podzbiorem X, to zachodzi X → Y.
  • Zasada powiększania: Gdy zachodzi zależność X → Y, a C jest zbiorem atrybutów, wówczas zachodzi również zależność XC → YC. Dodanie atrybutów nie zmienia podstawowej zależności.
  • Zasada przechodniości: Podobnie jest z regułą przechodniości w algebrze: jeżeli X → Y jest spełnione oraz Y → Z, to X → Z również jest spełnione.

Z powyższych reguł wywodzą się trzy dalsze, stale stosowane w praktyce:

  • Zasada związkowa: jeśli X → Y i X → Z, to X → YZ.
  • Zasada rozkładu: jeśli X → YZ, to X → Y i X → Z.
  • Zasada pseudoprzechodniości: jeśli X → Y i WY → Z, to WX → Z.

Wielokrotne stosowanie tych reguł do zestawu zależności powoduje powstanie zamknięcie, kompletny zbiór logicznie wynikających zależności. Zamknięcie zbioru atrybutów to również sposób znajdowania kluczy kandydujących, co bezpośrednio wiąże się z badaniem Klucze DBMS.

Rodzaje zależności funkcjonalnych w SZBD

W systemach DBMS występują cztery główne typy zależności funkcjonalnych:

  • Zależność wielowartościowa
  • Trywialna zależność funkcjonalna
  • Nietrywialna zależność funkcjonalna
  • Zależność przechodnia

Zależność wielowartościowa w systemie DBMS

Zależność wielowartościowa występuje w sytuacji, gdy w jednej tabeli znajduje się wiele niezależnych atrybutów wielowartościowych. Zależność wielowartościowa to całkowite ograniczenie między dwoma zestawami atrybutów w relacji, wymagające obecności określonych krotek. Rozważmy poniższy przykład.

Przykład:

Model samochodu Maf_rok Kolor
H001 2017 Metaliczny
H001 2017 Zielony
H005 2018 Metaliczny
H005 2018 Niebieski
H010 2015 Metaliczny
H033 2012 Szary

W tym przykładzie Maf_year i Color są niezależne od siebie, ale zależne od Car_model. Te dwie kolumny są nazywane wielowartościowymi, zależnymi od Car_model. Jest to reprezentowane jako:

model_samochodu → rok_maf

model_samochodu → kolor

Trywialna zależność funkcjonalna w systemie DBMS

Zależność trywialna to zbiór atrybutów, który jest nazywany trywialnym, jeśli zbiór atrybutów jest zawarty w tym atrybucie. Zatem X → Y jest trywialną zależnością funkcyjną, jeśli Y jest podzbiorem X. Rozważ poniższy przykład.

Em_id Nazwa_emplu
AS555 Harry
AS811 George
AS999 Kevin

Rozważmy tę tabelę z dwiema kolumnami: Emp_id i Emp_name. {Emp_id, Emp_name} → Emp_id to trywialna zależność funkcjonalna, ponieważ Emp_id jest podzbiorem {Emp_id, Emp_name}.

Nietrywialne zależności funkcjonalne w systemach DBMS

Zależność nietrywialna występuje, gdy A → B jest prawdziwe i B nie jest podzbiorem A. Jeśli atrybut B nie jest podzbiorem atrybutu A, zależność uważa się za nietrywialną.

Firma CEO Wiek
Microsoft Satya Nadella 51
Google Sundar Pichai 46
Apple Tim Cook 57

Przykład:

{Firma} → {Prezes Zarządu} (jeśli znamy firmę, znamy również nazwisko Prezesa Zarządu). Jednak Prezes Zarządu nie jest podzbiorem Firmy, a zatem nie jest to trywialna zależność funkcjonalna.

Zależność przechodnia w systemie DBMS

Zależność przechodnia to rodzaj zależności funkcyjnej, która występuje, gdy atrybut jest pośrednio determinowany przez dwie zależności funkcyjne. Rozważ poniższy przykład.

Firma CEO Wiek
Microsoft Satya Nadella 51
Google Sundar Pichai 46
Alibaba Jack Ma 54

{Firma} → {Prezes Zarządu} (jeśli znamy firmę, znamy też nazwisko jej prezesa).

{CEO} → {Wiek} (jeśli znamy CEO, znamy jego wiek).

Zatem zgodnie z zasadą zależności przechodniej, {Firma} → {Wiek} powinno być spełnione, co jest logiczne, ponieważ znając nazwę firmy, możemy poznać jej wiek.

Uwaga: zależność przechodnia może wystąpić jedynie w relacji obejmującej trzy lub więcej atrybutów.

Czym jest normalizacja?

Normalizacja to metoda organizacji danych w bazie danych, która pomaga uniknąć redundancji danych oraz anomalii związanych z wstawianiem, aktualizacją i usuwaniem. Jest to proces analizy schematów relacji na podstawie ich różnych zależności funkcjonalnych i klucza podstawowego.

Normalizacja jest nieodłączną częścią teorii relacyjnych baz danych. Może ona powodować podział danych na dodatkowe tabele, tak aby każdy fakt był przechowywany jednorazowo. Pełny proces opisano w przewodniku. normalizacja bazy danych, który bazuje bezpośrednio na powyższych typach zależności.

Zalety zależności funkcjonalnej

  • Zależność funkcjonalna zapobiega redundancji danych, dzięki czemu te same dane nie powtarzają się w wielu miejscach baza danych.
  • Pomaga utrzymać jakość danych w bazie danych.
  • Pomaga zdefiniować znaczenie i ograniczenia baz danych.
  • Pomaga zidentyfikować złe projekty.
  • Pomaga znaleźć fakty dotyczące projektu bazy danych.

FAQ

Wyznacznik to atrybut po lewej stronie strzałki, który ustala wartość. Zależny to atrybut po prawej stronie, którego wartość jest ustalana. W X → Y, X określa Y.

Zależność funkcyjna ustala pojedynczą wartość dla elementu zależnego. Zależność wielowartościowa dopuszcza zbiór niezależnych wartości, dlatego potrzebuje własnego atrybutu i prowadzi do czwartej postaci normalnej.

Oblicz domknięcie zbioru atrybutów, korzystając z zależności. Jeśli domknięcie obejmuje każdy atrybut relacji, zbiór ten jest nadkluczem; minimalny taki zbiór jest kluczem kandydującym.

Tak. Algorytmy odkrywania zależności, niektóre wspomagane przez sztuczną inteligencję, skanują zbiór danych i proponują potencjalne zależności. Projektant musi je potwierdzić, ponieważ wzorzec prawdziwy w danych z próbki może z reguły nie być spełniony.

Przechowuje fakt dotyczący atrybutu niekluczowego, więc jego aktualizacja grozi anomaliami. Usunięcie zależności przechodnich to dokładnie to, czego wymaga trzecia postać normalna, która przechowuje każdy fakt w jednym miejscu.

Podsumuj ten post następująco: