490 likes | 764 Views
Bazy danych – model relacyjny – cz. 2. Andrzej Macioł. Pierwsza postać normalna. Jedynymi relacjami dozwolonymi w modelu relacyjnym są relacje spełniające następujący warunek:
E N D
Bazy danych – model relacyjny – cz. 2 Andrzej Macioł
Pierwsza postać normalna • Jedynymi relacjami dozwolonymi w modelu relacyjnym są relacje spełniające następujący warunek: • każda wartość w relacji, tj. każda wartość atrybutu w każdej krotce, jest wartością atomową (wartością nie rozkładalną) • (lPN) oznacza, że tabela nie zawiera powtarzających się grup informacji, co znaczy, że każda kolumna jest wartością skalarną (atomową), a nie macierzą lub listą czy też czymkolwiek, co posiada własną strukturę
Relacja nie znormalizowana • Relację "przed normalizacją" zdefiniowano na dwóch dziedzinach: Pracownik i Znajomość Języków • Elementami dziedziny Znajomość Języków są również relacje (zdefiniowane na dziedzinach Język i Poziom) • Relacja jest z punktu widzenia definicji relacją dwuczłonową, ale nie wszystkie jej dziedziny są proste (dziedzina prosta to taka, której wszystkie elementy są atomowe)
Relacja znormalizowana • Relacja jest relacją trójczłonową, której wszystkie dziedziny są proste, jest więc znormalizowana • Powodem tego jest uproszczenie struktury danych, które z kolei powoduje uproszczenie operatorów w subjęzyku danych • Uproszczenia te nie ograniczają w niczym możliwości reprezentowania obiektów
Pierwsza postać normalna • Powtarzająca się grupa danych to podzbiór relacji zawierający co najmniej dwa atrybuty, posiadająca własny klucz prosty, w którym istnieją powtarzające się krotki • Powtarzanie się takich samych krotek wymuszone jest faktem, że mamy do czynienia z grupą dla której część atrybutów jest strukturą a nie wartością skalarną
Anomalie przy usuwaniu, wstawianiu i aktualizacji • Reorganizacja polegająca na likwidacji Działu Kadr spowoduje utratę informacji o wszystkich pracownikach działu • Wprowadzając informację o nowym zadaniu dla referenta Działu Kadr musimy ją wprowadzić dla każdego pracownika na tym stanowisku (anomalia przy wstawianiu) • Zmieniając nazwę działu na Dział Personalny musimy zaktualizować wszystkie rekordy (anomalia przy aktualizacji)
Druga postać normalna • Relacja jest w drugiej postaci normalnej, jeśli każdy atrybut tej relacji nie wchodzący w skład żadnego klucza potencjalnego jest w pełni funkcyjnie zależny wyłącznie od wszystkich podrelacji klucza głównego
Ta relacja nie jest w drugiej postaci normalnej bo: • kluczem w relacji jest podzbiór atrybutów PESEL i Zadania bo powtórzenie krotki o dwóch identycznych wartościach tych atrybutów wskazywałoby na powtórne przydzielenie tego samego zadania tej samej osobie • atrybut Pracownik zależy funkcjonalnie od atrybutu PESEL a nie zależy od atrybutu Zadania (mogą się powtórzyć te same zadania przydzielone różnym pracownikom)
Trzecia postać normalna • Relacja jest w trzeciej postaci normalnej, jeśli: • jest w drugiej postaci normalnej • żaden atrybut nie będący kluczem nie jest funkcjonalnie związany z żadnym innym atrybutem nie będącym również kluczem
Zależność funkcjonalna przechodnia • Niech X, Y i Z będą trzema rozłącznymi podzbiorami atrybutów danej relacji • Z jest przechodnio funkcjonalnie zależny od X, jeśli Z jest funkcjonalnie zależny od Y i Y jest funkcjonalnie zależny od X natomiast X nie jest zależny od Y i Y nie jest zależny od Z
Forma normalna Boyce-Codd’a • Jest uzupełnieniem trzeciej postaci normalnej i jest niezbędna w przypadku gdy atrybuty będące kandydatami na klucze są: • wielokrotne, • złożone, • nakładające się na siebie
Forma normalna Boyce’a-Codd’a • Relacja jest w postaci Boyce-Codd’a jeżeli dla każdej nietrywialnej zależności między podzbiorami relacji zbiór będący wyznacznikiem jest zbiorem identyfikującym tej relacji • Zależność X →Y jest trywialna jeżeli Y jest podzbiorem X • Definicja BCNF zastępuje definicje, pierwszej, drugiej i trzeciej formy normalnej dodatkowo je poszerzając
Forma normalna Boyce-Codd’a kluczem w relacji jest podzbiór IdPracownika, Zawód zależność Zawód, Wykształcenie Stawka jest funkcjonalna i nietrywialna a Zawód, Wykształcenienie jest zbiorem identyfikującym
Forma normalna Boyce-Codd’a ponieważ opiekun może mieć tylko jedno seminarium to kluczem w relacji jest podzbiór IdStudenta, Seminarium lub IdStudenta, Opiekun zależność Opiekun Seminarium jest funkcjonalna i nietrywialna a Opiekunnie jest zbiorem identyfikującym
Czwarta forma normalna • Relacja jest w czwartej formie normalnej wtedy i tylko wtedy, gdy jest w trzeciej postaci normalnej i nie zawiera wielowartościowej zależności atrybutów
Zależność wielowartościowa • Podzbiór atrybutów Y jest wielowartościowo funkcjonalnie zależny od podzbioru X w schemacie R, jeżeli dla dowolnej relacji r w schemacie R i dla dowolnej pary krotek t1 i t2 z relacji r istnieje taka para krotek że: s1[X]=s2[X]=t1[X]=t2[X] i s1[Y]= t1[Y] i s1[R-X-Y]=t2[R-X-Y] i s2 [Y]= t2[Y] i s2 [R-X-Y]=t1[R-X-Y]
Zależność wielowartościowa X Y R-X-Y
Zależność wielowartościowa t1[X]=t2[X]=s1[X]=s2[X]=(Kot) s1[Y]= t1[Y]=(Ania) i s1[R-X-Y]=t2[R-X-Y]=(angielski) i s2 [Y]= t2[Y]=(Jaś) i s2 [R-X-Y]=t1[R-X-Y]=(niemiecki)
Więzi • Więź (ang. relationship) to powiązanie pomiędzy parą tabel. Istnieje ona wtedy, gdy dwie tabele są połączone przez klucz podstawowy i klucz obcy. Każda więź jest opisywana przez typ więzi istniejący między dwoma tabelami, typ uczestnictwa oraz stopień uczestnictwa tych tabel
Typy więzi • jeden-do-jednego (jeżeli pojedynczemu rekordowi z pierwszej tabeli przyporządkowany jest najwyżej jeden rekord z drugiej tabeli i na odwrót)
Typy więzi • jeden-do-wielu (jeżeli pojedynczemu rekordowi z pierwszej tabeli może odpowiadać jeden lub więcej rekordów z drugiej, ale pojedynczemu rekordowi z drugiej tabeli odpowiada najwyżej jeden rekord z tabeli pierwszej)
Więzi identyfikujące • Klucz obcy, który jest składnikiem złożonego klucza głównego w relacji zależnej określany jest mianem klucza obcego głównego (Primary Foreign Key) a tak zbudowana więź więziom identyfikującą
Więź wiele-do-wielu • Na jednym agregacie mogą pracować różni pracownicy, np. na agregacie Piła 10. marca pracowało dwóch pracowników • Jeden pracownik może pracować na wielu agregatach, np. Kowalski pracował 10. marca na Pile i Tokarce)
Typy uczestnictwa • obowiązkowy (jeśli w pierwszej tabeli muszą znajdować się pewne rekordy zanim zaczniemy wprowadzać rekordy do tabeli drugiej) • opcjonalny (jeśli wprowadzanie rekordów do tabeli drugiej nie wymaga istnienia żadnych rekordów w tabeli pierwszej). • Stopień uczestnictwa określa minimalną i maksymalną liczbę rekordów w jednej tabeli, które można powiązać z pojedynczym rekordem w tabeli drugiej.
Klucz sztuczny • Klucz stworzony wyłącznie dla potrzeb więzi w celu zastąpienia złożonego klucza głównego
Klucz sztuczny • Klucz sztuczny może być wykorzystany do kodowania atrybutów tekstowych (w niektórych przypadkach także liczbowych) o powtarzających się wartościach, dla których można utworzyć listę • Użycie klucza sztucznego wymaga stworzenia dodatkowej tabeli (słownika) pozwalającego na „rozkodowanie” klucza