Wstępny
Definicja postaci normalnej (która z prezentacji „Dalszej normalizacji modelu relacyjnego bazy danych” w 1971 r. Jest znana jako pierwsza postać normalna ) oraz sama definicja paradygmatu relacji została opublikowana w 1970 r. W pracy naukowej, która zapewniła silny podstawą dla praktyki administracji bazami danych, czyli „relacyjnym modelu danych dla Large Shared Data Banks” (RM dla zwięzłość) stworzony przez dr EF Codd , który jest odbiorcą Nagroda Turinga i organ w odniesieniu do relacyjnej struktury.
Tak, istnieje wiele wyjaśnień, interpretacji, prezentacji, odchyleń i opinii na temat tekstu doktora Codda, ale ja osobiście wolę trzymać się oryginalnego źródła i bardzo sugeruję, abyś sam go przeanalizował, abyś mógł wyciągnąć własne wnioski.
Z pewnością nie rozumiem RM w całości, ale to, co rozumiem, pozwala mi docenić jego doskonałość, wizję, intencję i zakres, i chociaż dekady później można zauważyć, że ma kilka drobnych niedokładności, nie zmniejszają, w jakikolwiek sposób, jego geniusz i elegancja. W swojej dziedzinie RM przetrwał próbę czasu w wyjątkowy sposób i pozostaje niezrównany.
Podkreślanie wyżej wspomnianych niedokładności byłoby - przy użyciu terminu charytatywnego - niesprawiedliwe, ponieważ, widząc go z dużej odległości, ten przełomowy materiał wymagał kilku udoskonaleń i rozszerzeń, tak, ale główna część dzieła była solidna z sama koncepcja (i rzeczywiście doktor Codd sam dokonał większości - jeśli nie wszystkich) takich udoskonaleń i rozszerzeń).
Kontynuuję ponowne czytanie RM w celu lepszego zrozumienia tego wyjątkowego źródła wiedzy (a mój szacunek do niego stale rośnie przy każdym ponownym przeczytaniu); celem jest stanąć na barkach gigantów.
Relacje i tabele
Należy zauważyć, że ponieważ relacje są zasobami abstrakcyjnymi , dr Codd przewidział użyteczność reprezentowania ich w formie tabelarycznej (początkowo użył terminu „reprezentacja tablicowa”, a następnie „tabeli” lub „tabeli r”), tak że użytkownicy, projektanci i administratorzy relacyjnej bazy danych (RDB) mogą do nich podejść w bardziej znany lub konkretny sposób. Dlatego w kontekście implementacji RDB poprawne jest użycie tabeli jako skróconej relacji, o ile wspomniana tabela oznacza rzeczywistą relację. Ta cecha jest - choć oczywista - dość znacząca, ponieważ przed oceną, czy tabela reprezentuje relację zgodną z pierwszą formą normalną (1NF), musi dokładnie reprezentować relację.
RM oczywiście zawiera cechy, które musi mieć stół, aby ustalić, czy faktycznie przedstawia on relację, ale przedstawię tutaj nieformalną i bezpretensjonalną interpretację (kolejna, tak!):
- Musi mieć nazwę (każdą konkretną relację w strukturze bazy danych należy odróżnić od reszty).
- Każdy z jego wierszy musi przedstawiać dokładnie jeden krotki z istotnych relacji.
- Kolejność swoich wierszy nie jest ważne w ogóle.
- Każda z jej kolumn musi mieć nazwę, która oznacza dokładnie jedną domenę relacji, a wspomniana nazwa musi być inna niż nazwy pozostałych kolumn tabeli (kolumna musi być wyjątkowo zróżnicowana i musi nosić szczególne znaczenie ma znaczenie, jakie odgrywa modelista bazy danych i eksperci biznesowi w precyzyjnym zdefiniowaniu każdej ważnej dziedziny)
- Kolejność swoich kolumn nie ma znaczenia.
- Wszystkie jego wiersze muszą mieć tę samą liczbę kolumn.
- Musi mieć co najmniej jedną kolumnę lub jedną kombinację kolumn, która jednoznacznie identyfikuje każdą z krotek przedstawionych za pomocą wierszy; w ten sposób wszystkie wiersze muszą być różne (tak, to podkreśla znaczenie zadeklarowania co najmniej jednego KLUCZA, a gdy są dwa lub więcej KLUCZÓW, należy zdefiniować je jako PODSTAWOWE w oparciu o pragmatyczne powody, podczas gdy pozostałe mogą być uważane za ALTERNATYWNE, ale tak, przed podjęciem decyzji, każdy z KLUCZÓW był „kandydatem” do definicji PODSTAWOWEJ).
Posiadanie tabeli, która w rzeczywistości reprezentuje relację, ma krytyczne znaczenie, ponieważ po przejściu operacji manipulacyjnych o charakterze relacyjnym, wynikiem jest ponownie tabela reprezentująca relację. W ten sposób zachowanie wspomnianej tabeli jest przewidywalne .
Domeny atomowe (kolumny)
W pierwszych częściach RM dr Codd przedstawia kilka próbek relacji w celu wprowadzenia niektórych pojęć; więc, aby zrozumieć znaczenie domeny atomowej , zacznijmy od następującego fragmentu RM, który szczegółowo opisuje niektóre istotne punkty:
Do tej pory omawialiśmy przykłady relacji, które są zdefiniowane w prostych domenach - domenach, których elementami są wartości atomowe (nierozkładalne). Wartości nieatomowe można omawiać w ramach relacji. Dlatego niektóre domeny mogą mieć relacje jako elementy. Relacje te można z kolei definiować w nieprostych domenach i tak dalej.
W ten sposób można powiedzieć, że każda z wyżej wymienionych relacji ekspozycyjnych pasuje do jednego z dwóch rodzajów, powiedzmy albo rodzaj A, albo rodzaj B :
Rodzaj A grupuje tylko relacje (tabele), które są zbudowane z domen (kolumn), które zawierają wyłącznie proste wartości w każdym z ich krotek (wierszy), tj. Takie domeny (kolumny) nie zawierają relacji (tabel) jako wartości, które w ten kontekst oznacza, że wartości są atomowe, ponieważ nie można ich rozkładać sukcesywnie na nowe relacje (tabele). Stąd relacje tej klasy są tymi, które są znormalizowane , tj. Są zgodne z 1NF, ich forma jest pożądana.
Rodzaj B jest zintegrowany wyłącznie z relacjami (tabelami), które mają jedną lub więcej domen (kolumn), które przechowują relacje jako wartości w każdym krotce (wierszu), a to oznacza, że wspomniane wartości nie są anatomiczne, ponieważ można je następnie podzielić na nowe relacje (tabele), tzn. są rozkładalne . Tak więc relacje tego rodzaju są nienormalizowane, tj. Naruszają 1NF, są w niepożądanej formie.
Normalizacja
Dr Codd wprowadza rozdział dotyczący normalizacji w RM z następującym akapitem:
Relacja, której domeny są proste, może być reprezentowana w pamięci przez dwuwymiarową jednorodną kolumnę typu omawianego powyżej. Bardziej skomplikowana struktura danych jest konieczna dla relacji z jedną lub kilkoma nieprostymi domenami. Z tego powodu (i innych, które zostaną przytoczone poniżej) warto zbadać możliwość wyeliminowania nieskomplikowanych domen! W rzeczywistości istnieje bardzo prosta procedura eliminacji, którą nazwiemy normalizacją.
Następnie pokazuje:
Grupa relacji, w których jedna jest nienormalizowana (ma domeny, które zawierają relacje jako wartości, tj. Są one nieatomowe, tj. Nie są proste)
Grupa relacji, które są znormalizowane (tj. Te, które zostały zdekomponowane; tj. Takie, które relację cenionych domen zostały podzielone na proste, co oznacza, że są atomowe)
A następnie opisuje procedurę uzyskiwania znormalizowanych relacji z nienormalizowanych.
W związku z tym relacje, które wykorzystał do zilustrowania ćwiczenia normalizacyjnego, i sam opis ćwiczenia są dość jasne i ponownie polecam ich samodzielną analizę (i mam nadzieję, że zachęca to niektórych czytelników do zaangażowania się w tekst).
Sukcesywnie wskazuje:
Możliwe są dalsze operacje normalizujące. Nie są one omówione w tym dokumencie.
Wspomniane operacje, tj. Druga i trzecia postać normalna (2NF i 3NF) są szczegółowo wyszczególnione w „Dalszej normalizacji modelu relacyjnego bazy danych” i jak wspomniano powyżej, po prezentacji (oraz późniejszym wydrukowaniu i opublikowaniu) tego artykułu , oryginalna postać normalna stała się znana jako pierwsza postać normalna.
Jak zauważa praktykujący, posiadanie nienormalizowanych relacji (tabel) wprowadza (prawie zawsze niepotrzebne) splot do implementacji RDB.
Relacja, która spełnia 1NF, ułatwia definicję ograniczeń i operacji manipulacji danymi, które można wdrożyć za pomocą języka podrzędnego danych, który jest mniej skomplikowany niż wymagany w przypadku nienormalizowanych relacji (tabel), jak zauważa dr Codd w następujących wierszach:
Przyjęcie relacyjnego modelu danych, jak opisano powyżej, pozwala na opracowanie uniwersalnego języka danych w oparciu o zastosowany rachunek predykatów. Rachunek predykatu pierwszego rzędu jest wystarczający, jeśli zbiór relacji ma normalną postać. Taki język stanowiłby miernik siły językowej dla wszystkich innych proponowanych języków danych i sam byłby silnym kandydatem do osadzenia (z odpowiednią modyfikacją składniową) w różnych językach hosta (programowanie, zorientowanie na polecenia lub problemy). […]
[…]
Uniwersalność podjęzyka danych polega na jego zdolności opisowej (a nie na zdolności obliczeniowej).
Zdziwienie
Z mojego punktu widzenia, oszołomienie powstał ze względu na: (a) wspomnianego nadmiaru interpretacji, wyjaśnień itp około 1nF i tym samym RM, a ze względu na (b) dalsze próby redefinicji 1nF, które stwierdzają, że mający stosunki z domenami, które przechowują wartości, które z kolei relacje są zgodne z 1NF, o ile są one jedną wartością dla każdej odpowiadającej krotki.
Moje zdanie na temat innych punktów
Pomiędzy wierszami nie powinno być żadnych relacji poza tym, że odpowiadają one tym samym nagłówkom.
Nie jestem pewien, czy dobrze rozumiem intencję tego stwierdzenia, ale oprócz zgodności z tymi samymi nagłówkami, musi istnieć połączenie między (krotkami) wierszy relacji (tabeli), ponieważ każdy z nich powinien być twierdzeniem o szczególne wystąpienie określonego rodzaju jednostki (zdefiniowanej w kontekście interesu gospodarczego), którą relacja (tabela) ma reprezentować.
Nie powinno być również związku między kolumnami, ale uważam, że jest to przedmiotem wyższych normalnych form.
Nie wiem też, czy właściwie interpretuję znaczenie tego stwierdzenia, ale w rzeczywistości i zgodnie z moją odpowiedzią na poprzedni aspekt, musi istnieć również związek między domenami (kolumnami) relacji (tabeli) , właśnie dlatego jest to relacja (zasadnicza struktura modelu relacyjnego i konkretnej implementacji RDB).
Dla przykładu w odniesieniu do relacji hipotetycznej (tabela)
Salary (PersonNumber, EffectiveDate, Amount)
krotka (wiersz)
przekazałoby znaczenie
The Salary payed to the Person identified by PersonNumber x, on EffectiveDate y corresponds to the Amount of z
Dlatego każda krotka (wiersz) Salary
relacji (tabela) musi pasować do struktury powyższego twierdzenia, a różnicą byłoby zastąpienie odpowiednich wartości domeny (kolumny), ale musi istnieć związek między (a) wszystkie Salary
domeny (kolumny), a także między (b) wszystkie odpowiadające im wartości w odniesieniu do każdej krotki (rzędu); taki związek jest niezbędny.
Wyższe normalne formy (2NF i 3NF) są przydatne do pozbycia się funkcjonalnych zależności między domenami (kolumnami) relacji (tabeli), pomagają unikać niepożądanych połączeń między domenami (kolumnami), ponieważ wspomniane niepożądane połączenia umożliwiają wprowadzenie anomalii aktualizacji . Zarówno 2NF, jak i 3NF są pomocne w testowaniu poprawności struktury relacji (tabel) w pewnej implementacji RDB.