John Petersen Wprowadzenie Do Baz Danych Full Version
-
Upload
norbert-piatek -
Category
Documents
-
view
24 -
download
0
Transcript of John Petersen Wprowadzenie Do Baz Danych Full Version
-
Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: [email protected]
PRZYKADOWY ROZDZIAPRZYKADOWY ROZDZIA
IDZ DOIDZ DO
ZAMW DRUKOWANY KATALOGZAMW DRUKOWANY KATALOG
KATALOG KSIEKKATALOG KSIEK
TWJ KOSZYKTWJ KOSZYK
CENNIK I INFORMACJECENNIK I INFORMACJE
ZAMW INFORMACJEO NOWOCIACH
ZAMW INFORMACJEO NOWOCIACH
ZAMW CENNIKZAMW CENNIK
CZYTELNIACZYTELNIA
FRAGMENTY KSIEK ONLINEFRAGMENTY KSIEK ONLINE
SPIS TRECISPIS TRECI
DODAJ DO KOSZYKADODAJ DO KOSZYKA
KATALOG ONLINEKATALOG ONLINE
Wprowadzeniedo baz danychAutor: John Petersen
Tumaczenie: Krzysztof Jurczyk
ISBN: 83-7197-815-4
Tytu oryginau: ABG to Databases
Format: B5, stron: 272
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
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........................................................... 17Co to jest baza danych?...........................................................................................18Do czego uywa si baz danych? .............................................................................19Typowe systemy zarzdzajce bazami danych uywane obecnie .................................20Podstawowa terminologia baz danych.......................................................................21
Baza danych.....................................................................................................21Tabele i encje ...................................................................................................21Pola, kolumny i atrybuty....................................................................................21Normalizacja ....................................................................................................22Wiersze i rekordy..............................................................................................22Klucz podstawowy............................................................................................22
Model relacyjnej bazy danych: wstp........................................................................22Miejsca pracy zwizane z bazami danych..................................................................26
Administrator bazy danych ................................................................................26Programista aplikacji baz danych........................................................................26Analityk baz danych..........................................................................................27
Podsumowanie .......................................................................................................27
Rozdzia 2. Budowa bazy danych........................................................................ 29Wprowadzenie do Microsoft Access .........................................................................29Przykadowa baza danych Northwind .......................................................................31
Relacje w bazie danych .....................................................................................31Przegld komponentw bazy danych ..................................................................35
Podsumowanie .......................................................................................................47
Cz II Projektowanie i budowanie pierwszej bazy danych........... 49
Rozdzia 3. Wprowadzenie do projektowania baz danych..................................... 51Twj projekt: Baza danych Czas Pracy i Fakturowanie .................................................52Okrelenie wymaga stawianych bazie danych..........................................................52
Wywiady..........................................................................................................53Dokumentacja firmy..........................................................................................54Istniejce systemy.............................................................................................55
-
6 Wprowadzenie do baz danych
Wstp do modelowania baz danych..........................................................................55Jak wyglda model bazy danych? .......................................................................56Tworzymy pierwszy model ................................................................................57Tworzenie fizycznej bazy danych na podstawie modelu logicznego.......................65Tworzenie modelu bazy na podstawie fizycznej bazy danych................................66
Tworzenie modelu bazy danych Czas Pracy i Fakturowanie........................................67Edycja tekstu....................................................................................................67Doskonalenie projektu.......................................................................................68
Podsumowanie .......................................................................................................71
Rozdzia 4. Cig dalszy tworzenia bazy danych: wstp do normalizacji................. 73Normalizacja bazy danych.......................................................................................74Czynnoci prowadzce do normalizacji Twojego modelu danych................................75
Pierwsza posta normalna: eliminacja powtarzajcych si grup .............................75Druga posta normalna: eliminowanie zbdnych danych ......................................77Trzecia posta normalna: eliminacja kolumn niezalenych od kluczy.....................81Czwarta i pita posta normalna .........................................................................83Normalizacja: ostatnie sowo..............................................................................84
Denormalizacja danych kiedy jest sens ama reguy?............................................85Normalizacja w praktyce przegld bazy Czas Pracy i Fakturowanie.Doskonalenie projektu.............................................................................................86
Okrelenie nowych kolumn i tabel ......................................................................86Przegld bazy danych Czas Pracy i Fakturowanie ................................................94
Podsumowanie .......................................................................................................94
Rozdzia 5. Tworzenie bazy Czas Pracy i Fakturowanie w Microsoft Access .......... 97Automatyczne generowanie bazy na podstawie modelu bazyCzas Pracy i Fakturowanie.......................................................................................98Krtki opis projektanta bazy danych w Accessie......................................................101
Okno gwne bazy danych...............................................................................101Okno projektanta ............................................................................................104
Wykorzystanie projektanta do utworzenia bazy Czas Pracy i Fakturowanie................104Tworzenie bazy danych...................................................................................104Tworzenie tabel i kolumn.................................................................................107Tworzenie relacji ............................................................................................113
Podsumowanie .....................................................................................................116
Cz III Utrzymanie bazy danych wprowadzeniedo integralnoci baz danych .......................................... 117
Rozdzia 6. Utrzymanie integralnoci poprzez zastosowanieregu poprawnoci danych.............................................................. 119Wstp do regu poprawnoci w bazach danych ........................................................120Implementacja zasad na poziomie pola ...................................................................120
Waciwoci pl..............................................................................................121Implementacja regu na poziomie wiersza ...............................................................136
Waciwoci na poziomie wierszy.....................................................................136Podsumowanie .....................................................................................................138
Rozdzia 7. Podstawy integralnoci referencyjnej.............................................. 139Co to jest integralno referencyjna ........................................................................139Dlaczego utrzymywanie integralnoci referencyjnej jest wane.................................140
-
Spis treci 7
Jak dziaa integralno referencyjna........................................................................141Okrelanie 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 ..................................................................... 149Co to jest SQL?....................................................................................................149
Interaktywna praca z SQL w Accessie...............................................................150Podjzyki SQL DDL i DCL ........................................................................151
Instrukcja Select ...................................................................................................153Wybieranie okrelonych pl.............................................................................154Zmiana nazwy pola za pomoc klauzuli As .......................................................155czenie pl danych........................................................................................155Instrukcje Top n Select ....................................................................................157
Filtrowanie wynikw I: zastosowanie klauzuli Where ..............................................158Organizacja danych wynikowych I: zastosowanie klauzuli Order By.........................159
Zoone kolejnoci sortowania .........................................................................160czenie wielu tabel: zastosowanie instrukcji Join ...................................................162
Sprzenia wewntrzne ...................................................................................163Sprzenia zewntrzne lewostronne ..................................................................166Sprzenia zewntrzne prawostronne i cakowite ...............................................167
czenie wielu danych wynikowych: zastosowanie instrukcji Union .........................168Podsumowanie .....................................................................................................170
Rozdzia 9. SQL zaawansowane techniki programowania .............................. 171Organizacja danych wynikowych II: zastosowanie klauzuli Group By.......................172Uywanie funkcji agregacji....................................................................................173
Funkcja Count()..............................................................................................173Operacje zaawansowane: metodologia zoenia wszystkiego w jedn cao ........174Funkcja Sum()................................................................................................178Funkcja Avg().................................................................................................183Funkcje Min() i Max() .....................................................................................184
Filtrowanie wynikw II: zastosowanie klauzuli Having ............................................184Filtrowanie wynikw III: tworzenie instrukcji parametrycznych w SQL ....................185Modyfikacja danych za pomoc instrukcji Insert, Update i Delete .............................186
Instrukcja Insert..............................................................................................187Instrukcja Update............................................................................................188Instrukcja Delete.............................................................................................189
Podsumowanie .....................................................................................................190
Rozdzia 10. Kwerendy SQL jako cz bazy danych ........................................... 191Projektant kwerend w Accessie ..............................................................................192
Okrelanie pl w zestawie wynikowym.............................................................192Dodawanie kryteriw kwerendy .......................................................................194Pomijanie kolumn ...........................................................................................196Definiowanie kolejnoci sortowania..................................................................197Sortowanie wedug wielu pl ...........................................................................199Zapisywanie kwerendy....................................................................................199
Tworzenie zaawansowanych kwerend ....................................................................199Stosowanie podsumowa i funkcji agregacji......................................................201Kwerendy parametryczne ................................................................................203
Podsumowanie .....................................................................................................204
-
8 Wprowadzenie do baz danych
Cz V Uruchamianie bazy danych budowanieprostej aplikacji bazy danych w Accessie ...................... 207
Rozdzia 11. Wykorzystywanie komponentw do tworzenia formularzy................. 209Projektant formularzy w Accessie...........................................................................209Tworzenie formularzy dla aplikacji Czas Pracy i Fakturowanie.................................211
Klient.............................................................................................................211Formularz Pracownik ......................................................................................223
Tworzenie formularza Menu Gwne......................................................................225Podsumowanie .....................................................................................................227
Rozdzia 12. Dostarczanie uytecznych wydrukw:wstp do tworzenia i projektowania raportw ................................. 229Projektant raportw w Accessie..............................................................................230Tworzenie raportw dla aplikacji Czas Pracy i Fakturowanie....................................231
Lista klientw.................................................................................................231Modyfikacja raportu Lista Klientw za pomoc projektanta raportw..................235
Dodanie przycisku Raport do formularza Menu Gwne...........................................236Podsumowanie .....................................................................................................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 zbu-
dowa swoj wasn baz danych, musi ona zosta zaprojektowana. Zanim jednak
przystpisz do projektowania, musisz zrozumie, co chcesz przedstawi w swojej baziedanych. 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 udo-
skonali swoje zdolnoci analityczne i umiejtnoci budowania baz danych. Bazy danychnigdy 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 stwo-
rzy 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 skompliko-
wanych teorii. Nie oznacza to bynajmniej, e teorie projektowania w wiecie baz danychs bezuyteczne nie s. Jednake w ksice dla pocztkujcych okoo dwie trzecieteorii 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 danychCzas Pracy i Fakturowanie
Zostae zatrudniony przez firm prawnicz Nowak&Nowak do stworzenia systemurejestracji 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 czinformacji, mona znale kolejn, potem nastpn itd. By moe najwaniejszymielementami informacji, ktre moesz zdoby na pocztku projektowania, s jak i gdzie
mona znale informacje niezbdne do stworzenia bazy danych. Zagadnienie to jesttematem kolejnego podrozdziau.
Okrelenie wymagastawianych bazie danych
Jak sprawnie i waciwie podj decyzje zwizane z okreleniem wymaga, jakie maspenia nowa baza danych? Kluczem do tego jest wiedza na temat, gdzie szuka przy-
datnych informacji. Pomimo rnorodnej specyfiki firm rda informacji s zawszete same. Wraz z nabywaniem dowiadczenia w tworzeniu systemw bazodanowychzauwaysz, e proces gromadzenia informacji o wymaganiach jest w duym stopniu
powtarzalny. Wrd wielu rde informacji na ten temat do najczciej wykorzysty-wanych nale: wywiady, dokumentacja firmy oraz istniejce systemy.
-
Rozdzia 3. Wprowadzenie do projektowania baz danych 53
Wywiady
Przy wszechobecnej komputeryzacji to jednak wci ludzie podejmuj najwaniejszedecyzje. Nie naley wic nie docenia siy mwienia i co moe jest jeszcze bardziej
istotne suchania pracownikw firmy. Ludzie ci moe nie potrafi wyraa si sow-nictwem zwizanym z bazami danych, ale to jest wanie powd, dla ktrego Ty sipojawie 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 podej-mowaniu decyzji.
Ukadasz puzzle.
Podczas przeprowadzania wywiadw nie ograniczaj si wycznie do personeluzarzdzajcego i waniejszych osb. Kady poziom organizacji stanowi cz uka-
danki, ktra niezbdna jest do uoenia caoci puzzli. Kada jest jednakowo wana,poniewa bez wszystkich elementw nigdy nie otrzymasz caego obrazka. Z tegowzgldu, nie posiadajc wszystkich czci, nigdy nie zdobdziesz penego obrazumechanizmw 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 dziaaniafirmy na rynku, czy rozpocz bd zakoczy dan lini produktw lub czy dokonywa zmian per-sonalnych. 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. Jelidostae zadanie stworzenia bazy danych dla swojej firmy, musisz zna podstawowe zaoeniazawarte 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 krtszyokres 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. strate-giczn decyzj moe by zwikszenie obrotw w przecigu najbliszych dwch lat. Aby zapewniten wzrost, wymagania zwizane z przepywem gotwki w firmie musz wzrosn o 10%. Decyzjetaktyczne 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 sinapdow w kadej firmie. Bez nich nie jest moliwe podjcie jakichkolwiek decyzji. Aby podjtaktyczne decyzje wymienione powyej, baza danych musi dostarczy wymagane informacjew przejrzystym formacie. Poprzez wywiady moesz wiele dowiedzie si o firmie, jej zamierzeniach
i nadziejach, przez co bdziesz mg lepiej okreli wymagania, jakie ma spenia tworzonabaza danych.
-
54 Cz II Projektowanie i budowanie pierwszej bazy danych
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 le-
dzi 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 infor-
macje 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 zwr-
cenie uwagi, w jaki sposb wywiady i dokumentacja firmy wspgraj ze sob.
Wszystko to tworzy pewn sie jest ze sob cile poczone. Wywiady zapew-
niaj 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 zast-
pienie 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 istnie-
jce 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 poszcze-
glnymi 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 dokumen-
tw firmy by moe bdziesz chcia powrci do procesu przeprowadzania wywia-
dw z pracownikami w celu ustalenia dodatkowych szczegw zwizanych z wyma-
ganiami 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 ewolu-
cjom i zmianom. Dojdziesz jednak do pewnego miejsca, w ktrym bdziesz posia-
da wystarczajc ilo informacji niezbdn do rozpoczcia wstpnego projekto-
wania 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 kom-
plet niezbdnych do zaprojektowania bazy informacji. Wraz z nabywaniem dowiad-
czenia 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 powiza-
nych ze sob jednostek (encji) biznesowych. Zapytaj samego siebie, co jest atwiejsze
w analizie: zwyka lista nazw tabel czy diagram ilustrujcy tabele i relacje zachodzce
-
56 Cz II Projektowanie i budowanie pierwszej bazy danych
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 nato-
miast 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 kosztuj-
cego tysice zotych. No dobrze, moe przesadzam teraz. Jednak na pewno nie musisz zaci-
ga 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 pakietuMicrosoft 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 zwi-
zanych wykorzystane zostanie oprogramowanie Microsoft Visio.
-
Rozdzia 3. Wprowadzenie do projektowania baz danych 57
Rysunek 3.1.
Widok relacjipozwala przegldatabele zawartew bazie danychwraz z relacjamiwystpujcymimidzy 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 zautomaty-
zowane narzdzia mog uatwi wykonanie pewnych czynnoci, takich jak na przy-
kad 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).
-
58 Cz II Projektowanie i budowanie pierwszej bazy danych
Rysunek 3.2.Visio umoliwiatworzenie wielutypw rysunkwtechnicznych,wcznieze schematamimodeli baz danych
Po wybraniu folderu Database zobaczysz 5 szablonw (rysunek 3.3). Do zaprojekto-
wania 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 Visiodoczonych jestpi szablonwpomocnych przyprojektowaniubaz danych.Najczciej uywanymspord nichjest szablonCrows 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.Powierzchniaprojektowa Visiowyglda na pocztkujak czysta kartkapapieru. Dostpnychjest wiele paskwnarzdziowych,ktre umoliwiajtworzenie dowolnychksztatw i pozwalajkontrolowa wszystkieich 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 nastpu-
jcej 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, , zdefiniowa-
ne jest jako klucz podstawowy dla tej encji. Niedugo pojawi si rwnie inne pola.
Jednake zagadnienie, jakie pola naley umieci w poszczeglnych encjach, omwio-
ne zostanie w rozdziale 4.
Powimy chwil na przypomnienie pewnych istotnych koncepcji. Jakkolwiek zagad-
nienie doboru odpowiednich pl w encji zostao odoone do nastpnego rozdziau,
niektre pola musz zosta dodane do jednostek ju na samym pocztku. Pola tesuy bd do obsugi rnorodnych relacji, ktre istniej pomidzy encjami. Mowa
tu o kluczach podstawowych i kluczach obcych. Koncepcja tych kluczy zostaa przed-
stawiona 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.
-
60 Cz II Projektowanie i budowanie pierwszej bazy danych
Rysunek 3.5.Klient posiada dwaatrybuty: nazwjednostki (encji)i pole kluczapodstawowego
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. Widziszwic, e nie potrzebujesz jakiego specjalnego narzdzia projektowego, aby tworzy
schematy. Jak si jednak niebawem przekonasz, posiadanie takiego narzdzia znacznieuatwia realizacj okrelonego zadania.
Tworzenie jednostek w Visio jest banalnie proste. Ponisze kroki poprowadz Ci przezproces 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 61
Rysunek 3.6.
Dwie puste jednostkina powierzchniprojektowejreprezentowa bdencje Zamwieniai ElementyZamwienia
Rysunek 3.7.Zakadka General
(oglne) oknadialogowego DefineEnity (definiujjednostk) pozwalana okrelenie nazwyjednostki, jak rwnieinnych atrybutw
dotyczcychwszystkich jednostekna 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.
-
62 Cz II Projektowanie i budowanie pierwszej bazy danych
Rysunek 3.8.
Zakadka Attributesokna Define Entitypozwala nazdefiniowaniew jednostce pli odpowiadajcymim atrybutw
Rysunek 3.9.Przykadowy ERDz trzema jednostkami,z ktrych kadaposiada zdefiniowanyklucz podstawowy
W tym momencie rozpoczyna si prawdziwa zabawa. Teraz zobaczysz, na czym tak
naprawd polega sia zautomatyzowanego narzdzia projektowego. Majc utworzonejednostki i klucze podstawowe na waciwych miejscach, moesz utworzy relacje
pomidzy poszczeglnymi jednostkami. Tworzenie ich jest tak samo proste jak two-rzenie 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 zautomatyzowanezadania wykonay sipoprawnie, istotnejest, aby kadaze stron relacjidotykaa niebieskiegoznacznika 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 czyjednostk Klient
z jednostkZamwienia
4. Powtrz krok 3. dla relacji pomidzy jednostk a .
Moesz spyta: A gdzie jest ta automatyzacja?. Jak dotychczas, wszystko wykony-
wae 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 zdefinio-wane. 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 oneomawiane w tej czci rozdziau. Mwic krtko, jeli nie posiadasz kluczy obcych,
nie moesz mie rwnie relacji. Relacje, jakby na to nie patrze, stanowi serce rela-cyjnej bazy danych.
-
64 Cz II Projektowanie i budowanie pierwszej bazy danych
Jeli powysze kroki wykonae poprawnie, twj schemat powinien wyglda tak, jak
na rysunku 3.12.
Rysunek 3.12.Model tworzonejbazy danychposiadajcyjednostki, kluczeobce oraz relacje
Stosowana przez nas notacja to Crow's foot, czyli po polsku kurza stopa. Moesi zastanawiasz, skd jej autor wzi tak staromodnie brzmic nazw? Rysunek
3.13 jest odpowiedzi na to pytanie.
Rysunek 3.13.Kurza stopailustruje mnogstron notacji,podczas gdy pionowalinia stanowioznaczenie dla stronypojedynczej
-
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 wizu-
alizacji koncepcji i idei przed kocow implementacj. Proces ten umoliwia wczeniej-
sze 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 fizycz-
nej 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 fizycz-
nej bazy danych. Na rysunku 3.14 wida kocowy wynik dziaania kreatora.
Rysunek 3.14.Kreator bazy danychskorzysta z modelu
utworzonego przeznas w tym rozdzialei utworzy fizycznbaz danychprogramu Access
-
66 Cz II Projektowanie i budowanie pierwszej bazy danych
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 MapDatabase Wizardumoliwia utworzeniemodelu bazy
na podstawiefizycznej bazy danych
-
Rozdzia 3. Wprowadzenie do projektowania baz danych 67
Tworzenie modelu bazy danychCzas 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 Faktu-
rowanie. 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 szczeg-
w. 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 zgod-
nie 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.
-
68 Cz II Projektowanie i budowanie pierwszej bazy danych
Rysunek 3.16.Wersja pierwszamodelu bazyCzas Pracyi Fakturowanieskada si z piciujednostek
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 najprawdopo-
dobniej 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 pracowni-
kami? 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 pracow-
nikw 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 zdefi-
niowane 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 bazyCzas Pracyi Fakturowanieobsugujebezporedni relacjpomidzypracownikamia sprawami
Czy widzisz kolejny problem? Bazujc na aktualnym modelu, w momencie przydzielaniaspraw do pracownikw mamy nastpujc sytuacj: za kadym razem, kiedy pracow-
nik jest kojarzony z now spraw, musi zosta utworzony nowy rekord dla tego pra-cownika. 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 wystarcza-
jc wiedz o relacyjnych bazach danych, aby stwierdzi, e taki scenariusz jest nie-dopuszczalny. Jednym z gwnych celw projektowania relacyjnych baz danych jest
osignicie spjnoci danych poprzez redukcj ich nadmiarowoci. Tak wic co powieszo 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 przy-
dzielani do wicej ni jednej sprawy, a sprawy mog posiada wicej ni jednegopracownika. W rozdziale 2. zobaczye, e utworzenie relacji wiele-do-wielu moliwe
jest z wykorzystaniem dwch relacji jeden-do-wielu. Aby rozwiza nasz problem, domodelu 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 utrzymaniespjnoci danych poprzez zmniejszenie ich nadmiarowoci. Na rysunku 3.18 pokazana
zostaa trzecia wersja modelu bazy danych, zawierajca tabel skrzyowa oraz zmody-fikowane relacje pomidzy jednostkami i .
Wci jednak jest przed nami troch pracy, zanim bdziemy mogli uwaa nasz pierwszyszkic projektu bazy za kompletny. Podczas dalszej analizy zauwaysz, e ze spraw
mogoby by skojarzonych wielu klientw. Wwczas jednak moliwo zwizania
-
70 Cz II Projektowanie i budowanie pierwszej bazy danych
Rysunek 3.18.Wersja 3. modelubazy Czas Pracyi Fakturowanieudostpnia relacjwiele-do- wielupomidzy sprawamii pracownikami
rekordu jedynie ze spraw, pracownikiem i faktur nie byaby
wystarczajca. Oczywiste jest, e rekord musi czy jed-
n 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 kt-
rym pokazana jest pierwsza kompletna wersja bazy danych Czas Pracy i Fakturowanie.
Rysunek 3.19.Wersja czwarta bazyCzas Pracyi Fakturowaniejest pierwszymkompletnym szkicemmodelu 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 poszcze-
glnych 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 zag-
biaj si w detale zbyt szybko. Rozdzia ten nie wyjania szczegw pl informacyj-
nych, jakie posiada kada jednostka. Dlaczego? Poniewa w tej chwili nie ma potrze-
by 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 Faktu-
rowanie bdzie zakoczony.
-
6 Wprowadzenie do baz danych
Wstp do modelowania baz danych..........................................................................55Jak wyglda model bazy danych? .......................................................................56Tworzymy pierwszy model ................................................................................57Tworzenie fizycznej bazy danych na podstawie modelu logicznego.......................65Tworzenie modelu bazy na podstawie fizycznej bazy danych................................66
Tworzenie modelu bazy danych Czas Pracy i Fakturowanie........................................67Edycja tekstu....................................................................................................67Doskonalenie projektu.......................................................................................68
Podsumowanie .......................................................................................................71
Rozdzia 4. Cig dalszy tworzenia bazy danych: wstp do normalizacji................. 73Normalizacja bazy danych.......................................................................................74Czynnoci prowadzce do normalizacji Twojego modelu danych................................75
Pierwsza posta normalna: eliminacja powtarzajcych si grup .............................75Druga posta normalna: eliminowanie zbdnych danych ......................................77Trzecia posta normalna: eliminacja kolumn niezalenych od kluczy.....................81Czwarta i pita posta normalna .........................................................................83Normalizacja: ostatnie sowo..............................................................................84
Denormalizacja danych kiedy jest sens ama reguy?............................................85Normalizacja w praktyce przegld bazy Czas Pracy i Fakturowanie.Doskonalenie projektu.............................................................................................86
Okrelenie nowych kolumn i tabel ......................................................................86Przegld bazy danych Czas Pracy i Fakturowanie ................................................94
Podsumowanie .......................................................................................................94
Rozdzia 5. Tworzenie bazy Czas Pracy i Fakturowanie w Microsoft Access .......... 97Automatyczne generowanie bazy na podstawie modelu bazyCzas Pracy i Fakturowanie.......................................................................................98Krtki opis projektanta bazy danych w Accessie......................................................101
Okno gwne bazy danych...............................................................................101Okno projektanta ............................................................................................104
Wykorzystanie projektanta do utworzenia bazy Czas Pracy i Fakturowanie................104Tworzenie bazy danych...................................................................................104Tworzenie tabel i kolumn.................................................................................107Tworzenie relacji ............................................................................................113
Podsumowanie .....................................................................................................116
Cz III Utrzymanie bazy danych wprowadzeniedo integralnoci baz danych .......................................... 117
Rozdzia 6. Utrzymanie integralnoci poprzez zastosowanieregu poprawnoci danych.............................................................. 119Wstp do regu poprawnoci w bazach danych ........................................................120Implementacja zasad na poziomie pola ...................................................................120
Waciwoci pl..............................................................................................121Implementacja regu na poziomie wiersza ...............................................................136
Waciwoci na poziomie wierszy.....................................................................136Podsumowanie .....................................................................................................138
Rozdzia 7. Podstawy integralnoci referencyjnej.............................................. 139Co to jest integralno referencyjna ........................................................................139Dlaczego utrzymywanie integralnoci referencyjnej jest wane.................................140
-
Spis treci 7
Jak dziaa integralno referencyjna........................................................................141Okrelanie 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 ..................................................................... 149Co to jest SQL?....................................................................................................149
Interaktywna praca z SQL w Accessie...............................................................150Podjzyki SQL DDL i DCL ........................................................................151
Instrukcja Select ...................................................................................................153Wybieranie okrelonych pl.............................................................................154Zmiana nazwy pola za pomoc klauzuli As .......................................................155czenie pl danych........................................................................................155Instrukcje Top n Select ....................................................................................157
Filtrowanie wynikw I: zastosowanie klauzuli Where ..............................................158Organizacja danych wynikowych I: zastosowanie klauzuli Order By.........................159
Zoone kolejnoci sortowania .........................................................................160czenie wielu tabel: zastosowanie instrukcji Join ...................................................162
Sprzenia wewntrzne ...................................................................................163Sprzenia zewntrzne lewostronne ..................................................................166Sprzenia zewntrzne prawostronne i cakowite ...............................................167
czenie wielu danych wynikowych: zastosowanie instrukcji Union .........................168Podsumowanie .....................................................................................................170
Rozdzia 9. SQL zaawansowane techniki programowania .............................. 171Organizacja danych wynikowych II: zastosowanie klauzuli Group By.......................172Uywanie funkcji agregacji....................................................................................173
Funkcja Count()..............................................................................................173Operacje zaawansowane: metodologia zoenia wszystkiego w jedn cao ........174Funkcja Sum()................................................................................................178Funkcja Avg().................................................................................................183Funkcje Min() i Max() .....................................................................................184
Filtrowanie wynikw II: zastosowanie klauzuli Having ............................................184Filtrowanie wynikw III: tworzenie instrukcji parametrycznych w SQL ....................185Modyfikacja danych za pomoc instrukcji Insert, Update i Delete .............................186
Instrukcja Insert..............................................................................................187Instrukcja Update............................................................................................188Instrukcja Delete.............................................................................................189
Podsumowanie .....................................................................................................190
Rozdzia 10. Kwerendy SQL jako cz bazy danych ........................................... 191Projektant kwerend w Accessie ..............................................................................192
Okrelanie pl w zestawie wynikowym.............................................................192Dodawanie kryteriw kwerendy .......................................................................194Pomijanie kolumn ...........................................................................................196Definiowanie kolejnoci sortowania..................................................................197Sortowanie wedug wielu pl ...........................................................................199Zapisywanie kwerendy....................................................................................199
Tworzenie zaawansowanych kwerend ....................................................................199Stosowanie podsumowa i funkcji agregacji......................................................201Kwerendy parametryczne ................................................................................203
Podsumowanie .....................................................................................................204
-
8 Wprowadzenie do baz danych
Cz V Uruchamianie bazy danych budowanieprostej aplikacji bazy danych w Accessie ...................... 207
Rozdzia 11. Wykorzystywanie komponentw do tworzenia formularzy................. 209Projektant formularzy w Accessie...........................................................................209Tworzenie formularzy dla aplikacji Czas Pracy i Fakturowanie.................................211
Klient.............................................................................................................211Formularz Pracownik ......................................................................................223
Tworzenie formularza Menu Gwne......................................................................225Podsumowanie .....................................................................................................227
Rozdzia 12. Dostarczanie uytecznych wydrukw:wstp do tworzenia i projektowania raportw ................................. 229Projektant raportw w Accessie..............................................................................230Tworzenie raportw dla aplikacji Czas Pracy i Fakturowanie....................................231
Lista klientw.................................................................................................231Modyfikacja raportu Lista Klientw za pomoc projektanta raportw..................235
Dodanie przycisku Raport do formularza Menu Gwne...........................................236Podsumowanie .....................................................................................................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 zbu-
dowa swoj wasn baz danych, musi ona zosta zaprojektowana. Zanim jednak
przystpisz do projektowania, musisz zrozumie, co chcesz przedstawi w swojej baziedanych. 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 udo-
skonali swoje zdolnoci analityczne i umiejtnoci budowania baz danych. Bazy danychnigdy 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 stwo-
rzy 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 skompliko-
wanych teorii. Nie oznacza to bynajmniej, e teorie projektowania w wiecie baz danychs bezuyteczne nie s. Jednake w ksice dla pocztkujcych okoo dwie trzecieteorii 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 danychCzas Pracy i Fakturowanie
Zostae zatrudniony przez firm prawnicz Nowak&Nowak do stworzenia systemurejestracji 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 czinformacji, mona znale kolejn, potem nastpn itd. By moe najwaniejszymielementami informacji, ktre moesz zdoby na pocztku projektowania, s jak i gdzie
mona znale informacje niezbdne do stworzenia bazy danych. Zagadnienie to jesttematem kolejnego podrozdziau.
Okrelenie wymagastawianych bazie danych
Jak sprawnie i waciwie podj decyzje zwizane z okreleniem wymaga, jakie maspenia nowa baza danych? Kluczem do tego jest wiedza na temat, gdzie szuka przy-
datnych informacji. Pomimo rnorodnej specyfiki firm rda informacji s zawszete same. Wraz z nabywaniem dowiadczenia w tworzeniu systemw bazodanowychzauwaysz, e proces gromadzenia informacji o wymaganiach jest w duym stopniu
powtarzalny. Wrd wielu rde informacji na ten temat do najczciej wykorzysty-wanych nale: wywiady, dokumentacja firmy oraz istniejce systemy.
-
Rozdzia 3. Wprowadzenie do projektowania baz danych 53
Wywiady
Przy wszechobecnej komputeryzacji to jednak wci ludzie podejmuj najwaniejszedecyzje. Nie naley wic nie docenia siy mwienia i co moe jest jeszcze bardziej
istotne suchania pracownikw firmy. Ludzie ci moe nie potrafi wyraa si sow-nictwem zwizanym z bazami danych, ale to jest wanie powd, dla ktrego Ty sipojawie 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 podej-mowaniu decyzji.
Ukadasz puzzle.
Podczas przeprowadzania wywiadw nie ograniczaj si wycznie do personeluzarzdzajcego i waniejszych osb. Kady poziom organizacji stanowi cz uka-
danki, ktra niezbdna jest do uoenia caoci puzzli. Kada jest jednakowo wana,poniewa bez wszystkich elementw nigdy nie otrzymasz caego obrazka. Z tegowzgldu, nie posiadajc wszystkich czci, nigdy nie zdobdziesz penego obrazumechanizmw 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 dziaaniafirmy na rynku, czy rozpocz bd zakoczy dan lini produktw lub czy dokonywa zmian per-sonalnych. 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. Jelidostae zadanie stworzenia bazy danych dla swojej firmy, musisz zna podstawowe zaoeniazawarte 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 krtszyokres 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. strate-giczn decyzj moe by zwikszenie obrotw w przecigu najbliszych dwch lat. Aby zapewniten wzrost, wymagania zwizane z przepywem gotwki w firmie musz wzrosn o 10%. Decyzjetaktyczne 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 sinapdow w kadej firmie. Bez nich nie jest moliwe podjcie jakichkolwiek decyzji. Aby podjtaktyczne decyzje wymienione powyej, baza danych musi dostarczy wymagane informacjew przejrzystym formacie. Poprzez wywiady moesz wiele dowiedzie si o firmie, jej zamierzeniach
i nadziejach, przez co bdziesz mg lepiej okreli wymagania, jakie ma spenia tworzonabaza danych.
-
54 Cz II Projektowanie i budowanie pierwszej bazy danych
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 le-
dzi 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 infor-
macje 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 zwr-
cenie uwagi, w jaki sposb wywiady i dokumentacja firmy wspgraj ze sob.
Wszystko to tworzy pewn sie jest ze sob cile poczone. Wywiady zapew-
niaj 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 zast-
pienie 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 istnie-
jce 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 poszcze-
glnymi 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 dokumen-
tw firmy by moe bdziesz chcia powrci do procesu przeprowadzania wywia-
dw z pracownikami w celu ustalenia dodatkowych szczegw zwizanych z wyma-
ganiami 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 ewolu-
cjom i zmianom. Dojdziesz jednak do pewnego miejsca, w ktrym bdziesz posia-
da wystarczajc ilo informacji niezbdn do rozpoczcia wstpnego projekto-
wania 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 kom-
plet niezbdnych do zaprojektowania bazy informacji. Wraz z nabywaniem dowiad-
czenia 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 powiza-
nych ze sob jednostek (encji) biznesowych. Zapytaj samego siebie, co jest atwiejsze
w analizie: zwyka lista nazw tabel czy diagram ilustrujcy tabele i relacje zachodzce
-
56 Cz II Projektowanie i budowanie pierwszej bazy danych
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 nato-
miast 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 kosztuj-
cego tysice zotych. No dobrze, moe przesadzam teraz. Jednak na pewno nie musisz zaci-
ga 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 pakietuMicrosoft 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 zwi-
zanych wykorzystane zostanie oprogramowanie Microsoft Visio.
-
Rozdzia 3. Wprowadzenie do projektowania baz danych 57
Rysunek 3.1.
Widok relacjipozwala przegldatabele zawartew bazie danychwraz z relacjamiwystpujcymimidzy 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 zautomaty-
zowane narzdzia mog uatwi wykonanie pewnych czynnoci, takich jak na przy-
kad 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).
-
58 Cz II Projektowanie i budowanie pierwszej bazy danych
Rysunek 3.2.Visio umoliwiatworzenie wielutypw rysunkwtechnicznych,wcznieze schematamimodeli baz danych
Po wybraniu folderu Database zobaczysz 5 szablonw (rysunek 3.3). Do zaprojekto-
wania 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 Visiodoczonych jestpi szablonwpomocnych przyprojektowaniubaz danych.Najczciej uywanymspord nichjest szablonCrows 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.Powierzchniaprojektowa Visiowyglda na pocztkujak czysta kartkapapieru. Dostpnychjest wiele paskwnarzdziowych,ktre umoliwiajtworzenie dowolnychksztatw i pozwalajkontrolowa wszystkieich 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 nastpu-
jcej 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, , zdefiniowa-
ne jest jako klucz podstawowy dla tej encji. Niedugo pojawi si rwnie inne pola.
Jednake zagadnienie, jakie pola naley umieci w poszczeglnych encjach, omwio-
ne zostanie w rozdziale 4.
Powimy chwil na przypomnienie pewnych istotnych koncepcji. Jakkolwiek zagad-
nienie doboru odpowiednich pl w encji zostao odoone do nastpnego rozdziau,
niektre pola musz zosta dodane do jednostek ju na samym pocztku. Pola tesuy bd do obsugi rnorodnych relacji, ktre istniej pomidzy encjami. Mowa
tu o kluczach podstawowych i kluczach obcych. Koncepcja tych kluczy zostaa przed-
stawiona 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.
-
60 Cz II Projektowanie i budowanie pierwszej bazy danych
Rysunek 3.5.Klient posiada dwaatrybuty: nazwjednostki (encji)i pole kluczapodstawowego
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. Widziszwic, e nie potrzebujesz jakiego specjalnego narzdzia projektowego, aby tworzy
schematy. Jak si jednak niebawem przekonasz, posiadanie takiego narzdzia znacznieuatwia realizacj okrelonego zadania.
Tworzenie jednostek w Visio jest banalnie proste. Ponisze kroki poprowadz Ci przezproces 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 61
Rysunek 3.6.
Dwie puste jednostkina powierzchniprojektowejreprezentowa bdencje Z