Zależność jest ograniczeniem stosowanym do lub definiuje relację między atrybutami. Występuje w bazie danych, gdy informacje przechowywane w tej samej tabeli bazy danych jednoznacznie określają inne informacje przechowywane w tej samej tabeli. Możesz również opisać to jako relację, w której znajomość wartości jednego atrybutu (lub zestawu atrybutów) wystarczy, aby podać wartość innego atrybutu (lub zestawu atrybutów) w tej samej tabeli.
Zależności między bazami danych często mylą zarówno studentów, jak i profesjonalistów baz danych. Na szczęście nie są tak skomplikowane, jak się wydaje. Najlepiej można je wytłumaczyć za pomocą kilku przykładów. W tym miejscu przyjrzymy się typom zależności między bazami danych.
Zależności bazy danych i zależności funkcjonalne
Mówienie, że istnieje zależność między atrybutami w tabeli, jest tym samym, co stwierdzenie, że istnieje zależność funkcjonalna między tymi atrybutami. Jeśli w bazie danych istnieje zależność taka, że atrybut B zależy od atrybutu A, można zapisać to jako:
A -> B
Na przykład w tabeli zawierającej cechy pracownicze, w tym numer ubezpieczenia społecznego (SSN) i nazwisko, można powiedzieć, że nazwa jest zależna od nazwy SSN (lub SSN -> nazwa), ponieważ nazwisko pracownika można jednoznacznie określić na podstawie numeru SSN. Jednak odwrotna instrukcja (nazwa -> SSN) nie jest prawdziwa, ponieważ więcej niż jeden pracownik może mieć tę samą nazwę, ale zawsze ma różne numery SSN. Zwykła zależność funkcjonalna występuje, gdy opisuje się funkcjonalną zależność atrybutu od zbioru atrybutów, który zawiera oryginalny atrybut. Na przykład {A, B} -> B to trywialna zależność funkcjonalna, podobnie jak {nazwa, SSN} -> SSN. Ten typ funkcjonalnej zależności nazywany jest trywialnym, ponieważ może pochodzić ze zdrowego rozsądku. Jest oczywiste, że jeśli już znasz wartość B, wówczas wartość B może być jednoznacznie określona przez tę wiedzę. Pełna zależność funkcjonalna występuje, gdy już spełniasz wymagania zależności funkcjonalnej, a zestaw atrybutów po lewej stronie instrukcji zależności funkcjonalnej nie może być dalej redukowany. Na przykład {SSN, age} -> name jest zależnością funkcjonalną, ale nie jest to pełna zależność funkcjonalna, ponieważ można usunąć wiek z lewej strony instrukcji bez wpływu na zależność zależności. Zależności przejściowe występują, gdy istnieje relacja pośrednia, która powoduje zależność funkcjonalną. Na przykład A -> C jest zależnością przechodnią, jeśli jest prawdą tylko dlatego, że oba A -> B i B -> C są prawdziwe. Zależności wielowartościowe występują, gdy obecność jednego lub więcej wierszy w tabeli oznacza obecność jednego lub więcej innych wierszy w tej samej tabeli. Na przykład wyobraź sobie firmę samochodową, która produkuje wiele modeli samochodów, ale zawsze tworzy zarówno czerwony, jak i niebieski kolor każdego modelu. Jeśli masz tabelę zawierającą nazwę modelu, kolor i rok każdego samochodu produkowanego przez firmę, w tym stole występuje zależność wielowartościowa. Jeśli istnieje wiersz oznaczający pewną nazwę modelu i rok na niebiesko, musi również występować podobny wiersz odpowiadający czerwonej wersji tego samego samochodu. Zależności między bazami danych są ważne do zrozumienia, ponieważ zapewniają podstawowe bloki konstrukcyjne używane w normalizacji baz danych, proces sprawnego organizowania danych w bazie danych. Na przykład: Trójwymiarowe zależności funkcjonalne
Pełna zależność funkcjonalna
Zależności przejściowe
Zależności wielowartościowe
Znaczenie zależności