Normalizacja baz danych – pojęcia
Normalizacja bazy danych jest to proces mający na celu eliminację powtarzających się danych w relacyjnej bazie danych. Główna idea polega na trzymaniu danych w jednym miejscu, a w razie potrzeby linkowania do danych. Taki sposób tworzenia bazy danych zwiększa bezpieczeństwo danych i zmniejsza ryzyko powstania niespójności (w szczególności problemów anomalii).
Źródło: wikipedia.pl
Klucz podstawowy tabeli jest to pole, które jednoznacznie identyfikuje rekordy.
Kluczem obcym nazywam kolumnę, która nie jest podstawowym kluczem tabeli, ale przyjmuje jego wartości z innej tabeli:
CREATE TABLE adresy ( ID_adresy INT NOT NULL, ulica VARCHAR(100), numer_domu VARCHAR(10), ID_dane INT NOT NULL, PRIMARY KEY(ID_adresy));
W podanym przykładzie kluczem obcym jest kolumna ID_dane, a kluczem podstawowym kolumna ID_adresy.
W relacji jeden do jednego, rekord z tabeli A ma tylko jeden pasujący do niego rekord w tabeli B oraz w tabeli B jakiś rekord ma jeden rekord do niego pasujący w tabeli A.
Relacja jeden do wielu umożliwia dopasowanie jednemu rekordowi w tabeli A wiele rekordów w tabeli B. Natomiast dany rekord w tabeli B ma dopasowany tylko jeden rekord w tabeli A.
W relacji wiele do wielu dany rekord z tabeli A może mieć wiele pasujących do siebie rekordów z tabeli B, a rekord z tabeli B może mieć wiele pasujących rekordów z tabeli A.
Relacje tworzymy nadając takie same wartości – w jednej tabeli w kluczu głównym, a w drugiej w kluczu obcym.
Źródło: wikipedia.pl.
Wiem, że to artykuł sprzed wielu lat… ale chciałem napisać, że jest dosyć kiepski :D
Powoływanie się na Wikipedię jest średnim pomysłem, no ale niech będzie, skoro tak proponujesz. Teraz ten materiał jest na niej znacznie lepiej opisany: https://pl.wikipedia.org/wiki/Normalizacja_bazy_danych
Przede wszystkim normalizacja baz danych wiąże się z tzw. postaciami normalnymi. To trochę nudny temat i bardzo akademicki… ale cóż poradzić :) A wszystko sprowadza się po prostu do tego, żeby w bazie danych nie było redundancji (chociażby za pomocą kluczy głównych i obcych).