Wprowadzenie do baz danych


IDZ DO
IDZ DO
PRZYKŁADOWY ROZDZIAŁ
PRZYKŁADOWY ROZDZIAŁ
Wprowadzenie
SPIS TRE CI
SPIS TRE CI
do baz danych
KATALOG KSIĄŻEK
KATALOG KSIĄŻEK
Autor: John Petersen
KATALOG ONLINE
KATALOG ONLINE Tłumaczenie: Krzysztof Jurczyk
ISBN: 83-7197-815-4
Tytuł oryginału: ABG to Databases
ZAMÓW DRUKOWANY KATALOG
ZAMÓW DRUKOWANY KATALOG
Format: B5, stron: 272
TWÓJ KOSZYK
TWÓJ KOSZYK
Każdy z nas na co dzień korzysta z relacyjnych baz danych, czasem nawet nie zdając
DODAJ DO KOSZYKA
DODAJ DO KOSZYKA
sobie z tego sprawy. Bazy danych zbierają to, co najcenniejsze w dzisiejszym wiecie:
informacje. Można je więc porównać do współczesnych skarbców.
CENNIK I INFORMACJE Zrozumienie zasad projektowania baz danych umożliwia pełne wykorzystanie
CENNIK I INFORMACJE
nowoczesnych aplikacji, niezbędnych w funkcjonowaniu niemal każdego
przedsiębiorstwa. Pozwala na dobrą organizację, sprawne zarządzania danymi
ZAMÓW INFORMACJE
ZAMÓW INFORMACJE
O NOWO CIACH
O NOWO CIACH
gromadzonymi przez poszczególne osoby.
 Wprowadzenie do baz danych to książka dla kogo , kto słyszał o bazach danych,
ZAMÓW CENNIK
ZAMÓW CENNIK
ale nigdy tak naprawdę nie dowiedział się, czym są, co zawierają, jak je projektować
i tworzyć. Książka napisana została z punktu widzenia osoby, której zadaniem jest
utworzenie pierwszego w życiu projektu bazy danych lub która po prostu chce zdobyć
CZYTELNIA
CZYTELNIA
wiedzę na ich temat.
Dzięki tej książce:
FRAGMENTY KSIĄŻEK ONLINE
FRAGMENTY KSIĄŻEK ONLINE
" Poznasz teorię baz danych, która pomoże zrozumieć ci,
w jaki sposób funkcjonują bazy danych
" Zrozumiesz różnicę pomiędzy analizą a projektowaniem bazy danych
oraz dowiesz się, w jaki sposób te dwie koncepcje ze sobą współistnieją
" Zrozumiesz potrzebę analizy podczas projektowania bazy danych
" Nauczysz się, jak na podstawie projektu zbudować fizyczną bazę danych
" Poznasz język programowania baz danych SQL
" Zrozumiesz znaczenie zarządzania bazami danych
" Nauczysz się budować aplikacje bazodanowe
Książka jest napisana prostym i przystępnym językiem, zrozumiałym zarówno dla
początkujących programistów, jak i dla osób bez do wiadczenia informatycznego.
Wydawnictwo Helion
Przykłady prezentowane w książce oparte są na popularnym Accessie. Je li jeste
ul. Chopina 6
osobą, która chce rozpocząć podróż po wiecie baz danych, ale nie wiesz, od czego
44-100 Gliwice
zacząć, ta książka jest wła nie dla Ciebie!
tel. (32)230-98-63
e-mail: helion@helion.pl
Spis treści
O Autorze .......................................................................................... 9
Wstęp ............................................................................................. 11
Część I Podstawy baz danych ...................................................... 15
Rozdział 1. Wprowadzenie do baz danych........................................................... 17
Co to jest baza danych?...........................................................................................18
Do czego używa się baz danych? .............................................................................19
Typowe systemy zarządzające bazami danych używane 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: wstęp........................................................................22
Miejsca pracy związane 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
Przykładowa baza danych Northwind .......................................................................31
Relacje w bazie danych .....................................................................................31
Przegląd komponentów bazy danych ..................................................................35
Podsumowanie .......................................................................................................47
Część II Projektowanie i budowanie pierwszej bazy danych........... 49
Rozdział 3. Wprowadzenie do projektowania baz danych..................................... 51
Twój projekt: Baza danych Czas Pracy i Fakturowanie .................................................52
Określenie wymagań stawianych bazie danych..........................................................52
Wywiady..........................................................................................................53
Dokumentacja firmy..........................................................................................54
Istniejące systemy.............................................................................................55
6 WprowadzenIe do baz danych
Wstęp do modelowania baz danych..........................................................................55
Jak wygląda 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. Ciąg dalszy tworzenia bazy danych: wstęp do normalizacji................. 73
Normalizacja bazy danych.......................................................................................74
Czynności prowadzące do normalizacji Twojego modelu danych................................75
Pierwsza postać normalna: eliminacja powtarzających się grup .............................75
Druga postać normalna: eliminowanie zbędnych danych ......................................77
Trzecia postać normalna: eliminacja kolumn niezależnych od kluczy.....................81
Czwarta i piąta postać normalna .........................................................................83
Normalizacja: ostatnie słowo..............................................................................84
Denormalizacja danych  kiedy jest sens łamać reguły?............................................85
Normalizacja w praktyce  przegląd bazy Czas Pracy i Fakturowanie.
Doskonalenie projektu.............................................................................................86
Określenie nowych kolumn i tabel......................................................................86
Przegląd 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
Krótki opis projektanta bazy danych w Accessie......................................................101
Okno główne 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 integralności baz danych .......................................... 117
Rozdział 6. Utrzymanie integralności poprzez zastosowanie
reguł poprawności danych.............................................................. 119
Wstęp do reguł poprawności w bazach danych ........................................................120
Implementacja zasad na poziomie pola ...................................................................120
Właściwości pól..............................................................................................121
Implementacja reguł na poziomie wiersza ...............................................................136
Właściwości na poziomie wierszy.....................................................................136
Podsumowanie .....................................................................................................138
Rozdział 7. Podstawy integralności referencyjnej.............................................. 139
Co to jest integralność referencyjna ........................................................................139
Dlaczego utrzymywanie integralności referencyjnej jest ważne.................................140
SpIs treścI 7
Jak działa integralność referencyjna........................................................................141
Określanie zasad integralności 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 języka SQL ..................................................................... 149
Co to jest SQL?....................................................................................................149
Interaktywna praca z SQL w Accessie...............................................................150
Podjęzyki SQL  DDL i DCL ........................................................................151
Instrukcja Select ...................................................................................................153
Wybieranie określonych pól.............................................................................154
Zmiana nazwy pola za pomocą klauzuli As .......................................................155
Aączenie pól danych........................................................................................155
Instrukcje Top n Select....................................................................................157
Filtrowanie wyników I: zastosowanie klauzuli Where ..............................................158
Organizacja danych wynikowych I: zastosowanie klauzuli Order By.........................159
Złożone kolejności sortowania .........................................................................160
Aączenie wielu tabel: zastosowanie instrukcji Join ...................................................162
Sprzężenia wewnętrzne ...................................................................................163
Sprzężenia zewnętrzne lewostronne..................................................................166
Sprzężenia zewnętrzne prawostronne i całkowite ...............................................167
Aą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
Używanie funkcji agregacji....................................................................................173
Funkcja Count()..............................................................................................173
Operacje zaawansowane: metodologia złożenia wszystkiego w jedną całość ........174
Funkcja Sum()................................................................................................178
Funkcja Avg().................................................................................................183
Funkcje Min() i Max().....................................................................................184
Filtrowanie wyników II: zastosowanie klauzuli Having ............................................184
Filtrowanie wyników 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
Określanie pól w zestawie wynikowym.............................................................192
Dodawanie kryteriów kwerendy .......................................................................194
Pomijanie kolumn ...........................................................................................196
Definiowanie kolejności sortowania..................................................................197
Sortowanie według wielu pól ...........................................................................199
Zapisywanie kwerendy....................................................................................199
Tworzenie zaawansowanych kwerend ....................................................................199
Stosowanie podsumowań i funkcji agregacji......................................................201
Kwerendy parametryczne ................................................................................203
Podsumowanie .....................................................................................................204
8 WprowadzenIe do baz danych
Część V Uruchamianie bazy danych  budowanie
prostej aplikacji bazy danych w Accessie ...................... 207
Rozdział 11. Wykorzystywanie komponentów 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 Główne......................................................................225
Podsumowanie .....................................................................................................227
Rozdział 12. Dostarczanie użytecznych wydruków:
wstęp do tworzenia i projektowania raportów ................................. 229
Projektant raportów w Accessie..............................................................................230
Tworzenie raportów dla aplikacji Czas Pracy i Fakturowanie....................................231
Lista klientów.................................................................................................231
Modyfikacja raportu Lista Klientów za pomocą projektanta raportów..................235
Dodanie przycisku Raport do formularza Menu Główne...........................................236
Podsumowanie .....................................................................................................238
Dodatki.......................................................................................... 239
Dodatek A Struktura bazy danych Czas Pracy i Fakturowanie ........................... 241
Dodatek B Reguły integralności referencyjnej w bazie danych
Czas Pracy i Fakturowanie.............................................................. 245
Dodatek C Słownik ......................................................................................... 247
Dodatek D Periodyki o tematyce związanej z bazami danych ............................ 255
Dodatek E Strony WWW ................................................................................. 257
Skorowidz...................................................................................... 259
Rozdział 3.
Wprowadzenie
do projektowania
baz danych
W rozdziale:
Twój projekt: baza danych Czas Pracy i Fakturowanie
Określanie wymagań bazy danych
Wstęp do modelowania baz danych
Tworzenie modelu bazy Czas Pracy i Fakturowanie
W części I  Podstawy baz danych pokazano w ogólnym zarysie, czym są bazy danych,
oraz zaprezentowano implementację rzeczywistej bazy danych w programie Microsoft
Access. W części II  Projektowanie i budowanie pierwszej bazy danych skupimy się
na praktycznym wykorzystaniu wiedzy nabytej w części I. Zanim będziesz mógł zbu-
dować swoją własną bazę danych, musi ona zostać zaprojektowana. Zanim jednak
przystąpisz do projektowania, musisz zrozumieć, co chcesz przedstawić w swojej bazie
danych. Czasem bywa tak, że proces projektowania i budowania bazy jest prosty; czasem
jednak może on być bardziej złożony. Do czynników określających stopień trudności
zadania można zaliczyć:
Stopień zrozumienia przez Ciebie danego problemu.
Twoje umiejętności analityczne.
Ilość baz danych, które do tej pory stworzyłeś.
Ilość posiadanej cierpliwości.
Ze wszystkich przedstawionych powyżej czynników cierpliwość jest prawdopodobnie
najważniejsza i zarazem najtrudniejsza do osiągnięcia. Z upływem czasu możesz udo-
skonalić swoje zdolności analityczne i umiejętności budowania baz danych. Bazy danych
nigdy nie są w pełni zaprojektowane po pierwszym podejściu do tematu. Po drugim 
52 Część II f& ProjektowanIe I budowanIe pIerwszej bazy danych
może Ci się to prawie udać. Być może dopiero trzecie podejście okaże się szczęśliwe.
Zazwyczaj jednak bywa tak, że potrzeba czterech prób zaprojektowania bazy, aby stwo-
rzyć solidny projekt wstępny. Widać z tego, że trzeba odpowiedniej cierpliwości, zanim
osiągnięty zostanie cel, jakim jest porządny projekt bazy danych.
Zagadnienie projektowania bazy danych może szybko przerodzić się w świat skompliko-
wanych teorii. Nie oznacza to bynajmniej, że teorie projektowania w świecie baz danych
są bezużyteczne  nie są. Jednakże w książce dla początkujących około dwie trzecie
teorii jest nieprzydatne. Niniejszy rozdział i reszta części II są przepisem składającym
się w 1/3 z teorii i w 2/3 z ciężkiej pracy.
Praktyka czyni mistrza. Zabierajmy się więc do pracy!
Twój projekt: Baza danych
Czas Pracy i Fakturowanie
Zostałeś zatrudniony przez firmę prawniczą Nowak&Nowak do stworzenia systemu
rejestracji czasu pracy i rozliczeń. Oprócz znajomości kilku nie najlepszych kawałów
o prawnikach (typu  Dlaczego rekiny nie jedzą prawników? Z uprzejmości zawodowej )
nie masz większego pojęcia o strukturze i zwyczajach panujących w firmie prawniczej.
Jedyne, czego możesz być pewien, to dwóch cech wynikających bezpośrednio z nazwy
systemu, który masz zaprojektować:
System ma gromadzić i przechowywać czas pracy ludzi.
System ma wystawiać rachunki.
Może wygląda to na zbyt wielkie uproszczenie, ale czasem właśnie bywa tak, że nic
więcej na początku nie wiemy. Z upływem czasu nauczysz się, że mając pierwszą część
informacji, można znalezć kolejną, potem następną itd. Być może najważniejszymi
elementami informacji, które możesz zdobyć na początku projektowania, są jak i gdzie
można znalezć informacje niezbędne do stworzenia bazy danych. Zagadnienie to jest
tematem kolejnego podrozdziału.
Określenie wymagań
stawianych bazie danych
Jak sprawnie i właściwie podjąć decyzje związane z określeniem wymagań, jakie ma
spełniać nowa baza danych? Kluczem do tego jest wiedza na temat, gdzie szukać przy-
datnych informacji. Pomimo różnorodnej specyfiki firm zródła informacji są zawsze
te same. Wraz z nabywaniem doświadczenia w tworzeniu systemów bazodanowych
zauważysz, że proces gromadzenia informacji o wymaganiach jest w dużym stopniu
powtarzalny. Wśród wielu zródeł informacji na ten temat do najczęściej wykorzysty-
wanych należą: wywiady, dokumentacja firmy oraz istniejące systemy.
RozdzIał 3. f& WprowadzenIe do projektowanIa baz danych 53
Wywiady
Przy wszechobecnej komputeryzacji to jednak wciąż ludzie podejmują najważniejsze
decyzje. Nie należy więc nie doceniać siły mówienia i  co może jest jeszcze bardziej
istotne  słuchania pracowników firmy. Ludzie ci może nie potrafią wyrażać się słow-
nictwem związanym z bazami danych, ale to jest właśnie powód, dla którego Ty się
pojawiłeś  masz zebrać i przetworzyć informacje.
Poprzez wywiady poznasz obieg informacji wewnątrz firmy. Dowiesz się również,
które informacje są istotne i dla kogo oraz które z nich stanowią podstawę w podej-
mowaniu decyzji.
Układasz puzzle.
Podczas przeprowadzania wywiadów nie ograniczaj się wyłącznie do personelu
zarządzającego i ważniejszych osób. Każdy poziom organizacji stanowi część ukła-
danki, która niezbędna jest do ułożenia całości puzzli. Każda jest jednakowo ważna,
ponieważ bez wszystkich elementów nigdy nie otrzymasz całego obrazka. Z tego
względu, nie posiadając wszystkich części, nigdy nie zdobędziesz pełnego obrazu
mechanizmów funkcjonujących w firmie, ani wymagań dotyczących bazy danych,
którą masz stworzyć.
ZrozumIenIe różnIcy pomIędzy potrzebamI strategIcznymI a taktycznymI
Decyzje w przedsiębiorstwie mogą zostać generalnie podzielone na dwie kategorie:
strategiczne,
taktyczne.
Decyzje strategiczne są decyzjami dotyczącymi np. czy wprowadzić określoną strategię działania
firmy na rynku, czy rozpocząć bądz zakończyć daną linię produktów lub czy dokonywać zmian per-
sonalnych. Decyzje strategiczne mają wpływ na firmę jako całość. Jeśli chodzi o ramy czasowe,
planowanie strategiczne dotyczy zazwyczaj okresu dłuższego niż pół roku naprzód i może sięgać
nawet 5 lat. Być może nie są Ci obce plany swojej firmy dwu-, trzy-, cztero- czy pięcioletnie. Jeśli
dostałeś zadanie stworzenia bazy danych dla swojej firmy, musisz znać podstawowe założenia
zawarte w jej planie strategicznym. Tworzona przez Ciebie baza danych musi uwzględniać ten plan
poprzez zapewnianie informacji umożliwiających w przyszłości podejmowanie decyzji.
Podczas gdy decyzje strategiczne są z natury długoterminowe, decyzje taktyczne obejmują krótszy
okres i są bardziej dokładne. Decyzje strategiczne skupiają się na tym, co firma chce robić;
w przeciwieństwie do nich decyzje taktyczne określają, jak te rzeczy należy wykonać. Np. strate-
giczną decyzją może być zwiększenie obrotów w przeciągu najbliższych dwóch lat. Aby zapewnić
ten wzrost, wymagania związane z przepływem gotówki w firmie muszą wzrosnąć o 10%. Decyzje
taktyczne związane z taką strategią mogą być następujące:
Należy wydłużyć termin regulowania płatności z 30 do 60 dni.
Należy wymagać płacenia za wystawione faktury w ciągu 10 dni zamiast 30.
Należy poszukać nowych zródeł finansowania zobowiązań bankowych.
Możesz spytać, co to ma wspólnego z projektowaniem bazy danych. Wszystko! Dane są siłą
napędową w każdej firmie. Bez nich nie jest możliwe podjęcie jakichkolwiek decyzji. Aby podjąć
taktyczne decyzje wymienione powyżej, baza danych musi dostarczyć wymagane informacje
w przejrzystym formacie. Poprzez wywiady możesz wiele dowiedzieć się o firmie, jej zamierzeniach
i nadziejach, przez co będziesz mógł lepiej określić wymagania, jakie ma spełniać tworzona
baza danych.
54 Część II f& ProjektowanIe I budowanIe pIerwszej bazy danych
Dokumentacja firmy
Wywiady mogą stanowić zródło zarówno ogólnych, jak i bardziej szczegółowych
informacji. Przeglądanie i analizowanie dokumentacji biznesowej rozpoczyna proces
dokładniejszego poznawania firmy i zaznajamiania się ze szczegółami dotyczącymi
jej funkcjonowania.
Poniżej znajdują się przykłady dokumentacji firmy:
Faktury,
Raporty,
Dokumenty dostawców,
Karty kontrolne pracowników,
Ankiety klientów,
Inne dokumenty wykorzystywane przez ludzi w firmie.
W wywiadzie mogłeś zauważyć, że istotnym elementem jest to, aby baza danych
przechowywała informacje o klientach. Poprzez analizę i zaznajomienie się z treścią
dokumentacji firmy odkryjesz, że pewne części informacji o klientach muszą być
uwzględnione w Twojej bazie. Innym przykładem niech będzie śledzenie czasu pracy
załogi. W bieżącym projekcie bazy Czas Pracy i Fakturowanie wiesz, że musisz śle-
dzić czas na określonym poziomie szczegółów. Typowa karta kontrolna pracownika
może zawierać niektóre lub wszystkie z niżej wymienionych informacji:
Imię i nazwisko pracownika.
Data.
Czas rozpoczęcia pracy.
Czas zakończenia pracy.
Wykonane zadania.
Projekt.
Klient.
Patrząc na powyższy przykład karty kontrolnej, staje się oczywiste, jakiego typu infor-
macje musi zawierać projektowana baza danych. Rozdział 4.  Ciąg dalszy tworzenia
baz danych: wstęp do normalizacji poświęcony jest sposobom organizacji informacji.
W tym miejscu najważniejsze dla nas jest ustalenie, skąd te informacje pobrać.
Nadszedł czas na zatrzymanie się i wzięcie głębokiego oddechu. Ważne jest zwró-
cenie uwagi, w jaki sposób wywiady i dokumentacja firmy współgrają ze sobą.
Wszystko to tworzy pewną sieć  jest ze sobą ściśle połączone. Wywiady zapew-
niają ogólny obraz tego, jakie informacje mają być przechowywane w naszej bazie.
Do pewnego stopnia dostarczają też informacji szczegółowych. Jednakże dopiero
analiza dokumentacji firmy może dostarczyć wielu szczegółowych informacji.
RozdzIał 3. f& WprowadzenIe do projektowanIa baz danych 55
Istniejące systemy
Bardzo prawdopodobne może być również to, że celem Twojego projektu jest zastą-
pienie istniejącego systemu. Być może firma przerosła jego możliwości lub też struktura
istniejącej bazy danych nie spełnia wymagań związanych z rosnącymi potrzebami firmy.
Aby zrozumieć wymagania, jakie ma spełniać nowa baza, musisz rozumieć sposób
funkcjonowania istniejącego systemu. Co więcej, musisz znać jego ograniczenia. Jeśli
nie poznasz i nie zrozumiesz zagadnień związanych z istniejącym systemem, wówczas
drastycznie rośnie prawdopodobieństwo, że projektując nowy system powielisz istnie-
jące błędy i niedogodności.
Pod wieloma względami składniki interfejsu użytkownika istniejącego systemu mogą
być uważane za dokumentację i formularze firmy. Np. kartka papieru reprezentująca
kartę kontrolną pracownika wcale nie musi istnieć jako twór fizyczny. Pracownicy
mogą bowiem wpisywać swój czas pracy korzystając z formularza na ekranie. Jako
projektant bazy danych musisz być świadomy tego, że granica pomiędzy poszcze-
gólnymi zródłami informacji nie zawsze jest wyrazna. Dalej, nie istnieje ustalona
kolejność, w jakiej poszczególne elementy informacji mają być przeglądane. I w końcu,
bardzo prawdopodobne może być to, że będziesz musiał powrócić do zródeł informacji
już przeglądanych w celu ich dokładniejszej analizy. Np. po przejrzeniu dokumen-
tów firmy być może będziesz chciał powrócić do procesu przeprowadzania wywia-
dów z pracownikami w celu ustalenia dodatkowych szczegółów związanych z wyma-
ganiami stawianymi nowemu systemowi.
Pamiętasz zdanie o cierpliwości? Proces zdobywania informacji o wymaganiach może
wydawać się nieskończony w czasie. Niektórzy wierzą, że systemy i bazy danych
nigdy nie są  kompletne , ponieważ środowisko biznesowe ulega ciągłym ewolu-
cjom i zmianom. Dojdziesz jednak do pewnego miejsca, w którym będziesz posia-
dał wystarczającą ilość informacji niezbędną do rozpoczęcia wstępnego projekto-
wania bazy. Sam fakt rozpoczęcia pracy nad projektem nie oznacza oczywiście,
że proces zbierania informacji został zakończony. Pamiętaj, że może być tak, że
będziesz musiał go powtórzyć raz, dwa, trzy, cztery lub więcej razy, aby uzyskać kom-
plet niezbędnych do zaprojektowania bazy informacji. Wraz z nabywaniem doświad-
czenia proces ten będzie stawał się dla Ciebie coraz bardziej przyjazny.
W tej chwili wiesz już, gdzie należy szukać zródeł informacji dotyczących wymagań
stawianych projektowanej bazie danych. Pojawia się nowe pytanie, jak więc połączyć
to wszystko razem. Odpowiedzią na to jest utworzenie modelu bazy danych. Proces
tworzenia Twojego pierwszego modelu bazy jest tematem kolejnej części rozdziału.
Wstęp do modelowania baz danych
Mówi się, że obraz warty jest tysiąc słów. Nigdzie to powiedzenie nie jest bardziej
prawdziwe niż w świecie modelowania baz danych. Jak widziałeś, bazy danych są czymś
dużo więcej niż tylko zestawami tabel. Bazy danych stanowią zgrupowanie powiąza-
nych ze sobą jednostek (encji) biznesowych. Zapytaj samego siebie, co jest łatwiejsze
w analizie: zwykła lista nazw tabel czy diagram ilustrujący tabele i relacje zachodzące
56 Część II f& ProjektowanIe I budowanIe pIerwszej bazy danych
pomiędzy nimi? Bez względu na to, czy osoba posiada wiedzę techniczną czy nie, każdy
stwierdzi, że diagramy są czytelniejsze i łatwiej się z nimi pracuje. Generalnie pozwalają
one na lepsze podejście do problemu czy określonych zagadnień.
Wezmy dla przykładu plan jakiegoś budynku. Krótkie spojrzenie na niego wystarczy,
aby móc w stanie określić, do czego ten budynek ma służyć i jaką ma strukturę. Plan
przekazuje o wiele więcej informacji niż słowa, które mogłyby ten budynek opisać.
Możemy więc spróbować sobie wyobrazić, że model bazy danych jest takim planem
bazy. Celem tej części rozdziału jest przedstawienie wstępnych informacji dotyczących
tworzenia modelu bazy danych.
Jak wygląda model bazy danych?
W rozdziale 2.  Budowa bazy danych zapoznałeś się z pierwszym modelem bazy
danych. Aby to sobie przypomnieć, na rysunku 3.1 pokazany został model dla prostej
bazy Northwind, która dostarczana jest razem z Accessem.
Krótkie spojrzenie na rysunek 3.1 wystarczy, aby od razu poczuć sens utworzenia tej
bazy. W rozdziale 2. określaliśmy przeznaczenie bazy analizując jej model. Teraz nato-
miast zajmiemy się omówieniem poszczególnych komponentów modelu bazy danych.
KIIka słów o narzędzIach do projektowanIa baz danych
Narzędziami służącymi do projektowania bazy danych mogą być po prostu pióro i kartka papieru,
lecz mogą one być bardziej złożone i posiadać wiele przydatnych funkcji. Wydać na nie można
zarówno kilkaset, jak i kilkaset tysięcy złotych. Jednak tak naprawdę to nie w tym rzecz, jakiego
narzędzia używasz, ale jak efektywnie wykorzystujesz to, co posiadasz. Rysowanie na kartce
papieru może być tak samo efektywne jak diagram uzyskany za pomocą narzędzia kosztują-
cego tysiące złotych. No dobrze, może przesadzam teraz. Jednak na pewno nie musisz zacią-
gać drugiego kredytu hipotecznego, aby pozwolić sobie na dobre narzędzie projektowe. Na rynku
dostępne są dwa, bardzo przystępne w cenie, narzędzia:
MIcrosoft VIsIo  Visio stanowi  od czasu przejęcia przez Microsoft  część pakietu
Microsoft Office. Więcej informacji znajdziesz na stronie http://www.microsoft.com/
office/visio.
ResoIutIon xCase  jest to w pełni funkcjonalne narzędzie do projektowania baz danych,
które współpracuje z platformami SQL Server, Access, Sybase, Informix, DB2 i wieloma
innymi bazami danych dostępnymi na rynku. Więcej informacji znajdziesz na stronie
Resolution xCase http://www.xcase.com.
Oczywiście, jeśli potrzebujesz bardziej zaawansowanych narzędzi, do Twojej dyspozycji są:
Computer AssocIates ErWIn  http://ca.com/products/alm/erwin.htm,
VIsIbIe AnaIyst DB EngIneer  http://www.visible.com/Products/Analyst/
vadbengineer.html.
W niniejszej książce do zilustrowania modelowania baz danych i innych zagadnień z tym zwią-
zanych wykorzystane zostanie oprogramowanie Microsoft Visio.
RozdzIał 3. f& WprowadzenIe do projektowanIa baz danych 57
Rysunek 3.1.
Widok relacji
pozwala przeglądać
tabele zawarte
w bazie danych
wraz z relacjami
występującymi
między nimi
Tworzymy pierwszy model
Abyś mógł poznać sposób tworzenia graficznego modelu bazy danych, cofnijmy się
o jeden krok i rozpocznijmy naszą pracę z istniejącym już projektem. W tej hipotetycznej
sytuacji mamy zidentyfikowane następujące jednostki (encje):
Klienci.
Zlecenia.
Elementy Zlecenia.
Wszystkie koncepcje przedstawione w tej części rozdziału mogą zostać wprowadzone
w życie z wykorzystaniem jedynie kartki papieru i ołówka. Graficzne i zautomaty-
zowane narzędzia mogą ułatwić wykonanie pewnych czynności, takich jak na przy-
kład zapewnienie, że w tabelach pochodnych utworzone zostały klucze obce; bywają
one również pomocne w określaniu, czy istniejące relacje są typu jeden-do-jednego
czy jeden-do-wielu. Niektóre narzędzia potrafią nawet wygenerować skrypty, które
automatycznie tworzą definicje bazy danych na podstawie modelu. Ponadto niektóre
narzędzia są na tyle inteligentne, że utrzymują synchronizację pomiędzy modelem
i bazą danych i zapewniają aktualizację tej drugiej, jak tylko pojawią się jakieś zmiany
w modelu. Wszystkie te funkcje są z pewnością przyjemne i pożyteczne. Jednakże
żadna z nich nie jest niezbędna przy omawianiu koncepcji modelowania baz danych
i nauce zapisu.
I na koniec pamiętaj  ważny jest skrzypek, a nie skrzypce!
Gdy uruchomisz Visio, zostaniesz przywitany oknem dialogowym przedstawiającym
możliwe do wykorzystania szablony (rysunek 3.2).
58 Część II f& ProjektowanIe I budowanIe pIerwszej bazy danych
Rysunek 3.2.
Visio umożliwia
tworzenie wielu
typów rysunków
technicznych,
włącznie
ze schematami
modeli baz danych
Po wybraniu folderu Database zobaczysz 5 szablonów (rysunek 3.3). Do zaprojekto-
wania naszej przykładowej bazy danych wykorzystamy szablon Crow s Foot ERD.VST.
Skrót ERD oznacza Entity Relationship Diagram, czyli Diagram Relacji Pomiędzy
Jednostkami (encjami).
Rysunek 3.3.
Do Visio
dołączonych jest
pięć szablonów
pomocnych przy
projektowaniu
baz danych.
Najczęściej używanym
spośród nich
jest szablon
Crow s Foot ERD
Po otwarciu szablonu Crow s Foot zobaczysz powierzchnię projektową Visio. Główne
okno projektanta Visio przedstawione zostało na rysunku 3.4.
RozdzIał 3. f& WprowadzenIe do projektowanIa baz danych 59
Rysunek 3.4.
Powierzchnia
projektowa Visio
wygląda na początku
jak czysta kartka
papieru. Dostępnych
jest wiele pasków
narzędziowych,
które umożliwiają
tworzenie dowolnych
kształtów i pozwalają
kontrolować wszystkie
ich atrybuty
Mając pustą powierzchnię projektową, jesteś gotowy do utworzenia swojego pierwszego
rysunku. Proces ten polega najczęściej na przeciąganiu symboli projektowych z paska
narzędziowego Design Symbol na powierzchnię projektową. Patrząc na proces jako
całość, poszczególne kroki tworzenia modelu bazy danych można zapisać w następu-
jącej kolejności:
1. Umieść encję na powierzchni projektowej.
2. Określ odpowiednie atrybuty danej encji (nazwę, pola i klucze).
3. Zdefiniuj relacje pomiędzy poszczególnymi encjami.
Aby lepiej wyobrazić sobie krok pierwszy i drugi, spójrz na rysunek 3.5. Pokazana jest
na nim encja z jednym zdefiniowanym polem. Pole to, , zdefiniowa-
ne jest jako klucz podstawowy dla tej encji. Niedługo pojawią się również inne pola.
Jednakże zagadnienie, jakie pola należy umieścić w poszczególnych encjach, omówio-
ne zostanie w rozdziale 4.
Poświęćmy chwilę na przypomnienie pewnych istotnych koncepcji. Jakkolwiek zagad-
nienie doboru odpowiednich pól w encji zostało odłożone do następnego rozdziału,
niektóre pola muszą zostać dodane do jednostek już na samym początku. Pola te
służyć będą do obsługi różnorodnych relacji, które istnieją pomiędzy encjami. Mowa
tu o kluczach podstawowych i kluczach obcych. Koncepcja tych kluczy została przed-
stawiona w rozdziale 1.  Wstęp do baz danych , a zilustrowana w rozdziale 2. Jeśli
potrzebujesz przypomnieć sobie to zagadnienie, poświęć teraz na to kilka minut
i wróć do wcześniejszych rozdziałów.
60 Część II f& ProjektowanIe I budowanIe pIerwszej bazy danych
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 pomiędzy jednostkami (ERD).
Jednostka w ERD zbudowana jest z prostokąta, nazwy jednostki oraz listy pól. Widzisz
więc, że nie potrzebujesz jakiegoś specjalnego narzędzia projektowego, aby tworzyć
schematy. Jak się jednak niebawem przekonasz, posiadanie takiego narzędzia znacznie
ułatwia realizację określonego zadania.
Tworzenie jednostek w Visio jest banalnie proste. Poniższe kroki poprowadzą Cię przez
proces tworzenia jednostek i :
1. Z paska narzędziowego Design Symbol wybierz symbol jednostki.
2. Trzymając wciśnięty lewy przycisk myszy, przeciągnij 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ę klikając na niej myszą, po czym wciśnij Ctrl+C,
co spowoduje skopiowanie jednostki do schowka.
5. Naciśnij Ctrl+V, aby wstawić ze schowka jednostkę na powierzchnię projektową.
Po ustawieniu wszystkich jednostek na powierzchni powinna ona wyglądać tak,
jak na rysunku 3.6.
6. Wybierz środkową jednostkę, kliknij ją prawym przyciskiem myszy, a następnie
z menu podręcznego wybierz Add Attributes. Wpisz nazwę
i naciśnij przycisk OK. Na rysunku 3.7 przedstawiono pierwszą zakładkę okna
dialogowego Define Entity (definiuj jednostkę).
RozdzIał 3. f& WprowadzenIe do projektowanIa baz danych 61
Rysunek 3.6.
Dwie puste jednostki
na powierzchni
projektowej
reprezentować będą
encje Zamówienia
i ElementyZamówienia
Rysunek 3.7.
Zakładka General
(ogólne) okna
dialogowego Define
Enity (definiuj
jednostkę) pozwala
na określenie nazwy
jednostki, jak również
innych atrybutów
dotyczących
wszystkich jednostek
na schemacie
7. Powtórz krok 6. dla prawej jednostki, nadając jej nazwę .
8. Kliknij ponownie jednostkę , wykonaj krok 6., wybierając zakładkę
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
zostało pokazane, jak powinno wyglądać okno dialogowe.
10. Powtórz krok 9. dla jednostki , dodając pole o nazwie
. Twój schemat powinien wyglądać tak, jak na
rysunku 3.9.
62 Część II f& ProjektowanIe I budowanIe pIerwszej bazy danych
Rysunek 3.8.
Zakładka Attributes
okna Define Entity
pozwala na
zdefiniowanie
w jednostce pól
i odpowiadającym
im atrybutów
Rysunek 3.9.
Przykładowy ERD
z trzema jednostkami,
z których każda
posiada zdefiniowany
klucz podstawowy
W tym momencie rozpoczyna się prawdziwa zabawa. Teraz zobaczysz, na czym tak
naprawdę polega siła zautomatyzowanego narzędzia projektowego. Mając utworzone
jednostki i klucze podstawowe na właściwych miejscach, możesz utworzyć relacje
pomiędzy poszczególnymi jednostkami. Tworzenie ich jest tak samo proste jak two-
rzenie jednostek, o ile będziesz postępował zgodnie z następującymi zaleceniami:
1. Wybierz symbol Relationship (relacja) z paska narzędziowego Design Symbol.
2. Przeciągnij symbol relacji nad powierzchnię projektową. Zanim zwolnisz lewy
przycisk myszy, upewnij się, że lewy koniec linii relacji dotyka jednego
z niebieskich znaczników znajdujących się na obrzeżach jednostki .
Na potwierdzenie poprawnego wykonania tej operacji, po zaznaczeniu linii
relacji, lewy jej koniec powinien mieć kolor czerwony (rysunek 3.10).
RozdzIał 3. f& WprowadzenIe do projektowanIa baz danych 63
Rysunek 3.10.
Aby zautomatyzowane
zadania wykonały się
poprawnie, istotne
jest, aby każda
ze stron relacji
dotykała niebieskiego
znacznika jednostki
3. Następnym krokiem jest dołączenie prawego końca linii relacji do jednostki
. W tym celu kliknij prawy koniec linii relacji i przeciągnij go do
jednego z niebieskich znaczników jednostki . Twój schemat powinien
teraz wyglądać podobnie do przedstawionego na rysunku 3.11. Aby rysunek
był czytelniejszy, widok schematu został powiększony do 150%.
Rysunek 3.11.
Linia relacji łączy
jednostkę Klient
z jednostką
Zamówienia
4. Powtórz krok 3. dla relacji pomiędzy jednostką a .
Możesz spytać:  A gdzie jest ta automatyzacja? . Jak dotychczas, wszystko wykony-
wałeś samodzielnie! Koniec czekania zatem, czas zobaczyć rezultaty pracy.
Z menu Tools wybierz Database Design, Update Foreign Keys.Voila! Na podstawie
relacji uruchomione narzędzie rozpoznało klucze obce, które musiały zostać zdefinio-
wane. Na przykład, aby jednostka mogła obsłużyć klucz obcy IDklienta,
musiało zostać zdefiniowane pole . Jak zobaczysz w następnym 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 właśnie powód, dla którego są one
omawiane w tej części rozdziału. Mówiąc krótko, jeśli nie posiadasz kluczy obcych,
nie możesz mieć również relacji. Relacje, jakby na to nie patrzeć, stanowią serce rela-
cyjnej bazy danych.
64 Część II f& ProjektowanIe I budowanIe pIerwszej bazy danych
Jeśli powyższe kroki wykonałeś poprawnie, twój schemat powinien wyglądać tak, jak
na rysunku 3.12.
Rysunek 3.12.
Model tworzonej
bazy danych
posiadający
jednostki, klucze
obce oraz relacje
Stosowana przez nas notacja to Crow's foot, czyli po polsku  kurza stopa . Może
się zastanawiasz, skąd jej autor wziął tak staromodnie brzmiącą 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. f& WprowadzenIe do projektowanIa baz danych 65
Tworzenie fizycznej bazy danych
na podstawie modelu logicznego
Automatyczne narzędzie na niewiele się przyda, jeśli nie dostarczymy mu logicznego
modelu bazy danych  planu bazy  na którego podstawie utworzona zostanie fizyczna
baza danych. W tym właśnie miejscu spotykają się dwa światy  projektowania,
a następnie implementowania bazy danych. Pracując z modelami, dostajesz szansę wizu-
alizacji koncepcji i idei przed końcową implementacją. Proces ten umożliwia wcześniej-
sze sprawdzenie, czy wszystko jest w porządku i jest o wiele bardziej wydajny niż
korzystanie z metody prób i błędów na fizycznej bazie danych.
Visio oraz inne narzędzia projektowe umożliwiają utworzenie fizycznej bazy danych
na podstawie modelu logicznego. W przypadku Visio można stworzyć bazę danych
Access, przy czym proces ten jest prosty do wykonania dzięki wbudowanemu kreatorowi.
Aby uruchomić kreatora bazy danych, z menu Tools wybierz Macro/Database/Create
Database Wizard.
Upewnij się, że w modelu logicznym nie występują żadne błędy ERD. Np. niepołączona
relacja spowoduje wystąpienie takiego błędu. Jeśli model posiada błędy, utworzona
na jego podstawie baza danych również będzie je zawierać. Przed utworzeniem fizycz-
nej bazy danych upewnij się więc, że przeprowadziłeś aktualizację kluczy obcych.
Po wykonaniu wszystkich kroków kreatora bazy danych utworzona zostanie baza
Accessa. Poszczególne atrybuty zdefiniowane w modelu zostały przeniesione do fizycz-
nej bazy danych. Na rysunku 3.14 widać końcowy wynik działania kreatora.
Rysunek 3.14.
Kreator bazy danych
skorzystał z modelu
utworzonego przez
nas w tym rozdziale
i utworzył fizyczną
bazę danych
programu Access
66 Część II f& ProjektowanIe I budowanIe pIerwszej bazy danych
Tworzenie modelu bazy
na podstawie fizycznej bazy danych
A co w sytuacji, kiedy chcielibyśmy przeprowadzić proces odwrotny  z fizycznej
bazy danych utworzyć model? Na szczęście Visio posiada opcję, która pobiera fizyczną
bazę i po analizie tworzy jej model.
Aby zaimportować do Visio bazę danych, wykonaj następujące czynności:
1. Z menu File wybierz New/Database/Map Database Wizard.
2. Wskaż lokalizację wcześniej utworzonej bazy danych.
3. Wybierz Map all entities, czyli mapowanie wszystkich jednostek.
4. Utwórz schemat Crow's Foot, pozostawiając opcję Layout bez zmian.
5. Wybierz Show all attributes i Show foreign keys, czyli Pokaż wszystkie atrybuty
i Pokaż klucze obce. Pozostałe opcje pozostaw bez zmian.
6. Podaj tytuł i opis schematu bazy danych.
7. Kliknij przycisk Finish.
Na rysunku 3.15 pokazano, jak powinien wyglądać wynikowy model utworzony w Visio.
Rysunek 3.15.
Kreator Map
Database Wizard
umożliwia utworzenie
modelu bazy
na podstawie
fizycznej bazy danych
RozdzIał 3. f& WprowadzenIe do projektowanIa baz danych 67
Tworzenie modelu bazy danych
Czas Pracy i Fakturowanie
Teraz, kiedy masz już pojęcie, czym jest modelowanie baz danych, możesz wykorzystać
poznane techniki w swoim obecnym projekcie  bazie danych Czas Pracy i Faktu-
rowanie. Analizując wcześniej dokumentację firmy i przeprowadzając wywiad z jej
pracownikami, zidentyfikowałeś następujące jednostki:
,
,
(pamiętajmy, że tworzymy bazę danych dla firmy prawniczej),
,
.
Analiza wykazała, że potrzebne są  oprócz jednostek  następujące relacje:
Klienci mogą mieć jedną lub więcej spraw.
Klienci mogą mieć jedną lub więcej faktur.
Zamówienia tworzone są na podstawie jednego lub wielu rekordów
.
Czas jest przydzielany do sprawy.
Pracownicy przydzielają czas do sprawy.*
Rysunek 3.16 przedstawia model bazy na podstawie dotychczas ustalonych szczegó-
łów. Jak wkrótce zobaczysz, istnieje w niej kilka niedociągnięć, które będziemy musieli
poprawić.
Edycja tekstu
Czy zauważyłeś tabelkę na schemacie z rysunku 3.16 zawierającą informację o tym
schemacie? Tabelka ta nosi nazwę  Database title , czyli tytuł bazy danych, i można
ją znalezć w pasku narzędziowym Design Symbol. Po umieszczeniu tytułu bazy danych
na powierzchni projektowej każdy blok z tekstem może być poddawany edycji zgod-
nie z poniższymi krokami:
1. Kliknij tytuł bazy danych  zaznaczona zostanie cała tabelka. Ramka otaczająca
krawędz tabelki będzie koloru zielonego.
2. Po zaznaczeniu całej tabelki masz możliwość zaznaczania poszczególnych
boków tekstu, klikając myszą na wybranym bloku. Zaznaczony blok tekstu
będzie posiadał szare obramowanie.
3. Naciśnij klawisz F2. Tekst wewnątrz wybranej ramki zostanie podświetlony
i będzie możliwa jego edycja.
68 Część II f& ProjektowanIe I budowanIe pIerwszej bazy danych
Rysunek 3.16.
Wersja pierwsza
modelu bazy
Czas Pracy
i Fakturowanie
składa się z pięciu
jednostek
Doskonalenie projektu
W chwili obecnej nasz projekt wygląda całkiem niezle. Czy jest już kompletny? Biorąc
pod uwagę, że to dopiero pierwsze podejście, odpowiedz na to pytanie najprawdopo-
dobniej jest negatywna. Nasz przypadek nie jest tu wyjątkiem. Zwróciłeś uwagę na
relację piątą,  Pracownicy przydzielają czas do sprawy , oznaczoną gwiazdką? Mimo
że na pierwszy rzut oka może nie wyglądać na niejasną, to w rzeczywistości tak jest.
Przyjrzyjmy się jej zatem bliżej.
Przypuśćmy, że w trakcie przeprowadzania wywiadów odkryłeś, że pracownik musi
być przypisany do sprawy, zanim może on przydzielić tej sprawie określony czas. Czy
aktualny projekt bazy posiada bezpośrednią relację pomiędzy sprawami a pracowni-
kami? Nie posiada, istnieje natomiast relacja niebezpośrednia. Z encji można
znalezć pracowników, którzy przydzielili sprawie czas, przechodząc przez jednostkę
. Tak długo jak wszyscy pracownicy skojarzeni z daną sprawą
przypisali do niej czas, możesz znalezć wszystkich pracowników skojarzonych z tą
sprawą. A co wówczas, gdy będziesz potrzebował utworzyć listę wszystkich pracow-
ników skojarzonych ze sprawą, a wiesz, że niektórzy z pracowników pracujących nad
tą sprawą nie przydzielili do niej czasu? Krótko mówiąc, w chwili obecnej nie masz
możliwości utworzenia takiej listy.
Ważne jest, aby podkreślić, że pewne relacje pomiędzy jednostkami muszą być zdefi-
niowane bez względu na to, czy istnieją lub nie określone wymagania dotyczące danych.
Innymi słowy, nawet jeśli pracownik nie przydzielił czasu do sprawy, pracownik ten
musi pojawić się na liście pracowników dla danej sprawy. Na rysunku 3.17 pokazany
jest udoskonalony model.
RozdzIał 3. f& WprowadzenIe do projektowanIa baz danych 69
Rysunek 3.17.
Wersja druga bazy
Czas Pracy
i Fakturowanie
obsługuje
bezpośrednią relację
pomiędzy
pracownikami
a sprawami
Czy widzisz kolejny problem? Bazując na aktualnym modelu, w momencie przydzielania
spraw do pracowników mamy następującą sytuację: za każdym 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 została zapełniona nadmiarowymi danymi.
Gdy nadejdzie czas tworzenia kwerend i raportów, zadania te okażą się bardzo trudne.
Co się stanie, jeśli pracownik zmieni swoje nazwisko, a związany jest z 10 sprawami?
10 różnych rekordów będzie musiało zostać zmodyfikowanych. Masz już wystarcza-
jącą wiedzę o relacyjnych bazach danych, aby stwierdzić, że taki scenariusz jest nie-
dopuszczalny. Jednym z głównych celów projektowania relacyjnych baz danych jest
osiągnięcie spójności danych poprzez redukcję ich nadmiarowości. Tak więc co powiesz
o rozwiązaniu tego problemu?
Przypominasz sobie z drugiego rozdziału dyskusję na temat relacji wiele-do-wielu?
Omawiany przypadek idealnie pasuje do tego typu relacji. Pracownicy mogą być przy-
dzielani do więcej niż jednej sprawy, a sprawy mogą posiadać więcej niż jednego
pracownika. W rozdziale 2. zobaczyłeś, że utworzenie relacji wiele-do-wielu możliwe
jest z wykorzystaniem dwóch relacji jeden-do-wielu. Aby rozwiązać nasz problem, do
modelu musi zostać dodana nowa tabela, zwana tabelą skrzyżowań. Tabele skrzyżowań
są również nazywane tabelami relacji wiele-do-wielu  ich nazwa nie jest jednak tyle
istotna, co funkcje, które pełnią. Tabele skrzyżowań pozwalają na łatwiejsze utrzymanie
spójności danych poprzez zmniejszenie ich nadmiarowości. Na rysunku 3.18 pokazana
została trzecia wersja modelu bazy danych, zawierająca tabelę skrzyżowań oraz zmody-
fikowane relacje pomiędzy jednostkami i .
Wciąż jednak jest przed nami trochę pracy, zanim będziemy mogli uważać nasz pierwszy
szkic projektu bazy za kompletny. Podczas dalszej analizy zauważysz, że ze sprawą
mogłoby być skojarzonych wielu klientów. Wówczas jednak możliwość związania
70 Część II f& ProjektowanIe I budowanIe pIerwszej bazy danych
Rysunek 3.18.
Wersja 3. modelu
bazy Czas Pracy
i Fakturowanie
udostępnia relację
wiele-do- wielu
pomiędzy sprawami
i pracownikami
rekordu jedynie ze sprawą, pracownikiem i fakturą nie byłaby
wystarczająca. Oczywiste jest, że rekord musi łączyć jed-
ną sprawę, jedną fakturę i jednego pracownika  jednak ze względu na to, że chcemy,
aby wielu klientów mogło być przypisanych do jednej sprawy  do encji
musimy dodać jako klucz obcy. Spójrz na rysunek 3.19, na któ-
rym 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. f& WprowadzenIe do projektowanIa baz danych 71
Podsumowanie
W rzeczywistym scenariuszu zauważysz zapewne, że aby uzyskać wstępny projekt,
należy wykonaćwiele kroków. Czas potrzebny na stworzenie konkretnego projektu
zależy od stopnia szczegółowości przeprowadzanej analizy oraz od częstotliwości,
z jaką poszukujesz informacji od użytkowników tworzonej bazy danych. Ze wszystkich
posiadanych zródeł informacji wymagania dotyczące raportów mogą być najcenniejsze,
gdyż możesz je wykorzystać i na ich podstawie utworzyć encje w bazie, dzięki którym
te raporty będą mogły być utworzone. Oczywiście inne zródła informacji  wywiady
i istniejące systemy  również są istotne. W jakim stopniu będziesz polegał na poszcze-
gólnych zródłach  to zależy od konkretnej sytuacji, w jakiej się znajdziesz.
Wynikiem analizy wstępnej jest utworzenie modelu bazy danych. Najpopularniejszą
i najłatwiejszą do zrozumienia techniką modelowania jest Diagram Relacji Pomiędzy
Relacjami (ERD). Narzędzia takie jak Visio pozwalają na zautomatyzowanie procesu
tworzenia logicznych modeli baz danych oraz tworzenia na ich podstawie fizycznych baz.
Na ERD składają się: encje, właściwości encji oraz relacje występujące pomiędzy nimi.
Jeśli mielibyśmy sformułować jeden najważniejszy wniosek, brzmiałby on: nie zagłę-
biaj się w detale zbyt szybko. Rozdział ten nie wyjaśniał szczegółów pól informacyj-
nych, jakie posiada każda jednostka. Dlaczego? Ponieważ w tej chwili nie ma potrze-
by uzyskania solidnego projektu wstępnego bazy. Zagłębienie się na tym poziomie
w szczegóły mogłoby w rzeczywistości szybko okazać się zródłem problemów. Czy
zawartość jednostek uległaby zmianie, gdybyś dokładnie znał przeznaczenie wszystkich
pól w tych jednostkach? Najprawdopodobniej tak. Jednak tak ma być: w tej chwili
bowiem jesteśmy na etapie podstawowego projektowania.
Pamiętasz powiedzenie  Bądz cierpliwy ? A slogan reklamowy:  Nie sprzedajemy wina,
zanim będzie na to gotowe ?
W kolejnym rozdziale wprowadzimy nasz projekt w kolejną fazę  podejmiemy się
normalizacji tworzonej bazy. Na koniec rozdziału 4. projekt bazy Czas Pracy i Faktu-
rowanie będzie zakończony.


Wyszukiwarka

Podobne podstrony:
Wprowadzenie do baz danych
wprowadzenie do baz danych
BD Wykˆad 1 Wprowadzenie do baz danych
Tworzenie interfejsów do baz danych z wykorzystaniem technologii
Dostep uzytkownikow mobilnych do baz danych WAP, PQA, MBTS
Zestaw 1 Wprowadzenie do relacyjnych baz danych
Wprowadzenie do systemów baz danych
Komp przetw danych Wprowadzenie do MATLABa 1
Komp przetw danych Wprowadzenie do MATLABa 2
WYKŁAD 1 Wprowadzenie do biotechnologii farmaceutycznej
Medycyna manualna Wprowadzenie do teorii, rozpoznawanie i leczenie

więcej podobnych podstron