Projektowanie baz danych

Transkrypt

Projektowanie baz danych
Bazy danych
Projektowanie baz danych
31
32
Bazy danych
Przegląd zagadnień
Cykle zycia oprogramowania
Role i sklad zespolu projektowego
Definiowanie wymagan dla systemu
Pojecie encji, atrybutu i zwiazku
Metody przeksztalcania zwiazków
Model relacyjny
Podsumowanie
Laboratorium
Wykład porusza podstawowe elementy inŜynierii oprogramowania,
które uwaŜamy za niezbędne przy budowie i projektowaniu baz danych.
Dowiecie się z niego, co to jest cykl Ŝycia systemów informatycznych, z jakich
etapów składa się praca przy ich wytwarzaniu, jak określać wymagania dla
systemu.
Wprowadzimy teŜ podstawowe pojęcia związane z modelowaniem
konceptualnym bazy danych, takie jak encja, atrybut i związek. Po tym
wykładzie powinniście umieć zbudować model bazy danych na podstawie
opisu wymagań oraz umieć przekształcić go do postaci realizowalnej w modelu
relacyjnym.
Rys. 2.1 Uproszczony cykl Ŝycia projektu budowy systemu informatycznego
Bazy danych
33
Cykle Ŝycia oprogramowania
Glówne etapy cyklu zycia oprogramowania
Modele cyklu zycia oprogramowania
Model wodospadowy
Model spiralny
Model z prototypem
W ostatnich latach znacznie wzrosły moŜliwości technologiczne
wytwarzania i eksploatacji programów komputerowych. Rosną równieŜ
wymagania uŜytkowników oraz stopień złoŜoności problemów, których
rozwiązanie jest wspierane przez systemy informatyczne. Wszystko to
prowadzi do tego, Ŝe oprogramowanie jest coraz bardziej złoŜone, a jego
wytwarzanie coraz bardziej skomplikowane i wymagające większych sił
i środków.
Aby móc sprostać rosnącej złoŜoności oprogramowania projektanci starają się
usystematyzować
działania
związane
z
procesem
wytwarzania
oprogramowania.
SłuŜą temu określone etapy budowy systemów (cykle Ŝycia), właściwa budowa
zespołów projektowych, określanie i dokumentowanie wymagań uŜytkownika,
budowa modeli projektowanego systemu na róŜnych poziomach abstrakcji
w zaleŜności od etapu projektu oraz wiele innych działać związanych
z zarządzaniem projektem informatycznym, testowaniem, wdraŜaniem itp.
W naszym wykładzie zasygnalizujemy jedynie problem złoŜoności
oprogramowania w stopniu niezbędnym do realizacji naszego prostego projektu
bazy danych.
Chcielibyśmy zwrócić uwagę na potrzebę dokumentowania projektu w całym
jego cyklu Ŝyciowym, nawet jeśli projekt jest niewielki i wydaje się być bardzo
prosty. Tworzenie i zarządzanie dokumentacją projektu jest często traktowane
przez programistów jak rzecz zbędna i narzucona przez kierownictwo projektu.
Patrząc z szerszej perspektywy czas poświęcony na dokumentowanie projektu
nie jest czasem straconym, o czym przekonał się na pewno kaŜdy, kto kiedyś
34
Bazy danych
musiał poprawiać coś w cudzym kodzie lub nawet własnym po dłuŜszym czasie
przerwy.
Większość obecnie powstających aplikacji to złoŜone systemy, których nie
moŜna traktować jak proste programy pisane zazwyczaj przez jedna osobę. W
ich realizacji najczęściej bierze udział wiele osób, a realizacja projektu
przebiega zazwyczaj w kilku etapach.
Cały proces zaczyna się od analizy systemu, nazywanej czasem analizą
wymagań, gdyŜ jej celem jest określenie wymagań stawianych systemowi przez
przedsiębiorstwo i uŜytkowników. Po zakończeniu i zatwierdzeniu analizy
systemu odbywa się jego szczegółowe projektowanie.
Po tej fazie następuje planowanie i wycena. Kolejnymi etapami są
implementacja, testowanie i wdroŜenie systemu. Zakończenie cyklu
projektowania następuje po przetestowaniu i udostępnieniu systemu.
Główne etapy cyklu Ŝycia oprogramowania
•
•
•
•
•
Analiza,
Projektowanie,
Implementacja,
Testowanie,
WdroŜenie.
Modele cyklu Ŝycia oprogramowania
MoŜemy wyróŜnić kilka róŜniących się od siebie podejść do cyklu
Ŝycia oprogramowania. NajwaŜniejsze z nich, to:
•
•
•
•
model wodospadowy,
model spiralny,
model przyrostowy zwany równieŜ ewolucyjnym,
model z prototypem.
Model wodospadowy
Przy zastosowaniu tego modelu kaŜdy etap musi być zakończony
i zatwierdzony, aby moŜna było przejść do następnego. Pozwala to w łatwy
sposób kontrolować zarówno czas realizacji projektu, jak równieŜ stronę
finansową, poniewaŜ poszczególne etapy nie zazębiają się wzajemnie.
Dodatkowym atutem jest fakt, Ŝe notacja tego modelu jest przejrzysta
i estetyczna.
Bazy danych
35
Rys. 2.2 Model wodospadowy
PowyŜsze cechy tego modelu są bardzo korzystne dla małych systemów.
Problem pojawia się przy projektach średnich i duŜych systemów, poniewaŜ
model zakłada, iŜ wszystkie potrzebne informacje są dostępne w trakcje
realizacji kaŜdego etapu i nie pozwala uzupełniać ich na dalszych poziomach.
Model nie pozwala równieŜ na zmianę wymagań dotyczących systemu podczas
realizacji projektu, co przy duŜych, ale przede wszystkim długo trwających,
cyklach projektowania jest nie wskazane.
Nie moŜna zakładać, Ŝe podczas tego czasu nie zostaną zmienione Ŝadne
załoŜenia i wymagania dotyczące systemu. Dlatego największą wadą tego
modelu, z punktu widzenia duŜych projektów, jest brak moŜliwości powrotu do
juŜ zakończonego etapu. Jest to bardzo dobitnie podkreślone w nazwie i samym
wyglądzie modelu, który nawiązuje do spływającej wody.
Model spiralny
Model spiralny jest jednym z kilku modeli alternatywnych dla modelu
wodospadowego. Model ten miał minimalizować problemy związane
z poprzednim modelem.
36
Bazy danych
Rys. 2.3 Model spiralny
Zakłada on szereg iteracji modelu wodospadowego, z których kaŜda słuŜy
rozszerzeniu poprzedniej iteracji. Eliminuje to problem powrotu do poprzednich
etapów. Powoduje jednak powstanie niebezpieczeństwa, Ŝe kolejne iteracji
zdezaktualizują wcześniej wykonaną prace.
Ścisłe stosowanie tego modelu powoduje, Ŝe końcowa postać systemu nie jest
znana do późnych etapów realizacji projektu, nie moŜna równieŜ dokładnie
określić czasu trwania cyklu projektowania, jak i nakładów finansowych. Ma to
szczególnie duŜe znaczenie jeŜeli zmiany dotyczą schematu bazy danych, co
ma wpływ na cały system.
Model przyrostowy
Model przyrostowy określany równieŜ jako ewolucyjny, jest pewnego
rodzaju połączeniem dwóch poprzednich modeli. W modelu tym analiza
i ogólny projekt, mający na celu wyodrębnić poszczególne składowe projektu,
jest wykonywany dla całego systemu przy zastosowaniu modelu
wodospadowego, natomiast kolejne etapy są przeprowadzane przy uŜyciu
modelu spirali.
Model ten przez swoją strukturę eliminuje wady zarówno modelu
wodospadowego, jak i spiralnego, przy jednoczesnym zachowaniu zalet obu
powyŜszych modeli.
Model z prototypem
Model ten ma na celu zmniejszenie ryzyka związanego
z niewłaściwym określeniem wymagań uŜytkownika. W rzeczywistości stanowi
on wstęp do modelu kaskadowego.
Bazy danych
37
Rys. 2.4 Model cyklu Ŝycia oprogramowania - Prototypowanie
NajwaŜniejszą zaletą takiego modelu jest zbudowanie prototypu systemu, który
umoŜliwi wykrycie błędów i nieporozumień między klientem a twórcami
systemu oraz wczesne wykrycie brakujących funkcji. Proponuje się aby
w ramach prototypu ująć tylko te funkcje, które są trudne do określenia i mogą
budzić wątpliwości.
Do zalet naleŜy zaliczyć takŜe moŜliwość szybkiej demonstracji przyszłego
systemu oraz moŜliwość przeszkolenia pracowników zanim system zostanie
ukończony i oddany do uŜytku. Wadą tego modelu jest dodatkowy koszt
związany z budową prototypu, poniewaŜ nie jest on częścią przyszłego
systemu. Zakłada się, Ŝe prototyp jest specyficznym sposobem na określenie
wymagań klienta a budowa systemu rozpoczyna się od początku.
W praktyce moŜe się okazać, Ŝe pewne fragmenty są na tyle trafne, Ŝe mogą
być z powodzeniem wykorzystane w dalszej pracy nad systemem.
38
Bazy danych
Role i skład zespołu projektowego
Kierownik projektu
Analityk
Projektant
Programista
Tester
Wdrozeniowiec
Jak juŜ wspomnieliśmy w pierwszej części naszego wykładu złoŜoność
oprogramowania wymusza na nas konieczność pracy zespołowej.
Kto więc powinien brać udział w tworzeniu systemu informatycznego? Zdania
na ten temat są podzielone i moŜemy spotkać się z róŜnymi rolami
w zaleŜności od przyjętej metodyki budowy systemu.
Bazy danych
39
Kierownik projektu
Kierownik projektu jest osobą, która czuwa nad całością projektu, a jej
najwaŜniejszym zdaniem jest organizowanie i kontrolowanie pracy zespołu,
kontaktowanie się z klientem oraz sprawdzanie czy "wszystko idzie dobrze".
Analityk
Głównym zadaniem analityka jest zbudowanie modelu analitycznego
(konceptualnego) systemu. W tym celu musi on stale kontaktować się
z klientem, dla którego budowane jest oprogramowanie oraz dobrze zrozumieć
jego potrzeby i orientować się w dziedzinie problemowej, której dotyczy
system.
Z całą pewnością nie jest to zadanie łatwe i oprócz rozległej wiedzy wymaga
odpowiedniego doświadczenia i umiejętności pracy z ludźmi. Dobrze
wykonany model analityczny ma kluczowe znaczenie dla powodzenia całego
projektu. Błędy popełnione na tym etapie są później trudne do usunięcia
i zazwyczaj bardzo kosztowne.
Projektant
Zadaniem projektanta jest zbudowanie projektu systemu. Projekt
systemu jest kolejnym modelem systemu, ale na innym poziomie
szczegółowości niŜ projekt wykonany przez analityka. Zawiera on bowiem
informacje o szczegółach implementacyjnych systemu. Projektant musi wobec
tego mieć odpowiednią wiedzę na temat systemu na którym będzie
implementowana aplikacja i narzędzi, które zostaną wykorzystane do jej
budowy.
Programista
Zadaniem programisty jest zakodowanie projektu opracowanego przez
projektanta.
Tester
Zadaniem testera jest przeprowadzenie róŜnorodnych testów aplikacji
zanim trafi ona do klienta.
WdroŜeniowiec
WdroŜeniowiec jest osobą, która przeprowadza uruchomienie
(wdroŜenie) aplikacji u klienta. Powinien on równieŜ umieć przeszkolić
uŜytkownika w uŜytkowaniu produktu, a często jest teŜ twórcą dokumentacji
dla uŜytkownika.
W projekcie mogą teŜ wystąpić inne role lub wymienione role mogą być
łączone (np. projektanta i programisty). ZaleŜy to od konkretnych potrzeb,
wielkości projektu i przyjętej metody prowadzenia projektu. W naszym mini
projekcie będziecie musieli przejść przez wszystkie wymienione role
z wyjątkiem roli wdroŜeniowca.
40
Bazy danych
Definiowanie wymagań dla systemu
Techniki badania wymagan uzytkowników
Analiza dokumentacji
Wywiad
Ankieta
Analiza dokumentów (ciagle powstajacych)
Obserwacja (istniejacego systemu)
Pierwszym krokiem na drodze do wykonania aplikacji jest analiza
problemu i określenie wymagań dla budowanego systemu. Na tym poziomie
musimy skupić się na prześledzeniu tego, co mamy w chwili obecnej, na
podstawie czego nasza aplikacja będzie powstawać. Przede wszystkim jednak
naleŜy określić, czemu będzie słuŜyć i jakie wymagania są przed nią stawiane.
Głównym zadaniem analizy jest jasne określenie celu, który chcemy osiągnąć.
Cel systemu nie jest jedyną rzeczą, którą musimy określić podczas analizy
wykonalności systemu.
Analityk musi zdobyć wiedzę na temat projektu i wymagań podczas pracy
z przyszłymi uŜytkownikami i ekspertami danej dziedziny. Jego rolą jest
zdobycie jak największej ilości informacji i danych o tym, jak ma i powinien
wyglądać w przyszłości projektowany system.
Bazy danych
41
Techniki badania wymagań uŜytkowników
Do najczęściej stosowanych metod badań wymagań uŜytkowników naleŜą:
•
•
•
•
analiza dokumentacji,
ankieta,
analiza dokumentów (dynamicznych),
obserwacja.
Przy niewielkich projektach moŜna stosować jedną z powyŜszych metod,
natomiast przy duŜych systemach konieczne jest stosowanie kilku technik
jednocześnie w celu wnikliwego poznania wymagań uŜytkowników.
Analiza dokumentacji
Zapoznanie się z dokumentacją, która funkcjonuje w danym
przedsiębiorstwie, do której zalicza się:
• schemat organizacyjny,
• dokumentację administracyjna,
• specyfikacje stanowisk pracy,
• opis procedur wewnętrznych,
• dokumentacje szkoleniowe,
• dokumentacje istniejących systemów.
Wywiad
Jest to najpopularniejsza metoda, w której analitycy mogą zebrać
i zweryfikować informacje o systemie, zaakceptować rozwiązania, budowane
jest zaufanie uŜytkownika do systemu.
Najczęściej występujące problemy:
•
•
•
wywiad jest przeprowadzony z niekompetentnymi uŜytkownikami,
zadawane są złe pytania, a uzyskiwane odpowiedzi są niepoprawne,
między analitykami a uŜytkownikami są niewłaściwe stosunki (brak
zaufania).
Ankieta
Przeprowadzana jest po wywiadzie (dla potwierdzenia informacji).
Najczęściej występujące problemy przy ankiecie:
•
•
•
róŜna interpretacja pytań - niejednoznaczność odpowiedzi,
podczas ankiety odpowiedzi uzyskujemy tylko od niewielkiej liczby
ankietowanych,
nie wyjaśnia wszystkich wątpliwości.
Analiza dokumentów (ciągle powstających)
Analiza tych dokumentów, które są tworzone w firmie (raporty,
zestawienia).
Taka analiza ma dać odpowiedź na następujące pytania:
Kto tworzy dokumentacje? - źródło.
Jak jest przygotowywany?
42
Bazy danych
Jakie dane z dokumentacji są wykorzystywane?
Kto uŜywa dokumentacji?
Kto wprowadza dane lub z nich korzysta?
Do jakich celów jest uŜywany?
Jak jest przechowywany?
Jak długo jest przechowywany?
Informacja o obiegu istniejących dokumentów w firmie pozwala wyeliminować
niejasności i powtarzające się dokumenty.
Obserwacja (istniejącego systemu)
UmoŜliwia zaobserwowanie elementów, które dla uŜytkownika
niekoniecznie są waŜne (ale mogą być istotne z punktu widzenia tworzonego
SI).
Bazy danych
43
Pojęcie encji, atrybutu i związku
Encja
Atrybut
Zwiazek
Przy modelowaniu baz danych moŜna posłuŜyć się notacją graficzną
modelowania danych - diagramem związków encji (ERD). Jest to model
sieciowy, opisujący na wysokim poziomie abstrakcji dane które są
przechowywane w systemie.
Model ERD budowany jest przez analityka. SłuŜy on do zobrazowania
w sposób zrozumiały zarówno dla projektanta, jak i osoby nie mającej
wykształcenia informatycznego (np. klienta) obiektów i związków
zachodzących w projektowanej dziedzinie problemowej.
Model ERD nie jest związany z konkretną implementacją systemu (np. na
serwerze MS SQL czy Oracle), choć jego odmiany mogą zawierać informacje
specyficzne dla danego języka lub środowiska implementacyjnego. Staje się on
wówczas modelem projektowym
44
Bazy danych
Encja (ang. entity)
Encja jest to coś co istnieje, co odróŜnia się od innych, o czym trzeba
mieć informację. Zbiory encji reprezentują zbiór elementów występujących
w rzeczywistym świecie i kaŜdy element tego zbioru musi posiadać następujące
cechy:
•
•
•
kaŜdy element musi być unikalny, jednoznacznie określony, w celu
odróŜnienia go od pozostałych,
kaŜdy element musi odgrywać jakąś rolę w projektowanym systemie,
nie moŜe zdarzyć się sytuacji, w której system moŜe działać bez
dostępu do danego elementu,
kaŜdy element powinien być opisany przez odpowiednią liczbę
atrybutów.
W diagramach ERD obiekt, encja jest reprezentowany przez prostokąt, a jego
nazwa powinna być rzeczownikiem.
Atrybut (ang. attribute)
Atrybut jest pewną własnością encji, o której chcemy przechowywać
informację. Atrybut jest reprezentowany przez pewną wartość. Na przykład
encja Student moŜe mieć atrybut Nazwisko reprezentowany przez wartość
Kowalski.
Wśród atrybutów encji wyróŜniamy atrybut lub zbiór atrybutów, którego
wartość w sposób jednoznaczny identyfikuje instancję (egzemplarz) encji. Taki
atrybut lub zbiór atrybutów nazywamy kluczem głównym encji. Klucz głowny
oznacza się często na wykresach symbolem PK (ang. Primary Key)
umieszczanym obok nazwy atrybutu.
Rys. 2.5 Przykład definicji kluczy głównych (PK)
Drugim kluczem stosowanym w bazach relacyjnych jest klucz obcy.
Kluczem obcym nazywamy atrybut encji, który wskazuje na klucz główny
innej encji. Klucz obcy oznacza się często na wykresach symbolem FK (ang.
Foreign Key) umieszczanym obok nazwy atrybutu.
Bazy danych
45
Rys. 2.6 Przykład klucza obcego (FK1)
Przykład ilustrujący pojęcie klucza obcego pokazano na rysunku 2.6.
Związek (ang. relationship)
Bardzo waŜnym elementem w modelu danych są związki pomiędzy
encjami i warunki określające te związku - elementy łączące encje między sobą.
Zdecydowana większość związków to powiązania stopnia drugiego - związki
binarne, charakteryzujące się tym, Ŝe w związku bierze udział dwóch
uczestników (dwie encje). Mogą występować takŜe związki unarne (encja
powiązana z samą sobą), jak równieŜ związki ternarne (z trzema
uczestnikami).
W zaleŜności od tego, jakiego typu jest uczestnictwo encji w danym związku,
moŜemy podzielić encje na słabe lub regularne. Encje słabe charakteryzują się
całkowitym uczestnictwem w powiązaniu, to oznacza, Ŝe encja nie moŜe istnieć
bez tego powiązania (np. encja Zamówienia nie moŜe istnieć bez powiązania
z encją Klienci). Natomiast uczestnictwo encji regularnych w związku jest tylko
częściowe, czyli encja moŜe istnieć samodzielnie bez powiązania (np. encja
Klienci moŜe istnieć bez powiązania z encją Zamówienia).
Bardzo istotnym czynnikiem określanym przy związkach jest moc powiązania,
która definiuje się jako maksymalną liczbę instancji jednej encji (wystąpień w
danej encji), które mogą być powiązane z instancją innej encji. Ze względu na
wartość mocy moŜemy wyróŜnić trzy typy powiązań:
•
•
•
jeden-do-jeden,
jeden-do-wiele,
wiele-do-wiele.
Związki binarne:
Związek jeden-do-jeden (jedno-jednoznaczny)
Jest to najprostszy typ powiązania, występuje wtedy, gdy tylko jedna instancja
pierwszej encji jest powiązana z tylko jedną instancją drugiej encji. Jest to
powiązanie wprowadzające dosyć znaczne ograniczenia, gdyŜ warunek jeden
do jednego musi być zawsze spełniony. Opcjonalnie przy powiązaniu jeden
moŜe występować równieŜ opcja Ŝadne, oznaczana graficznie w postaci okręgu.
Rys. 2.7 Związek jeden-do-jeden
46
Bazy danych
Związek jeden-do-wiele (jedno-wieloznaczny)
Najbardziej typowym rodzajem powiązania jest powiązanie jeden-do-wiele,
w którym pojedyncza instancja jednej encji moŜe być połączona z jedną lub
wieloma instancjami drugiej encji. Ze względu na swoją uniwersalność i małą
kłopotliwość, ten typ powiązania jest najczęściej stosowany . Opcjonalnie przy
powiązaniu jeden lub wiele moŜe występować równieŜ opcja Ŝadne, oznaczana
graficznie w postaci okręgu.
Rys. 2.8 Związek jeden-do-wielu
Związek wiele-do-wiele (wielo-wieloznaczny)
Powiązania tego typu występują równie często jak powiązania jeden do wielu,
jednak nie dają się bezpośrednio implementować w relacyjnych bazach danych.
Są one realizowane przy pomocy encji pośrednich (w modelu relacyjnym są to
tabele sprzęgające) powiązanych z encjami pierwotnymi przy pomocy
powiązań jeden do wielu.
W powiązaniu wiele-do-wiele encjami głównymi są encje pierwotne, natomiast
encją obcą jest relacja sprzęgająca, która zwiera klucze główne relacji
oryginalnej. Dlatego w powiązaniu jeden-do-wiele pomiędzy relacjami
pierwotnymi, a relacją obcą, po stronie relacji oryginalnej znajduje się strona
"jeden" powiązania jeden-do-wiele a po stronie relacji obcej znajduje się strona
"wiele" z tego powiązania. Związki wiele-do-wiele nie są bezpośrednio
implementowane w relacyjnych bazach danych i wymagają dodatkowych
przekształceń.
Rys. 2.9 Związek wiele-do-wielu
Związki unarne
Powiązania tego typu mają tylko jednego uczestnika, czyli relację, która jest
powiązana sama ze sobą. Powiązania są realizowane jest w podobny sposób jak
powiązania binarne, z tym Ŝe odnosi się to do jednej encji. Klucz główny tej
encji jest dodawany do tejŜe encji.
Bazy danych
47
Rys. 2.10 Związek unarny
Powiązania unarne tak jak powiązania binarne mogą być róŜnej mocy. To
znaczy mogą występować powiązania jeden do wielu, które mogą być
opcjonalne po stronie "jeden". Ten typ powiązania jest stosowany przy
odwzorowywaniu struktur hierarchicznych.
Powiązania unarne mogą być równieŜ realizowane jako powiązania wiele do
wielu. Wtedy, podobnie jak przy powiązaniach binarnych, muszą być
modelowane przy uŜyciu tabeli sprzęgającej.
Związki ternarne
Są to powiązania w skład których wchodzą trzy związane ze sobą encje.
Powiązania te, podobnie jak powiązania wiele-do-wiele, nie mogą być
realizowane bezpośrednio w relacyjnych bazach danych.
Rys. 2.11 Związek ternarny
Związki ternarne nie są bezpośrednio implementowane w relacyjnych bazach
danych i wymagają dodatkowych przekształceń.
Notacje związków
W praktyce spotkasz się z róŜnymi sposobami reprezentacji graficznej
związków (dla przykładu: w programach słuŜących m.in. do projektowania
diagramów ERD takich jak Visio lub Rational Rose moŜliwe jest uŜycie kilku
róŜnych notacji). Bodaj najpopularniejsza jest notacja czysto graficzna. PoniŜej
prezentujemy sposób, w jaki za pomocą notacji graficznej moŜna oznaczyć typ
powiązania.
48
Bazy danych
Rys. 2.12 Graficzna notacja typów powiązania
Bazy danych
49
Metody przekształcania związków
Przeksztalcanie zwiazków wielo-wieloznacznych
Przeksztalcanie zwiazków ternarnych
Związki binarne wiele-do-wiele oraz związki ternarne nie są
implementowane w relacyjnych bazach danych. Dlatego wymagają one
pewnych przekształceń. Przykłady takich przekształceń zaprezentowane są
poniŜej
50
Bazy danych
Przekształcanie związków wielo-wieloznacznych
Jeśli mamy związek binarny wielo-wieloznaczny, to naleŜy
wprowadzić dodatkową encję oraz dwa nowe związki jednoznaczne. Nowa
encja powinna wśród atrybutów zawierać klucze obce odnoszące się do kluczy
głównych dwóch pozostałych encji.
Rys. 2.13 Przekształcanie związków binarnych wielo-wieloznacznych
Przekształcanie związków ternarnych
Przy przekształcaniu związków ternarnych postępujemy podobnie jak
w wypadku związków wielo-wieloznacznych binarnych. Wprowadzamy
wówczas dodatkową encję oraz 3 nowe związki jednoznaczne.
Rys. 2.14 Przekształcanie związków ternarnych
Podobnie postępujemy jeśli mamy do czynienia ze związkami o większej
liczbie argumentów.
Bazy danych
51
Model relacyjny
Relacje i terminologia zwiazana z modelem relacyjnym
Podstawowe dzialania na relacjach
Normalizacja
W tej części przedstawimy najwaŜniejsze terminy związane z modelem
relacyjnym, omówimy działania na relacjach i schematy relacji. Będzie teŜ
trochę matematyki związanej z działaniami na relacjach. Przedstawimy równieŜ
problemy związane z normalizacją relacji oraz podamy trzy najwaŜniejsze
i najpopularniejsze postacie normalne relacji.
52
Bazy danych
Relacje i terminologia związana z modelem relacyjnym
W klasycznym modelu relacyjnym pod pojęciem relacji rozumie się
dwuwymiarową tablicę.
Rys. 2.15 Relacja jako dwuwymiarowa tablica
Relacja zdefiniowana jest poprzez tak zwany schemat relacji. Schemat relacji
stanowi coś na kształt definicji tabeli. Składa się on z nazwy relacji oraz zbioru
atrybutów relacji.
Określenie schematu relacji wraz z przykładami zapisu relacji pokazane jest na
rysunku 2.16.
Rys. 2.16 Określenie schematu relacji i przykłady zapisu
Do definicji schematu relacji często dodaje się jeszcze określenie dziedzin dla
poszczególnych atrybutów relacji.
Schemat relacji moŜna rozumieć jako pustą tabelę ze zdefiniowaną nazwą oraz
nagłówkami kolumn.
Kolejnym pojęciem jest krotka (inaczej rekord - ang. tuple lub record).
Krotką nazywamy kaŜdy wiersz relacji, oczywiście z wyjątkiem wiersza
nagłówkowego. Krotki mogą być zapisane w postaci uporządkowanego ciągu
albo w postaci zaleŜności funkcyjnych tak jak to jest przedstawione na rysunku.
Pierwszy z tych zapisów wymaga do prawidłowego odczytania krotki
znajomości definicji schematu relacji, jest natomiast znacznie krótszy.
Rys. 2.17 Krotka i jej zapis
Bazy danych
53
Zbiór krotek danej relacji tworzy instancję relacji (ang. recordset). Warto
zwrócić uwagę, Ŝe schemat relacji w czasie cyklu Ŝycia bazy danych jest
w zasadzie niezmienny (lub podlega bardzo rzadkim zmianom), natomiast
instancja relacji moŜe zmieniać się w bazie bardzo często.
W wielu implementacjach systemów baz danych moŜna się spotkać z róŜnym
słownictwem dotyczącym modeli relacyjnych. Na przykład w polskiej wersji
MS Access pod pojęciem relacji rozumie się związek (choć jak wiadomo, oba
pojęcia oznaczają zupełnie co innego), natomiast na określenie relacji stosuje
się pojęcie tabeli (te dwa pojęcia są akurat równowaŜne). Trzeba się więc mieć
na baczności, aby nie pogubić się w tej plątaninie róŜnych pojęć stosowanych
do określenia róŜnych rzeczy.
Podstawowe działania na relacjach
Do podstawowych działań, które moŜemy wykonywać na relacjach naleŜą:
•
•
•
•
•
•
•
•
suma (ang. union),
róŜnica (ang. difference),
przecięcie (ang. engraving),
iloczyn kartezjański (ang. descartes-product),
rzut (ang. projection),
selekcja (ang. selection),
złączenie (ang. join),
złączenie teta (ang. teta join).
Omówimy je krótko i zilustrujemy przykładami.
Suma relacji
Sumą relacji nazywamy relację, której instancja jest suma instancji tych relacji.
Rys. 2.18 Przykład sumy relacji
Uwaga: Aby działanie to było wykonalne, oba schematy relacje muszą mieć te
same zbiory atrybutów.
54
Bazy danych
RóŜnica relacji
RóŜnicą relacji nazywamy relację,
teoriomnogościową instancji tych relacji.
której
instancja
jest
róŜnicą
Rys. 2.19 Przykład róŜnicy relacji
Uwaga: Aby działanie to było wykonalne, oba schematy relacje muszą mieć te
same zbiory atrybutów.
Przecięcie relacji
Przecięciem relacji nazywamy relację, której instancja jest iloczynem
teoriomnogościowym instancji tych relacji.
Rys. 2.20 Przykład przecięcia relacji
Uwaga: Aby działanie to było wykonalne, oba schematy relacje muszą mieć te
same zbiory atrybutów.
Bazy danych
55
Iloczyn kartezjański
Iloczynem kartezjańskim relacji nazywamy relację, której schemat jest sumą
schematów relacji, a jej krotki powstały jako iloczyn kartezjański krotek relacji
wchodzących w skład tego iloczynu.
Rys. 2.21 Przykład iloczynu kartezjańskiego relacji
Rzutowanie relacji
Wartością rzutu ΠA1,A2,...,An(R) jest relacja, która powstaje z R przez przepisanie
wszystkich atrybutów A1, A2, ..., An. Mówimy wówczas o rzutowaniu relacji
w kierunku A1, A2, ..., An. Operacja rzutowania zmienia schemat relacji.
Rys. 2.22 Przykład rzutowania relacji
Selekcja
W wyniku zastosowania operatora selekcji powstaje nowa relacja, do której
naleŜy pewien podzbiór krotek relacji R spełniający warunek F.
56
Bazy danych
Rys. 2.23 Przykład selekcji
Złączenie
Operacja złączenia polega na połączeniu w pary tych krotek z relacji R oraz S,
które mają identyczne wartości dla określonych atrybutów.
Rys. 2.24 Ilustracja złączenia relacji
Złączenie teta
Złączenie teta polega na połączeniu krotek przy spełnieniu określonego
warunku złączenia.
Rys. 2.25 Symbol złączenia teta
Aby utworzyć złączenie teta naleŜy:
1. Utworzyć iloczyn kartezjański R×S,
2. Z iloczynu kartezjańskiego wybrać te krotki, dla których warunek Θ
jest spełniony.
Rys. 2.26 Przykład złączenia teta relacji, przy warunku aby wartości drugiego
atrybutu relacji R były równe wartości atrybutu 1 relacji S
Bazy danych
57
Normalizacja
Normalizacja danych jest sformalizowaną procedurą stosowaną
podczas projektowania bazy danych w celu uniknięcia pewnego typu anomalii,
do których naleŜą:
•
•
•
- redundancja,
- anomalie modyfikacji,
- anomalie usunięć.
Redundancja jest nieuzasadnioną powtarzalnością danych w kilku krotkach.
Skutkiem nadmiernej redundancji moŜe być zwiększone zapotrzebowanie na
pamięć dyskową do przechowywania danych i wydłuŜony czas przeszukiwania
danych.
Anomalie modyfikacji są równieŜ zjawiskiem niepowołanym, poniewaŜ moŜe
się zdarzyć, Ŝe wartość danej zostanie zmodyfikowana w pewnej krotce,
a w innej nie.
Podobne anomalia mogą zachodzić przy usuwaniu danych, ta sama wartość
moŜe nie być usunięta ze wszystkich miejsc, w których występuje. Generalnie
anomalia te poprzez duplikowanie danych powodują brak spójności.
Normalizację modelu danych przeprowadza się poprzez bezstratną
dekompozycję relacji. Sprowadza się ona do podziału atrybutów relacji
pomiędzy schematy nowych relacji. Następnie następuje połączenie
(powiązanie) nowo powstałych relacji między sobą przy pomocy odpowiednich
atrybutów. Reguła dekompozycji obejmuje równieŜ podział krotek relacji
wejściowej między nowe relacje. Połączenie między relacjami powinno być
zrealizowane w taki sposób, aby odbyło się bez straty Ŝadnej informacji
Przy normalizacji danych moŜna przekształcić relację do jednej z sześciu
postaci normalnych.
Pierwsza postać normalna
Relacja jest w pierwszej postaci normalnej, jeŜeli domeny zdefiniowane dla jej
atrybutów są skalarne (atomowe), czyli kaŜdy atrybut krotki musi zawierać
pojedynczą wartość (kaŜde pole w tabeli musi zawierać tylko jeden typ danych
i kaŜdy element musi być przechowywany w jednym miejscu).
Rys. 2.27 Przykład relacji nie będącej w pierwszej postaci normalnej
58
Bazy danych
Rys. 2.28 Przykład relacji w pierwszej postaci normalnej
Druga postać normalna
Relacja jest w drugiej postaci normalnej, jeŜeli jest w pierwszej postaci
normalnej, a ponadto wszystkie jej atrybuty zaleŜą od całego klucza głównego,
a nie od innych pól tabeli.
Rys. 2.29 Przykład przekształcenia relacji do drugiej postaci normalnej
Trzecia postać normalna
Relacja jest w trzeciej postaci normalnej, jeŜeli jest w drugiej postaci
normalnej, a ponadto wszystkie atrybuty niekluczowe są wzajemnie niezaleŜne,
czyli istnieje moŜliwość zmiany jednego pole w tabeli bez konieczności
przeliczania lub zmiany innych pól tejŜe tabeli.
Rys. 2.30 Przykład przekształcenia relacji do trzeciej postaci normalnej
Postać normalna Boyce'a/Codda
Relacja jest postaci normalnej Boyce'a/Codda wtedy i tylko wtedy, gdy kaŜdy
wyznacznik jest kandydatem na klucz.
Jest to odmiana trzeciej postaci normalnej, dotyczy szczególnego rodzaju
relacji, kiedy atrybuty kandydujące na klucz są: wielokrotne, złoŜone lub
nakładają się na siebie.
Bazy danych
59
Czwarta postać normalna
Relacja jest w czwartej postaci normalnej, jeŜeli jest w trzeciej postaci
normalnej i nie zawiera "wielowartościowej zaleŜności" atrybutów.
Piąta postać normalna
Relacja jest w piątej postaci normalnej, jeŜeli jest w czwartej postaci
normalnej, a jej dekompozycja i ponowne połączenie nie są operacjami
symetrycznymi, nie prowadzą do rekonstrukcji tablicy początkowej.
Trzy pierwsze postaci normalne zostały zawarte w modelu relacyjnym
opracowanym przez dr E. F. Codda w 1970 r. i są często stosowane przy
normalizacji danych, natomiast trzy kolejne postaci normalne wykorzystywane
są dosyć rzadko.
Podsumowanie
60
Bazy danych
Cykle zycia oprogramowania
Role i sklad zespolu projektowego
Definiowanie wymagan dla systemu
Pojecie encji, atrybutu i zwiazku
Metody przeksztalcania zwiazków
Model relacyjny
Wytwarzanie oprogramowania jest procesem złoŜonym wymagającym
wielu działań (nie tylko programowania). Przed przystąpieniem do
programowania trzeba rozpoznać i spisać wymagania dla budowanego systemu
oraz wykonać model tego systemu.
Istnieje wiele róŜnych modeli budowanych na róŜnych etapach tworzenia
systemu i róŜnych poziomach szczegółowości. My w czasie budowania na
szych baz danych będziemy budować na początku model związków encji.
Stanowią one koncepcyjny model dziedziny modelowanego systemu.
Bazy danych
Laboratorium
61
62
Bazy danych
Krok 1. Ocena dokumentów wizji systemu
Prowadzący komentuje dokumenty poszczególnych zespołów oraz
przedstawia własną (modelową) wizję systemu Biblioteka
Krok 2. Stworzenie diagramów ERD systemu biblioteka
KaŜdy z uczestników uruchamia MS Visio 2003 (lub ekwiwalentne
oprogramowanie) i na podstawie uzgodnionego opisu systemu Biblioteka
próbuje stworzyć dla niego diagram ERD.
Krok 3. Zapisanie dokumentów
NaleŜy zapisać diagramy we wspólnej bibliotece serwera SharePoint
lub odpowiednika. Sposób nazewnictwa dokumentów powinien być jasno
sprecyzowany.
Krok 4. Omówienie poprawnego diagramu ERD
Prowadzący pokazuje i omawia poprawny diagram ERD dla systemu
Biblioteka

Podobne dokumenty