PROJEKTOWANIE RELACYJNEJ BAZY DANYCH OPRACOWANIE: SŁAWOMIR APANOWICZ 1. Ogólne informacje o projektowaniu bazy danych Przystępując do projektowania bazy danych należy określić jej cel oraz zadania, jakie pełnić mają obiekty bazy danych. Projektowanie bazy można podzielić na dwie części: część dotyczącą projektowania struktury bazy danych, (czyli tabel, ich pól, relacji pomiędzy tabelami) i kwerend oraz na część związaną z systemem zarządzania bazą, czyli obejmującą projektowanie formularzy, raportów czy makr. Projektowanie warto rozpocząć od rozrysowania struktury bazy na kartce papieru czy tablicy. Zaznaczenie pól kluczy podstawowych oraz relacji wiążących dane w bazie pozwala na przeanalizowanie działania bazy i określenie optymalnej metody realizacji projektu. 2. Projektowanie struktury bazy danych Tworzenie struktury bazy danych jest jednym z najtrudniejszych etapów projektowania bazy. Nie zawsze za pierwszym razem uzyskuje się rozwiązanie optymalne. W części dotyczącej projektowania struktury bazy danych i kwerend należy: a określić cel bazy danych oraz sformułować zadania realizowane przez bazę danych; a przeanalizować dane, które będą przechowywane w bazie. Należy określić, które z nich są niezbędne, a które są zbyteczne (nadmiarowe). W oparciu o przeprowadzoną analizę projektujemy tabele i ich pola; a określić klucze podstawowe tabel i indeksy; a zaprojektować relacje pomiędzy tabelami; a zaprojektować zapytania (kwerendy) wybierające i, jeśli to konieczne, zapytania funkcjonalne. W oparciu o tabele (perspektywy) tworzone przez zapytania wybierające możemy zaprojektować formularze i raporty. 3. Projektowanie formularzy, raportów i innych obiektów aplikacji bazy danych Po zaprojektowaniu struktury bazy przystępujemy do projektowania formularzy, raportów czy makr (modułów). Gdy projekt bazy i programu jej obsługi (aplikacji) jest gotowy, możemy przystąpić do jego realizacji praktycznej. 4. Projektowanie bazy danych w środowisku programu Access Narzędzia i metody oferowane przez nowoczesną technologię informacyjną pozwalają w przystępny sposób utworzyć własną funkcjonalną bazę danych, realizującą powierzone jej zadania. Poniżej przedstawiamy projekt takiej bazy danych - bazy Terminarz. Określimy także funkcje i zadania systemu zarządzania tą bazą danych. Środowiskiem, w którym projekt zostanie zrealizowany, będzie Microsoft Access 2000. Na przykładzie zaproponowanego projektu przybliżymy najważniejsze zagadnienia związane z projektowaniem, tworzeniem i obsługą prostych, relacyjnych baz danych. 5. Określenie celu bazy danych i formułowanie jej zadań Każdy z nas korzysta z jakiejś formy terminarza umożliwiającego gromadzenie danych np. o znajomych, ich adresach czy telefonach. Często w takim terminarzu przy wybranej dacie planujemy określone zadania do wykonania, np. zapłacenie rachunku za telefon czy telefon z życzeniami urodzinowymi do cioci. Tego typu terminarz zrealizujemy w formie elektronicznej jako komputerową bazę danych. Jej celem będzie właściwa organizacja danych adresowych i ułatwienie zarządzania nimi. Do zadań projektowanego terminarza należeć będzie m.in.: przechowywanie danych adresowych wybranych osób; przechowywanie danych o planowanych zadaniach i datach ich realizacji, które są powiązane z konkretną osobą w bazie (np. zadzwonić do cioci Ewy z życzeniami urodzinowymi), jak i zadaniach nie związanych z żadną osobą (np. 10 czerwca mamy odebrać rower z naprawy); 1
zapewnienie szybkiego dostępu do informacji o planowanych zadaniach i powiązanych z nimi osobach; archiwizacja wskazanych zasobów w celu zwiększenia bezpieczeństwa danych w bazie (np. abyśmy w razie przypadkowego skasowania pliku bazy nie utracili informacji o zaplanowanych zadaniach); kompleksowa obsługa bazy za pomocą funkcjonalnych formularzy; a drukowanie list adresowych i wykazów zadań za pomocą raportów. 6. Analiza danych i projektowanie tabel bazy danych Po określeniu celu i zadań bazy danych zastanówmy się, jakie dane mają zostać w niej zgromadzone. Na pewno będą to dane typu imię osoby, jej nazwisko, adres zamieszkania, numer telefonu czy adres e-mail. Zostaną one zorganizowane w tabeli Kontakty. Jak wiemy, w jednej tabeli nie mogą znaleźć się dane, które nie byłyby logicznie powiązane z pozostałymi. Oznacza to, że w tabeli Kontakty nie możemy umieścić danych o planowanych zadaniach, dacie ich realizacji, jak i o tym, czy zadanie zostało zrealizowane. Te dane zostaną zorganizowane w oddzielnej tabeli - tabeli Zadania. W bazie proponujemy utworzenie jeszcze jednej tabeli - Kategorie kontaktów. Będzie ona zawierała informację o typie (kategorii) kontaktu, np. czy dana osoba w bazie to rodzina, znajomy czy może jest związana z nami kontaktem służbowym. W ten sposób ujednolicony zostanie rodzaj kontaktu. Nazwy projektowanych tabel, jak i wykaz nazw ich pól przedstawiamy w tabeli poniżej: Tabela: Projekt tabel i ich pól w bazie danych Terminarz W bazie utworzymy także niezależną tabelę Archiwum, niemającą wpływu na działanie bazy. Umieszczane w niej będą rekordy zadań niezrealizowanych, stanowiące kopię bezpieczeństwa danych o tym, co mieliśmy wykonać. Tabelę utworzymy w oddzielnym pliku za pomocą kwerendy funkcjonalnej. 7. Określanie kluczy w tabelach Z myślą o kluczach podstawowych w tabelach bazy Terminarz zostały zaprojektowane pola typu ID (w tabeli Kontakty jest to pole IDosoby, w tabeli Zadania pole IDzadania, a w tabeli Kategorie kontaktów pole IDkategorii). Unikatowa na poziomie tabeli wartość pola klucza podstawowego będzie tworzona automatycznie przez autonumerowanie rekordów w programie Access. Oprócz pola klucza podstawowego, w tabeli Kontakty pojawi się pole klucza obcego do tabeli Kategorie kontaktów, a w tabeli Zadania umieszczony zostanie klucz obcy IDosoby do tabeli Kontakty. Za jego pomocą możliwe będzie powiązanie niektórych zadań z konkretną osobą w tabeli Kontakty. 8. Określanie indeksów w tabelach Na etapie projektowania bazy danych należy określić, które z pól tabeli będą indeksowane oraz czy w indeksach wystąpią powtórzenia. Pola kluczy podstawowych są z natury indeksowane automatycznie bez powtórzeń. Indeksowane powinny być również pola, względem których odbywa się wyszukiwanie informacji. W przypadku tabeli Kontakty będzie to pole: Nazwisko, Imię. W tabeli Zadania indeksowanym polem będzie pole DataZadania. Pola zostaną zaindeksowane z powtórzeniami. Dodatkowo w każdej z tabel przyjmiemy indeksowanie z powtórzeniami dla obecnych w niej pól kluczy obcych. 2
9. Projektowanie relacji pomiędzy tabelami W projektowanej bazie zaprojektujemy dwie relacje (tabela poniżej.). Obydwie będą relacjami typu jeden do wielu" (l - wielu), czyli jednemu rekordowi w tabeli podstawowej będzie odpowiadać wiele rekordów w tabeli połączonej. Tabela. Projekt relacji pomiędzy tabelami w bazie danych Terminarz Relacje pomiędzy tabelami w bazie zostały przedstawione na rysunku 6.12. Pola kluczy podstawowych tabel zostały oznaczone na rysunku ikoną @, w przeciwieństwie do pól kluczy obcych, które oznaczyliśmy w kolorze szarym. Struktura bazy danych Terminarz 3
10. Projektowanie kwerend W bazie danych utworzymy trzy kwerendy wybierające i dwie kwerendy funkcjonalne. Wykaz kwerend i ich przeznaczenie przedstawia tabela: Tabela. Projekt kwerend w bazie danych Terminarz 11. Projektowanie formularzy i raportów Aplikacja terminarza obejmować będzie sześć formularzy. Za ich pomocą możliwe będzie wprowadzanie, przeglądanie i edytowanie danych w bazie. Podstawowym formularzem będzie formularz tzw. panelu przełączania. Jest to specjalny formularz sterujący, z poziomu, którego otwierane są inne obiekty bazy danych. Na rysunku poniżej pokazano przykład formularzy projektowanej bazy danych. Przykłady formularzy bazy danych Terminarz 4
W tabeli poniżej przedstawiony został opis poszczególnych formularzy i ich zadań. Tabela. Projekt formularzy systemu zarządzania bazą danych Terminarz Oprócz formularzy w bazie zostaną utworzone dwa raporty. Ich nazwy oraz przeznaczenie przedstawia tabela niżej. Zarówno formularze, jak i utworzone raporty będą uruchamiane z poziomu panelu przełączania za pomocą odpowiednich poleceń tego panelu. Tabela. Projekt raportów systemu zarządzana bazą danych Terminarz 5
12. Projektowanie makr Dostępny w programie Access język makr pozwala w prosty i przystępny sposób na automatyzację określonych, często powtarzanych zadań systemu zarządzania bazą danych. Za pomocą makr możemy zrealizować wiele funkcji systemu, np. otwieranie formularzy, raportów, uruchamianie kwerend itp. Wszystkie makra zaprojektowane z myślą o bazie danych Terminarz zostały zestawione w tabeli: Tabela. Projekt makr systemu zarządzania bazą danych Terminarz Teraz, gdy struktura bazy danych Terminarz, jak i jej systemu zarządzania zostały zaprojektowane, możemy przystąpić do realizacji projektu. W kolejnych krokach, utworzymy tabele, kwerendy i pozostałe obiekty naszej bazy danych. Pytania i polecenia: 1. Wymień etapy projektowania bazy danych. 2. Na czym polega projektowanie struktury bazy danych? 6