Trzecia postać normalna - wikipedia

0

Na wikipedia jest podany przykład 3 postaci normalnej - KLIK
3 postać normalna jest wtedy gdy każdy niekluczowy argument jest bezpośrednio zależny tylko od klucza głównego a nie od innej kolumny, a narysowana tabelka po normalizacji ma 3 kolumny, Imie, Nazwisko, Stanowisko i brak klucza głównego. Czy jest to prawidłowy przykład ? Klucz główny może być tylko jeden, więc chyba nie chodzi o Imie i Nazwisko ?

0

Zjedź odrobinkę niżej, bo patrzysz tylko na część przykładu.
W przykładzie rozdzielają wcześniejsza relację na dwie różne relacje: dane personalne pracowników - "pracownicy" i stanowiska z wynagrodzeniem.

Nie podają tam klucza głównego(prostego, np. ID), a klucze kandydujące(po których możemy zidentyfikować krotkę)
Chodzi o to, aby dana krotka zawierała tylko potrzebne informacje.
Skoro wszyscy stolarze zarabiają 10zl, a sekretarki 20zl to po co dla każdego rekordu wpisywać jeszcze raz to samo?

Lepszy przykład: Wikipedia po angielsku (3NF)

0

według wikipedi wystarczy że pola niebędące polami klucza potencjalnego były od niego zależne bezpośrednio, a na innych stronach zamiast potencjalnego napisany jest 'klucz główny' i która definicja jest dobra ? klucz głowny to nie kandynujacy/potencjalny

0

Zerknij tutaj. Drugi akapit
I tutaj

Klucz glowny musi jednoznacznie identyfikowac krotkę i byc najmniejszym zbiorem z zbioru kluczy kandydujacych.

0

znam definicje klucza głównego i klucza kandynującego,pytanie dotyczylo czegos innego, czyli polska definicja na polskiej wikipedi 3 postaci normalnej jest niepoprawna

1

Definicja na Wiki jest prawidłowa, bo nie bierzesz każdej możliwej kombinacji, np {nr_indeksu,nazwisko, imie, grupa} tylko najkrótszą {nr_indeksu} - wybierasz z atrybutów minimalny zestaw, który pozwoli ci na jednoznaczną identyfikację krotek. Z tak przygotowanych kluczy kandydujących wybierasz klucz główny.

Podsyłam rozrysowany przykład niespełniający założeń 3NF, może on coś wyjaśni.

Gdyby podczas 3NF chodziło o klucz główny to zamiast zmniejszać redundancję, moglibyśmy ją zwiększyć poprzez bezsensowne rozbijanie bazy danych,
np. rozbiłbyś relację z przykładu na 3 relacje. Dwie z nich "puchłyby tak samo" - gdybyś dodał nowy rekord do {id,nr_indeksu}, to dodałbyś go też w relacji {nr_indeksu,imie,itd.} dublując nr_indeksu.

1 użytkowników online, w tym zalogowanych: 0, gości: 1