Bazy danych.
Proces normalizacji – zwany często redukcją lub rozkładem ma na celu zaprojektowanie takiego układu informacji w tabelach, aby w najmniej skomplikowany (spójność informacji, jednoznaczność, unikanie redundancji danych, łatwość dostępu do informacji) sposób można było przeprowadzić działania na tych danych.
Pierwsza postać normalna 1PN – tabela jest w pierwszej postaci normalnej gdy:
Wszystkie wartości atrybutów są skalarne (niepodzielne)
Jest możliwe wyznaczenie klucza głównego tabeli, co oznacza, że nie mogą pojawić się dwa wiersze o identycznej zawartości
Niekluczowe elementy są zależne od części klucza głównego
Anomalie – określa się tak sytuacje utrudniającą utrzymywanie przejrzystej i jednoznacznej informacji w bazach danych. Generalnie mamy trzy rodzaje anomalii związanych z procesem aktualizacji danych: usuwania, poprawiania i dodawania wierszy.
Anomalie przy usuwaniu – usuwając jedną informacje, usuwamy informacje z nią sprzężoną
Anomalie przy dodawaniu – dodając informacje do bazy danych, aby były one czytelne muszą być uprzednio zdefiniowane.
Anomalie przy aktualizacji – zmieniając informacje w jednym rekordzie, ta sama informacje nie zmienia się w innym rekordzie zawierającym tą informacje.
Druga postać normalna 2PN – tabela jest w 2PN jeżeli :
Jest w 1PN
Każdy niekluczowy atrybut jest nieredukowalnie zależny od całego klucza głównego (a nie od jego części, jak ma to miejsce w 1PN)
Występują wzajemne zależności między atrybutami spoza klucza głównego
Trzecia postać normalna 3PN – tabela jest w 3PN jeżeli :
Jest w 2PN
Wszystkie niekluczowe atrybuty są wzajemnie niezależne i nieredukowalne zależne od klucza głównego (co oznacza, że nie ma zależności przechodnich)
Czwarta postać normalna 4PN – tabela jest w 4PN jeżeli :
Jest w 3PN
Atrybuty spoza klucza głównego to jedyna kolumna poza kolumnami klucza głównego
Denormalizacja – jest procesem odwrotnym w stosunku do normalizacji, czyli powoduje przechodzenie z wyższych postaci normalnych do niższych. Procesy denormalizacji wykorzystywane są wtórnie, to znaczy, gdy na podstawie istniejącej bazy danych należy wydobyć informacje na przykład na potrzeby utworzenia raportu.