Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Normalizacja do BCNF
jg44
post
Post #1





Grupa: Zarejestrowani
Postów: 122
Pomógł: 14
Dołączył: 14.07.2011
Skąd: Gliwice / Wrocław

Ostrzeżenie: (0%)
-----


Witam,
czy mógłby mi ktoś przybliżyć, jak wygląda znormalizowanie bazy do 3.5NF (BCNF)? Znalazłem kilka definicji w necie, ale jakoś nie do końca potrafię je ogarnąć:

1) "Relacja jest w BCNF wtedy i tylko wtedy, gdy każdy jej atrybut zależy funkcjonalnie tylko od jej klucza głównego." - to czasami nie jest definicja 3NF? Poza tym co to znaczy, że relacja ma klucz główny? W relacji łączymy więcej niż jedną tabelę, więc może być przecież tak, że w każda z łączonych tabel będzie miała swój klucz główny. Oznacza to zatem, że aby relacja była w BCNF, to musi być tylko jeden klucz główny?

2) "BCNF - jedynymi elementami determinującymi są klucze kandydujące." - czy elementy determinujące (np. A i B) to takie, że pewne wartości z A zawsze występują z pewnymi wartościami z B? Rozumiem, że A występują w jednej tabeli a B w drugiej?

3) No i wikipedia: "Jeśli dla dwóch atrybutów X i Y, Y zależy fukncyjnie od X i nie jest w nim zawarty, to X jest kluczem lub zawiera klucz." - dla mnie to jest dalej definicja 3NF.

Z góry dziękuję
pozdrawiam

Ten post edytował jg44 7.07.2012, 08:08:15
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
alegorn
post
Post #2





Grupa: Zarejestrowani
Postów: 341
Pomógł: 40
Dołączył: 23.06.2009

Ostrzeżenie: (0%)
-----


chole*a duzo tego.. troche to przeredaguje.

Cytat
nieco bardziej restrykcyjna wersja trzeciej postaci normalnej jest nazywana postacią [ciach] BCNF
w trzeciej postaci normalnej wszystkie atrybuty spoza klucza muszą zależeć od klucza danej tabeli
w postaci normalnej BCNF tej regule podlegaja takze kolumny nalezace do klucza
ten dodatkowy warunek na znaczenie w sytuacji gdy tabela zawiera wiele zbiorow kolumn ktore moga pelnic funkcje prawidlowych kluczy tej tabeli


z powyzszego wiele ine wynika, wiec przyklad:

Cytat
mamy trzy typy tagow
* opisujace skutki bledow
* wskazujace podsystemy na ktore wplywaja poszczegolne bledy
* tagi opisujace sposoby rozwiazania problemow

decydujemy ze kazdy blad moze miec przypisany ci najwyzej jeden tag kazdego typu.
dobrym kandydatem na primary moze byc : id_bledu i tag ale takze id_bledu i typ_tagu


WIELE POTENCJALNYCH KLUCZY

id bledu| tag | typ_tagu
1234 | awaria| skutki
3456 | druk | podsystem
3456 | awaria| skutki
5678 | raport| podsystem
5678 | awaria| skutki
5678 | dane | rozwiazanie

ANOMALIA

id bledu| tag | typ_tagu
1234 | awaria| skutki
3456 | druk | podsystem
3456 | awaria| skutki
5678 | raport| podsystem << ANOMALIA
5678 | awaria| podsystem << ANOMALIA
5678 | dane | rozwiazanie

postac normalna BCNF

TagiBledow
id_bledu| tag
1234 | awaria
3456 | druk
3456 | awaria
5678 | raport
5678 | awaria
5678 | dane

Bledy
tag | typ_tagu
awaria | skutki
druk | podsystem
raport | podsystem
dane | rozwiazanie

tabele w relacji :
TagiBledow n:1 Bledy



piwo sie nalezy.(IMG:style_emoticons/default/wink.gif)

j.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 2.04.2026 - 11:30