[SQL] Dana jest tabela R i zależności funkcyjne

max123321
Użytkownik
Użytkownik
Posty: 3388
Rejestracja: 26 maja 2016, o 01:25
Płeć: Mężczyzna
Lokalizacja: Kraków
Podziękował: 975 razy
Pomógł: 3 razy

[SQL] Dana jest tabela R i zależności funkcyjne

Post autor: max123321 »

Dana jest tabela \(\displaystyle{ R}\) z atrybutami \(\displaystyle{ A,B,C,D,E}\) i zależnościami funkcyjnymi

\(\displaystyle{ A \rightarrow B}\)

\(\displaystyle{ B \rightarrow C}\)

\(\displaystyle{ E \rightarrow D}\)

\(\displaystyle{ D \rightarrow E}\)

1.Podaj wszystkie klucze tej tabeli.
2.Które z podanych zależności naruszają trzecią postać normalną(3NF)?

Jak to zrobić?
Ostatnio zmieniony 20 cze 2019, o 21:09 przez Afish, łącznie zmieniany 1 raz.
Powód: Poprawa wiadomości.
Afish
Moderator
Moderator
Posty: 2828
Rejestracja: 15 cze 2008, o 15:45
Płeć: Mężczyzna
Lokalizacja: Seattle, WA
Podziękował: 3 razy
Pomógł: 356 razy

Re: [SQL] Dana jest tabela R i zależności funkcyjne

Post autor: Afish »

Co to jest klucz (definicja)?
Co to jest 3NF (definicja)?
max123321
Użytkownik
Użytkownik
Posty: 3388
Rejestracja: 26 maja 2016, o 01:25
Płeć: Mężczyzna
Lokalizacja: Kraków
Podziękował: 975 razy
Pomógł: 3 razy

Re: [SQL] Dana jest tabela R i zależności funkcyjne

Post autor: max123321 »

No dobra to definicja klucza jest taka:
Podzbiór \(\displaystyle{ K}\) zbioru atrybutów relacji \(\displaystyle{ R(A_1,A_2,...,A_n)}\) nazywamy jej kluczem jeśli jest nadkluczem i żaden jego podzbiór nie jest nadkluczem.
Podzbiór \(\displaystyle{ N}\) zbioru atrybutów relacji \(\displaystyle{ R(A_1,A_2,...,A_n)}\) nazywamy jej nadkluczem jeśli zachodzi zależność funkcyjna
\(\displaystyle{ N \rightarrow A_1A_2...A_n}\).

No to jak rozumiem tutaj będzie kluczem będzie:
\(\displaystyle{ \left\{ A,D\right\}}\) lub \(\displaystyle{ \left\{ A,E\right\}}\), a na przykład \(\displaystyle{ \left\{ A,B,D\right\}}\) jest nadkluczem. Czyli jak rozumiem nadkluczem jest zbiór od którego zależą wszystkie atrybuty danej relacji, zgadza się? A czy \(\displaystyle{ A \rightarrow A}\)? Myślę, że tak.

Dobra to trzecia postać normalna to:
Relacja jest w trzeciej postaci normalnej, jeśli jest w drugiej postaci normalnej i atrybuty niekluczowe zalezą wyłącznie od klucza i niczego więcej.

No to na bazie tej definicji powiedziałbym, że \(\displaystyle{ B \rightarrow C}\) narusza trzecią postać normalną bo niekluczowy atrybut \(\displaystyle{ C}\) zależy od \(\displaystyle{ B}\), który jest niekluczowy. Czy tak jest dobrze?
Afish
Moderator
Moderator
Posty: 2828
Rejestracja: 15 cze 2008, o 15:45
Płeć: Mężczyzna
Lokalizacja: Seattle, WA
Podziękował: 3 razy
Pomógł: 356 razy

Re: [SQL] Dana jest tabela R i zależności funkcyjne

Post autor: Afish »

Wydaje się okej, ale dawno się w to nie bawiłem, więc gwarancji nie daję. Wypadałoby podać jeszcze definicję drugiej postaci normalnej (a potem pewnie pierwszej), bo nie wiem, czego tam używacie.
max123321
Użytkownik
Użytkownik
Posty: 3388
Rejestracja: 26 maja 2016, o 01:25
Płeć: Mężczyzna
Lokalizacja: Kraków
Podziękował: 975 razy
Pomógł: 3 razy

Re: [SQL] Dana jest tabela R i zależności funkcyjne

Post autor: max123321 »

Warunkiem na drugą postać normalną, jest to, aby każdy niekluczowy atrybut, zależał funkcyjnie od całego klucza. Warunkiem pierwszej postaci normalnej, jest to, aby każdy atrybut w relacji przyjmował tylko wartości niepodzielne.

To jak, zgodnie z tymi definicjami jest dobrze?
Afish
Moderator
Moderator
Posty: 2828
Rejestracja: 15 cze 2008, o 15:45
Płeć: Mężczyzna
Lokalizacja: Seattle, WA
Podziękował: 3 razy
Pomógł: 356 razy

Re: [SQL] Dana jest tabela R i zależności funkcyjne

Post autor: Afish »

Wygląda na to, że druga postać normalna nie jest spełniona, bo \(\displaystyle{ C}\) nie zależy od całego klucza. Jeżeli tak jest w istocie, to trudno tutaj dyskutować, która zależność nie spełnia 3 formy normalnej.
max123321
Użytkownik
Użytkownik
Posty: 3388
Rejestracja: 26 maja 2016, o 01:25
Płeć: Mężczyzna
Lokalizacja: Kraków
Podziękował: 975 razy
Pomógł: 3 razy

Re: [SQL] Dana jest tabela R i zależności funkcyjne

Post autor: max123321 »

No, ale to można chyba powiedzieć, że zależność \(\displaystyle{ B \rightarrow C}\) narusza trzecią postać normalną, pozostałe są w porządku, czy tak?
Afish
Moderator
Moderator
Posty: 2828
Rejestracja: 15 cze 2008, o 15:45
Płeć: Mężczyzna
Lokalizacja: Seattle, WA
Podziękował: 3 razy
Pomógł: 356 razy

Re: [SQL] Dana jest tabela R i zależności funkcyjne

Post autor: Afish »

Nie wiem. Według Twoich definicji druga postać normalna nie jest spełniona, jeżeli tak jest w istocie, to dyskutowanie o trzeciej postaci normalnej niespecjalnie ma dla mnie sens. Jeżeli zaś zapytamy o to, które atrybuty nie spełniają „zalezą wyłącznie od klucza i niczego więcej”, to Twoja odpowiedź wydaje się poprawna.
ODPOWIEDZ