Projektowanie baz danych Baza danych jest zbiorem informacji związanych ze sobą tematycznie, może zawierać: tabele, kwerendy, formularze, raporty, makra, moduły i skróty do stron dostępu do danych. Podstawową funkcją każdej aplikacji bazodanowej jest przechowywanie pewnych informacji o wybranych przedmiotach. Projektowanie bazy danych wymaga umiejętności spojrzenia na informację jako na zbiór danych opisujących poszczególne przedmioty oraz związki (relacje ) zachodzące pomiędzy różnymi obiektami1. Używając programu Microsoft Access można zarządzać wszystkimi swoimi informacjami z pojedynczego pliku bazy danych. W obrębie tego pliku dane można podzielić na osobne kontenery nazywane tabelami; oglądać, dodawać i aktualizować dane przy użyciu formularzy w trybie online; znajdować i pobierać żądane dane przy użyciu kwerend; oraz analizować lub drukować dane w określonym układzie przy użyciu raportów. W programie Microsoft Access są dwie metody tworzenia bazy danych. Można utworzyć pustą bazę danych, a następnie dodać do niej tabele, formularze, raporty i inne obiekty - jest to najbardziej elastyczna metoda, lecz wymagająca oddzielnego zdefiniowania każdego elementu bazy danych. Alternatywnie można użyć Kreatora baz danych do utworzenia w jednej operacji wymaganych tabel, formularzy i raportów dla wybranego rodzaju bazy danych - jest to najłatwiejsza metoda rozpoczęcia tworzenia bazy danych. Bez względu na wybraną metodę, po utworzeniu bazy danych można ją później modyfikować i powiększać w dowolnym czasie. Aby w sposób efektywny przechowywać dane, należy utworzyć jedną tabelę dla każdego typu informacji, które mają być śledzone. Zbierając dane z wielu tabel w kwerendzie, formularzu, raporcie lub na stronie dostępu do danych, należy również zdefiniować relacje między tabelami. Aby znaleźć lub pobrać tylko te dane, które spełniają określone warunki, lub dane z wielu tabel, należy utworzyć kwerendę. Kwerenda może również aktualizować lub usuwać wiele rekordów na raz i przeprowadzać predefiniowane lub niestandardowe obliczenia na danych. Chcąc oglądać, wprowadzać lub zmieniać dane bezpośrednio w tabeli, należy utworzyć formularz. Po otwarciu formularza, program Microsoft Access pobiera dane z jednej lub kilku tabel i wyświetla je na ekranie w układzie wybranym przez użytkownika w Kreatorze formularzy lub utworzonym samodzielnie. Do analizy danych lub zaprezentowania ich w określony sposób na wydruku służy raport. Można na przykład wydrukować jeden raport, który grupuje dane i wylicza podsumowania, i drugi, z innymi danymi, sformatowanymi w sposób odpowiedni dla etykiet wysyłkowych. Przed rozpoczęciem używania programu Microsoft Access do budowania tabel, formularzy i innych obiektów, które złożą się na bazę danych, należy koniecznie poświęcić nieco czasu na zaprojektowanie bazy danych. Zarówno w bazie danych w Microsoft Access, jak i w projekcje Microsoft Access, dobry projekt jest podstawą utworzenia bazy danych, która pozwoli na szybkie, dokładne i skuteczne wykonywanie zamierzonych celów. 1 D Mendrala, M Szeliga – Access 2003. Gliwice 2003, s. 8 1 Etapy projektowania bazy danych 1. 2. 3. 4. 5. 6. 7. 8. Określenie celu, któremu ma służyć baza danych. Określenie tabel, które są potrzebne w bazie danych. Określenie pól, które są potrzebne w tabelach. Przypisanie polom jednoznacznych wartości w każdym rekordzie. Określenie relacji między tabelami. Udoskonalenie projektu. Wprowadzenie danych i utworzenie innych obiektów bazy danych. Zastosowanie narzędzi analizy programu Microsoft Access. Ad:1 Określenie celu, któremu ma służyć baza danych Pierwszym krokiem w projektowaniu bazy danych jest określenie celu, któremu ma służyć baza i sposobu jej używania. Trzeba wiedzieć, jakich informacji ma dostarczyć baza danych. Na tej podstawie można określić, jakie zagadnienia będą analizowane w bazie danych (tabele) i jakie informacje mają określać każde zagadnienie (pola w tabelach). Należy porozmawiać z przyszłymi użytkownikami bazy danych. Zorganizować burzę mózgów dotyczącą pytań, na które baza danych miałaby odpowiadać. Naszkicować wzory raportów, które powinna wytwarzać. Zgromadzić formularze do wpisywania danych, które są używane obecnie. Zapoznać się z działaniem dobrze zaprojektowanych baz danych, podobnych do tej, która ma być utworzona. Ad:2 Określenie tabel, które są potrzebne w bazie danych Określenie tabel może być najtrudniejszym etapem procesu projektowania bazy danych. Powodem tego jest fakt, że wyniki, których ma dostarczyć baza danych - raporty gotowe do wydrukowania, formularze przeznaczone do wykorzystania, pytania, na które trzeba odpowiedzieć - nie zawsze zawierają bezpośrednie wskazówki o strukturze tworzących je tabel. Tabela jest zbiorem danych dotyczących określonego tematu. Używanie osobnej tabeli dla każdego tematu oznacza, że dane przechowywane są tylko raz, co sprawia, że baza danych jest bardziej wydajna i zmniejsza ryzyko błędów przy wprowadzaniu danych. Dane w tabelach są zorganizowane w kolumny (nazywane polami) i wiersze (nazywane rekordami). Projektując tabele należy podzielić posiadane informacje pamiętając o przedstawionych poniżej podstawowych zasadach projektowania. Tabela nie powinna zawierać powtarzających się informacji, a informacje nie powinny powtarzać się w różnych tabelach. Jeżeli informacje są przechowywane tylko w jednej tabeli, można je zaktualizować zmieniając dane tylko w jednym miejscu. Tak jest łatwiej, a ponadto unika się wystąpienia niezgodności danych zapisanych w różnych miejscach. Na przykład, dobrze jest zapisać numer telefonu i adres klienta tylko raz, w jednej tabeli. Chociaż istnieją pewne ograniczenia, z danymi w podrzędnym arkuszu danych można w wielu przypadkach pracować w taki sam sposób, jak z danymi w głównym arkuszu danych. W widoku "Projekt" tabeli można utworzyć całą tabelę od początku albo dodać, usunąć lub dostosować pola w istniejącej tabeli. 2 Ad:3 Określenie pól, które są potrzebne w tabelach Każda tabela zawiera informacje na temat jednego zagadnienia, a każde pole w tabeli zawiera jedną daną dotyczącą tego zagadnienia, któremu poświęcona jest tabela. Na przykład, tabela poświęcona klientom może zawierać pola z nazwą firmy, adresem, miastem, krajem i numerem telefonu. Zabierając się do projektowania pól w tabelach dobrze jest pamiętać o następujących wskazówkach. Należy powiązać każde pole bezpośrednio z zagadnieniem, którego dotyczy tabela. Nie należy wprowadzać danych pośrednich lub obliczonych (danych, które są wynikiem wyrażenia). Należy uwzględnić wszystkie potrzebne informacje. Informacje należy przechowywać w możliwie najmniejszych jednostkach logicznych (na przykład Imię oraz Nazwisko, a nie Dane personalne). Wspólne pole łączy dwie tabele, dzięki czemu w programie Microsoft Access można zestawić razem dane z takich dwóch tabel, aby je obejrzeć, poddać edycji lub wydrukować. W widoku "Arkusz danych" tabeli można dodawać, edytować i oglądać dane lub w inny sposób pracować z danymi tabeli. Można również wyświetlać rekordy z tabel, które są powiązane z bieżącą tabelą, przez wyświetlanie podrzędnych arkuszy danych w głównym arkuszu danych. Ad: 4 Przypisanie polom jednoznacznych wartości w każdym rekordzie Aby program Microsoft Access mógł powiązać informacje przechowywane w różnych tabelach - na przykład, aby powiązać klienta ze wszystkimi jego zamówieniami - każda tabela w bazie danych musi zawierać pole lub zbiór pól, które jednoznacznie określają każdy rekord. Takie pole lub zbiór pól nazywany jest kluczem podstawowym. Ad:5 Określenie relacji między tabelami Po podzieleniu danych na tabele i zdefiniowaniu pól kluczy podstawowych trzeba wprowadzić do programu Microsoft Access informacje na temat sposobu poprawnego łączenia powiązanych danych w logiczną całość. W tym celu definiuje się relacje między tabelami w bazie danych Microsoft Access. Ad:6 Udoskonalenie projektu Po zaprojektowaniu tabel, pól i łączących ich relacji przychodzi czas na sprawdzenie projektu i wykrycie ewentualnych usterek. Łatwiej poprawić bazę danych teraz niż po wypełnieniu tabel danymi. Wykorzystujemy program Microsoft Access do utworzenia tabel, określamy łączące je relacje i wprowadzamy do tabel dostatecznie dużo przykładowych danych, aby można było sprawdzić projekt. Aby przetestować relacje w bazie danych, sprawdzamy, czy można utworzyć kwerendy w celu uzyskania odpowiedzi na stawiane pytania. Tworzymy w zarysie formularze, raporty i sprawdzamy, czy przedstawiają te dane, których oczekujemy. Szukamy niepotrzebnych powtórzeń danych i usuwamy je. 3 Ad:7 Wprowadzenie danych i utworzenie innych obiektów bazy danych Kiedy okaże się, że struktura tabel spełnia opisane powyżej zasady, można wprowadzić wszystkie dane do tabel i utworzyć dowolne kwerendy, formularze, raporty, strony dostępu do danych, makra i moduły. Ad:8 Zastosowanie narzędzi analizy programu Microsoft Access Program Microsoft Access jest wyposażony w dwa narzędzia, które pomagają udoskonalić projekt bazy danych Microsoft Access. Kreator analizy tabel potrafi sprawdzić projekt przeglądając jednorazowo jedną tabelę, zaproponować nową strukturę tabeli i jeśli to jest potrzebne podzielić tabelę na kilka tabel połączonych relacjami. Analizator wydajności potrafi przeprowadzić analizę całej bazy danych, sformułować zalecenia i propozycje dotyczące wprowadzenia ulepszeń. Analizator wydajności może też wprowadzić te zalecenia i propozycje. Faza projektowania kończy się wdrożeniem projektu w środowisku konkretnego systemu zarządzania bazami danych. Projektowanie i wdrożenie projektu jest ze sobą ściśle związane, możemy przyjąć, że projektując bazę danych, będziemy jednocześnie tworzyć obiekty bazy danych, takie jak tablice i kwerendy oraz, że obiekty te zostaną ze sobą prawidłowo powiązane. Następnym etapem jest umożliwienie użytkownikom korzystania z bazy danych. Użytkownik musi mieć możliwość dodawania informacji do bazy, ich modyfikowania i usuwania2. 2 D Mendrala, M Szeliga – Access 2003. Gliwice 2003, s. 9 4 Cel pracy Podstawowym zadaniem projektu, jest pomoc nauczycielowi w ewidencjonowaniu i zarządzaniu informacjami dotyczącymi poszczególnych uczniów i klas, przez dodanie do funkcjonalności standardowego dziennika szkolnego, możliwości szybkiego, elektronicznego przetwarzania i analizy danych. I. Pytania stawiane bazie Ze względu na charakter, zadawane bazie pytania można podzielić na kategorie dotyczące: • indywidualnego ucznia: uzyskiwanych ocen z określonego przedmiotu, raportowania nieobecności, spóźnień, komunikacji z opiekunami itp. • statystyczne, dotyczące indywidualnego ucznia – średnia ocena, średnia ocena • z określonego przedmiotu, porównanie ze średnią klasy. • poszukiwanie danych spełniających określone kryteria, np.: uczniów zagrożonych, uczniów których rodzice nie stawili się na zebranie/dni otwarte • i innych. • statystyka klasy – średnia ogólna klasy i średnia ogólna ucznia. • Informacje o odbytych lekcjach klas na podstawie daty. II. Funkcje bazy danych Podstawową funkcją bazy będzie dostarczenie informacji na temat: • wyników nauczania uczniów • stanu zdrowia uczniów • frekwencji uczniów • liczebności klas • odbytych lekcjach Utworzona aplikacja umożliwia wprowadzanie danych oraz aktualizację i usuwanie już zapisanych w niej danych o: • uczniach - ich stanie zdrowia, osiągnięciach, zachowaniu, nieobecnościach • opiekunach uczniów – stan prawny opiekuna, jego adres, telefon kontaktowy, adres poczty elektronicznej • przedmiotach • nauczycielach • opisach ocen 5 Kolejną funkcją bazy będzie możliwość wyświetlania informacji statystycznych, podsumowań i zestawień. Projektowana baza danych umożliwi: • przeglądanie zgromadzonych w niej danych, • porządkowanie informacji według określonych kryteriów, • dodawanie nowych danych, uzupełnianie, modyfikowanie i usuwanie danych, • grupowanie danych oraz dokonywanie obliczeń. III. Encje i ich atrybuty Zadaniem encji Dziennik jest odwzorowanie funkcji dziennika lekcyjnego w zakresie ewidencji prowadzonych zajęć lekcyjnych w poszczególnych klasach szkolnych. Atrybuty encji odpowiadają za ewidencjonowanie danych o odbytych lekcjach - określają przedmiot, nauczyciela prowadzącego zajęcia oraz termin zajęć – oraz przypisują im indywidualny indeks (IdDziennika). Encja Klasa grupuje nazwy występujących klas, przypisując każdej z nich indywidualny indeks oraz sumaryczną średnią ocenę. Informacje dotyczące kontaktów z opiekunami ucznia zgrupowano w encji Kontakty. 6 Jako atrybuty występują tutaj: unikalny indeks, numer telefonu, adres poczty internetowej oraz opis kontaktu z opiekunem. Zadaniem encji Lekcja2 jest grupowanie informacji o obecnościach, uzyskiwanych podczas zajęć lekcyjnych ocenach (w tym ocenach opisowych) oraz ewentualnych uwagach dotyczących aktywności bądź zachowania. Encja Nauczyciel zawiera dane o nazwisku oraz imionach nauczycieli z przypisanym każdemu indywidualnym indeksem. Za grupowanie danych o adresie opiekunów ucznia odpowiada encja Opiekun. Atrybuty encji określają stopień pokrewieństwa opiekuna z uczniem, jego pełny adres oraz unikalny identyfikator. Przewiduje się możliwość występowania kilku opiekunów tego samego ucznia sprawujących równoczesną opiekę. Opisową ocenę osiągnięć ucznia, wraz z indywidualnym identyfikatorem, zamieszczono w encji OpisyOcen. 7 Nazwy przedmiotów wraz z indywidualnym identyfikatorem przechowuje encja Przedmioty. Za grupowanie informacji dotyczących ucznia odpowiada encja Uczeń. Poza unikalnym identyfikatorem (IdUcznia) atrybuty encji określają płeć ucznia, jego imię, nazwisko, datę urodzenia, klasę, czy powtarza, uwagi dotyczące zdrowia i opiekuna. Encja ta pozwala również na zapis danych graficznych obrazujących wygląd ucznia. Szczegółowe uwagi na temat zdrowia, w szczególności dotyczące ograniczeń z nim związanych wraz z indywidualnym identyfikatorem przechowywane są przez encje Zdrowie. Zadaniem encji Zwolnienia jest ewidencja usprawiedliwień nieobecności uczniów na zajęciach. 8 IV. Model logiczny bazy danych Typy związków w bazie: - w klasie jest wielu uczniów, - uczeń może być wiele razy chory, - stan zdrowia ucznia jest jednoznacznie określony (wpis w tablicy zdrowie) , - uczeń może mieć wielu opiekunów (rodzic, opiekun prawny, faktycznie sprawujący doraźną opiekę członek rodziny), - nauczyciel może prowadzić wiele lekcji z różnych przedmiotów V. Opis funkcjonalny Kwerendy wybierające: • DaneUcznia – wybiera informacje na temat uczniów • Dzieci_Rodzice – podaje pokrewieństwo pomiędzy opiekunami, a uczniami • Klasa Kwerenda – pokazuje nazwy klas oraz uzyskane średnie oceny • Kw_Dziennik – przedstawia dane dotyczące lekcji • Kw_Dziennik_UczniowieKlasy – pokazuje uczniów należących do poszczególnych klas oraz ich obecności, oceny i adnotacje dodatkowe (np.: uwagi dotyczące zachowania) • Kw_Klasa-Uczniowie – służy do pokazywania listy uczniów poszczególnych klas • Kw_Lekcja – przedstawia zawartość tablicy lekcja • Kw_Lekcja-klasa – pokazuje nazwę występujących klas • Kw_LiczbaUczniówKlas – podaje liczbę uczniów klas • KW_NazwiskaU – wyświetla listę uczniów łącząc nazwisko z imieniem w jednym polu • Kw_Nieobecni – przedstawia informacje o frekwencji uczniów 9 • • • • • • • • • • Kw_NowaLekcja – kwerenda lekcja grupuje informacje dla formularza dziennik KW_SredniaOcenaUcznia – oblicza średnią ocenę z wszystkich przedmiotów dla wskazanego ucznia Kw_Uczeń_Nieobecności – służy do zliczania nieobecnych godzin Kw_Uwagi – gromadzi dane dla formularza adnotacji Kw_Zwolnienia – przedstawia listę dostarczonych zwolnień Oceny2 – pokazuje listę uczniów z wystawionymi ocenami, grupując ją względem klas i nazwisk uczniów Opiekun_Dziecka – podaje listę nazw opiekunów ŚredniaOcenaKlasy – kwerenda z parametrem obliczająca średnia ocenę wskazanej klasy Uczeń Kwerenda_Zdrowie – podaje informacje dotyczące zdrowia uczniów Uczeń Oceny cząstkowe – podaje szczegółową listę ocen uczniów ze wszystkich przedmiotów Kwerenda krzyżowa Kw_oceny – zliczająca średnie oceny jakie uczeń uzyskał ze wszystkich przedmiotów VI. Formularze Baza zaprasza do współpracy dwoma występującymi po sobie formularzami startowymi, przy czym drugi formularz automatycznie zamyka poprzedzający go. Do wejścia do bazy danych lub jej zamknięcia służą niestandardowe przyciski: Zapraszam i Zamknij. Główne okno funkcyjne bazy pozwala na wybór jednej z wielu dostępnych funkcji: • formularz podający informacje na temat ucznia • dane kontaktowe opiekunów uczniów • wykazy list uczniów uczęszczających do poszczególnych klas • informacje o nieobecnościach uczniów oraz usprawiedliwieniach nieobecnych godzin • uwagach o osiągnięciach lub zachowaniu ucznia • funkcje dziennika lekcyjnego • pomocnicze funkcje edycyjne oraz raporty 10 Jednym z głównych formularzy jest Edytor danych ucznia, grupujący podstawowe informacje, takie jak: data urodzenia, imię i nazwisko, uwagi na temat zdrowia, czy powtarza klasę – pozwala również na zachowanie obrazu przedstawiającego ucznia. Jednym z celów formularza jest pełna prezentacja informacji dotyczącej ucznia jego opiekunom. Celowi temu służą wywoływane przyciskami umieszczonymi w dolnej części, formularze dodatkowe. 11 Edytor opiekunów – wywoływany graficznym przyciskiem przedstawiającym rodziców z dzieckiem – pozwala ewidencjonować dane adresowe oraz kontaktowe jednego lub wielu sprawujących opiekę osób. Pozwala także zróżnicować kontakty w zależności od miejsca przebywania opiekuna (praca, dom). Do prezentacji opiekunom osiągnięć uczniów służy formularz podający średnie oceny z kolejnych przedmiotów oraz prezentujący na wykresie ogólną średnią ocenę ucznia tle klasy. 12 Formularz Adnotacje i uwagi grupuje zarówno informacje o zachowaniu ucznia na zajęciach jak i dodatkowe dane o specjalnych osiągnięciach, predyspozycjach i innych zdarzeniach z życia szkolnego ucznia. Kolejną ważną informacją dotyczącą ucznia jest frekwencja na zajęciach, prezentowana w formularzu Frekwencja ucznia. Dla większej wygody w zarządzaniu kontaktami z opiekunami uczniów przygotowano także indywidualny formularz pozwalający na edycję danych kontaktowych. 13 Formularz Listy uczniów pozwala na zapoznanie się z listą uczniów z poszczególnych klas. Funkcjonalność dziennika lekcyjnego zapewniają formularze: Dziennik – nowa lekcja wraz z powiązanym z nim formularzem listy uczniów klas oraz Dziennik. Po wprowadzeniu informacji dotyczących klasy, przedmiotu, nazwiska prowadzącego lekcję wykładowcy oraz terminu zajęć i zaakceptowaniu ich klawiszem Nowa lekcja, automatycznie zostaną wypełnione rekordy odpowiadające aktywności uczniów wybranej klasy. 14 Wstępnie zaznaczane są obecności wszystkim uczniom – osobom nieobecnym należy ręcznie zmienić stan odpowiedniego pola. Formularz służy również do zapisywania ocen i uwag odnośnie poszczególnych uczniów. Formularz ciągły Nieobecności pokazuje listę wszystkich opuszczonych przez uczniów zajęć, grupując je zgodnie z nazwiskiem ucznia oraz klasą. 15 Usprawiedliwione nieobecności pokazywane są przez formularz Zwolnienia uczniów. Formularz Adnotacje i uwagi pokazuje listę informacji grupowaną zgodnie z klasą do której uczęszcza uczeń oraz jego nazwiskiem. Każda adnotacja opatrywana jest dokładną informacją o dacie zdarzenia wraz z nazwą lekcji na której miało ono miejsce. 16 Dziennik służy do wyszukiwania informacji o przeprowadzonych zajęciach. Dane mogą być filtrowane według: nazwy klasy, nazwiska nauczyciela, nazwy przedmiotu oraz daty. Po zdefiniowaniu kryteriów filtrowania, we wbudowanym podformularzu aktualizowana jest lista uczniów. 17 Okno wyboru Formularzy pomocniczych – dostępne z głównego formularza bazy grupuje formularze edycyjne pozwalające na modyfikacje i dopisywanie: nazwisk nauczycieli, nazw przedmiotów, adnotacji dotyczących zdrowia i opisów ocen. Opracowała: mgr Ewa Wiśniewska 18 19