Różnica między 3NF a BCNF

Różnica między 3NF a BCNF
Różnica między 3NF a BCNF

Wideo: Różnica między 3NF a BCNF

Wideo: Różnica między 3NF a BCNF
Wideo: Agile vs Waterfall Methodology | Difference between Agile and Waterfall | What to choose? 2024, Listopad
Anonim

3NF kontra BCNF

Normalizacja to proces przeprowadzany w celu zminimalizowania nadmiarowości, która występuje w danych w relacyjnych bazach danych. Ten proces dzieli głównie duże tabele na mniejsze tabele z mniejszą liczbą nadmiarowości. Te mniejsze tabele będą ze sobą powiązane poprzez dobrze zdefiniowane relacje. W dobrze znormalizowanej bazie danych każda zmiana lub modyfikacja danych będzie wymagała modyfikacji tylko jednej tabeli. Trzecia Forma Normalna (3NF) została wprowadzona w 1971 roku przez Edgara F. Codda, który jest również wynalazcą modelu relacyjnego i koncepcji normalizacji. Forma normalna Boyce-Codd (BCNF) została wprowadzona w 1974 roku przez Codda i Raymonda F. Boyce.

Co to jest 3NF?

3NF to trzecia postać normalna używana w normalizacji relacyjnych baz danych. Zgodnie z definicją Codda, o tabeli mówi się, że jest w 3NF, wtedy i tylko wtedy, gdy ta tabela jest w drugiej postaci normalnej (2NF), a każdy atrybut w tabeli, który nie należy do klucza kandydującego, powinien bezpośrednio zależeć od każdy klucz kandydujący tej tabeli. W 1982 roku Carlo Zaniolo stworzył inaczej wyrażoną definicję 3NF. Tabele zgodne z 3NF na ogół nie zawierają anomalii, które występują podczas wstawiania, usuwania lub aktualizowania rekordów w tabeli.

Co to jest BCNF?

BCNF (znany również jako 3.5NF) to kolejna normalna forma używana w normalizacji relacyjnych baz danych. Został wprowadzony w celu uchwycenia niektórych anomalii, którymi nie zajmuje się 3NF. Mówi się, że tabela jest w BCNF, wtedy i tylko wtedy, gdy dla każdej z zależności postaci A → B, które są nietrywialne, A jest super-kluczem. Dekompozycja tabeli, która nie jest w formie normalnej BCNF, nie gwarantuje produkcji tabel w formie BCNF (przy zachowaniu zależności, które były obecne w oryginalnej tabeli).

Jaka jest różnica między 3NF a BCNF?

Zarówno 3NF, jak i BCNF to normalne formularze używane w relacyjnych bazach danych w celu zminimalizowania nadmiarowości w tabelach. W tabeli, która jest w postaci normalnej BCNF, dla każdej nietrywialnej zależności funkcjonalnej postaci A → B, A jest superkluczem, podczas gdy tabela, która jest zgodna z 3NF, powinna być w 2NF, a każda niepierwotna atrybut powinien bezpośrednio zależeć od każdego klucza kandydującego tej tabeli. BCNF jest uważany za silniejszą normalną formę niż 3NF i został opracowany w celu wychwytywania niektórych anomalii, których nie mógł wychwycić 3NF. Uzyskanie tabeli zgodnej z formularzem BCNF będzie wymagało rozłożenia tabeli znajdującej się w 3NF. Ta dekompozycja spowoduje dodatkowe operacje łączenia (lub produkty kartezjańskie) podczas wykonywania zapytań. Wydłuży to czas obliczeniowy. Z drugiej strony, tabele zgodne z BCNF miałyby mniej zwolnień niż tabele, które są zgodne tylko z 3NF. Co więcej, w większości przypadków możliwe jest uzyskanie tabeli zgodnej z 3NF bez utrudniania zachowania zależności i bezstratnego łączenia. Ale nie zawsze jest to możliwe w przypadku BCNF.

Zalecana: