background image

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). 

 

background image

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. 

 

 

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 

 

 

background image

 

 

 

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.