Pierwsza postać normalna (1NF) nie eliminuje redundancji, ale raczej eliminuje powtarzające się grupy. Zamiast mieć w rekordzie wiele kolumn tego samego rodzaju danych (forma 0NF lub nieznormalizowana), usuwasz powtarzające się informacje do osobnej relacji i reprezentujesz je jako wiersze. To właśnie stanowi 1NF.
Druga postać normalna
Druga postać normalna (2NF) opiera się na koncepcji w pełni funkcjonalnej zależności. Druga postać normalna dotyczy relacji z kluczami złożonymi, to znaczy relacji z kluczem podstawowym złożonym z dwóch lub więcej atrybutów. Relacja z kluczem podstawowym o jednym atrybucie jest automatycznie w co najmniej 2NF. Relacja, która nie jest w 2NF, może cierpieć z powodu anomalii aktualizacji. Aby relacja była w drugiej postaci normalnej, relacja musi być w pierwszej postaci normalnej i relacja nie może zawierać żadnej częściowej zależności. Relacja jest w 2NF, jeśli nie ma częściowej zależności, tj. żaden atrybut inny niż pierwszy (atrybut, który nie jest częścią żadnego klucza kandydującego) nie jest zależny od żadnego odpowiedniego podzbioru dowolnego klucza kandydującego w tabeli. Innymi słowy,
Relacja będąca w Pierwszej Postaci Normalnej i każdy atrybut inny niż klucz podstawowy jest w pełni funkcjonalnie zależna od klucza podstawowego, wówczas relacja jest w Drugiej Postaci Normalnej (2NF).
środkowy przycisk CSS
Notatka - Jeśli właściwy podzbiór klucza kandydującego określa atrybut inny niż pierwszy, jest on wywoływany częściowe uzależnienie . The normalizacja relacji 1NF do 2NF polega na usunięcie częściowych zależności . Jeśli istnieje częściowa zależność, usuwamy częściowo zależne atrybuty z relacji, umieszczając je w nowej relacji wraz z kopią ich wyznacznika. Rozważ przykłady podane poniżej.
Przykład 1: Rozważ tabelę w następujący sposób.
STUD_NO COURSE_NO COURSE_FEE 1 C1 1000 2 C2 1500 1 C4 2000 4 C3 1000 4 C1 1000 2 C5 2000>
{Pamiętaj, że istnieje wiele kursów, w przypadku których opłata za kurs jest taka sama. } Tutaj COURSE_FEE nie może samodzielnie decydować o wartości COURSE_NO lub STUD_NO; COURSE_FEE razem ze STUD_NO nie może decydować o wartości COURSE_NO; COURSE_FEE razem z COURSE_NO nie mogą decydować o wartości STUD_NO; Zatem COURSE_FEE nie byłby atrybutem głównym, ponieważ nie należy do jedynego klucza kandydującego {STUD_NO, COURSE_NO}; Ale COURSE_NO -> COURSE_FEE, tj. COURSE_FEE zależy od COURSE_NO, który jest właściwym podzbiorem klucza kandydującego. Atrybut inny niż podstawowy COURSE_FEE jest zależny od odpowiedniego podzbioru klucza kandydującego, co jest zależnością częściową, a zatem relacja ta nie występuje w 2NF. Aby przekonwertować powyższą relację na 2NF należy podzielić tabelę na dwie tabele takie jak: Tabela 1: STUD_NO, COURSE_NO Tabela 2: COURSE_NO, COURSE_FEE
Table 1 Table 2 STUD_NO COURSE_NO COURSE_NO COURSE_FEE 1 C1 C1 1000 2 C2 C2 1500 1 C4 C3 1000 4 C3 C4 2000 4 C1 C5 2000 2 C5>
Notatka - 2NF próbuje zredukować ilość zbędnych danych przechowywanych w pamięci. Na przykład, jeśli na kurs C1 uczęszcza 100 uczniów, nie musimy przechowywać jego opłaty jako 1000 dla wszystkich 100 rekordów, zamiast tego możemy zapisać ją w drugiej tabeli, ponieważ opłata za kurs dla C1 wynosi 1000.
Przykład-2: Rozważ następujące zależności funkcyjne w relacji R (A, B, C, D )
menu JavaScript
AB ->C [A i B wspólnie określają C] BC -> D [B i C wspólnie określają D]>
Odpowiedź:
Najpierw możemy sprawdzić, czy istnieją jakieś częściowe zależności. Częściowa zależność ma miejsce, gdy atrybut inny niż główny (nie będący częścią żadnego klucza kandydującego) zależy tylko od części klucza kandydującego.
Klucze kandydujące do relacji R można określić, znajdując domknięcie każdego atrybutu:
AB określa każdy klucz.
Sprawdźmy teraz częściowe zależności:
W tej relacji nie ma częściowych zależności, ponieważ każdy atrybut inny niż pierwszy (C i D) zależy od całego klucza(ów) kandydującego, którego jest częścią (odpowiednio AB i BC).
tablica sortująca w Javie
Zatem relacja R jest już w 3. Postaci Normalnej (3NF), ponieważ spełnia warunki 1. Postaci Normalnej (1NF) i 2. Postaci Normalnej (2NF) i nie posiada żadnych zależności przechodnich.
Wniosek
Podsumowując, 2NF to podstawowa koncepcja normalizacji bazy danych, która pomaga usunąć częściowe zależności w relacyjnej bazie danych. Przestrzeganie zasad 2NF pomaga zorganizować bazę danych, aby uniknąć anomalii i zapewnić integralność danych, ułatwiając przechowywanie i pobieranie danych.