You are on page 1of 26

IDZ DO

PRZYKADOWY ROZDZIA
SPIS TRECI

KATALOG KSIEK
KATALOG ONLINE
ZAMW DRUKOWANY KATALOG

Wprowadzenie
do baz danych
Autor: John Petersen
Tumaczenie: Krzysztof Jurczyk
ISBN: 83-7197-815-4
Tytu oryginau: ABG to Databases
Format: B5, stron: 272

TWJ KOSZYK
DODAJ DO KOSZYKA

CENNIK I INFORMACJE
ZAMW INFORMACJE
O NOWOCIACH
ZAMW CENNIK

CZYTELNIA
FRAGMENTY KSIEK ONLINE

Kady z nas na co dzie korzysta z relacyjnych baz danych, czasem nawet nie zdajc
sobie z tego sprawy. Bazy danych zbieraj to, co najcenniejsze w dzisiejszym wiecie:
informacje. Mona je wic porwna do wspczesnych skarbcw.
Zrozumienie zasad projektowania baz danych umoliwia pene wykorzystanie
nowoczesnych aplikacji, niezbdnych w funkcjonowaniu niemal kadego
przedsibiorstwa. Pozwala na dobr organizacj, sprawne zarzdzania danymi
gromadzonymi przez poszczeglne osoby.
Wprowadzenie do baz danych to ksika dla kogo, kto sysza o bazach danych,
ale nigdy tak naprawd nie dowiedzia si, czym s, co zawieraj, jak je projektowa
i tworzy. Ksika napisana zostaa z punktu widzenia osoby, ktrej zadaniem jest
utworzenie pierwszego w yciu projektu bazy danych lub ktra po prostu chce zdoby
wiedz na ich temat.
Dziki tej ksice:
Poznasz teori baz danych, ktra pomoe zrozumie ci,
w jaki sposb funkcjonuj bazy danych
Zrozumiesz rnic pomidzy analiz a projektowaniem bazy danych
oraz dowiesz si, w jaki sposb te dwie koncepcje ze sob wspistniej
Zrozumiesz potrzeb analizy podczas projektowania bazy danych
Nauczysz si, jak na podstawie projektu zbudowa fizyczn baz danych
Poznasz jzyk programowania baz danych SQL
Zrozumiesz znaczenie zarzdzania bazami danych
Nauczysz si budowa aplikacje bazodanowe

Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl

Ksika jest napisana prostym i przystpnym jzykiem, zrozumiaym zarwno dla


pocztkujcych programistw, jak i dla osb bez dowiadczenia informatycznego.
Przykady prezentowane w ksice oparte s na popularnym Accessie. Jeli jeste
osob, ktra chce rozpocz podr po wiecie baz danych, ale nie wiesz, od czego
zacz, ta ksika jest wanie dla Ciebie!

Spis treci
O Autorze .......................................................................................... 9
Wstp ............................................................................................. 11

Cz I

Podstawy baz danych ...................................................... 15

Rozdzia 1. Wprowadzenie do baz danych........................................................... 17


Co to jest baza danych?...........................................................................................18
Do czego uywa si baz danych? .............................................................................19
Typowe systemy zarzdzajce bazami danych uywane obecnie .................................20
Podstawowa terminologia baz danych.......................................................................21
Baza danych.....................................................................................................21
Tabele i encje ...................................................................................................21
Pola, kolumny i atrybuty....................................................................................21
Normalizacja ....................................................................................................22
Wiersze i rekordy..............................................................................................22
Klucz podstawowy............................................................................................22
Model relacyjnej bazy danych: wstp........................................................................22
Miejsca pracy zwizane z bazami danych..................................................................26
Administrator bazy danych ................................................................................26
Programista aplikacji baz danych........................................................................26
Analityk baz danych..........................................................................................27
Podsumowanie .......................................................................................................27

Rozdzia 2. Budowa bazy danych........................................................................ 29


Wprowadzenie do Microsoft Access .........................................................................29
Przykadowa baza danych Northwind .......................................................................31
Relacje w bazie danych .....................................................................................31
Przegld komponentw bazy danych ..................................................................35
Podsumowanie .......................................................................................................47

Cz II

Projektowanie i budowanie pierwszej bazy danych........... 49

Rozdzia 3. Wprowadzenie do projektowania baz danych..................................... 51


Twj projekt: Baza danych Czas Pracy i Fakturowanie .................................................52
Okrelenie wymaga stawianych bazie danych ..........................................................52
Wywiady..........................................................................................................53
Dokumentacja firmy..........................................................................................54
Istniejce systemy .............................................................................................55

Wprowadzenie do baz danych


Wstp do modelowania baz danych ..........................................................................55
Jak wyglda model bazy danych? .......................................................................56
Tworzymy pierwszy model ................................................................................57
Tworzenie fizycznej bazy danych na podstawie modelu logicznego .......................65
Tworzenie modelu bazy na podstawie fizycznej bazy danych................................66
Tworzenie modelu bazy danych Czas Pracy i Fakturowanie........................................67
Edycja tekstu....................................................................................................67
Doskonalenie projektu.......................................................................................68
Podsumowanie .......................................................................................................71

Rozdzia 4. Cig dalszy tworzenia bazy danych: wstp do normalizacji................. 73


Normalizacja bazy danych.......................................................................................74
Czynnoci prowadzce do normalizacji Twojego modelu danych ................................75
Pierwsza posta normalna: eliminacja powtarzajcych si grup .............................75
Druga posta normalna: eliminowanie zbdnych danych ......................................77
Trzecia posta normalna: eliminacja kolumn niezalenych od kluczy.....................81
Czwarta i pita posta normalna .........................................................................83
Normalizacja: ostatnie sowo..............................................................................84
Denormalizacja danych kiedy jest sens ama reguy?............................................85
Normalizacja w praktyce przegld bazy Czas Pracy i Fakturowanie.
Doskonalenie projektu.............................................................................................86
Okrelenie nowych kolumn i tabel ......................................................................86
Przegld bazy danych Czas Pracy i Fakturowanie ................................................94
Podsumowanie .......................................................................................................94

Rozdzia 5. Tworzenie bazy Czas Pracy i Fakturowanie w Microsoft Access .......... 97


Automatyczne generowanie bazy na podstawie modelu bazy
Czas Pracy i Fakturowanie.......................................................................................98
Krtki opis projektanta bazy danych w Accessie...................................................... 101
Okno gwne bazy danych............................................................................... 101
Okno projektanta ............................................................................................ 104
Wykorzystanie projektanta do utworzenia bazy Czas Pracy i Fakturowanie................ 104
Tworzenie bazy danych................................................................................... 104
Tworzenie tabel i kolumn................................................................................. 107
Tworzenie relacji ............................................................................................ 113
Podsumowanie ..................................................................................................... 116

Cz III Utrzymanie bazy danych wprowadzenie


do integralnoci baz danych .......................................... 117
Rozdzia 6. Utrzymanie integralnoci poprzez zastosowanie
regu poprawnoci danych.............................................................. 119
Wstp do regu poprawnoci w bazach danych ........................................................ 120
Implementacja zasad na poziomie pola ................................................................... 120
Waciwoci pl.............................................................................................. 121
Implementacja regu na poziomie wiersza ............................................................... 136
Waciwoci na poziomie wierszy..................................................................... 136
Podsumowanie ..................................................................................................... 138

Rozdzia 7. Podstawy integralnoci referencyjnej.............................................. 139


Co to jest integralno referencyjna ........................................................................ 139
Dlaczego utrzymywanie integralnoci referencyjnej jest wane................................. 140

Spis treci

7
Jak dziaa integralno referencyjna........................................................................ 141
Okrelanie zasad integralnoci referencyjnej w bazie Czas Pracy i Fakturowanie ..... 141
Podsumowanie ..................................................................................................... 145

Cz IV Wykorzystanie bazy danych do dostarczania informacji


wprowadzenie do SQL ............................................... 147
Rozdzia 8. Podstawy jzyka SQL ..................................................................... 149
Co to jest SQL? .................................................................................................... 149
Interaktywna praca z SQL w Accessie............................................................... 150
Podjzyki SQL DDL i DCL ........................................................................ 151
Instrukcja Select ................................................................................................... 153
Wybieranie okrelonych pl............................................................................. 154
Zmiana nazwy pola za pomoc klauzuli As ....................................................... 155
czenie pl danych........................................................................................ 155
Instrukcje Top n Select .................................................................................... 157
Filtrowanie wynikw I: zastosowanie klauzuli Where .............................................. 158
Organizacja danych wynikowych I: zastosowanie klauzuli Order By ......................... 159
Zoone kolejnoci sortowania ......................................................................... 160
czenie wielu tabel: zastosowanie instrukcji Join ................................................... 162
Sprzenia wewntrzne ................................................................................... 163
Sprzenia zewntrzne lewostronne .................................................................. 166
Sprzenia zewntrzne prawostronne i cakowite ............................................... 167
czenie wielu danych wynikowych: zastosowanie instrukcji Union ......................... 168
Podsumowanie ..................................................................................................... 170

Rozdzia 9. SQL zaawansowane techniki programowania .............................. 171


Organizacja danych wynikowych II: zastosowanie klauzuli Group By ....................... 172
Uywanie funkcji agregacji.................................................................................... 173
Funkcja Count().............................................................................................. 173
Operacje zaawansowane: metodologia zoenia wszystkiego w jedn cao ........ 174
Funkcja Sum()................................................................................................ 178
Funkcja Avg()................................................................................................. 183
Funkcje Min() i Max() ..................................................................................... 184
Filtrowanie wynikw II: zastosowanie klauzuli Having ............................................ 184
Filtrowanie wynikw III: tworzenie instrukcji parametrycznych w SQL .................... 185
Modyfikacja danych za pomoc instrukcji Insert, Update i Delete ............................. 186
Instrukcja Insert.............................................................................................. 187
Instrukcja Update............................................................................................ 188
Instrukcja Delete............................................................................................. 189
Podsumowanie ..................................................................................................... 190

Rozdzia 10. Kwerendy SQL jako cz bazy danych ........................................... 191


Projektant kwerend w Accessie .............................................................................. 192
Okrelanie pl w zestawie wynikowym............................................................. 192
Dodawanie kryteriw kwerendy ....................................................................... 194
Pomijanie kolumn ........................................................................................... 196
Definiowanie kolejnoci sortowania.................................................................. 197
Sortowanie wedug wielu pl ........................................................................... 199
Zapisywanie kwerendy .................................................................................... 199
Tworzenie zaawansowanych kwerend .................................................................... 199
Stosowanie podsumowa i funkcji agregacji...................................................... 201
Kwerendy parametryczne ................................................................................ 203
Podsumowanie ..................................................................................................... 204

Cz V

Wprowadzenie do baz danych

Uruchamianie bazy danych budowanie


prostej aplikacji bazy danych w Accessie ...................... 207

Rozdzia 11. Wykorzystywanie komponentw do tworzenia formularzy................. 209


Projektant formularzy w Accessie........................................................................... 209
Tworzenie formularzy dla aplikacji Czas Pracy i Fakturowanie................................. 211
Klient............................................................................................................. 211
Formularz Pracownik ...................................................................................... 223
Tworzenie formularza Menu Gwne...................................................................... 225
Podsumowanie ..................................................................................................... 227

Rozdzia 12. Dostarczanie uytecznych wydrukw:


wstp do tworzenia i projektowania raportw ................................. 229
Projektant raportw w Accessie.............................................................................. 230
Tworzenie raportw dla aplikacji Czas Pracy i Fakturowanie.................................... 231
Lista klientw ................................................................................................. 231
Modyfikacja raportu Lista Klientw za pomoc projektanta raportw.................. 235
Dodanie przycisku Raport do formularza Menu Gwne........................................... 236
Podsumowanie ..................................................................................................... 238

Dodatki.......................................................................................... 239
Dodatek A Struktura bazy danych Czas Pracy i Fakturowanie ........................... 241
Dodatek B Reguy integralnoci referencyjnej w bazie danych
Czas Pracy i Fakturowanie.............................................................. 245
Dodatek C Sownik ......................................................................................... 247
Dodatek D Periodyki o tematyce zwizanej z bazami danych ............................ 255
Dodatek E Strony WWW ................................................................................. 257
Skorowidz...................................................................................... 259

Rozdzia 3.

Wprowadzenie
do projektowania
baz danych
W rozdziale:
 Twj projekt: baza danych Czas Pracy i Fakturowanie
 Okrelanie wymaga bazy danych
 Wstp do modelowania baz danych
 Tworzenie modelu bazy Czas Pracy i Fakturowanie

W czci I Podstawy baz danych pokazano w oglnym zarysie, czym s bazy danych,
oraz zaprezentowano implementacj rzeczywistej bazy danych w programie Microsoft
Access. W czci II Projektowanie i budowanie pierwszej bazy danych skupimy si
na praktycznym wykorzystaniu wiedzy nabytej w czci I. Zanim bdziesz mg zbudowa swoj wasn baz danych, musi ona zosta zaprojektowana. Zanim jednak
przystpisz do projektowania, musisz zrozumie, co chcesz przedstawi w swojej bazie
danych. Czasem bywa tak, e proces projektowania i budowania bazy jest prosty; czasem
jednak moe on by bardziej zoony. Do czynnikw okrelajcych stopie trudnoci
zadania mona zaliczy:
 Stopie zrozumienia przez Ciebie danego problemu.
 Twoje umiejtnoci analityczne.
 Ilo baz danych, ktre do tej pory stworzye.
 Ilo posiadanej cierpliwoci.

Ze wszystkich przedstawionych powyej czynnikw cierpliwo jest prawdopodobnie


najwaniejsza i zarazem najtrudniejsza do osignicia. Z upywem czasu moesz udoskonali swoje zdolnoci analityczne i umiejtnoci budowania baz danych. Bazy danych
nigdy nie s w peni zaprojektowane po pierwszym podejciu do tematu. Po drugim

52

Cz II Projektowanie i budowanie pierwszej bazy danych

moe Ci si to prawie uda. By moe dopiero trzecie podejcie okae si szczliwe.


Zazwyczaj jednak bywa tak, e potrzeba czterech prb zaprojektowania bazy, aby stworzy solidny projekt wstpny. Wida z tego, e trzeba odpowiedniej cierpliwoci, zanim
osignity zostanie cel, jakim jest porzdny projekt bazy danych.
Zagadnienie projektowania bazy danych moe szybko przerodzi si w wiat skomplikowanych teorii. Nie oznacza to bynajmniej, e teorie projektowania w wiecie baz danych
s bezuyteczne nie s. Jednake w ksice dla pocztkujcych okoo dwie trzecie
teorii jest nieprzydatne. Niniejszy rozdzia i reszta czci II s przepisem skadajcym
si w 1/3 z teorii i w 2/3 z cikiej pracy.
Praktyka czyni mistrza. Zabierajmy si wic do pracy!

Twj projekt: Baza danych


Czas Pracy i Fakturowanie
Zostae zatrudniony przez firm prawnicz Nowak&Nowak do stworzenia systemu
rejestracji czasu pracy i rozlicze. Oprcz znajomoci kilku nie najlepszych kawaw
o prawnikach (typu Dlaczego rekiny nie jedz prawnikw? Z uprzejmoci zawodowej)
nie masz wikszego pojcia o strukturze i zwyczajach panujcych w firmie prawniczej.
Jedyne, czego moesz by pewien, to dwch cech wynikajcych bezporednio z nazwy
systemu, ktry masz zaprojektowa:
 System ma gromadzi i przechowywa czas pracy ludzi.
 System ma wystawia rachunki.

Moe wyglda to na zbyt wielkie uproszczenie, ale czasem wanie bywa tak, e nic
wicej na pocztku nie wiemy. Z upywem czasu nauczysz si, e majc pierwsz cz
informacji, mona znale kolejn, potem nastpn itd. By moe najwaniejszymi
elementami informacji, ktre moesz zdoby na pocztku projektowania, s jak i gdzie
mona znale informacje niezbdne do stworzenia bazy danych. Zagadnienie to jest
tematem kolejnego podrozdziau.

Okrelenie wymaga
stawianych bazie danych
Jak sprawnie i waciwie podj decyzje zwizane z okreleniem wymaga, jakie ma
spenia nowa baza danych? Kluczem do tego jest wiedza na temat, gdzie szuka przydatnych informacji. Pomimo rnorodnej specyfiki firm rda informacji s zawsze
te same. Wraz z nabywaniem dowiadczenia w tworzeniu systemw bazodanowych
zauwaysz, e proces gromadzenia informacji o wymaganiach jest w duym stopniu
powtarzalny. Wrd wielu rde informacji na ten temat do najczciej wykorzystywanych nale: wywiady, dokumentacja firmy oraz istniejce systemy.

Rozdzia 3. Wprowadzenie do projektowania baz danych

53

Wywiady
Przy wszechobecnej komputeryzacji to jednak wci ludzie podejmuj najwaniejsze
decyzje. Nie naley wic nie docenia siy mwienia i co moe jest jeszcze bardziej
istotne suchania pracownikw firmy. Ludzie ci moe nie potrafi wyraa si sownictwem zwizanym z bazami danych, ale to jest wanie powd, dla ktrego Ty si
pojawie masz zebra i przetworzy informacje.
Poprzez wywiady poznasz obieg informacji wewntrz firmy. Dowiesz si rwnie,
ktre informacje s istotne i dla kogo oraz ktre z nich stanowi podstaw w podejmowaniu decyzji.
Ukadasz puzzle.
Podczas przeprowadzania wywiadw nie ograniczaj si wycznie do personelu
zarzdzajcego i waniejszych osb. Kady poziom organizacji stanowi cz ukadanki, ktra niezbdna jest do uoenia caoci puzzli. Kada jest jednakowo wana,
poniewa bez wszystkich elementw nigdy nie otrzymasz caego obrazka. Z tego
wzgldu, nie posiadajc wszystkich czci, nigdy nie zdobdziesz penego obrazu
mechanizmw funkcjonujcych w firmie, ani wymaga dotyczcych bazy danych,
ktr masz stworzy.

Zrozumienie rnicy pomidzy potrzebami strategicznymi a taktycznymi


Decyzje w przedsibiorstwie mog zosta generalnie podzielone na dwie kategorie:
 strategiczne,
 taktyczne.

Decyzje strategiczne s decyzjami dotyczcymi np. czy wprowadzi okrelon strategi dziaania
firmy na rynku, czy rozpocz bd zakoczy dan lini produktw lub czy dokonywa zmian personalnych. Decyzje strategiczne maj wpyw na firm jako cao. Jeli chodzi o ramy czasowe,
planowanie strategiczne dotyczy zazwyczaj okresu duszego ni p roku naprzd i moe siga
nawet 5 lat. By moe nie s Ci obce plany swojej firmy dwu-, trzy-, cztero- czy picioletnie. Jeli
dostae zadanie stworzenia bazy danych dla swojej firmy, musisz zna podstawowe zaoenia
zawarte w jej planie strategicznym. Tworzona przez Ciebie baza danych musi uwzgldnia ten plan
poprzez zapewnianie informacji umoliwiajcych w przyszoci podejmowanie decyzji.
Podczas gdy decyzje strategiczne s z natury dugoterminowe, decyzje taktyczne obejmuj krtszy
okres i s bardziej dokadne. Decyzje strategiczne skupiaj si na tym, co firma chce robi;
w przeciwiestwie do nich decyzje taktyczne okrelaj, jak te rzeczy naley wykona. Np. strategiczn decyzj moe by zwikszenie obrotw w przecigu najbliszych dwch lat. Aby zapewni
ten wzrost, wymagania zwizane z przepywem gotwki w firmie musz wzrosn o 10%. Decyzje
taktyczne zwizane z tak strategi mog by nastpujce:
 Naley wyduy termin regulowania patnoci z 30 do 60 dni.
 Naley wymaga pacenia za wystawione faktury w cigu 10 dni zamiast 30.
 Naley poszuka nowych rde finansowania zobowiza bankowych.

Moesz spyta, co to ma wsplnego z projektowaniem bazy danych. Wszystko! Dane s si


napdow w kadej firmie. Bez nich nie jest moliwe podjcie jakichkolwiek decyzji. Aby podj
taktyczne decyzje wymienione powyej, baza danych musi dostarczy wymagane informacje
w przejrzystym formacie. Poprzez wywiady moesz wiele dowiedzie si o firmie, jej zamierzeniach
i nadziejach, przez co bdziesz mg lepiej okreli wymagania, jakie ma spenia tworzona
baza danych.

Cz II Projektowanie i budowanie pierwszej bazy danych

54

Dokumentacja firmy
Wywiady mog stanowi rdo zarwno oglnych, jak i bardziej szczegowych
informacji. Przegldanie i analizowanie dokumentacji biznesowej rozpoczyna proces
dokadniejszego poznawania firmy i zaznajamiania si ze szczegami dotyczcymi
jej funkcjonowania.
Poniej znajduj si przykady dokumentacji firmy:
 Faktury,
 Raporty,
 Dokumenty dostawcw,
 Karty kontrolne pracownikw,
 Ankiety klientw,
 Inne dokumenty wykorzystywane przez ludzi w firmie.

W wywiadzie moge zauway, e istotnym elementem jest to, aby baza danych
przechowywaa informacje o klientach. Poprzez analiz i zaznajomienie si z treci
dokumentacji firmy odkryjesz, e pewne czci informacji o klientach musz by
uwzgldnione w Twojej bazie. Innym przykadem niech bdzie ledzenie czasu pracy
zaogi. W biecym projekcie bazy Czas Pracy i Fakturowanie wiesz, e musisz ledzi czas na okrelonym poziomie szczegw. Typowa karta kontrolna pracownika
moe zawiera niektre lub wszystkie z niej wymienionych informacji:
 Imi i nazwisko pracownika.
 Data.
 Czas rozpoczcia pracy.
 Czas zakoczenia pracy.
 Wykonane zadania.
 Projekt.
 Klient.

Patrzc na powyszy przykad karty kontrolnej, staje si oczywiste, jakiego typu informacje musi zawiera projektowana baza danych. Rozdzia 4. Cig dalszy tworzenia
baz danych: wstp do normalizacji powicony jest sposobom organizacji informacji.
W tym miejscu najwaniejsze dla nas jest ustalenie, skd te informacje pobra.
Nadszed czas na zatrzymanie si i wzicie gbokiego oddechu. Wane jest zwrcenie uwagi, w jaki sposb wywiady i dokumentacja firmy wspgraj ze sob.
Wszystko to tworzy pewn sie jest ze sob cile poczone. Wywiady zapewniaj oglny obraz tego, jakie informacje maj by przechowywane w naszej bazie.
Do pewnego stopnia dostarczaj te informacji szczegowych. Jednake dopiero
analiza dokumentacji firmy moe dostarczy wielu szczegowych informacji.

Rozdzia 3. Wprowadzenie do projektowania baz danych

55

Istniejce systemy
Bardzo prawdopodobne moe by rwnie to, e celem Twojego projektu jest zastpienie istniejcego systemu. By moe firma przerosa jego moliwoci lub te struktura
istniejcej bazy danych nie spenia wymaga zwizanych z rosncymi potrzebami firmy.
Aby zrozumie wymagania, jakie ma spenia nowa baza, musisz rozumie sposb
funkcjonowania istniejcego systemu. Co wicej, musisz zna jego ograniczenia. Jeli
nie poznasz i nie zrozumiesz zagadnie zwizanych z istniejcym systemem, wwczas
drastycznie ronie prawdopodobiestwo, e projektujc nowy system powielisz istniejce bdy i niedogodnoci.
Pod wieloma wzgldami skadniki interfejsu uytkownika istniejcego systemu mog
by uwaane za dokumentacj i formularze firmy. Np. kartka papieru reprezentujca
kart kontroln pracownika wcale nie musi istnie jako twr fizyczny. Pracownicy
mog bowiem wpisywa swj czas pracy korzystajc z formularza na ekranie. Jako
projektant bazy danych musisz by wiadomy tego, e granica pomidzy poszczeglnymi rdami informacji nie zawsze jest wyrana. Dalej, nie istnieje ustalona
kolejno, w jakiej poszczeglne elementy informacji maj by przegldane. I w kocu,
bardzo prawdopodobne moe by to, e bdziesz musia powrci do rde informacji
ju przegldanych w celu ich dokadniejszej analizy. Np. po przejrzeniu dokumentw firmy by moe bdziesz chcia powrci do procesu przeprowadzania wywiadw z pracownikami w celu ustalenia dodatkowych szczegw zwizanych z wymaganiami stawianymi nowemu systemowi.
Pamitasz zdanie o cierpliwoci? Proces zdobywania informacji o wymaganiach moe
wydawa si nieskoczony w czasie. Niektrzy wierz, e systemy i bazy danych
nigdy nie s kompletne, poniewa rodowisko biznesowe ulega cigym ewolucjom i zmianom. Dojdziesz jednak do pewnego miejsca, w ktrym bdziesz posiada wystarczajc ilo informacji niezbdn do rozpoczcia wstpnego projektowania bazy. Sam fakt rozpoczcia pracy nad projektem nie oznacza oczywicie,
e proces zbierania informacji zosta zakoczony. Pamitaj, e moe by tak, e
bdziesz musia go powtrzy raz, dwa, trzy, cztery lub wicej razy, aby uzyska komplet niezbdnych do zaprojektowania bazy informacji. Wraz z nabywaniem dowiadczenia proces ten bdzie stawa si dla Ciebie coraz bardziej przyjazny.

W tej chwili wiesz ju, gdzie naley szuka rde informacji dotyczcych wymaga
stawianych projektowanej bazie danych. Pojawia si nowe pytanie, jak wic poczy
to wszystko razem. Odpowiedzi na to jest utworzenie modelu bazy danych. Proces
tworzenia Twojego pierwszego modelu bazy jest tematem kolejnej czci rozdziau.

Wstp do modelowania baz danych


Mwi si, e obraz warty jest tysic sw. Nigdzie to powiedzenie nie jest bardziej
prawdziwe ni w wiecie modelowania baz danych. Jak widziae, bazy danych s czym
duo wicej ni tylko zestawami tabel. Bazy danych stanowi zgrupowanie powizanych ze sob jednostek (encji) biznesowych. Zapytaj samego siebie, co jest atwiejsze
w analizie: zwyka lista nazw tabel czy diagram ilustrujcy tabele i relacje zachodzce

Cz II Projektowanie i budowanie pierwszej bazy danych

56

pomidzy nimi? Bez wzgldu na to, czy osoba posiada wiedz techniczn czy nie, kady
stwierdzi, e diagramy s czytelniejsze i atwiej si z nimi pracuje. Generalnie pozwalaj
one na lepsze podejcie do problemu czy okrelonych zagadnie.
Wemy dla przykadu plan jakiego budynku. Krtkie spojrzenie na niego wystarczy,
aby mc w stanie okreli, do czego ten budynek ma suy i jak ma struktur. Plan
przekazuje o wiele wicej informacji ni sowa, ktre mogyby ten budynek opisa.
Moemy wic sprbowa sobie wyobrazi, e model bazy danych jest takim planem
bazy. Celem tej czci rozdziau jest przedstawienie wstpnych informacji dotyczcych
tworzenia modelu bazy danych.

Jak wyglda model bazy danych?


W rozdziale 2. Budowa bazy danych zapoznae si z pierwszym modelem bazy
danych. Aby to sobie przypomnie, na rysunku 3.1 pokazany zosta model dla prostej
bazy Northwind, ktra dostarczana jest razem z Accessem.
Krtkie spojrzenie na rysunek 3.1 wystarczy, aby od razu poczu sens utworzenia tej
bazy. W rozdziale 2. okrelalimy przeznaczenie bazy analizujc jej model. Teraz natomiast zajmiemy si omwieniem poszczeglnych komponentw modelu bazy danych.
Kilka sw o narzdziach do projektowania baz danych
Narzdziami sucymi do projektowania bazy danych mog by po prostu piro i kartka papieru,
lecz mog one by bardziej zoone i posiada wiele przydatnych funkcji. Wyda na nie mona
zarwno kilkaset, jak i kilkaset tysicy zotych. Jednak tak naprawd to nie w tym rzecz, jakiego
narzdzia uywasz, ale jak efektywnie wykorzystujesz to, co posiadasz. Rysowanie na kartce
papieru moe by tak samo efektywne jak diagram uzyskany za pomoc narzdzia kosztujcego tysice zotych. No dobrze, moe przesadzam teraz. Jednak na pewno nie musisz zaciga drugiego kredytu hipotecznego, aby pozwoli sobie na dobre narzdzie projektowe. Na rynku
dostpne s dwa, bardzo przystpne w cenie, narzdzia:
 Microsoft Visio Visio stanowi od czasu przejcia przez Microsoft cz pakietu

Microsoft Office. Wicej informacji znajdziesz na stronie http://www.microsoft.com/


office/visio.
 Resolution xCase jest to w peni funkcjonalne narzdzie do projektowania baz danych,

ktre wsppracuje z platformami SQL Server, Access, Sybase, Informix, DB2 i wieloma
innymi bazami danych dostpnymi na rynku. Wicej informacji znajdziesz na stronie
Resolution xCase http://www.xcase.com.
Oczywicie, jeli potrzebujesz bardziej zaawansowanych narzdzi, do Twojej dyspozycji s:
 Computer Associates ErWin http://ca.com/products/alm/erwin.htm,
 Visible Analyst DB Engineer http://www.visible.com/Products/Analyst/

vadbengineer.html.
W niniejszej ksice do zilustrowania modelowania baz danych i innych zagadnie z tym zwizanych wykorzystane zostanie oprogramowanie Microsoft Visio.

Rozdzia 3. Wprowadzenie do projektowania baz danych

57

Rysunek 3.1.
Widok relacji
pozwala przeglda
tabele zawarte
w bazie danych
wraz z relacjami
wystpujcymi
midzy nimi

Tworzymy pierwszy model


Aby mg pozna sposb tworzenia graficznego modelu bazy danych, cofnijmy si
o jeden krok i rozpocznijmy nasz prac z istniejcym ju projektem. W tej hipotetycznej
sytuacji mamy zidentyfikowane nastpujce jednostki (encje):
 Klienci.
 Zlecenia.
 Elementy Zlecenia.
Wszystkie koncepcje przedstawione w tej czci rozdziau mog zosta wprowadzone
w ycie z wykorzystaniem jedynie kartki papieru i owka. Graficzne i zautomatyzowane narzdzia mog uatwi wykonanie pewnych czynnoci, takich jak na przykad zapewnienie, e w tabelach pochodnych utworzone zostay klucze obce; bywaj
one rwnie pomocne w okrelaniu, czy istniejce relacje s typu jeden-do-jednego
czy jeden-do-wielu. Niektre narzdzia potrafi nawet wygenerowa skrypty, ktre
automatycznie tworz definicje bazy danych na podstawie modelu. Ponadto niektre
narzdzia s na tyle inteligentne, e utrzymuj synchronizacj pomidzy modelem
i baz danych i zapewniaj aktualizacj tej drugiej, jak tylko pojawi si jakie zmiany
w modelu. Wszystkie te funkcje s z pewnoci przyjemne i poyteczne. Jednake
adna z nich nie jest niezbdna przy omawianiu koncepcji modelowania baz danych
i nauce zapisu.
I na koniec pamitaj wany jest skrzypek, a nie skrzypce!

Gdy uruchomisz Visio, zostaniesz przywitany oknem dialogowym przedstawiajcym


moliwe do wykorzystania szablony (rysunek 3.2).

Cz II Projektowanie i budowanie pierwszej bazy danych

58
Rysunek 3.2.
Visio umoliwia
tworzenie wielu
typw rysunkw
technicznych,
wcznie
ze schematami
modeli baz danych

Po wybraniu folderu Database zobaczysz 5 szablonw (rysunek 3.3). Do zaprojektowania naszej przykadowej bazy danych wykorzystamy szablon Crows Foot ERD.VST.
Skrt ERD oznacza Entity Relationship Diagram, czyli Diagram Relacji Pomidzy
Jednostkami (encjami).
Rysunek 3.3.
Do Visio
doczonych jest
pi szablonw
pomocnych przy
projektowaniu
baz danych.
Najczciej uywanym
spord nich
jest szablon
Crows Foot ERD

Po otwarciu szablonu Crows Foot zobaczysz powierzchni projektow Visio. Gwne


okno projektanta Visio przedstawione zostao na rysunku 3.4.

Rozdzia 3. Wprowadzenie do projektowania baz danych

59

Rysunek 3.4.
Powierzchnia
projektowa Visio
wyglda na pocztku
jak czysta kartka
papieru. Dostpnych
jest wiele paskw
narzdziowych,
ktre umoliwiaj
tworzenie dowolnych
ksztatw i pozwalaj
kontrolowa wszystkie
ich atrybuty

Majc pust powierzchni projektow, jeste gotowy do utworzenia swojego pierwszego


rysunku. Proces ten polega najczciej na przeciganiu symboli projektowych z paska
narzdziowego Design Symbol na powierzchni projektow. Patrzc na proces jako
cao, poszczeglne kroki tworzenia modelu bazy danych mona zapisa w nastpujcej kolejnoci:
1. Umie encj na powierzchni projektowej.
2. Okrel odpowiednie atrybuty danej encji (nazw, pola i klucze).
3. Zdefiniuj relacje pomidzy poszczeglnymi encjami.

Aby lepiej wyobrazi sobie krok pierwszy i drugi, spjrz na rysunek 3.5. Pokazana jest
na nim encja  z jednym zdefiniowanym polem. Pole to,  
, zdefiniowane jest jako klucz podstawowy dla tej encji. Niedugo pojawi si rwnie inne pola.
Jednake zagadnienie, jakie pola naley umieci w poszczeglnych encjach, omwione zostanie w rozdziale 4.
Powimy chwil na przypomnienie pewnych istotnych koncepcji. Jakkolwiek zagadnienie doboru odpowiednich pl w encji zostao odoone do nastpnego rozdziau,
niektre pola musz zosta dodane do jednostek ju na samym pocztku. Pola te
suy bd do obsugi rnorodnych relacji, ktre istniej pomidzy encjami. Mowa
tu o kluczach podstawowych i kluczach obcych. Koncepcja tych kluczy zostaa przedstawiona w rozdziale 1. Wstp do baz danych, a zilustrowana w rozdziale 2. Jeli
potrzebujesz przypomnie sobie to zagadnienie, powi teraz na to kilka minut
i wr do wczeniejszych rozdziaw.

Cz II Projektowanie i budowanie pierwszej bazy danych

60
Rysunek 3.5.
Klient posiada dwa
atrybuty: nazw
jednostki (encji)
i pole klucza
podstawowego

Teraz, gdy ju wiesz, jak w Visio przedstawiona jest jednostka, czas na zaznajomienie
si z jej notacj (rysunek 3.5).
Typ utworzonego schematu nazywa si diagramem relacji pomidzy jednostkami (ERD).
Jednostka w ERD zbudowana jest z prostokta, nazwy jednostki oraz listy pl. Widzisz
wic, e nie potrzebujesz jakiego specjalnego narzdzia projektowego, aby tworzy
schematy. Jak si jednak niebawem przekonasz, posiadanie takiego narzdzia znacznie
uatwia realizacj okrelonego zadania.
Tworzenie jednostek w Visio jest banalnie proste. Ponisze kroki poprowadz Ci przez
proces tworzenia jednostek

i  

:
1. Z paska narzdziowego Design Symbol wybierz symbol jednostki.
2. Trzymajc wcinity lewy przycisk myszy, przecignij ten symbol

na powierzchni projektow.
3. Po ustawieniu symboli w danym miejscu zwolnij przycisk myszy.

Na powierzchni projektowej utworzona zostanie nowa jednostka.


4. Wybierz utworzon jednostk klikajc na niej mysz, po czym wcinij Ctrl+C,

co spowoduje skopiowanie jednostki do schowka.


5. Nacinij Ctrl+V, aby wstawi ze schowka jednostk na powierzchni projektow.

Po ustawieniu wszystkich jednostek na powierzchni powinna ona wyglda tak,


jak na rysunku 3.6.
6. Wybierz rodkow jednostk, kliknij j prawym przyciskiem myszy, a nastpnie
z menu podrcznego wybierz Add Attributes. Wpisz nazw


i nacinij przycisk OK. Na rysunku 3.7 przedstawiono pierwsz zakadk okna


dialogowego Define Entity (definiuj jednostk).

Rozdzia 3. Wprowadzenie do projektowania baz danych


Rysunek 3.6.
Dwie puste jednostki
na powierzchni
projektowej
reprezentowa bd
encje Zamwienia
i ElementyZamwienia

Rysunek 3.7.
Zakadka General
(oglne) okna
dialogowego Define
Enity (definiuj
jednostk) pozwala
na okrelenie nazwy
jednostki, jak rwnie
innych atrybutw
dotyczcych
wszystkich jednostek
na schemacie

7. Powtrz krok 6. dla prawej jednostki, nadajc jej nazw  

.
8. Kliknij ponownie jednostk

, wykonaj krok 6., wybierajc zakadk

Attributes (atrybuty) w oknie dialogowym Define Entity.


9. Kliknij przycisk New, aby utworzy nowe pole. Nazwij je 

,
zdefiniuj, e ma by kluczem podstawowym i typu . Na rysunku 3.8

zostao pokazane, jak powinno wyglda okno dialogowe.


10. Powtrz krok 9. dla jednostki  

, dodajc pole o nazwie
 

. Twj schemat powinien wyglda tak, jak na

rysunku 3.9.

61

Cz II Projektowanie i budowanie pierwszej bazy danych

62
Rysunek 3.8.
Zakadka Attributes
okna Define Entity
pozwala na
zdefiniowanie
w jednostce pl
i odpowiadajcym
im atrybutw

Rysunek 3.9.
Przykadowy ERD
z trzema jednostkami,
z ktrych kada
posiada zdefiniowany
klucz podstawowy

W tym momencie rozpoczyna si prawdziwa zabawa. Teraz zobaczysz, na czym tak


naprawd polega sia zautomatyzowanego narzdzia projektowego. Majc utworzone
jednostki i klucze podstawowe na waciwych miejscach, moesz utworzy relacje
pomidzy poszczeglnymi jednostkami. Tworzenie ich jest tak samo proste jak tworzenie jednostek, o ile bdziesz postpowa zgodnie z nastpujcymi zaleceniami:
1. Wybierz symbol Relationship (relacja) z paska narzdziowego Design Symbol.
2. Przecignij symbol relacji nad powierzchni projektow. Zanim zwolnisz lewy

przycisk myszy, upewnij si, e lewy koniec linii relacji dotyka jednego
z niebieskich znacznikw znajdujcych si na obrzeach jednostki .
Na potwierdzenie poprawnego wykonania tej operacji, po zaznaczeniu linii
relacji, lewy jej koniec powinien mie kolor czerwony (rysunek 3.10).

Rozdzia 3. Wprowadzenie do projektowania baz danych

63

Rysunek 3.10.
Aby zautomatyzowane
zadania wykonay si
poprawnie, istotne
jest, aby kada
ze stron relacji
dotykaa niebieskiego
znacznika jednostki

3. Nastpnym krokiem jest doczenie prawego koca linii relacji do jednostki




. W tym celu kliknij prawy koniec linii relacji i przecignij go do
jednego z niebieskich znacznikw jednostki

. Twj schemat powinien

teraz wyglda podobnie do przedstawionego na rysunku 3.11. Aby rysunek


by czytelniejszy, widok schematu zosta powikszony do 150%.
Rysunek 3.11.
Linia relacji czy
jednostk Klient
z jednostk
Zamwienia

4. Powtrz krok 3. dla relacji pomidzy jednostk



a  

.

Moesz spyta: A gdzie jest ta automatyzacja?. Jak dotychczas, wszystko wykonywae samodzielnie! Koniec czekania zatem, czas zobaczy rezultaty pracy.
Z menu Tools wybierz Database Design, Update Foreign Keys.Voila! Na podstawie
relacji uruchomione narzdzie rozpoznao klucze obce, ktre musiay zosta zdefiniowane. Na przykad, aby jednostka

moga obsuy klucz obcy IDklienta,
musiao zosta zdefiniowane pole  
. Jak zobaczysz w nastpnym rozdziale,
to, czy zdecydujesz si mie jakie pola w tej czy innej jednostce, jest opcjonalne, ale
pola na tym poziomie nie s opcjonalne. To jest wanie powd, dla ktrego s one
omawiane w tej czci rozdziau. Mwic krtko, jeli nie posiadasz kluczy obcych,
nie moesz mie rwnie relacji. Relacje, jakby na to nie patrze, stanowi serce relacyjnej bazy danych.

Cz II Projektowanie i budowanie pierwszej bazy danych

64

Jeli powysze kroki wykonae poprawnie, twj schemat powinien wyglda tak, jak
na rysunku 3.12.
Rysunek 3.12.
Model tworzonej
bazy danych
posiadajcy
jednostki, klucze
obce oraz relacje

Stosowana przez nas notacja to Crow's foot, czyli po polsku kurza stopa. Moe
si zastanawiasz, skd jej autor wzi tak staromodnie brzmic nazw? Rysunek
3.13 jest odpowiedzi na to pytanie.
Rysunek 3.13.
Kurza stopa
ilustruje mnog
stron notacji,
podczas gdy pionowa
linia stanowi
oznaczenie dla strony
pojedynczej

Rozdzia 3. Wprowadzenie do projektowania baz danych

65

Tworzenie fizycznej bazy danych


na podstawie modelu logicznego
Automatyczne narzdzie na niewiele si przyda, jeli nie dostarczymy mu logicznego
modelu bazy danych planu bazy na ktrego podstawie utworzona zostanie fizyczna
baza danych. W tym wanie miejscu spotykaj si dwa wiaty projektowania,
a nastpnie implementowania bazy danych. Pracujc z modelami, dostajesz szans wizualizacji koncepcji i idei przed kocow implementacj. Proces ten umoliwia wczeniejsze sprawdzenie, czy wszystko jest w porzdku i jest o wiele bardziej wydajny ni
korzystanie z metody prb i bdw na fizycznej bazie danych.
Visio oraz inne narzdzia projektowe umoliwiaj utworzenie fizycznej bazy danych
na podstawie modelu logicznego. W przypadku Visio mona stworzy baz danych
Access, przy czym proces ten jest prosty do wykonania dziki wbudowanemu kreatorowi.
Aby uruchomi kreatora bazy danych, z menu Tools wybierz Macro/Database/Create
Database Wizard.
Upewnij si, e w modelu logicznym nie wystpuj adne bdy ERD. Np. niepoczona
relacja spowoduje wystpienie takiego bdu. Jeli model posiada bdy, utworzona
na jego podstawie baza danych rwnie bdzie je zawiera. Przed utworzeniem fizycznej bazy danych upewnij si wic, e przeprowadzie aktualizacj kluczy obcych.

Po wykonaniu wszystkich krokw kreatora bazy danych utworzona zostanie baza


Accessa. Poszczeglne atrybuty zdefiniowane w modelu zostay przeniesione do fizycznej bazy danych. Na rysunku 3.14 wida kocowy wynik dziaania kreatora.
Rysunek 3.14.
Kreator bazy danych
skorzysta z modelu
utworzonego przez
nas w tym rozdziale
i utworzy fizyczn
baz danych
programu Access

Cz II Projektowanie i budowanie pierwszej bazy danych

66

Tworzenie modelu bazy


na podstawie fizycznej bazy danych
A co w sytuacji, kiedy chcielibymy przeprowadzi proces odwrotny z fizycznej
bazy danych utworzy model? Na szczcie Visio posiada opcj, ktra pobiera fizyczn
baz i po analizie tworzy jej model.
Aby zaimportowa do Visio baz danych, wykonaj nastpujce czynnoci:
1. Z menu File wybierz New/Database/Map Database Wizard.
2. Wska lokalizacj wczeniej utworzonej bazy danych.
3. Wybierz Map all entities, czyli mapowanie wszystkich jednostek.
4. Utwrz schemat Crow's Foot, pozostawiajc opcj Layout bez zmian.
5. Wybierz Show all attributes i Show foreign keys, czyli Poka wszystkie atrybuty

i Poka klucze obce. Pozostae opcje pozostaw bez zmian.


6. Podaj tytu i opis schematu bazy danych.
7. Kliknij przycisk Finish.

Na rysunku 3.15 pokazano, jak powinien wyglda wynikowy model utworzony w Visio.
Rysunek 3.15.
Kreator Map
Database Wizard
umoliwia utworzenie
modelu bazy
na podstawie
fizycznej bazy danych

Rozdzia 3. Wprowadzenie do projektowania baz danych

67

Tworzenie modelu bazy danych


Czas Pracy i Fakturowanie
Teraz, kiedy masz ju pojcie, czym jest modelowanie baz danych, moesz wykorzysta
poznane techniki w swoim obecnym projekcie bazie danych Czas Pracy i Fakturowanie. Analizujc wczeniej dokumentacj firmy i przeprowadzajc wywiad z jej
pracownikami, zidentyfikowae nastpujce jednostki:
 ,
 
 ,
 

(pamitajmy, e tworzymy baz danych dla firmy prawniczej),
 

,
 

.

Analiza wykazaa, e potrzebne s oprcz jednostek nastpujce relacje:


 Klienci mog mie jedn lub wicej spraw.
 Klienci mog mie jedn lub wicej faktur.
 Zamwienia tworzone s na podstawie jednego lub wielu rekordw


.
 Czas jest przydzielany do sprawy.
 Pracownicy przydzielaj czas do sprawy.*

Rysunek 3.16 przedstawia model bazy na podstawie dotychczas ustalonych szczegw. Jak wkrtce zobaczysz, istnieje w niej kilka niedocigni, ktre bdziemy musieli
poprawi.

Edycja tekstu
Czy zauwaye tabelk na schemacie z rysunku 3.16 zawierajc informacj o tym
schemacie? Tabelka ta nosi nazw Database title, czyli tytu bazy danych, i mona
j znale w pasku narzdziowym Design Symbol. Po umieszczeniu tytuu bazy danych
na powierzchni projektowej kady blok z tekstem moe by poddawany edycji zgodnie z poniszymi krokami:
1. Kliknij tytu bazy danych zaznaczona zostanie caa tabelka. Ramka otaczajca

krawd tabelki bdzie koloru zielonego.


2. Po zaznaczeniu caej tabelki masz moliwo zaznaczania poszczeglnych

bokw tekstu, klikajc mysz na wybranym bloku. Zaznaczony blok tekstu


bdzie posiada szare obramowanie.
3. Nacinij klawisz F2. Tekst wewntrz wybranej ramki zostanie podwietlony

i bdzie moliwa jego edycja.

Cz II Projektowanie i budowanie pierwszej bazy danych

68
Rysunek 3.16.
Wersja pierwsza
modelu bazy
Czas Pracy
i Fakturowanie
skada si z piciu
jednostek

Doskonalenie projektu
W chwili obecnej nasz projekt wyglda cakiem niele. Czy jest ju kompletny? Biorc
pod uwag, e to dopiero pierwsze podejcie, odpowied na to pytanie najprawdopodobniej jest negatywna. Nasz przypadek nie jest tu wyjtkiem. Zwrcie uwag na
relacj pit, Pracownicy przydzielaj czas do sprawy, oznaczon gwiazdk? Mimo
e na pierwszy rzut oka moe nie wyglda na niejasn, to w rzeczywistoci tak jest.
Przyjrzyjmy si jej zatem bliej.
Przypumy, e w trakcie przeprowadzania wywiadw odkrye, e pracownik musi
by przypisany do sprawy, zanim moe on przydzieli tej sprawie okrelony czas. Czy
aktualny projekt bazy posiada bezporedni relacj pomidzy sprawami a pracownikami? Nie posiada, istnieje natomiast relacja niebezporednia. Z encji 

mona
znale pracownikw, ktrzy przydzielili sprawie czas, przechodzc przez jednostk


. Tak dugo jak wszyscy pracownicy skojarzeni z dan spraw
przypisali do niej czas, moesz znale wszystkich pracownikw skojarzonych z t
spraw. A co wwczas, gdy bdziesz potrzebowa utworzy list wszystkich pracownikw skojarzonych ze spraw, a wiesz, e niektrzy z pracownikw pracujcych nad
t spraw nie przydzielili do niej czasu? Krtko mwic, w chwili obecnej nie masz
moliwoci utworzenia takiej listy.
Wane jest, aby podkreli, e pewne relacje pomidzy jednostkami musz by zdefiniowane bez wzgldu na to, czy istniej lub nie okrelone wymagania dotyczce danych.
Innymi sowy, nawet jeli pracownik nie przydzieli czasu do sprawy, pracownik ten
musi pojawi si na licie pracownikw dla danej sprawy. Na rysunku 3.17 pokazany
jest udoskonalony model.

Rozdzia 3. Wprowadzenie do projektowania baz danych

69

Rysunek 3.17.
Wersja druga bazy
Czas Pracy
i Fakturowanie
obsuguje
bezporedni relacj
pomidzy
pracownikami
a sprawami

Czy widzisz kolejny problem? Bazujc na aktualnym modelu, w momencie przydzielania


spraw do pracownikw mamy nastpujc sytuacj: za kadym razem, kiedy pracownik jest kojarzony z now spraw, musi zosta utworzony nowy rekord dla tego pracownika. W wyniku tego otrzymujemy zdublowane rekordy pracownika. Nie potrzeba
wiele czasu, aby w takiej sytuacji baza danych zostaa zapeniona nadmiarowymi danymi.
Gdy nadejdzie czas tworzenia kwerend i raportw, zadania te oka si bardzo trudne.
Co si stanie, jeli pracownik zmieni swoje nazwisko, a zwizany jest z 10 sprawami?
10 rnych rekordw bdzie musiao zosta zmodyfikowanych. Masz ju wystarczajc wiedz o relacyjnych bazach danych, aby stwierdzi, e taki scenariusz jest niedopuszczalny. Jednym z gwnych celw projektowania relacyjnych baz danych jest
osignicie spjnoci danych poprzez redukcj ich nadmiarowoci. Tak wic co powiesz
o rozwizaniu tego problemu?
Przypominasz sobie z drugiego rozdziau dyskusj na temat relacji wiele-do-wielu?
Omawiany przypadek idealnie pasuje do tego typu relacji. Pracownicy mog by przydzielani do wicej ni jednej sprawy, a sprawy mog posiada wicej ni jednego
pracownika. W rozdziale 2. zobaczye, e utworzenie relacji wiele-do-wielu moliwe
jest z wykorzystaniem dwch relacji jeden-do-wielu. Aby rozwiza nasz problem, do
modelu musi zosta dodana nowa tabela, zwana tabel skrzyowa. Tabele skrzyowa
s rwnie nazywane tabelami relacji wiele-do-wielu ich nazwa nie jest jednak tyle
istotna, co funkcje, ktre peni. Tabele skrzyowa pozwalaj na atwiejsze utrzymanie
spjnoci danych poprzez zmniejszenie ich nadmiarowoci. Na rysunku 3.18 pokazana
zostaa trzecia wersja modelu bazy danych, zawierajca tabel skrzyowa oraz zmodyfikowane relacje pomidzy jednostkami 

i 
 .
Wci jednak jest przed nami troch pracy, zanim bdziemy mogli uwaa nasz pierwszy
szkic projektu bazy za kompletny. Podczas dalszej analizy zauwaysz, e ze spraw
mogoby by skojarzonych wielu klientw. Wwczas jednak moliwo zwizania

Cz II Projektowanie i budowanie pierwszej bazy danych

70
Rysunek 3.18.
Wersja 3. modelu
bazy Czas Pracy
i Fakturowanie
udostpnia relacj
wiele-do- wielu
pomidzy sprawami
i pracownikami

rekordu 

 jedynie ze spraw, pracownikiem i faktur nie byaby
wystarczajca. Oczywiste jest, e rekord 

 musi czy jedn spraw, jedn faktur i jednego pracownika jednak ze wzgldu na to, e chcemy,
aby wielu klientw mogo by przypisanych do jednej sprawy do encji 


 musimy doda  
jako klucz obcy. Spjrz na rysunek 3.19, na ktrym pokazana jest pierwsza kompletna wersja bazy danych Czas Pracy i Fakturowanie.
Rysunek 3.19.
Wersja czwarta bazy
Czas Pracy
i Fakturowanie
jest pierwszym
kompletnym szkicem
modelu bazy

Rozdzia 3. Wprowadzenie do projektowania baz danych

71

Podsumowanie
W rzeczywistym scenariuszu zauwaysz zapewne, e aby uzyska wstpny projekt,
naley wykonawiele krokw. Czas potrzebny na stworzenie konkretnego projektu
zaley od stopnia szczegowoci przeprowadzanej analizy oraz od czstotliwoci,
z jak poszukujesz informacji od uytkownikw tworzonej bazy danych. Ze wszystkich
posiadanych rde informacji wymagania dotyczce raportw mog by najcenniejsze,
gdy moesz je wykorzysta i na ich podstawie utworzy encje w bazie, dziki ktrym
te raporty bd mogy by utworzone. Oczywicie inne rda informacji wywiady
i istniejce systemy rwnie s istotne. W jakim stopniu bdziesz polega na poszczeglnych rdach to zaley od konkretnej sytuacji, w jakiej si znajdziesz.
Wynikiem analizy wstpnej jest utworzenie modelu bazy danych. Najpopularniejsz
i najatwiejsz do zrozumienia technik modelowania jest Diagram Relacji Pomidzy
Relacjami (ERD). Narzdzia takie jak Visio pozwalaj na zautomatyzowanie procesu
tworzenia logicznych modeli baz danych oraz tworzenia na ich podstawie fizycznych baz.
Na ERD skadaj si: encje, waciwoci encji oraz relacje wystpujce pomidzy nimi.
Jeli mielibymy sformuowa jeden najwaniejszy wniosek, brzmiaby on: nie zagbiaj si w detale zbyt szybko. Rozdzia ten nie wyjania szczegw pl informacyjnych, jakie posiada kada jednostka. Dlaczego? Poniewa w tej chwili nie ma potrzeby uzyskania solidnego projektu wstpnego bazy. Zagbienie si na tym poziomie
w szczegy mogoby w rzeczywistoci szybko okaza si rdem problemw. Czy
zawarto jednostek ulegaby zmianie, gdyby dokadnie zna przeznaczenie wszystkich
pl w tych jednostkach? Najprawdopodobniej tak. Jednak tak ma by: w tej chwili
bowiem jestemy na etapie podstawowego projektowania.
Pamitasz powiedzenie Bd cierpliwy? A slogan reklamowy: Nie sprzedajemy wina,
zanim bdzie na to gotowe?
W kolejnym rozdziale wprowadzimy nasz projekt w kolejn faz podejmiemy si
normalizacji tworzonej bazy. Na koniec rozdziau 4. projekt bazy Czas Pracy i Fakturowanie bdzie zakoczony.

You might also like