MICHAEL J. HERNANDEZ BAZY DANYCH DLA ZWYKŁYCH MIERTELNIKÓW Mojej matce, Esteli R. Pund. Może nie jest to jeszcze symfonia, ale przynajmniej opus. Pamięci mojego tecia, LeRoya W. Bonnicksen, który zawsze we mnie wierzył. Każdemu, kto bezskutecznie próbował stworzyć relacyjnš bazę danych. Przekład z języka angielskiego: Piotr Nowakowski MIKOM Projekt okładki: Michał Rosiński Redakcja: Irena Pielińska Skład komputerowy: Dorota wistak Ksišżka prezentuje podejcie do projektowania baz danych niezależne od stosowanego oprogramowania. Dobry projekt bazy danych pozwala zaoszczędzić wiele cennego czasu podczas pisania gotowego programu w dowolnym języku. Autor opierajšc się na swych wieloletnich dowiadczeniach przygotował prosty podręcznik prezentujšcy podstawowe zasady projektowania relacyjnych baz danych. Autor wprowadza podstawowe pojęcia projektowania baz danych bez używania technicznego żargonu. Zaletš ksišżki jest bezporednie podejcie do zagadnień i bogactwo praktycznych przykładów. Każdy projektant baz danych znajdzie tu odpowiedniš dla siebie metodologię projektowania takich baz danych, które będš naprawdę efektywnie działać. Ksišżka może posłużyć wszystkim, którzy rozpoczynajš pracę nad bazš danych przy wykorzystaniu takich narzędzi jak Access, FoxPro, Visual Basic, Turbo Pascal, C++, Power Builder. Zastrzeżonych nazw firm i produktów użyto w ksišżce wyłšcznie w celu identyfikacji. Copyright Š EDU-MIKOM Wszystkie prawa zastrzeżone. Reprodukcja bez zezwolenia zabroniona. Wydawca: EDU-MIKOM s.c., ul. Andrzejowska 3, 02-312 Warszawa, tel. 823-70-77 Druk: ZWP "HEL", Ul. Grenadierów 77, Warszawa, tel. 810-12-71 ISBN 83-87102-52-0 Warszawa, sierpień 1998 #5 Spis treci Słowo wstępne 11 Przedmowa i podziękowania 13 Wprowadzenie 17 Kto powinien przeczytać tę ksišżkę? 18 Cel niniejszej ksišżki 19 Jak czytać tę ksišżkę? 21 Organizacja ksišżki 21 Słowo o przykładach i technikach opisywanych w tej ksišżce 23 CZĘĆ I. Projektowanie relacyjnej bazy danych 27 1. Czym jest relacyjna baza danych? 29 Typy baz danych 29 Wczesne modele baz danych 29 Hierarchiczny model logiczny 30 Sieciowy model logiczny 32 Relacyjny model logiczny: krótka historia 34 Systemy zarzšdzania relacyjnymi bazami danych 38 Podsumowanie 40 2. Cele projektowania 41 Dlaczego należy przykładać wagę do projektowania? 41 Rola teorii 42 Korzyci płynšce z opanowania poprawnej metodologii tworzenia projektów 44 Rola zrozumienia metod projektowania baz danych 44 Cele dobrego projektu 44 Zalety dobrego projektu 45 Metody projektowania baz danych 45 Metody projektowania prezentowane w tej ksišżce 47 Podsumowanie 48 3. Terminologia 49 Dlaczego terminologia jest ważna? 49 Pojęcia zwišzane z wartociami 50 #6 Dane 50 Informacje 50 Null (wartoć zerowa) 51 Pojęcia zwišzane ze strukturami 53 Tabele 53 Pola 55 Rekordy 55 Perspektywy 56 Klucze 57 Indeksy 58 Pojęcia zwišzane z relacjami 58 Relacje 58 Typy relacji 59 Typy uczestnictwa 62 Stopień uczestnictwa 63 Pojęcia zwišzane z integralnociš 63 Atrybuty pól 63 Integralnoć danych 64 Podsumowanie 65 CZĘĆ II. Proces projektowania 67 4. Opis koncepcyjny 69 Dlaczego należy przejć przez całoć procesu projektowania 69 Formułowanie definicji celu i założeń wstępnych 70 Analiza istniejšcej bazy danych 71 Tworzenie struktur danych 72 Definiowanie relacji 72 Wprowadzanie reguł integralnoci 73 Definiowanie perspektyw 74 Kontrola integralnoci danych 74 Podsumowanie 75 5. Na poczštek 77 Prowadzenie wywiadów 77 Studium przypadku: Kraina Rowerów Mike'a 82 Formułowanie definicji celu 83 Poprawnie sformułowana definicja celu 83 Kompozycja definicji celu 84 Studium przypadku 86 Formułowanie założeń wstępnych 87 Dobrze sformułowane założenia wstępne 87 Kompozycja założeń wstępnych 88 #7 Studium przypadku 91 Podsumowanie 91 6. Analiza istniejšcej bazy danych 93 Poznawanie istniejšcej bazy danych 93 Papierkowe bazy danych 94 Spadkowe bazy danych 95 Prowadzenie analizy 96 Analiza sposobu gromadzenia danych 96 Analiza sposobu prezentowania informacji .98 Prowadzenie wywiadów 100 Prowadzenie wywiadów z pracownikami 105 Przeglšd rodzajów i sposobów wykorzystania danych 106 Przeglšd próbek 107 Przeglšd wymagań informacyjnych 110 Prowadzenie wywiadów z kierownictwem 116 Przeglšd aktualnych wymagań informacyjnych 117 Przeglšd dodatkowych wymagań informacyjnych 117 Przeglšd przyszłych wymagań informacyjnych 118 Przeglšd ogólnych wymagań informacyjnych 118 Sporzšdzanie listy pól 119 Wstępna lista pól 119 Lista pól wyliczonych 123 Skonsultowanie obu list z pracownikami i kierownictwem 124 Studium przypadku 124 Podsumowanie 129 7. Definiowanie tabel 131 Tworzenie wstępnej listy tabel 131 Okrelanie tematów tabel 131 Wykorzystanie listy tematów 133 Interpretacja założeń wstępnych 136 Ostateczna lista tabel 137 Poprawianie nazw tabel 138 Definiowanie typów tabel 140 Formułowanie opisów tabel 141 Przypisywanie pól tabelom 145 Poprawianie pól 147 Poprawianie nazw pól 147 Pole doskonałe 150 Poprawianie tabel 155 Słowo na temat zwielokrotnionych danych i pól 155 Tabela doskonała 156 Tabele-podzbiory 160 #8 Studium przypadku 162 Podsumowanie 168 8. Klucze 171 Dlaczego klucze sš ważne 171 Definiowanie kluczy 172 Klucze kandydujšce 172 Klucze podstawowe 177 Pole niekluczowe 182 Integralnoć na poziomie tabel 182 Przeglšd wstępnych struktur tabel 182 Studium przypadku 183 Podsumowanie 187 9. Atrybuty pól 189 Dlaczego atrybuty pól sš ważne 189 Integralnoć na poziomie pól 190 Przekrój przez pole 191 Atrybuty ogólne 193 Atrybuty fizyczne 196 Atrybuty logiczne 199 Specyfikacja 204 Definiowanie atrybutów pól 207 Studium przypadku 210 Podsumowanie 210 10. Relacje 213 M Typy relacji 214 Relacje jeden-do-jednego 215 Relacje jeden-do-wielu 215 Relacje wiele-do-wielu 216 Okrelanie istniejšcych relacji 220 Definiowanie relacji 223 Relacje jeden-do-jednego i jeden-do-wielu 223 Relacja wiele-do-wielu 226 Przeglšd struktur tabel 230 Poprawianie kluczy obcych 230 Definiowanie cech relacji 233 Reguły usuwania 233 Typy uczestnictwa 235 Stopień uczestnictwa 236 Skonsultowanie relacji z użytkownikami 237 Integralnoć na poziomie relacji 238 #9 Studium przypadku 238 Podsumowanie 241 11. Reguły integralnoci 243 Czym sš reguły integralnoci? 243 Typy reguł integralnoci 245 Kategorie reguł integralnoci 247 Formułowanie i wprowadzanie reguł integralnoci 249 Wywiady z pracownikami i kierownictwem 249 Definiowanie reguł dotyczšcych pól 250 Definiowanie reguł dotyczšcych relacji 255 Tabele walidacji 260 Czym sš tabele walidacji? 262 Wykorzystanie tabel walidacji do wspomagania reguł integralnoci 262 Przeglšd formularzy reguł integralnoci 266 Studium przypadku 267 Podsumowanie 272 12. Perspektywy 273 Czym sš perspektywy? 273 Przekrój przez perspektywę 274 Perspektywy danych 274 Perspektywy agregujšce 278 Perspektywy walidacji 279 Okrelanie i definiowanie perspektyw 281 Rozmowy z pracownikami i kierownictwem 281 Definiowanie perspektyw 282 Przeglšd dokumentacji perspektyw 289 Studium przypadku 289 Podsumowanie 294 13. Kontrola integralnoci danych 295 Dlaczego warto skontrolować integralnoć danych 296 Poprawianie integralnoci danych . 296 Na poziomie tabel 296 Na poziomie pól 297 Na poziomie relacji 297 Na poziomie reguł integralnoci 297 Na poziomie perspektyw 297 Jak przygotować dokumentacje bazy 298 I wreszcie koniec! 299 Studium przypadku - zakończenie .299 Podsumowanie 299 #10 CZĘĆ III. Pozostałe zagadnienia projektowe 301 14. Złe projekty - czego nie robić? 303 Projekt plikowy 303 Projekt w arkuszu kalkulacyjnym 304 Jak zerwać z nawykami zwišzanymi z wywietlaniem danych w arkuszu kalkulacyjnym 306 Projekty oparte na konkretnych systemach zarzšdzania 307 Ostatnie przemylenie 308 Podsumowanie 308 15. Naginanie i łamanie zasad 309 Kiedy można nagišć lub złamać zasady? 309 Projektowanie analitycznej bazy danych 309 Poprawianie wydajnoci bazy 310 Dokumentowanie swoich poczynań 311 Podsumowanie 312 Na zakończenie 313 Dodatek A. Przykładowe projekty 315 Dodatek B. Diagramy 319 Dodatek C. Formularze dokumentacyjne 321 Skorowidz 325 #11 Słowo wstępne Być może zastanawiasz się, po co ludziom kolejna ksišżka o projektowaniu baz danych. Kiedy Mike Hernandez omawiał ze mnš założenia niniejszej pracy, sam zadawałem sobie to pytanie. A jednak - co mogłe stwierdzić po wstępnym przekartkowaniu ksišżki, którš trzymasz w ręku - pozycja taka jest potrzebna. Istnieje wiele ksišżek opisujšcych teorię i pojęcia, na których opiera się nauka o projektowaniu baz danych, lecz prawdopodobnie niewiele z nich (a może żadna) nie jest napisana ze szczególnego punktu widzenia, jakim dysponuje Mike. Człowiek ten postawił sobie za cel stworzenie ksišżki, która byłaby mocno osadzona na solidnych podstawach nauk matematycznych, wykorzystujšc jednak tę wiedzę do opisu praktycznych zastosowań, a nie teoretycznych możliwoci. Niezależnie od używanego przez Ciebie pakietu oprogramowania bazodanowego, ksišżka ta będzie Ci służyć pomocš w projektowaniu własnych aplikacji. Jeli chodzi o mnie, zrozumiałem, że ksišżka ta jest przeznaczona dla ludzi takich jak ja po otwarciu jej na wstępie do rozdziału szóstego i przeczytaniu poniższej sugestii: Nie traktuj struktury istniejšcej bazy danych jako podstawy dla struktury nowej bazy danych." Gdybym kto mi to powiedział wiele lat wczeniej, kiedy rozpoczynałem swojš przygodę z bazami danych, zaoszczędziłbym mnóstwo czasu! To włanie chcę zaznac...
sliwak