Bazy danych I
temat 1:
Tabele, relacje i kwerendy (Access) – 2ćw.
Uwaga:
Przed rozpoczęciem wykonywania poniższych zadań należy zapoznać się z materiałem wyłożonym na wskazanych stronach podręczników:
Lech Banachowski, Bazy danych. Tworzenie aplikacji, Akademicka Oficyna Wydawnicza PLJ, Warszawa 1998.
Dariusz Boratyn, Microsoft Office Access97, Croma, 1997.
Uwaga Punkty z gwiazdkami wymagają trochę więcej samodzielnej pracy
Zadanie 1
(Boratyn 34-59,66-77, Banachowski 98-101) : Zbuduj tabelę zawierającą informacje o książkach znajdujących się w twojej bibliotece. Tabela ma w szczególności służyć do wyszukiwania książek w danej dziedzinie np. Informatyka i/lub na dany temat np. Bazy danych i/ lub danego autora, sprawdzania czy książka jest wypożyczona i jeśli tak, kto ją wypożyczył i jaki jest kontakt z tą osobą, znajdowania nazwisk tłumaczy w przypadku tłumaczenia z języka obcego, znajdowania adresów kontaktowych do autorów i/lub tłumaczy danej książki.
Uruchom program Access i wyświetl okno bazy danych dla nowej bazy danych.
Wybierz zakładkę Tabele i przycisk Nowy z opcją Widok projekt.
Załóż tabelę “Książki” dobierając odpowiednie kolumny i ich typy danych (w widoku projekt) – możesz wzorować się na tabeli http://lech/bd1/biblio. Pamiętaj o wybraniu klucza głównego (podstawowego) (Edycja->Klucz podstawowy).
Wprowadź przykładowe dane (Widok-> Widok Arkusz danych).
Upewnij się, że potrafisz wykonywać podstawowe operacje na tabelach (menu i/lub pasek narzędzi i/lub menu podręczne uruchamiane prawym przyciskiem myszy – sprawdź!)( w widoku Arkusz danych):
- wprowadź nowy rekord (Wstaw->Nowy rekord);
- usuń bieżący rekord (Edycja->Usuń rekord);
- zaktualizuj bieżący rekord;
- posortuj rekordy względem wartości w bieżącej kolumnie (Rekordy->Sortuj);
taw->Kolumna);
zmień nazwę kolumny (Format->Zmień nazwę kolumny);
usuń kolumnę (Edycja->Usuń kolumnę)
wyszukaj dane w tabeli (Edycja->Znajdź) - jest możliwość użycia symboli uniwersalnych: '*' - dowolny ciąg znaków, '?' - dowolny pojedynczy znak, '#' - dowolna cyfra);
zastąp dane w tabeli (Edycja->Zamień);
filtruj czyli wyznacz podzbiór rekordów spełniających zadany warunek (Rekordy->Filtr):
- -> według wyboru (wartości w bieżącym polu)
- -> według formularza (po wyborze wartości w polach)
ponów uprzednio ustawiony filtr (Rekordy->Zastosuj filtr/sortowanie)
wyświetl wszystkie rekordy (Rekordy->Usuń filtr/sortowanie).
- Zapisz zawartość tabeli jako (Plik->Zapisz...) :
plik tekstowy;
plik Worda (narzędzie Opublikuj za pomocą MSWord z okna bazy danych, zakładka Tabele);
plik Excela;
plik HTML.
- Wyjaśnij jakie są złe strony trzymania wszystkich danych w jednej tabeli zamiast rozłożenia ich do kilku.
Zadanie 2 (Boratyn 59-65, Banachowski 101-103)):
Zbuduj nową bazę danych zawierającą te same informacje co tabela w zadaniu 2, ale w której:
dane opisujące każdy obiekt znajdują się w osobnej tabeli;
każda pojedyncza dana (pole na przecięciu wiersza z kolumną) jest nierozkładalna;
nie ma redundancji.
Połącz utworzone tabele związkami(relacjami).
Utwórz kolejne tabele wybierając odpowiednio klucze główne (podstawowe) – pamiętając, że ich wartości będą służyć jako wartości kluczy obcych (zewnętrznych) w powiązanych tabelach. Z tego względu na ogół dla tabeli jest tworzona dodatkowa kolumna służąca jako identyfikator rekordów typu Autonumer. Kolumny, które mają być kluczami obcymi, definiuj poprzez Kreator odnośników!
Utwórz związki między tabelami (Narzędzia->Relacje). Włącz więzy referencyjne (integralności). Ułóż tabele tak aby linie związków nie przecinały się!
Wprowadź informację o co najmniej 50 książkach z twojej biblioteki.
Zadanie 3 (Boratyn 82-120, Banachowski 104-107):
Opracuj następujące kwerendy przy użyciu siatki kwerendy - gdzie trzeba zdefiniuj parametry:
wypisz tytuły wszystkich książek w twojej bibliotece;
wypisz imiona i nazwiska wszystkich osób zapisanych w twojej bazie danych;
wypisz (bez powtórzeń - co osiąga się przez ustawienie we właściwościach kwerendy opcji "Rekordy unikatowe" na Tak) imiona i nazwiska wszystkich autorów książek;
wypisz (bez powtórzeń) imiona i nazwiska wszystkich tłumaczy książek;
wypisz (bez powtórzeń) imiona i nazwiska wszystkich osób, które pożyczyły od ciebie jedną lub więcej książek
mając dany temat (jako parametr), wypisz wszystkie książki z twojej biblioteki na ten temat;
mając dany tytuł książki, wypisz imiona i nazwiska jej autorów;
mając dane nazwisko i imię autora, wypisz wszystkie książki napisane przez tego autora;
wypisz wszystkie wypożyczone książki razem z nazwiskiem osoby, która je wypożyczyła i jej adresem kontaktowym;
wypisz wszystkie książki, których autor jest jednocześnie tłumaczem;
wypisz liczbę książek w twojej bibliotece;
dla każdego autora podaj liczbę książek, które napisał - autorów uporządkuj względem liczby napisanych książek;
dla każdego tematu, podaj liczbę książek w tym temacie;
dla każdej dziedziny, podaj liczbę tematów należących do tej dziedziny;
dla każdej dziedziny, podaj liczbę książek należących do tej dziedziny;
wypisz autorów, którzy napisali książki na różny temat;
wypisz autorów, którzy napisali książki z różnych dziedzin;
wypisz osoby, które pożyczyły więcej niż jedną książkę;
usuń daną książkę z biblioteki; (użyj kwerendy sparametryzowanej);
wprowadź nowego autora do biblioteki; (użyj kwerendy sparametryzowanej) (Uwaga: do wprowadzania pojedynczego wiersza należy użyć pomocniczej tabeli o jednym wierszu - Access wymaga aby były określone dwie tabele: jedna z której bierze się wartości i druga do której wstawia się nowy wiersz - wartości pól AutoNumer są ustalane automatycznie);
wydawnictwo 'WNT' zmienia nazwę na 'NT Press' - zaktualizuj nazwę wydawnictwa we wszystkich książkach;
** używając kwerendy dołączającej i załączania tabel (nazywane w Accessie połączeniem tabel) rozwiąż problem budowy kopii zabezpieczającej bazy danych: najpierw utwórz osobną bazę danych np. kopia.mdb, dokonaj importu tabel (z opcją "Tylko definicje"), zamknij bazę kopia.mdb, do twojej bazy danych załącz tabele z kopii, utwórz kwerendy dołączające przepisujące zawartość z oryginalnych tabel do ich kopii (załączonych). Co się stanie, gdy powtórnie będziesz chciał uruchomić te same kwerendy? Jak zapewnić poprawną aktualizację danych w kopii - powiedzmy wykonywaną raz dziennie?
Zadanie 4 (domowe):
Podaj przykład obszaru zastosowania z twojego otoczenia, dla którego warto byłoby opracować bazę danych w sensie zbioru obiektów: tabel, perspektyw kwerend wybierających, formularzy, raportów, podprogramów( kwerend funkcjonalnych/ makr/procedur). Podaj listę obiektów, które można byłoby zaprojektować i używać na co dzień – nie bierz pod uwagę procedur zdarzeń i integrowania zboru obiektów w aplikację.