Duża baza danych zdefiniowana jako pojedyncza relacja może skutkować duplikacją danych. Powtarzanie danych może skutkować:
- Tworzenie relacji bardzo dużych.
- Utrzymanie i aktualizacja danych nie jest łatwe, ponieważ wymagałoby przeszukiwania wielu rekordów w powiązaniu.
- Marnotrawstwo i słabe wykorzystanie miejsca na dysku i zasobów.
- Zwiększa się prawdopodobieństwo błędów i niespójności.
Aby więc poradzić sobie z tymi problemami, powinniśmy przeanalizować i rozłożyć relacje ze zbędnymi danymi na mniejsze, prostsze i dobrze ustrukturyzowane relacje, które spełniają pożądane właściwości. Normalizacja to proces rozkładu relacji na relacje o mniejszej liczbie atrybutów.
Co to jest normalizacja?
- Normalizacja to proces porządkowania danych w bazie danych.
- Normalizację stosuje się w celu zminimalizowania redundancji relacji lub zestawu relacji. Służy również do eliminowania niepożądanych cech, takich jak anomalie wstawiania, aktualizacji i usuwania.
- Normalizacja dzieli większą tabelę na mniejsze i łączy je za pomocą relacji.
- Postać normalna służy do zmniejszenia nadmiarowości tabeli bazy danych.
Dlaczego potrzebujemy normalizacji?
Głównym powodem normalizacji relacji jest usunięcie tych anomalii. Niewyeliminowanie anomalii prowadzi do nadmiarowości danych i może spowodować integralność danych oraz inne problemy w miarę rozrastania się bazy danych. Normalizacja składa się z szeregu wskazówek, które pomagają w tworzeniu dobrej struktury bazy danych.
Anomalie modyfikacji danych można podzielić na trzy typy:
Rodzaje form normalnych:
Normalizacja przebiega poprzez szereg etapów zwanych formami normalnymi. Formy normalne mają zastosowanie do relacji indywidualnych. Mówi się, że relacja ma szczególną postać normalną, jeśli spełnia ograniczenia.
Poniżej przedstawiono różne typy form normalnych:
Normalna forma | Opis |
---|---|
1NF | Relacja jest w 1NF, jeśli zawiera wartość atomową. |
2NF | Relacja będzie w 2NF, jeśli jest w 1NF i wszystkie atrybuty niekluczowe będą w pełni funkcjonalne w zależności od klucza podstawowego. |
3NF | Relacja będzie w 3NF, jeśli jest w 2NF i nie istnieje żadna zależność przejściowa. |
BCNF | Silniejsza definicja 3NF jest znana jako normalna postać Boyce'a Codda. |
4NF | Relacja będzie w 4NF, jeśli będzie w normalnej postaci Boyce’a Codda i nie będzie zawierała zależności wielowartościowych. |
5NF | Relacja jest w 5NF. Jeśli jest w 4NF i nie zawiera żadnej zależności łączenia, łączenie powinno być bezstratne. |
Zalety normalizacji
- Normalizacja pomaga zminimalizować nadmiarowość danych.
- Większa ogólna organizacja bazy danych.
- Spójność danych w bazie danych.
- Znacznie bardziej elastyczny projekt bazy danych.
- Egzekwuje koncepcję integralności relacyjnej.
Wady normalizacji
- Nie możesz rozpocząć budowania bazy danych, zanim nie dowiesz się, czego potrzebuje użytkownik.
- Wydajność ulega pogorszeniu podczas normalizowania relacji do wyższych form normalnych, tj. 4NF, 5NF.
- Normalizacja relacji wyższego stopnia jest bardzo czasochłonna i trudna.
- Nieostrożna dekompozycja może prowadzić do złego projektu bazy danych, co prowadzi do poważnych problemów.