2014-09-09 18 views
9

Potrzebuję zamknięcia w tej sprawie. Zrobiłem definicję, że zależność częściowa występuje wtedy, gdy pola są pośrednio zależne od klucza podstawowego lub częściowo zależne, ale są również zależne od innych kluczy, które zależą od podstawowego, tak, że jeśli pole, które inne pole zależy od identyfikatora usuniętego to pole nadal będzie istniało ze względu na zależność od klucza podstawowego. Nie jestem pewien, czy to jest poprawne. Zbadałem i każda definicja brzmi myląco. Czy moja definicja jest poprawna, a jeśli nie, proszę wyjaśnić?Częściowa zależność (bazy danych)

Odpowiedz

20

Zależność funkcjonalna utrzymywana w relacji jest częściowa, gdy usunięcie jednego z atrybutów decydujących daje zależność funkcjonalną, która jest w relacji.

Np. Jeśli {A, B} → {C}, ale także {A} → {C}, to {C} jest częściowo zależne funkcjonalnie od {A, B}.

funkcjonalna zależność X → Y jest pełen, czy zależność funkcjonalną usunięcie wszelkich przyporządkowania z X oznacza, że ​​zależność nie posiadać więcej; oznacza to, że dla dowolnego atrybutu A ε X, (X - {A}) nie ma wartości funkcjonalnie określającej Y. A zależność funkcjonalna X → Y jest zależnością częściową , jeśli jakiś atrybut A ε X można usunąć z zależności X i wciąż trzyma; to znaczy do innych znajduje £ x, (X - {A}) → Y.

- Podstawy systemowej bazy wydanie szóste Ramez Elmasri & Navathe

(definicja obejmuje pełnej 2NF zależność funkcjonalną nie-kluczowych atrybutów na kluczach, ale dowolna funkcjonalna zależność, która jest pełna, jest pełna lub częściowa.)

+1

Czy częściowa zależność występuje tylko wtedy, gdy istnieje złożony klucz podstawowy? Systemy baz danych: projektowanie, wdrażanie i zarządzanie Carlosa Coronela, Steven Morris stwierdza, że ​​konwersja do 2NF występuje tylko wtedy, gdy 1NF ma złożony klucz podstawowy. Jeśli 1NF ma pojedynczy podstawowy klucz, wtedy tabela jest automatycznie w 2NF. Jestem w tym również bardzo zdezorientowany, proszę pomóżcie – viper

+0

(Powinieneś napisać to jako pytanie.) Nie. Mogą istnieć częściowe zależności, które nie dotyczą CK (kluczy kandydujących). Np. Istnieją częściowe FD dla każdego pełnego FD, którego lewa strona nie jest wszystkimi atrybutami, ponieważ jego prawa strona jest częściowo zależna od każdego właściwego przejęcia lewej strony. Przeczytaj ostatnie zdanie w mojej odpowiedzi. Częściowa/pełna jest własnością FD. FD wspólnie określają CK i najwyższą NF aż do BCNF. PS: PKs nie odgrywają żadnej roli w normalizacji. Jeden po prostu wybiera jedną CK i nazywa ją "PK". – philipxy

+0

PPS: 2NF nie potrzebuje częściowych FD innych niż prime atrybutów na CK. Książka mówi, że dla non-2NF nie może być FD z właściwego podzbioru CK z jednym atrybutem.Ale książka jest błędna. Zapomnieli pustego zestawu jako właściwego podzbioru: jeden może mieć non-2NF z CK {A}, ale częściową FD z niebazu B, gdy {} -> B (tj. Wartości B są takie same). Podręczniki i świat SQL często zapominają o pustym zestawie w FD. Np. [To] (http://stackoverflow.com/a/16617091/3404097) & [this] (http://www.dcs.warwick.ac.uk/~hugh/M359/FD-demystification.html#emptyset) i [to] (http://www.dpxo.net/articles/zerodegree.htm). – philipxy

4

Częściowa zależność oznacza, że ​​atrybut inny niż prime jest funkcjonalnie zależny od części od kandydującego klucza. (Atrybut niebadalny jest atrybutem, który nie jest częścią żadnego kandydata).

Na przykład zacznijmy od R {ABCD}, a zależności funkcjonalne AB-> CD i A-> C.

Jedynym kluczem kandydującym dla R jest AB. C i D są atrybutami innymi niż prime. C jest funkcjonalnie zależne od A.A to część klucza kandydującego. To jest częściowa zależność.

+0

Każdy FD, który jest w posiadaniu, jest pełny lub częściowy; klucze nie wchodzą do niego. – philipxy

+1

C jest częściowo zależne od AB, tj. AB-> C jest częściowym FD, ponieważ C jest zależne od właściwego podzbioru AB, A. C jest całkowicie zależne od A, tj. A-> C jest pełnym FD, ponieważ C nie jest funkcjonalnie zależny od właściwego podzbioru A. – philipxy

1

Częściowa zależność jest rozwiązana dla osiągnięcia relacji w 2NF, ale 2NF jest "odskocznią" (C. Data) do rozwiązania dowolna przechodnia zależność i dochodzenie do relacji w 3NF (która jest celem operacyjnym). Jednak najbardziej interesującą kwestią częściowej zależności jest to, że jest to szczególny przypadek własnej przejściowej zależności. Zostało to demostrowane przez P. A. Bersteina w 1976: IF {(x • y) → z, yy z} THEN {(x • y) → y & y → z}. Algorytm syntezatora 3NF Bersteina nie wymaga rozróżniania pomiędzy tymi dwoma rodzajami wad relacyjnych.

2

częściowa zależność Oznacza to sytuacja, gdzie non-prime atrybut (atrybut, który nie stanowi części wyznacznika (klucz podstawowy/klucz potencjalny)) jest funkcjonalnie zależny do części/część klucza podstawowego/Kandydata.

1

Częściowa zależność funkcjonalna występuje tylko w odniesieniu do kluczy kompozytowych. Częściowa zależność funkcjonalna występuje, gdy jeden lub więcej atrybutów bez klucza zależy od części klucza podstawowego.

Przykład:

Tabela: Stud_id, Course_id, Stud_name, COURSE_NAME

Gdzie: klucz podstawowy = Stud_id + Course_id

Następnie: Aby określić nazwę studenta używamy tylko Stud_id, który jest częścią klucza podstawowego.

{Stud_id} -> {Stud_Name}

Stąd Stud_name jest częściowo zależna od Stud_id. Nazywa się to częściową zależnością.

0

Częściowa Zależność jest jeden rodzaj zależności funkcjonalnej, które występują, gdy klucz podstawowy musi być klucz potencjalny i nie są atrybutem podstawowym zależy od podzbioru/część kandydatów kluczowych (więcej niż jeden klucz podstawowy).

spróbować zrozumieć częściową zależność odnosi się poprzez przykład:

Sprzedawca (Id, produkt, cena)

klucz potencjalny: Id, Product
dla prime atrybut: Cena

Atrybut ceny zależy tylko od atrybutu produktu, który jest podzbiorem klucza kandydującego, Nie t cały klucz kandydujący (Id, produkt) klucz. Nazywa się to częściową zależnością.

Możemy więc powiedzieć, że Produkt-> Cena jest częściową zależnością.