Normalizacja baz danych
Transkrypt
Normalizacja baz danych
Normalizacja baz danych Tomasz Basiura Plan prezentacji • • • • • • • Co to jest normalizacja? W jakim celu robi się normalizację? Anomalie Na czym polega normalizacja BD? Zalety i wady Postacie normalne Podsumowanie 2 z 17 Co to jest normalizacja? • Eliminacja powtarzających się danych w relacyjnej bazie danych • Trzymanie danych w jednym miejscu • Linkowanie do danych w razie potrzeby 3 z 17 W jakim celu robi się normalizację? • Uniknięcie redundancji • Zmniejszenie ryzyka powstania niespójności • Wyeliminowanie niewygodnych relacji wieloznacznych • Uniknięcie problemów anomalii • Zwiększenie bezpieczeństwa danych 4 z 17 Anomalie • • • • Nadmiarowość (redundancja) Anomalie modyfikacji Anomalie dołączenia Anomalie usunięć id nazwa adres produkt 1 Blatex ul. Drzewna 3 blat 2 Blatex ul. Drzewna 3/1 noga do stołu 3 Meblex ul. Dębowa 5 stolik 5 z 17 Na czym polega normalizacja BD? • Zmiana schematu bazy danych i relacji między danymi (zachowanie spójności, bez usuwania) • Rozbicie większych tabel na mniejsze • Separacja informacji ściśle niepowiązanych • Usunięcie powtórzeń • Łączenie danych z różnych tabel przy każdym wykonywaniu zapytania 6 z 17 Zalety • • • • Zmniejszenie objętości bazy danych Wyeliminowanie anomalii Zwiększenie bezpieczeństwa Uporządkowanie informacji 7 z 17 Wady • Zmniejszenie wydajności • Zwiększenie liczby tabel (utrudniona administracja) • Skomplikowane importowanie danych z innych źródeł 8 z 17 Postacie normalne • 1NF, 2NF, 3NF Edgara Franka Codda • Boyce’a-Codda (BCNF) • 4NF, 5NF, 6NF 9 z 17 Postacie normalne – 1NF • Każda wartość w każdym rekordzie jest elementarna, brak możliwości sensownego podziału • Opisywanie jednego obiektu • Brak kolekcji (powtarzających się grup informacji) • Klucz główny • Problem stwierdzenia atomowości pola 10 z 17 Postacie normalne – 2NF • 1NF • Zależność funkcyjna od CAŁOŚCI klucza głównego (np. 1NF i klucz jednoelementowy) Zależność funkcyjna pomiędzy zbiorami atrybutów X oraz Y oznacza, że każdemu zestawowi wartości atrybutów X odpowiada dokładnie jeden zestaw wartości atrybutów Y. • Osobne tabele dla zestawów wartości odnoszących się do wielu rekordów – dekompozycja z możliwością bezstratnego złączenia 11 z 17 • Powiązania przez klucz obcy Postacie normalne – 3NF • 2NF • BEZPOŚREDNIA zależność wszystkich pól od klucza głównego – zakaz występowania zależności przechodnich • Usunięcie pól niezależnych od klucza głównego – dekompozycja • Wyjątek: zależności cykliczne A → B, B → C, C → A 12 z 17 Postacie normalne – Boyce’a-Codda • BCNF, zwana też 3.5NF, jest silniejszą 3NF • Zazwyczaj BD z postacią 3NF są 3.5NF • Jeżeli X → A i atrybut A nie jest zawarty w X, to X jest kluczem lub zawiera klucz. • Nie zawsze się da np.: miasto ulica klucze: {Miasto, Ulica}, {Ulica, Kod} zależności: MU → K, K → M K nie jest kluczem kod 13 z 17 Postacie normalne – 4NF • Zawsze wtedy, kiedy zbiór atrybutów X określa wartościowo Y, to zachodzi jeden z następujących warunków: – Y jest puste lub zawiera się w X, – suma zbiorów X i Y jest pełnym zbiorem atrybutów, – X zawiera klucz. 14 z 17 Postacie normalne – 5NF • Wtedy i tylko wtedy, gdy nie istnieje rozkład odwracalny na zbiór mniejszych tabel 15 z 17 Postacie normalne – 6NF • Wtedy i tylko wtedy, gdy nie zawiera żadnych nietrywialnych zależności złączeń • Reprezentacja danych tymczasowych • Zależność czasowa 16 z 17 Podsumowanie • • • • • Normalizacja to zmiana układu danych Zapobiega redundancji danych Eliminuje anomalie i niespójności Powoduje zmniejszenie wydajności Należy dążyć do: – możliwości bezstratnych złączeń – zachowania wszystkich zależności funkcyjnych – BCNF (lub chociaż 3NF) 17 z 17