Przygotowanie
bazy danych
System Obsługi
Wypożyczalni - SOWy
Opracowanie na podst. książki –
Dariusz Wojtala
Etapy realizacji projektu
• Początkowy cel projektu: „utworzenie
prostej bazy danych oraz przedstawienie
efektu przetwarzania danych”. W dalszej
części bazę tę będziemy uzupełniać i
modyfikować dodając nowe formularze,
kwerendy i raporty.
• Projektowany system ma zapewnić
możliwość wprowadzania danych nowego
filmu,
nowego
klienta
oraz
ewidencjonowania
wypożyczonych
filmów, czyli dostarczać odpowiedzi na
pytanie: „Jakie filmy zostały wypożyczone
przez konkretnych klientów?”
Początkowe wymagania i
ograniczenia systemu SOWy
Wymagania:
1. Wprowadzanie informacji o filmie,
2. Wprowadzanie informacji o kliencie,
3. Wprowadzanie informacji o wypożyczeniu filmu,
4. Uzyskiwanie informacji, jakie filmy zostały wypożyczone
przez konkretnych klientów,
5. Drukowanie raportu na temat filmów wypożyczonych
przez konkretnych klientów.
Ograniczenia:
6. Dany film może być wypożyczony w danym dniu przez
danego klienta tylko jeden raz,
7. Nie prowadzimy ewidencji opłat,
8. Nie prowadzimy w systemie ewidencji nośników z
filmami, czyli magazynu – pracownik wypożyczalni po
prostu sprawdza, czy nośnik z filmem jest na półce.
Planowane
formularze
i
raporty
• Wprowadzania danych nowego klienta (imię,
nazwisko, adres, numer telefonu, numer dokumentu
stwierdzającego tożsamość, np. dowód osobisty),
• Wprowadzania nowego filmu (tytuł, gatunek filmu,
rodzaj nośnika),
• Wypożyczenia filmu (daty wypożyczenia i zwrotu,
liczba dni, na które film został wypożyczony).
• Drukowanie listy wypożyczonych filmów w formie
formularza. Powinien on zawierać informacje o
kliencie (jego nazwisko i imię) oraz informacje o
filmach, które wypożyczył (tytuł filmu, datę
wypożyczenia, datę zwrotu i liczbę dni, na które film
został wypożyczony).
Podział informacji na
grupy
Informacje o
klientach
Informacje o
filmach
Informacje o
wypożyczeniach
Nazwisko
Tytuł filmu
Data wypożyczenia
Imię
Rodzaj nośnika
Liczba dni
Ulica i nr domu
Gatunek filmu
Data zwrotu
Kod pocztowy
Miejscowość
Numer telefonu
Numer dowodu
osobistego
Klucz podstawowy
Aby
w
programie
Microsoft
Access
zdefiniować relację między daną tabelą a
inną, jedno pole tej tabeli musi pełnić
funkcję
klucza
podstawowego,
natomiast w drugiej tabeli musi zostać
wyznaczone pole do zapisywania wartości
tego klucza. Funkcję klucza podstawowego
może pełnić tylko takie pole, którego
wartości są unikalne (niepowtarzalne) w
ramach
tabeli.
Wartości
klucza
podstawowego mogą być wprowadzane
automatycznie
przez
program
–
Autonumerowanie.
Tworzenie tabeli Klienci
Dodatkowy indeks dla tabeli klienci
na podst. pól Nazwisko i Imie
Otwórz tabele klienci w widoku
projektu.
Otwórz
okno
Indeksy
(Widok/Indeksy) lub przycisk Indeksy na
karcie Projektowanie w Narzędziach
tabel.
Przygotowanie tabeli
filmów
W tabeli Klienci jako klucz podstawowy
przyjęliśmy klucz oparty na polu typu
Autonumerowanie zaproponowany przez
Ms Access. W tabeli Filmy przyjmiemy
inne rozwiązanie. Zdefiniujemy tu klucz
własny usuwając klucz podstawowy.
Typy pól i ich właściwości
Dla każdego pola tabeli należy wybrać typ
danych
odpowiadający
przeznaczeniu
pola.
Przygotowanie tabeli
Wypożyczeń
W tabeli
Wypożyczenia
pola
IdKlienta
i
IdFilmu
nazywane są w
Access
kluczami obcymi,
ponieważ identyfikują rekordy z obcych
tabel (z tabel
Klienci
i
Filmy),
a nie z tabeli, w której są umieszczone.
Klucz główny
(Primary Key),to kolumna lub zbiór kolumn, które w
sposób unikalny definiują wiersz w danej tabeli.
Klucz obcy
jest kolumną lub zbiorem kolumn, który jest kluczem
głównym w innej tabeli. Można powiedzieć, że klucz obcy jest kopią
klucza głównego z innej tabeli.
Związki (relacje) w
naszej bazie
• Jeden klient może wypożyczyć wiele
filmów i jedna transakcja wypożyczenia
dotyczy jednego klienta,
• Jeden film może być wypożyczony wiele
razy i jedna transakcja wypożyczenia
dotyczy jednego filmu,
Mamy przygotowane niezbędne tabele oraz
zdefiniowane potrzebne klucze. Połączymy
relacją „
jeden do wielu
” tabelę Klienci z
tabelą Wypozyczenia oraz tabelę Filmy z
tabelą Wypozyczenia.
Wymuszanie więzów integralności oznacza, że
w polu „klucza obcego” (IdKlienta, IdFilmu) nie
można wprowadzać wartości nieistniejących w polu
klucza podstawowego tabeli, z której prowadzimy
połączenie (odpowiednio z tabel Klienci i Filmy).
W tabeli Wypozyczenia nie ma więc możliwości
dopisania rekordu dla klienta, który nie figuruje w
tabeli podstawowej Klienci. Oznacza to, że nie
możemy wypożyczyć filmu osobie, której nie ma
zarejestrowanej w tabeli podstawowej. Podobnie
zaznaczenie wymuszenia więzów integralności
podczas tworzenia relacji między tabelami
Wypozyczenia i Filmy oznacza, że w tabeli
Wypozyczenia nie może być odwołania do filmu,
którego nie ma w tabeli Filmy.
Formularz zwrotu filmu
Powinien spełniać następujące funkcje:
• Powinny być widoczne podstawowe dane klienta oraz
informacje o filmach, których nie oddał. W związku z czym
przygotujemy formularz z podformularzem,
• Użytkownik nie powinien mieć możliwości zmiany danych w
tym formularzu (poza zmianą wartości pola
DataZwrotu
). Taką
możliwość zablokujemy.
• Kiedy klient będzie oddawał dany film, w polu DataZwrotu
powinna być wprowadzana aktualna data. Umieścimy
odpowiedni
przycisk,
którego
naciśnięcie
spowoduje
wprowadzenie bieżącej daty w polu DataZwrotu, co będzie
równoznaczne z oddaniem filmu.
• Aby przyspieszyć i usprawnić wyszukiwanie danych klienta,
umieścimy odpowiedni przycisk polecenia i utworzymy
kwerendę, która posortuje informacje o klientach według
nazwiska i imienia.
• Oddane filmy nie powinny być widoczne na liście filmów
wypożyczonych przez danego klienta.
„Dopieszczanie”
stworzonej bazy
1. Tworzymy własne przyciski nawigacyjne na stworzonych
formularzach, w odpowiadających nam miejscach. Standardowe
przyciski nawigacyjne Accessa – usuwamy we właściwościach
formularzy.
2. Na formularzach klienta, filmu, wypożyczeń i
zwrotu
umieścimy przyciski obsługujące przejścia do rekordu:
następnego, poprzedniego, ostatniego i pierwszego. Ponadto na
trzech pierwszych formularzach umieścimy przycisk dodawania
nowego rekordu.
3. W formularzu Wypożyczenia filmu obok przycisków z listą
wyboru nazwiska klienta wstawimy pola tekstowe: imię i numer
dowodu osobistego oraz pole z wyświetlanym tytułem filmu. By
mieć dostęp do tych pół musimy źródło danych powiązać z
kwerendą KWypozyczenia gdyż w tabeli Wypozyczenia, na
podst., której wykonaliśmy ten formularz tych pól nie ma. Ustaw
to we Właściwościach odpowiednich formularzy. (Dane/Źródło
formantu/…) Etykiety dla wstawianych pól tekstowych,
zaznaczamy i usuwamy lub możemy te pola dodatkowo opisać.
1. Założyliśmy, że film będzie wypożyczany na 1 lub 3
dni. Zdarzyć się może, że klient przetrzyma go kilka
dni dłużej. Aby obliczyć faktyczna liczbę dni
wypożyczenia umieścimy w formularzu pole, w
którym będzie wykonywana ta operacja. Do
podformularza, na formularzu zwrotu filmu
wprowadzimy
pole,
w
którym
wprowadzimy
wyrażenie, korzystając z Konstruktora wyrażeń.
2. Wyrażenie to przypiszemy do wcześniej stworzonej
kwerendy dla podformularza Zwrotu Filmu, na końcu
listy za IdKlienta.
Będzie miało ono postać:
FaktLiczbaDni: Date()-[DataWypozyczenia], po
czym zamykamy kwerendę i wstawiamy formant
pole tekstowe w obszarze podformularza. Jako
źródło wybieramy pole: FaktLiczbaDni. Sprawdź w
widoku formularza, czy pojawiają się poprawne
liczby.
W tabeli Filmy możesz dodać dodatkowe pola,
m.in. Nazwisko reżysera, krótki opis filmu (dane
typu Nota),
Możesz też uzupełnić bazę o zdjęcia z filmów,
klipy wideo czy pliki dźwiękowe, np. fragment
ścieżki dźwiękowej (dane typu obiekt OLE).
Pamiętaj o przestrzeganiu praw autorskich
pobierając je z Internetu.
Oczywiście po uzupełnieniu tabel o dodatkowe
pola pamiętaj o rozbudowaniu formularza
wstawiając brakujące pola.