background image

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 

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). 

 

 

background image

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 

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