background image

Projektowanie baz danych

background image

Przegląd zagadnień

Cykle życia oprogramowania 
Role i skład zespołu projektowego 
Definiowanie wymagań dla systemu
Pojęcie encji, atrybutu i związku 
Metody przekształcania związków 
Model relacyjny 
Podsumowanie
Laboratorium

background image

Cykle życia oprogramowania 

Główne etapy cyklu życia oprogramowania

Analiza,

Projektowanie,

Implementacja,

Testowanie,

Wdrożenie. 

background image

Cykle życia oprogramowania 

Uproszczony cykl życia projektu budowy systemu 

informatycznego 

background image

Model wodospadowy 

background image

Model spiralny 

background image

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. 

background image

Model z prototypem 

background image

Role i skład zespołu projektowego 

Kierownik projektu 
Analityk 
Projektant 
Programista 
Tester 
Wdrożeniowiec

background image

Role i skład zespołu projektowego 

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. 

background image

Role i skład zespołu projektowego 

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.

background image

Definiowanie wymagań dla systemu 

Techniki badania wymagań użytkowników 
Analiza dokumentacji 
Wywiad 
Ankieta 
Analiza dokumentów (ciągle powstających) 
Obserwacja (istniejącego systemu)

background image

Definiowanie wymagań dla systemu 

Techniki badania wymagań użytkowników 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. 

background image

Definiowanie wymagań dla systemu 

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.

background image

Definiowanie wymagań dla systemu 

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

background image

Definiowanie wymagań dla systemu 

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.

background image

Definiowanie wymagań dla systemu 

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?

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

background image

Definiowanie wymagań dla systemu 

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

background image

Pojęcie encji, atrybutu i związku 

Encja 
Atrybut 
Związek

background image

Pojęcie encji

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. 

background image

Pojęcie atrybutu

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łówny oznacza się często na wykresach symbolem PK (ang. 

Primary Key) umieszczanym obok nazwy atrybutu.
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.

background image

Atrybut

background image

Związek

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. 

background image

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.

background image

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.

background image

Związek 

background image

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

background image

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.

background image

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 

zaprezentowano sposób, w jaki za pomocą notacji graficznej można 

oznaczyć typ powiązania.

background image

Metody przekształcania związków 

Przekształcanie związków wielo-wieloznacznych 
Przekształcanie związkó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ń. 

background image

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.

background image

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.

background image

Model relacyjny 

Relacje i terminologia związana z modelem relacyjnym 
Podstawowe działania na relacjach 
Normalizacja

background image

Relacje i terminologia związana z modelem relacyjnym 

W klasycznym modelu relacyjnym pod pojęciem relacji rozumie się dwuwymiarową tablicę.

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.

background image

Schemat relacji

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.

background image

Krotka

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. 
Pierwszy z tych zapisów wymaga do prawidłowego odczytania krotki 

znajomości definicji schematu relacji, jest natomiast znacznie krótszy.

background image

Zbiór krotek

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.

background image

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

background image

Suma relacji 

background image

Różnica relacji 

background image

Przecięcie relacji 

background image

Iloczyn kartezjański 

background image

Rzutowanie relacji

background image

Selekcja 

background image

Złączenie 

background image

Złączenie teta 

background image

Normalizacja

Pierwsza postać normalna

Bez normalizacji

background image

Normalizacja

Druga postać normalna

background image

Normalizacja

Trzecia postać normalna

background image

Podsumowanie

Cykle życia oprogramowania 
Role i skład zespołu projektowego 
Definiowanie wymagań dla systemu
Pojęcie encji, atrybutu i związku 
Metody przekształcania związków 
Model relacyjny

background image

Laboratorium 1

• Ocena dokumentów wizji systemu 

• Stworzenie diagramów ERD systemu 

biblioteka 

• Zapisanie dokumentów 

• Omówienie poprawnego diagramu ERD