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.

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 |
| 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 |
| 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.
