• Nie Znaleziono Wyników

Wykład 2•

N/A
N/A
Protected

Academic year: 2021

Share "Wykład 2•"

Copied!
31
0
0

Pełen tekst

(1)

Wykład 2

Relacyjny model n – członowy

• Zależność funkcyjna i klucz relacji

• Schematy relacji

• Normalizacja relacyjnej bazy danych

(2)

Relacyjny model n-członowy

Relacja jest podzbiorem iloczynu kartezjańskiego określonego na zbiorach nazywanych dziedzinami relacji. Dziedziną nazywa się zbiór wartości.

Dziedziną może być zbiór encji.

Niech D1, D2, ... , Dn będzie uporządkowanym ciągiem dziedzin niekoniecznie różnych.

Relacją n-członową Rn nazywa się podzbiór iloczynu kartezjańskiego

Elementami relacji o n członach są krotki takie, że dla i=1,2,..., n.

D 1D 2. . .D n

d 1 ,d 2 , . . . ,d n

d iD i

(3)

Niech dla przykładu dziedzina D1 stanowi zbiór części samochodowych, a dziedzina D2 zbiór liczb całkowitych dodatnich.

Relacja

określa budowę samochodu.

Relację przedstawia tabela wartości:

RD 1D 1D 2

samochód podwozie 1

samochód silnik 1

samochód 2

samochód koło 5

silnik głowica cylindra 1

silnik tłok 4

silnik korbowód 4

(4)

Zmienne w teorii relacji to atrybuty. Oznacza się je dużymi literami X, Y, Z.

Zmienna X może przyjmować różne wartości - mówimy wtedy, że atrybut X przyjął wartość.

Atrybutowi X przypisuje się określoną dziedzinę D - wartości przyjmowane przez ten atrybut będą pochodziły z dziedziny D.

Relację n-członową definiuje się przez:

(1) podanie zbioru atrybutów relacji ,

(2) przypisanie każdemu z atrybutów Xi dla i=1,2,...,n dziedziny Di

(3) określenie predykatu relacji - funkcji zdaniowej, która przy każdym z przypisań zgodnym z przypisanymi atrybutom dziedzinami przyjmuje jedną z dwóch wartości logicznych: prawda albo fałsz.

X ,X ,...,Xn

X 1 2

X : a

(5)

W tabeli przedstawiono przykładową relację trójczłonową o dwóch różnych dziedzinach. W relacji tej kolumnom nie przypisano żadnego konkretnego znaczenia. Jeżeli teraz kolumnom tabeli - atrybutom relacji przypiszemy nazwy, np. CZĘŚĆ_ZŁOŻONA, CZĘŚĆ_SKŁADOWA, LICZBA, to relację tą można przedstawić na 6 różnych sposobów. Sposoby

przedstawienia tej relacji różnić się będą między sobą np. kolejnością

kolumn. Przykłady dwóch różnych reprezentacji tej samej relacji pokazano w kolejnych tabelach.

(6)

CZĘŚĆ_ZŁOŻONA CZĘŚĆ_SKŁADOWA LICZBA

samochód podwozie 1

samochód silnik 1

samochód 2

samochód koło 5

silnik głowica cylindra 1

silnik tłok 4

silnik korbowód 4

koło opona 1

koło śruba mocująca 4

CZĘŚĆ_SKŁADOWA CZĘŚĆ_ZŁOŻONA LICZBA

podwozie samochód 1

silnik samochód 1

samochód 2

koło samochód 5

głowica cylindra silnik 1

tłok silnik 4

korbowód silnik 4

(7)

Rozważmy powiązanie:

Z Z Z F

Z Z Z

k k k n

1 2 1 2

Z1, Z2,...,Zn to nazwy zbiorów encji, a F jest odwzorowaniem jedno- lub wielowartościowym. Z dowolnego powiązania o powyższej postaci można skonstruować n-członową relację

R(Z

1

, Z

2

, ..., Z

n

),

której atrybutami są nazwy zbiorów encji występujących w powiązaniu.

W przypadku, jeżeli w powiązaniu nazwy zbiorów encji powtarzają się, w relacji należy zmienić nazwy odpowiednich atrybutów –

atrybuty relacji muszą mieć różne nazwy.

(8)

Przykładowo, z powiązania

można skonstruować relację

W przykładowym systemie informacyjnym wyższej uczelni z powiązań (15), (16) i (21) można skonstruować relację:

W Y K A D O W C A G O D Z I N A z a j ę c i a

S A L A

Ł 0

 

R W Y K Ł A D O W C A G O D Z I N A S A L A, ,

) ROK I

KIERUNEK ,

ADRES ,

NAZWISKO ,

STUDENT (

R 1

(9)

dla której predykat ma postać

gdzie s, n, a, k oznaczają odpowiednio studenta, nazwisko, adres oraz kierunek i rok studiów.

Na podstawie powiązań (18) i (19) można w podobny sposób utworzyć relację:

Na podstawie powiązań (17) i (20) powstaje relacja

     

n nazwiskost udenta s a adresstude nta s k zapisany s

prawda k

, a , n , s R

1

SALA , LICZBA , BUDYNEK

R 2

KIERUNEK I ROK , PRZEDMIOT ,WYK Ł ADOWCA

R 3

(10)

Powiązanie (17) jest odwzorowaniem wielowartościowym, a powiązanie (20) - funkcją. Warunek spełnienia predykatu dla tej relacji ma nieco inną postać:

Na podstawie powiązania (22) tworzy się relację

która dotyczy historii studiów poszczególnych studentów.

W przypadku powiązania (23) musimy dokonać zmiany nazwy jednej ze zbiorów encji występujących w powiązaniu:

 

 

   

p Pr zedmiot k w odpowiedzi a y k

prawda w

p k R

ln

 ,

3 ,

STUDENT ,KIERUNEK I ROK ,ROK ,BOOL

R4

KIERUNEK I ROK ,KIERUNEK I ROK WYMAGANY

R5

(11)

Dziedzina atrybutu KIERUNEK-I-ROK jest identyczna z dziedziną atrybutu KIERUNEK-I-ROK-WYMAGANY.

Na podstawie powiązań (24) i (25) można skonstruować relację

Warunek spełnienia predykatu odpowiadającego relacji R6 ma postać:

PRZEDMIOT, GODZINA, DZIEN, SALA, WYKLADOWCA

R

6

 

R

6

p , g , d , s , w prawda g , d , s , w Rozkladzaj ec   p

Warunek ten jest równoważny warunkowi

g ,d , s , p

Z a j ę t y

w

(12)

Z powiązania (27) wynika relacja

która mówi o tym, czy dany student zaliczył bieżący rok/semestr studiów.

STUDENT , BOOL

R

7

(13)

Zależność funkcyjna i klucz relacji

Relacji w postaci ogólnej X i Y są niepustymi zbiorami atrybutów a Z może być zbiorem pustym.

Mówimy, że Y jest funkcyjnie zależny od X co zapisujemy symbolicznie jako

wtedy i tylko wtedy, gdy dla dowolnych wartości (a,b,c) i (a, b’, c’) przyjmowanych odpowiednio przez X, Y, Z

X ,Y ,Z

R

R Y X

a , b , cRa , b ' , c '   b b '

R   

(14)

Inaczej - każda z wartości X wyznacza co najwyżej jedną wartość Y, przy czym Z jest nieistotne.

Zależność funkcyjna

jest zależnością pełną, jeżeli dla żadnego podzbioru właściwego X’ zbioru atrybutów X nie jest spełniona zależność funkcyjna

X jest kluczem relacji jeżeli zależność jest pełną zależnością funkcyjną.

R Y X

R Y ' X

X ,Y ,Z

R X R Y , Z

(15)

Relacja może mieć więcej niż jeden klucz.

Rozróżniamy:

Klucz główny

Klucze kandydujące (potencjalne)

Klucze proste

Klucze złożone

Klucze obce

(16)

Schematy relacji

Relację definiuje się za pomocą predykatu jako pewien zbiór krotek.

Z punktu widzenia semantyki (znaczenia) rozróżnia się dwa pojęcia - pojęcie intensji relacji oraz ekstensji relacji.

Intensja relacji odpowiada znaczeniu relacji - predykat związany z relacją stanowi element jej intensji. Na intensję relacji mogą poza tym składać się inne jej własności.

Ekstensja relacji jest zbiorem krotek spełniających własności, które stanowią intensję relacji.

Własności te nazywa się warunkami integralności. Słowa relacja będziemy dalej używać mówiąc o ekstensji, a terminu schemat relacji -

(17)

Przykładowo - intensję relacji

R(PRZEDMIOT, DZIEŃ, GODZINA, SALA, WYKŁADOWCA) wyrażają następujące warunki integralności:

1) predykat związany z relacją R mówi o tym, że

wykładowca w prowadzi zajęcia z przedmiotu p w dniu d, o godzinie g, w sali s 2) dziedzina atrybutu GODZINA jest zbiorem liczb całkowitych

z przedziału <7, 24>

3) dany wykładowca może znajdować się o określonej godzinie tylko w jednej sali

Ekstensję relacji R stanowi zbiór krotek spełniających własności (1), (2), (3).

(18)

Schematy relacji definiuje projektant bazy danych, natomiast relacje składają się na bieżącą realizację bazy danych.

Szczególnie istotnymi warunkami integralności są zależności funkcyjne.

Pojęcie zależności funkcyjnej wiąże się z pojęciem klucza relacji.

Klucz relacji stanowi najmniejszy zbiór atrybutów relacji, których wartości pozwalają wskazać jednoznacznie każdą z krotek relacji.

(19)

Naczelna zasada normalizacji

Dane powinny zależeć od klucza Od całego klucza

Od niczego innego niż klucz

Tak mi dopomóż Codd

(20)

Normalizacja to proces sprowadzania bazy do odpowiedniej postaci.

Polega to przede wszystkim na dzieleniu tabeli na kilka połączonych kluczem tabel.

Głównym powodem, dla którego normalizuje się bazę jest występowanie problemów (zwanych dalej anomaliami) w przypadku źle zaprojektowanej struktury.

Problemy te można zilustrować na następującym, prostym przykładzie:

Przypuśćmy, że dla bazy danych dotyczących książek w bibliotece zaproponowano strukturę złożoną z jednej relacji:

R(R(TYTUŁTYTUŁ--KSIĄŻKI, AUTOR, POŻYCZAJĄCY, ADRES, DATAKSIĄŻKI, AUTOR, POŻYCZAJĄCY, ADRES, DATA--WYPOŻYCZENIA)WYPOŻYCZENIA)

(21)

W tak zaprojektowanej bazie danych mogą wystąpić anomalia:

przy aktualizacji - jeżeli wypożyczający zmienił adres, trzeba przeszukać całą bazę i we wszystkich komórkach, w których występuje, należy zmienić ten adres,

przy usuwaniu - jeżeli pożyczający zwróci ostatnią książkę, zostanie utracona informacja na jego temat,

przy wstawianiu - gdy pożyczający chce zapisać się do biblioteki, należy go wpisać do tablicy, ale jednocześnie istnieje wymaganie, aby podana została książka, którą wypożycza - nowy użytkownik wcale nie musi pożyczać książki, redundancja czyli powtarzanie tej samej informacji w kilku miejscach w bazie;

powoduje to niepotrzebne zajmowanie pamięci przez tą samą informację. W przypadku, gdy jedna osoba pożycz dwie lub więcej książek niepotrzebnie powtarzana jest informacja na temat adresu czytelnika.

(22)

Zdefiniowano pięć postaci normalnych bazy danych.

Pierwsze trzy postacie normalne wprowadził F. Codd [1] w swoim modelu relacyjnym danych. Ponieważ okazało się, że niekiedy nie wystarcza to do pełnej optymalizacji bazy, powstały dodatkowo postacie czwarta i piąta.

Sformułował je w roku 1977 i 1979 Fagin [2, 3].

Baza jest tym “lepsza” im jest w wyższej postaci normalnej.

Relacyjną bazę danych wystarczy zwykle doprowadzić do trzeciej postaci normalnej.

W modelu implementacyjnym relacja ma graficzną postać tabeli.

W zależności od organizacji SZBD wszystkie relacje (tabele) bazy wraz z danymi organizacyjnymi niezbędnymi (tzw. metadanymi) do prawidłowego przetwarzania bazy przez SZBD przechowuje się albo w jednym pliku w pamięci zewnętrznej, albo dla każdej tablicy przeznacza się odrębny plik w pamięci zewnętrznej.

[1] Codd E.F.: A Relational Model for Large Shared Data Banks. w CACM,1970

[2] Fagin R.: Multi-Valued Dependecies and a New Normal Form for Relational Databases. ACM Trans. On Database

(23)

Postacie normalne bazy danych

Postać normalna

Opis

Pierwsza W każdej komórce tabeli znajduje się tylko jedna wartość, inaczej: każdy atrybut niekluczowy (nie należący do żadnego klucza) jest funkcjonalnie zależny od klucza głównego.

Druga

Baza jest w pierwszej postaci normalnej oraz kolumna nie należąca do klucza nie może być zależna od części klucza głównego - klucza wybranego przez projektanta (w ten sposób usuwa się niepełne zależności funkcjonalne), inaczej:

każdy atrybut niekluczowy jest w pełni funkcyjnie zależny od klucza głównego.

Trzecia

Baza jest w drugiej postaci normalnej oraz kolumna nie należąca do klucza nie może być zależna od innej kolumny nie należącej do klucza (w ten sposób usuwa się częściowe

(24)

Postać normalna

Opis

Czwarta Baza jest w trzeciej postaci normalnej oraz usunięto wielokrotne, wielowartościowe zależności funkcjonalne

Piąta

Baza jest w czwartej postaci normalnej. Tabele zostały podzielone na najmniejsze możliwe kawałki w celu eliminacji redundancji w tabeli (usunięto zależności funkcjonalne, które nie wynikają z zależności od atrybutów klucza).

(25)

A

B

C

D

Klucz A + B Klucz A + B Klucz A

Przekształcenie do 2NF

A

B C

A D

(26)

A

B

C

A

B

B

C

Klucz A Klucz A Klucz B Przekształcenie do 3NF

Baza jest w drugiej postaci normalnej oraz kolumna nie należąca do klucza nie może być zależna od innej kolumny nie należącej do klucza (w ten sposób usuwa się częściowe zależności funkcjonalne), inaczej: każdy niekluczowy atrybut jest bezpośrednio zależny od klucza głównego.

(27)

A

B C

A

B

A

C

Przekształcenie do 4NF

Baza jest w trzeciej postaci normalnej oraz usunięto wielokrotne, wielowartościowe zależności funkcjonalne

(28)

A

B C

A

B

B

C

A

C

Przekształcenie do 5NF

Baza jest w czwartej postaci normalnej. Tabele zostały podzielone na

najmniejsze możliwe części w celu eliminacji redundancji w tabeli (usunięto zależności funkcjonalne, które nie wynikają z zależności od atrybutów klucza).

(29)

Nr faktury NIP

Nazwa odbiorcy Adres odbiorcy

Id towaru

Nazwa towaru Cena jednostkowa Ilość

SWW

(30)

Nr faktury NIP

Id towaru

Nazwa towaru Cena jednostkowa

SWW VAT

Id towaru Ilość

NIP

Nazwa odbiorcy

(31)

NIP SWW VAT

Id towaru

Nazwa towaru Cena jednostkowa

SWW SWW NIP

Id towaru Ilość

Cytaty

Powiązane dokumenty