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