SlideShare ist ein Scribd-Unternehmen logo
1 von 26
Downloaden Sie, um offline zu lesen
IDZ DO
         PRZYK£ADOWY ROZDZIA£

                           SPIS TRE CI   Wprowadzenie
                                         do baz danych
           KATALOG KSI¥¯EK
                                         Autor: John Petersen
                      KATALOG ONLINE     T³umaczenie: Krzysztof Jurczyk
                                         ISBN: 83-7197-815-4
       ZAMÓW DRUKOWANY KATALOG           Tytu³ orygina³u: ABG to Databases
                                         Format: B5, stron: 272

              TWÓJ KOSZYK
                    DODAJ DO KOSZYKA     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.
         CENNIK I INFORMACJE             Zrozumienie zasad projektowania baz danych umo¿liwia pe³ne wykorzystanie
                                         nowoczesnych aplikacji, niezbêdnych w funkcjonowaniu niemal ka¿dego
                   ZAMÓW INFORMACJE      przedsiêbiorstwa. Pozwala na dobr¹ organizacjê, sprawne zarz¹dzania danymi
                     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      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               wiedzê na ich temat.
          FRAGMENTY KSI¥¯EK ONLINE       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
Wydawnictwo Helion                       pocz¹tkuj¹cych programistów, jak i dla osób bez do wiadczenia informatycznego.
ul. Chopina 6                            Przyk³ady prezentowane w ksi¹¿ce oparte s¹ na popularnym Accessie. Je li jeste
44-100 Gliwice                           osob¹, która chce rozpocz¹æ podró¿ po wiecie baz danych, ale nie wiesz, od czego
tel. (32)230-98-63                       zacz¹æ, ta ksi¹¿ka jest w³a nie dla Ciebie!
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
                    Łą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
               Łą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
               Łą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 ♦ 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 znaleźć 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 znaleźć 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 źró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 źródeł informacji na ten temat do najczęściej wykorzysty-
     wanych nale ą: wywiady, dokumentacja firmy oraz istniejące systemy.
Rozdział 3. ♦ 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ądź 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 źró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 ♦ Projektowanie i budowanie pierwszej bazy danych


Dokumentacja firmy
     Wywiady mogą stanowić źró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. ♦ 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 źródłami informacji nie zawsze jest wyraźna. 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 źró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ć źró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 ♦ 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ń.

        Weźmy 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.

 Kilka 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.
     Resolution 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,
     Visible Analyst 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. ♦ 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 ♦ 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. ♦ 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 -NKGPV z jednym zdefiniowanym polem. Pole to, +&MNKGPVC, 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 ♦ 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 <COÎYKGPKC i 'NGOGPV[<COÎYKGPKC:
          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ę <COÎYKGPKC
             i naciśnij przycisk OK. Na rysunku 3.7 przedstawiono pierwszą zakładkę okna
             dialogowego Define Entity (definiuj jednostkę).
Rozdział 3. ♦ 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ę 'NGOGPV[<COÎYKGPKC.

            8. Kliknij ponownie jednostkę <COÎYKGPKC, wykonaj krok 6., wybierając zakładkę
               Attributes (atrybuty) w oknie dialogowym Define Entity.
            9. Kliknij przycisk New, aby utworzyć nowe pole. Nazwij je +&COÎYKGPKC,
               zdefiniuj, e ma być kluczem podstawowym i typu +PVGIGT. Na rysunku 3.8
               zostało pokazane, jak powinno wyglądać okno dialogowe.
          10. Powtórz krok 9. dla jednostki 'NGOGPV[<COÎYKGPKC, dodając pole o nazwie
              +&GNGOGPVW<COQYKGPKC. Twój schemat powinien wyglądać tak, jak na
               rysunku 3.9.
62                               Część II ♦ 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 -NKGPEK.
              Na potwierdzenie poprawnego wykonania tej operacji, po zaznaczeniu linii
              relacji, lewy jej koniec powinien mieć kolor czerwony (rysunek 3.10).
Rozdział 3. ♦ Wprowadzenie do projektowania baz danych                                           63


Rysunek 3.10.
Aby zautomatyzowane
zadania 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
               <COÎYKGPKC. W tym celu kliknij prawy koniec linii relacji i przeciągnij go do
               jednego z niebieskich znaczników jednostki <COÎYKGPKC. 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ą <COÎYKGPKC a 'NGOGPV[<COÎYKGPKC.

         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 <COÎYKGPKC mogła obsłu yć klucz obcy IDklienta,
         musiało zostać zdefiniowane pole +&MNKGPVC. 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 ♦ 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. ♦ 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 ♦ 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. ♦ 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:
            -NKGPV,
            2TCEQYPKM,
            5RTCYC (pamiętajmy, e tworzymy bazę danych dla firmy prawniczej),
            (CMVWTC,
            5EGIQN[2T[FKCNW%CUW.

       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
            5EGIQN[2T[FKCNW%CUW.
            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ą znaleźć 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ędź 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 ♦ 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 nieźle. Czy jest ju kompletny? Biorąc
         pod uwagę, e to dopiero pierwsze podejście, odpowiedź 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 5RTCYC mo na
         znaleźć pracowników, którzy przydzielili sprawie czas, przechodząc przez jednostkę
         5EGIQN[2T[FKCNW%CUW. Tak długo jak wszyscy pracownicy skojarzeni z daną sprawą
         przypisali do niej czas, mo esz znaleźć 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. ♦ 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 5RTCYC i 2TCEQYPKM.

         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 ♦ 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 5EGIQN[2T[FKCNW%CUW jedynie ze sprawą, pracownikiem i fakturą nie byłaby
        wystarczająca. Oczywiste jest, e rekord 5EGIQN[2T[FKCNW%CUW 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 5EGIQN[2T[
        FKCNW%CUW musimy dodać +MNKGPVC 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. ♦ 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 źró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 źródła informacji — wywiady
       i istniejące systemy — równie są istotne. W jakim stopniu będziesz polegał na poszcze-
       gólnych źró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ę źró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ądź 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.

Weitere ähnliche Inhalte

Was ist angesagt?

Oracle. Projektowanie rozproszonych baz danych
Oracle. Projektowanie rozproszonych baz danychOracle. Projektowanie rozproszonych baz danych
Oracle. Projektowanie rozproszonych baz danychWydawnictwo Helion
 
Bazy danych SQL. Teoria i praktyka
Bazy danych SQL. Teoria i praktykaBazy danych SQL. Teoria i praktyka
Bazy danych SQL. Teoria i praktykaWydawnictwo Helion
 
Zarządzanie przechowywaniem danych w sieci
Zarządzanie przechowywaniem danych w sieciZarządzanie przechowywaniem danych w sieci
Zarządzanie przechowywaniem danych w sieciWydawnictwo Helion
 
PHP, Microsoft IIS i SQL Server. Projektowanie i programowanie baz danych
PHP, Microsoft IIS i SQL Server. Projektowanie i programowanie baz danychPHP, Microsoft IIS i SQL Server. Projektowanie i programowanie baz danych
PHP, Microsoft IIS i SQL Server. Projektowanie i programowanie baz danychWydawnictwo Helion
 
Projektowanie struktur Active Directory
Projektowanie struktur Active DirectoryProjektowanie struktur Active Directory
Projektowanie struktur Active DirectoryWydawnictwo Helion
 
Bazy danych i MySQL. Od podstaw
Bazy danych i MySQL. Od podstawBazy danych i MySQL. Od podstaw
Bazy danych i MySQL. Od podstawWydawnictwo Helion
 
Access 2002. Tworzenie baz danych
Access 2002. Tworzenie baz danychAccess 2002. Tworzenie baz danych
Access 2002. Tworzenie baz danychWydawnictwo Helion
 
Oracle9i. Administrowanie bazami danych od podstaw
Oracle9i. Administrowanie bazami danych od podstawOracle9i. Administrowanie bazami danych od podstaw
Oracle9i. Administrowanie bazami danych od podstawWydawnictwo Helion
 

Was ist angesagt? (20)

Access 2007 PL. Kurs
Access 2007 PL. KursAccess 2007 PL. Kurs
Access 2007 PL. Kurs
 
MySQL. Podstawy
MySQL. PodstawyMySQL. Podstawy
MySQL. Podstawy
 
Oracle. Projektowanie rozproszonych baz danych
Oracle. Projektowanie rozproszonych baz danychOracle. Projektowanie rozproszonych baz danych
Oracle. Projektowanie rozproszonych baz danych
 
Po prostu Access 2002/XP PL
Po prostu Access 2002/XP PLPo prostu Access 2002/XP PL
Po prostu Access 2002/XP PL
 
Relacyjne bazy danych
Relacyjne bazy danychRelacyjne bazy danych
Relacyjne bazy danych
 
Modelowanie danych
Modelowanie danychModelowanie danych
Modelowanie danych
 
Google. Leksykon kieszonkowy
Google. Leksykon kieszonkowyGoogle. Leksykon kieszonkowy
Google. Leksykon kieszonkowy
 
Google. Ćwiczenia praktyczne
Google. Ćwiczenia praktyczneGoogle. Ćwiczenia praktyczne
Google. Ćwiczenia praktyczne
 
Bazy danych SQL. Teoria i praktyka
Bazy danych SQL. Teoria i praktykaBazy danych SQL. Teoria i praktyka
Bazy danych SQL. Teoria i praktyka
 
SQL w mgnieniu oka
SQL w mgnieniu okaSQL w mgnieniu oka
SQL w mgnieniu oka
 
Zarządzanie przechowywaniem danych w sieci
Zarządzanie przechowywaniem danych w sieciZarządzanie przechowywaniem danych w sieci
Zarządzanie przechowywaniem danych w sieci
 
ABC Access 2003 PL
ABC Access 2003 PLABC Access 2003 PL
ABC Access 2003 PL
 
PHP, Microsoft IIS i SQL Server. Projektowanie i programowanie baz danych
PHP, Microsoft IIS i SQL Server. Projektowanie i programowanie baz danychPHP, Microsoft IIS i SQL Server. Projektowanie i programowanie baz danych
PHP, Microsoft IIS i SQL Server. Projektowanie i programowanie baz danych
 
Projektowanie struktur Active Directory
Projektowanie struktur Active DirectoryProjektowanie struktur Active Directory
Projektowanie struktur Active Directory
 
Bazy danych i MySQL. Od podstaw
Bazy danych i MySQL. Od podstawBazy danych i MySQL. Od podstaw
Bazy danych i MySQL. Od podstaw
 
Po prostu CorelDRAW 11
Po prostu CorelDRAW 11Po prostu CorelDRAW 11
Po prostu CorelDRAW 11
 
Access 2002. Tworzenie baz danych
Access 2002. Tworzenie baz danychAccess 2002. Tworzenie baz danych
Access 2002. Tworzenie baz danych
 
Oracle9i. Administrowanie bazami danych od podstaw
Oracle9i. Administrowanie bazami danych od podstawOracle9i. Administrowanie bazami danych od podstaw
Oracle9i. Administrowanie bazami danych od podstaw
 
Hibernate w akcji
Hibernate w akcjiHibernate w akcji
Hibernate w akcji
 
Head First SQL. Edycja polska
Head First SQL. Edycja polskaHead First SQL. Edycja polska
Head First SQL. Edycja polska
 

Andere mochten auch

mod_perl. Podręcznik programisty
mod_perl. Podręcznik programistymod_perl. Podręcznik programisty
mod_perl. Podręcznik programistyWydawnictwo Helion
 
Projektowanie funkcjonalnych serwisów internetowych
Projektowanie funkcjonalnych serwisów internetowychProjektowanie funkcjonalnych serwisów internetowych
Projektowanie funkcjonalnych serwisów internetowychWydawnictwo Helion
 
Java w komercyjnych usługach sieciowych. Księga eksperta
Java w komercyjnych usługach sieciowych. Księga ekspertaJava w komercyjnych usługach sieciowych. Księga eksperta
Java w komercyjnych usługach sieciowych. Księga ekspertaWydawnictwo Helion
 
ABC ochrony komputera przed atakami hakera
ABC ochrony komputera przed atakami hakeraABC ochrony komputera przed atakami hakera
ABC ochrony komputera przed atakami hakeraWydawnictwo Helion
 
Red Hat Linux 7.3. Księga eksperta
Red Hat Linux 7.3. Księga ekspertaRed Hat Linux 7.3. Księga eksperta
Red Hat Linux 7.3. Księga ekspertaWydawnictwo Helion
 
ActionScript. Przewodnik encyklopedyczny
ActionScript. Przewodnik encyklopedycznyActionScript. Przewodnik encyklopedyczny
ActionScript. Przewodnik encyklopedycznyWydawnictwo Helion
 
Projektowanie oprogramowania. Wstęp do programowania i techniki komputerowej
Projektowanie oprogramowania. Wstęp do programowania i techniki komputerowejProjektowanie oprogramowania. Wstęp do programowania i techniki komputerowej
Projektowanie oprogramowania. Wstęp do programowania i techniki komputerowejWydawnictwo Helion
 
Photoshop Elements 2. Szybki start
Photoshop Elements 2. Szybki startPhotoshop Elements 2. Szybki start
Photoshop Elements 2. Szybki startWydawnictwo Helion
 
3ds max 5. Ćwiczenia praktyczne
3ds max 5. Ćwiczenia praktyczne3ds max 5. Ćwiczenia praktyczne
3ds max 5. Ćwiczenia praktyczneWydawnictwo Helion
 
Visual Basic .NET. Księga eksperta
Visual Basic .NET. Księga ekspertaVisual Basic .NET. Księga eksperta
Visual Basic .NET. Księga ekspertaWydawnictwo Helion
 

Andere mochten auch (18)

mod_perl. Podręcznik programisty
mod_perl. Podręcznik programistymod_perl. Podręcznik programisty
mod_perl. Podręcznik programisty
 
ABC sieci komputerowych
ABC sieci komputerowychABC sieci komputerowych
ABC sieci komputerowych
 
TCP/IP dla każdego
TCP/IP dla każdegoTCP/IP dla każdego
TCP/IP dla każdego
 
Projektowanie funkcjonalnych serwisów internetowych
Projektowanie funkcjonalnych serwisów internetowychProjektowanie funkcjonalnych serwisów internetowych
Projektowanie funkcjonalnych serwisów internetowych
 
Java w komercyjnych usługach sieciowych. Księga eksperta
Java w komercyjnych usługach sieciowych. Księga ekspertaJava w komercyjnych usługach sieciowych. Księga eksperta
Java w komercyjnych usługach sieciowych. Księga eksperta
 
ABC ochrony komputera przed atakami hakera
ABC ochrony komputera przed atakami hakeraABC ochrony komputera przed atakami hakera
ABC ochrony komputera przed atakami hakera
 
Fotografia cyfrowa
Fotografia cyfrowaFotografia cyfrowa
Fotografia cyfrowa
 
eXtreme programming
eXtreme programmingeXtreme programming
eXtreme programming
 
Red Hat Linux 7.3. Księga eksperta
Red Hat Linux 7.3. Księga ekspertaRed Hat Linux 7.3. Księga eksperta
Red Hat Linux 7.3. Księga eksperta
 
Aplikacje Direct3D
Aplikacje Direct3DAplikacje Direct3D
Aplikacje Direct3D
 
BeStCAD dla AutoCAD-a 2002 LT
BeStCAD dla AutoCAD-a 2002 LTBeStCAD dla AutoCAD-a 2002 LT
BeStCAD dla AutoCAD-a 2002 LT
 
ActionScript. Przewodnik encyklopedyczny
ActionScript. Przewodnik encyklopedycznyActionScript. Przewodnik encyklopedyczny
ActionScript. Przewodnik encyklopedyczny
 
XSLT dla każdego
XSLT dla każdegoXSLT dla każdego
XSLT dla każdego
 
Projektowanie oprogramowania. Wstęp do programowania i techniki komputerowej
Projektowanie oprogramowania. Wstęp do programowania i techniki komputerowejProjektowanie oprogramowania. Wstęp do programowania i techniki komputerowej
Projektowanie oprogramowania. Wstęp do programowania i techniki komputerowej
 
Photoshop Elements 2. Szybki start
Photoshop Elements 2. Szybki startPhotoshop Elements 2. Szybki start
Photoshop Elements 2. Szybki start
 
Język C. Programowanie
Język C. ProgramowanieJęzyk C. Programowanie
Język C. Programowanie
 
3ds max 5. Ćwiczenia praktyczne
3ds max 5. Ćwiczenia praktyczne3ds max 5. Ćwiczenia praktyczne
3ds max 5. Ćwiczenia praktyczne
 
Visual Basic .NET. Księga eksperta
Visual Basic .NET. Księga ekspertaVisual Basic .NET. Księga eksperta
Visual Basic .NET. Księga eksperta
 

Ähnlich wie Wprowadzenie do baz danych

Ähnlich wie Wprowadzenie do baz danych (15)

Access w biurze i nie tylko
Access w biurze i nie tylkoAccess w biurze i nie tylko
Access w biurze i nie tylko
 
Delphi 7 i bazy danych
Delphi 7 i bazy danychDelphi 7 i bazy danych
Delphi 7 i bazy danych
 
Access 2003 PL. Biblia
Access 2003 PL. BibliaAccess 2003 PL. Biblia
Access 2003 PL. Biblia
 
Access 2003 PL. Biblia
Access 2003 PL. BibliaAccess 2003 PL. Biblia
Access 2003 PL. Biblia
 
SQL. Szybki start
SQL. Szybki startSQL. Szybki start
SQL. Szybki start
 
Oracle9i. Podręcznik administratora baz danych
Oracle9i. Podręcznik administratora baz danychOracle9i. Podręcznik administratora baz danych
Oracle9i. Podręcznik administratora baz danych
 
Wprowadzenie do systemów baz danych
Wprowadzenie do systemów baz danychWprowadzenie do systemów baz danych
Wprowadzenie do systemów baz danych
 
JBuilder i bazy danych
JBuilder i bazy danychJBuilder i bazy danych
JBuilder i bazy danych
 
100 sposobów na Access
100 sposobów na Access100 sposobów na Access
100 sposobów na Access
 
PHP i MySQL. Tworzenie sklepów internetowych. Wydanie II
PHP i MySQL. Tworzenie sklepów internetowych. Wydanie IIPHP i MySQL. Tworzenie sklepów internetowych. Wydanie II
PHP i MySQL. Tworzenie sklepów internetowych. Wydanie II
 
Access 2002/XP PL dla każdego
Access 2002/XP PL dla każdegoAccess 2002/XP PL dla każdego
Access 2002/XP PL dla każdego
 
Po prostu Pajączek 5 NxG
Po prostu Pajączek 5 NxGPo prostu Pajączek 5 NxG
Po prostu Pajączek 5 NxG
 
MySQL. Szybki start
MySQL. Szybki startMySQL. Szybki start
MySQL. Szybki start
 
Programowanie w języku C. FAQ
Programowanie w języku C. FAQProgramowanie w języku C. FAQ
Programowanie w języku C. FAQ
 
Kurs tworzenia stron internetowych
Kurs tworzenia stron internetowychKurs tworzenia stron internetowych
Kurs tworzenia stron internetowych
 

Mehr von Wydawnictwo Helion

Tworzenie filmów w Windows XP. Projekty
Tworzenie filmów w Windows XP. ProjektyTworzenie filmów w Windows XP. Projekty
Tworzenie filmów w Windows XP. ProjektyWydawnictwo Helion
 
Blog, więcej niż internetowy pamiętnik
Blog, więcej niż internetowy pamiętnikBlog, więcej niż internetowy pamiętnik
Blog, więcej niż internetowy pamiętnikWydawnictwo Helion
 
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczne
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktycznePozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczne
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczneWydawnictwo Helion
 
E-wizerunek. Internet jako narzędzie kreowania image&#39;u w biznesie
E-wizerunek. Internet jako narzędzie kreowania image&#39;u w biznesieE-wizerunek. Internet jako narzędzie kreowania image&#39;u w biznesie
E-wizerunek. Internet jako narzędzie kreowania image&#39;u w biznesieWydawnictwo Helion
 
Microsoft Visual C++ 2008. Tworzenie aplikacji dla Windows
Microsoft Visual C++ 2008. Tworzenie aplikacji dla WindowsMicrosoft Visual C++ 2008. Tworzenie aplikacji dla Windows
Microsoft Visual C++ 2008. Tworzenie aplikacji dla WindowsWydawnictwo Helion
 
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie II
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie IICo potrafi Twój iPhone? Podręcznik użytkownika. Wydanie II
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie IIWydawnictwo Helion
 
Makrofotografia. Magia szczegółu
Makrofotografia. Magia szczegółuMakrofotografia. Magia szczegółu
Makrofotografia. Magia szczegółuWydawnictwo Helion
 
Java. Efektywne programowanie. Wydanie II
Java. Efektywne programowanie. Wydanie IIJava. Efektywne programowanie. Wydanie II
Java. Efektywne programowanie. Wydanie IIWydawnictwo Helion
 
Ajax, JavaScript i PHP. Intensywny trening
Ajax, JavaScript i PHP. Intensywny treningAjax, JavaScript i PHP. Intensywny trening
Ajax, JavaScript i PHP. Intensywny treningWydawnictwo Helion
 
PowerPoint 2007 PL. Seria praktyk
PowerPoint 2007 PL. Seria praktykPowerPoint 2007 PL. Seria praktyk
PowerPoint 2007 PL. Seria praktykWydawnictwo Helion
 
Serwisy społecznościowe. Budowa, administracja i moderacja
Serwisy społecznościowe. Budowa, administracja i moderacjaSerwisy społecznościowe. Budowa, administracja i moderacja
Serwisy społecznościowe. Budowa, administracja i moderacjaWydawnictwo Helion
 
Serwer SQL 2008. Administracja i programowanie
Serwer SQL 2008. Administracja i programowanieSerwer SQL 2008. Administracja i programowanie
Serwer SQL 2008. Administracja i programowanieWydawnictwo Helion
 

Mehr von Wydawnictwo Helion (20)

Tworzenie filmów w Windows XP. Projekty
Tworzenie filmów w Windows XP. ProjektyTworzenie filmów w Windows XP. Projekty
Tworzenie filmów w Windows XP. Projekty
 
Blog, więcej niż internetowy pamiętnik
Blog, więcej niż internetowy pamiętnikBlog, więcej niż internetowy pamiętnik
Blog, więcej niż internetowy pamiętnik
 
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczne
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktycznePozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczne
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczne
 
E-wizerunek. Internet jako narzędzie kreowania image&#39;u w biznesie
E-wizerunek. Internet jako narzędzie kreowania image&#39;u w biznesieE-wizerunek. Internet jako narzędzie kreowania image&#39;u w biznesie
E-wizerunek. Internet jako narzędzie kreowania image&#39;u w biznesie
 
Microsoft Visual C++ 2008. Tworzenie aplikacji dla Windows
Microsoft Visual C++ 2008. Tworzenie aplikacji dla WindowsMicrosoft Visual C++ 2008. Tworzenie aplikacji dla Windows
Microsoft Visual C++ 2008. Tworzenie aplikacji dla Windows
 
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie II
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie IICo potrafi Twój iPhone? Podręcznik użytkownika. Wydanie II
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie II
 
Makrofotografia. Magia szczegółu
Makrofotografia. Magia szczegółuMakrofotografia. Magia szczegółu
Makrofotografia. Magia szczegółu
 
Windows PowerShell. Podstawy
Windows PowerShell. PodstawyWindows PowerShell. Podstawy
Windows PowerShell. Podstawy
 
Java. Efektywne programowanie. Wydanie II
Java. Efektywne programowanie. Wydanie IIJava. Efektywne programowanie. Wydanie II
Java. Efektywne programowanie. Wydanie II
 
JavaScript. Pierwsze starcie
JavaScript. Pierwsze starcieJavaScript. Pierwsze starcie
JavaScript. Pierwsze starcie
 
Ajax, JavaScript i PHP. Intensywny trening
Ajax, JavaScript i PHP. Intensywny treningAjax, JavaScript i PHP. Intensywny trening
Ajax, JavaScript i PHP. Intensywny trening
 
PowerPoint 2007 PL. Seria praktyk
PowerPoint 2007 PL. Seria praktykPowerPoint 2007 PL. Seria praktyk
PowerPoint 2007 PL. Seria praktyk
 
Excel 2007 PL. Seria praktyk
Excel 2007 PL. Seria praktykExcel 2007 PL. Seria praktyk
Excel 2007 PL. Seria praktyk
 
Access 2007 PL. Seria praktyk
Access 2007 PL. Seria praktykAccess 2007 PL. Seria praktyk
Access 2007 PL. Seria praktyk
 
Word 2007 PL. Seria praktyk
Word 2007 PL. Seria praktykWord 2007 PL. Seria praktyk
Word 2007 PL. Seria praktyk
 
Serwisy społecznościowe. Budowa, administracja i moderacja
Serwisy społecznościowe. Budowa, administracja i moderacjaSerwisy społecznościowe. Budowa, administracja i moderacja
Serwisy społecznościowe. Budowa, administracja i moderacja
 
AutoCAD 2008 i 2008 PL
AutoCAD 2008 i 2008 PLAutoCAD 2008 i 2008 PL
AutoCAD 2008 i 2008 PL
 
Bazy danych. Pierwsze starcie
Bazy danych. Pierwsze starcieBazy danych. Pierwsze starcie
Bazy danych. Pierwsze starcie
 
Inventor. Pierwsze kroki
Inventor. Pierwsze krokiInventor. Pierwsze kroki
Inventor. Pierwsze kroki
 
Serwer SQL 2008. Administracja i programowanie
Serwer SQL 2008. Administracja i programowanieSerwer SQL 2008. Administracja i programowanie
Serwer SQL 2008. Administracja i programowanie
 

Wprowadzenie do baz danych

  • 1. IDZ DO PRZYK£ADOWY ROZDZIA£ SPIS TRE CI Wprowadzenie do baz danych KATALOG KSI¥¯EK Autor: John Petersen KATALOG ONLINE T³umaczenie: Krzysztof Jurczyk ISBN: 83-7197-815-4 ZAMÓW DRUKOWANY KATALOG Tytu³ orygina³u: ABG to Databases Format: B5, stron: 272 TWÓJ KOSZYK DODAJ DO KOSZYKA 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. CENNIK I INFORMACJE Zrozumienie zasad projektowania baz danych umo¿liwia pe³ne wykorzystanie nowoczesnych aplikacji, niezbêdnych w funkcjonowaniu niemal ka¿dego ZAMÓW INFORMACJE przedsiêbiorstwa. Pozwala na dobr¹ organizacjê, sprawne zarz¹dzania danymi 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 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 wiedzê na ich temat. FRAGMENTY KSI¥¯EK ONLINE 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 Wydawnictwo Helion pocz¹tkuj¹cych programistów, jak i dla osób bez do wiadczenia informatycznego. ul. Chopina 6 Przyk³ady prezentowane w ksi¹¿ce oparte s¹ na popularnym Accessie. Je li jeste 44-100 Gliwice osob¹, która chce rozpocz¹æ podró¿ po wiecie baz danych, ale nie wiesz, od czego tel. (32)230-98-63 zacz¹æ, ta ksi¹¿ka jest w³a nie dla Ciebie! e-mail: helion@helion.pl
  • 2. 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
  • 3. 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
  • 4. 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 Łą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 Łą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 Łą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
  • 5. 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
  • 6. 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 —
  • 7. 52 Część II ♦ 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 znaleźć 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 znaleźć 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 źró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 źródeł informacji na ten temat do najczęściej wykorzysty- wanych nale ą: wywiady, dokumentacja firmy oraz istniejące systemy.
  • 8. Rozdział 3. ♦ 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ądź 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 źró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.
  • 9. 54 Część II ♦ Projektowanie i budowanie pierwszej bazy danych Dokumentacja firmy Wywiady mogą stanowić źró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.
  • 10. Rozdział 3. ♦ 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 źródłami informacji nie zawsze jest wyraźna. 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 źró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ć źró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
  • 11. 56 Część II ♦ 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ń. Weźmy 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. Kilka 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. Resolution 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, Visible Analyst 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.
  • 12. Rozdział 3. ♦ 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).
  • 13. 58 Część II ♦ 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.
  • 14. Rozdział 3. ♦ 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 -NKGPV z jednym zdefiniowanym polem. Pole to, +&MNKGPVC, 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.
  • 15. 60 Część II ♦ 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 <COÎYKGPKC i 'NGOGPV[<COÎYKGPKC: 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ę <COÎYKGPKC i naciśnij przycisk OK. Na rysunku 3.7 przedstawiono pierwszą zakładkę okna dialogowego Define Entity (definiuj jednostkę).
  • 16. Rozdział 3. ♦ 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ę 'NGOGPV[<COÎYKGPKC. 8. Kliknij ponownie jednostkę <COÎYKGPKC, wykonaj krok 6., wybierając zakładkę Attributes (atrybuty) w oknie dialogowym Define Entity. 9. Kliknij przycisk New, aby utworzyć nowe pole. Nazwij je +&COÎYKGPKC, zdefiniuj, e ma być kluczem podstawowym i typu +PVGIGT. Na rysunku 3.8 zostało pokazane, jak powinno wyglądać okno dialogowe. 10. Powtórz krok 9. dla jednostki 'NGOGPV[<COÎYKGPKC, dodając pole o nazwie +&GNGOGPVW<COQYKGPKC. Twój schemat powinien wyglądać tak, jak na rysunku 3.9.
  • 17. 62 Część II ♦ 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 -NKGPEK. Na potwierdzenie poprawnego wykonania tej operacji, po zaznaczeniu linii relacji, lewy jej koniec powinien mieć kolor czerwony (rysunek 3.10).
  • 18. Rozdział 3. ♦ 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 <COÎYKGPKC. W tym celu kliknij prawy koniec linii relacji i przeciągnij go do jednego z niebieskich znaczników jednostki <COÎYKGPKC. 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ą <COÎYKGPKC a 'NGOGPV[<COÎYKGPKC. 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 <COÎYKGPKC mogła obsłu yć klucz obcy IDklienta, musiało zostać zdefiniowane pole +&MNKGPVC. 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.
  • 19. 64 Część II ♦ 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
  • 20. Rozdział 3. ♦ 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
  • 21. 66 Część II ♦ 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
  • 22. Rozdział 3. ♦ 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: -NKGPV, 2TCEQYPKM, 5RTCYC (pamiętajmy, e tworzymy bazę danych dla firmy prawniczej), (CMVWTC, 5EGIQN[2T[FKCNW%CUW. 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 5EGIQN[2T[FKCNW%CUW. 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ą znaleźć 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ędź 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.
  • 23. 68 Część II ♦ 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 nieźle. Czy jest ju kompletny? Biorąc pod uwagę, e to dopiero pierwsze podejście, odpowiedź 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 5RTCYC mo na znaleźć pracowników, którzy przydzielili sprawie czas, przechodząc przez jednostkę 5EGIQN[2T[FKCNW%CUW. Tak długo jak wszyscy pracownicy skojarzeni z daną sprawą przypisali do niej czas, mo esz znaleźć 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.
  • 24. Rozdział 3. ♦ 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 5RTCYC i 2TCEQYPKM. 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
  • 25. 70 Część II ♦ 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 5EGIQN[2T[FKCNW%CUW jedynie ze sprawą, pracownikiem i fakturą nie byłaby wystarczająca. Oczywiste jest, e rekord 5EGIQN[2T[FKCNW%CUW 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 5EGIQN[2T[ FKCNW%CUW musimy dodać +MNKGPVC 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
  • 26. Rozdział 3. ♦ 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 źró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 źródła informacji — wywiady i istniejące systemy — równie są istotne. W jakim stopniu będziesz polegał na poszcze- gólnych źró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ę źró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ądź 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.