74. Spójnośd referencyjna baz danych.
Spójnośd referencyjna (referential constraint)
- Gdy w tabeli podrzędnej wstawiany jest rekord zawierający klucz obcy do tabeli nadrzędnej to w tej
tabeli musi istnied wiersz zawierający taką wartośd. Przykładowo gdy chcemy wstawid pracownika do
tabeli o tej samej nazwie z kluczem obcym do tabeli „Firma” to w tej tabeli musi istnied taka firma.
- Z tabeli nadrzędnej nie można usunąd rekordu jeżeli w tabeli podrzędnej istnieją odpowiadające mu
rekordy. Przykładowo nie można usunąd danej firmy, jeśli w tabeli pracownicy istnieją rekordy
dotyczące pracowników tej firmy.
- W przypadku ustawienia opcji „Kaskadowe usuwanie powiązanych rekordów” przy usuwaniu
rekordów z tabeli nadrzędnej automatycznie usuwane są powiązane rekordy z tabeli podrzędnej.
75. Normalizacja relacji - postaci normalne.
Normalizacja bazy danych
jest to proces mający na celu eliminację powtarzających się danych w
relacyjnej bazie danych.
Normalizacja nie usuwa danych, tylko zmienia schemat bazy danych.
Postacie normalne
Postać normalna - postać relacji w bazie danych, w której nie występuje redundancja
(nadmiarowość) czyli powtarzanie się tych samych informacji. Doprowadzeniu relacji do postaci
normalnej służy normalizacja bazy danych.
Początkowo wymyślono 3 postacie formalne: 1NF, 2NF, 3NF. Istnieją też inne ale postać 3NF jest
uznawana za wystarczającą.
Większość tabel spełniając postać 3NF, spełnia także BCNF (ang. Boyce-Codd normal form). 4NF i
5NF są następnymi rozszerzeniami, a 6NF jest używana do baz uwzględniających w modelu
relacyjnym wymiar czasowy.
1 postać normalna (1NF)
Jej jedynym warunkiem jest aby każda składowa w każdej krotce była atomowa (nie dawała podzielić
się na mniejsze wartości). Atomowość danych jest ściśle powiązana z ich typem (nazwanym i
skończonym zbiorem wartości). Ważną cechą relacji utworzonych zgodnie z modelem relacyjnym jest
to, że zawsze są znormalizowane - spełniają 1NF
Przykład:
Czy pole adres jest polem atomowym czy nie?
Jeśli wiemy, że w czasie operowania na bazie zawsze będziemy potrzebowali całego adresu, to pole
adres możemy uznać za atomowe. Jeśli jednak dopuszczamy możliwość, że będziemy potrzebowali
tylko samej miejscowości, to wtedy pole adres nie jest już atomowe i nie spełnia 1NF. Należy więc
rozbić pole adres, np. na pola: ulica, miejscowość, kod pocztowy (czyli na pola atomowe).
Właściwości które muszą zaistnieć w 1 formie :
1. Jest zdefiniowany klucz relacji.
2.
Wszystkie atrybuty nie kluczowe są w zależności funkcyjnej od klucza.
2
postać normalna (2NF)
Relacja jest w drugiej postaci normalnej wtedy i tylko wtedy gdy jest w I postaci normalnej i każda
kolumna zależy funkcyjnie od całego klucza głównego (a nie np. od części klucza)
3 postać normalna (3NF)
Mamy z nią do czynienia wtedy i tylko wtedy, gdy tabela jest w 2NF oraz gdy wszystkie pola nie
będące polami klucza głównego są od niego zależne bezpośrednio.
Przykład
Wartości w kolumnie "Stawka za godzinę" są zależne jedynie od pola "Stanowisko", a tylko pośrednio
od klucza głównego. Prowadzi to do powtarzania się wartość "20 zł", co powoduje redundancję
(nadmiarowość danych). Może to też prowadzić do anomalii i niespójności danych, gdy np. pani
Eufogenii zmienimy stawkę na 25 zł, a zapomnimy zmienić stawki drugiej sekretarce, pani Natalii.
Sprowadzenie do III postaci normalnej będzie polegać na przeniesieniu stawek do osobnej tabeli, a w
tabeli pracowników pozostawienie jedynie nazwy stanowiska.
Przykład tabeli "Pracownicy" przed normalizacją
Tabela "Pracownicy" po normalizacji
Tabela "Stawki godzinowe" po normalizacji
76. Pojęcie klucza głównego.
Klucz główny (ang. Primary key)
Jest do jednoznaczy identyfikator, jedna lub więcej kolumn, w których wartości jedoznacznie
identyfikują cały wiersz.
Klucz może byd prosty lub złożony.
Często stosuje się jednak stworzenie specjalnego atrybutu, którego wartości pobierane są z sekwencji
aby zapewnid unikalnośd klucza.