http://pl.wikipedia.org/wiki/Anomalie_(bazy_danych)
ANOMALIE (BAZY DANYCH)
Anomalie powstają gdy próbujemy w jednej tabeli (w żargonie matematycznym - relacji) umieścić zbyt wiele danych.
Przykład:
Tabela Sprzedaż:
Nazwa
Adres
Co
Ile
Cena/szt
Firma1
Adres1
Słoiki
15
12PLN
Firma1
Adres1
Gwoździe
17
2PLN
Firma2
Adres2
Papier
1
12PLN
Problemy:
Nadmiarowość (ang. redundancy). Dane powtarzają się w wielu wierszach (krotkach). Adres1 niepotrzebnie się
powtarza. W przypadku dodawania nowego zakupu przez Firmę1, gdy osoba wpisująca pomyli się i źle wpisze adres
lub nazwę firmy, baza utraci spójność danych (nie będzie wiadomo która wartość jest prawidłowa).
Anomalie modyfikacji (ang. update anomalies). W przypadku gdy Firma1 zmieni swój adres, trzeba zmienić wszystkie
wiersze (krotki) w tej tabeli (relacji). Jeśli nie zostanie zmieniony choćby jeden wiersz, baza utraci spójność danych.
Wymaganie zmiany wszystkich wierszy w dużych bazach spowoduje znaczące obciążenie.
Anomalie usunięć (ang. deletion anomalies). Usunięcie jedynego zamówienia dla Firmy2 z tabeli powyżej spowoduje
usunięcie wszelkich informacji o firmie, a tymczasem celowe może być zachowanie informacji o adresie firmy. W tej
tabeli jest to niemożliwe (pomijamy w tej chwili możliwość wstawienia wartości NULL dla pola, co częściowo
rozwiązuje problem).
Rozwiązaniem tych problemów są postacie normalne, które gwarantują, że takie anomalie nie będą miały miejsca.
http://pl.wikipedia.org/wiki/Normalizacja_bazy_danych
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).
W poniższej tabeli próbowano zgromadzić zbyt wiele danych:
Nazwa
Adres
Co
Ile
Cena/szt
Firma1 Adres1 Słoiki
15
12PLN
Firma1 Adres1 Gwoździe 17
2PLN
Firma2 Adres2 Papier
1
12PLN
Ćwiczenie 1: Zrób projekt relacyjnej bazy danych tak, aby wyeliminować anomalie.
Wskazówka: Wzór w widoku projektu:
Ćwiczenie 2: Wypełnij zaprojektowane tabele odpowiednio danymi
Wskazówka: Dla Firmy1 przyjmij IdFirmy= F01, dla Firmy2 przyjmij IdFirmy= F02,
dla słoików przyjmij IdProduktu= p1, dla gwoździ= p2, dla papieru= p3