John Petersen Wprowadzenie Do Baz Danych Full Version

898
Wydawnictwo Helion ul. Chopina 6 44-100 Gliwice tel. (32)230-98-63 e-mail: [email protected] PRZYK£ADOWY ROZDZIA£ PRZYK£ADOWY ROZDZIA£ IDZ DO IDZ DO ZAMÓW DRUKOWANY KATALOG ZAMÓW DRUKOWANY KATALOG KATALOG KSI¥¯EK KATALOG KSI¥¯EK TWÓJ KOSZYK TWÓJ KOSZYK CENNIK I INFORMACJE CENNIK I INFORMACJE ZAMÓW INFORMACJE O NOWOCIACH ZAMÓW INFORMACJE O NOWOCIACH ZAMÓW CENNIK ZAMÓW CENNI K CZYTELNIA CZYTELNIA FRAGMENTY KSI¥¯EK ONLINE FRAGMENTY KSI¥¯EK ONLINE SPIS TRECI SPIS TRECI DODAJ DO KOSZYKA DODAJ DO KOSZYKA KATALOG ONLINE KATALOG ONLINE Wprowadzenie do baz danych Autor: John Petersen T³umaczenie: Krzysztof Jurczyk ISBN: 83-7197-815-4 Tytu³ orygina³u: ABG to Databases Format: B5, stron: 272 Ka¿dy z nas na co dzieñ korzysta z relacyjnych baz danych, czasem nawet nie zdaj¹c 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. Zrozumienie zasad projektowania baz danych umo¿liwia pe³ne wykorzystanie nowoczesnych aplikacji, niezbêdnych w funkcjonowaniu niemal ka¿dego przedsiêbiorstwa. Pozwala na dobr¹ organizacjê, sprawne zarz¹dzania danymi gromadzonymi przez poszczególne osoby. „Wprowadzenie do baz danych” to ksi¹¿ka dla kogo, kto s³ysza³ o bazach danych, 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æ wiedzê na ich temat. Dziêki tej ksi¹¿ce: • 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 dowiadczenia informatycznego. Przyk³ady prezentowane w ksi¹¿ce oparte s¹ na popularnym Accessie. Jeli jeste osob¹, która chce rozpocz¹æ podró¿ po wiecie baz danych, ale nie wiesz, od czego zacz¹æ, ta ksi¹¿ka jest w³anie dla Ciebie!

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