Idź do
• Spis treści
• Przykładowy rozdział
Helion SA
ul. Kościuszki 1c
44-100 Gliwice
tel. 32 230 98 63
e-mail: helion@helion.pl
© Helion 1991–2010
Katalog książek
Twój koszyk
Cennik i informacje
Czytelnia
Kontakt
Access 2010 PL.
Ćwiczenia praktyczne
Autorzy:
ISBN: 978-83-246-2617-5
Format: A5, stron: 192
Odkryj świat baz danych z nową wersją Accessa
• Poznaj obiekty baz danych
• Zaplanuj tabele i relacje
• Zaprojektuj formularze
• Zdefiniuj kwerendy
• Wygeneruj raporty
Microsoft Access jest jednym z najpopularniejszych systemów zarządzania bazami danych na
świecie, a jego najnowsza wersja z pewnością tylko ugruntuje pozycję lidera tej aplikacji na rynku.
Access wykorzystywany jest zarówno przez użytkowników indywidualnych, jak i duże
przedsiębiorstwa, których pracownicy doceniają nie tylko prostotę korzystania z interfejsu
aplikacji, lecz także rozbudowane możliwości programowania i stosowania makr. Nie bez
znaczenia jest tu też bogaty zestaw narzędzi i kreatorów, dzięki którym tworzenie baz,
zarządzanie nimi i przetwarzanie staje się naprawdę łatwe, a przede wszystkim wydajne.
„Access 2010 PL. Ćwiczenia praktyczne” to wprowadzenie do świata baz danych i aplikacji
bazodanowych tworzonych za pomocą najnowszej wersji Accessa. Treść książki i zawarte w niej
praktyczne ćwiczenia pozwolą Ci sprawnie poznać podstawowe zasady korzystania z programu,
projektowania baz danych i prawidłowego stosowania ich obiektów, a także właściwego
tworzenia relacji. Nauczysz się też przygotowywać formularze i kwerendy ułatwiające zarządzanie
danymi oraz generować raporty. Twoją wiedzę uzupełnią informacje na temat makr i modułów.
• Praca z plikami baz danych
• Tworzenie tabel i relacji
• Stosowanie kwerend
• Projektowanie formularzy
• Tworzenie raportów
• Makropolecenia
• Import i eksport danych do różnych formatów
Skorzystaj z najnowszej wersji Accessa do tworzenia wydajnych aplikacji bazodanowych!
Spis treci
Wstp
5
Rozdzia 1. Baza danych
9
Rozdzia 2. Tabele
31
Rozdzia 3. Relacje
55
Rozdzia 4. Kwerendy
75
Kwerendy wybierajce dane
76
Kwerendy krzyowe
94
Kwerendy tworzce tabele
96
Kwerendy aktualizujce
98
Kwerendy doczajce
99
Kwerendy usuwajce
102
wiczenia dodatkowe
104
Rozdzia 5. Formularze
107
Rozdzia 6. Raporty
133
Rozdzia 7. Makra
147
Rozdzia 8. Moduy
157
3
Relacje
Charakterystyczn cech relacyjnych baz danych jest przecho-
wywanie informacji, opisujcych obiekty rónego typu (np.
towary i ich producentów), w odrbnych, ale powizanych
ze sob tabelach. Na rysunkach 3.1 i 3.2 pokazujemy rónic pomidzy
sposobem przechowywania tych samych danych w arkuszu programu
Excel i w bazie danych programu Access.
Rysunek 3.1. Arkusz programu Excel jest przykadem jednorodnej bazy
danych — takiej, w której wszystkie dane zapisane s w jednym obiekcie
(arkuszu)
Nawet ten bardzo uproszczony przykad pozwala zauway gówn za-
let relacyjnych baz danych — dziki podzieleniu informacji midzy
kilka tabel do minimum zostaa zmniejszona liczba nadmiarowych,
wielokrotnie przechowywanych informacji. O ile w arkuszu Excela
dane reysera pojawiy si tyle razy, ile nakrci filmów, o tyle w bazie
programu Access, niezalenie od liczby nakrconych przez reysera
filmów, jego dane zapisane s raz, a jedynie krótki identyfikator (klucz
podstawowy) reysera znajduje si przy kadym jego filmie.
56
A c c e s s 2 0 1 0 P L • wi c z e n i a p r a k t y c z n e
Rysunek 3.2. W relacyjnych bazach danych informacje o obiektach
rónego typu (np. filmach, ich gatunkach i reyserach) przechowywane s
w odrbnych tabelach
Wielokrotne zapisywanie tych samych danych prdzej czy póniej
prowadzi do problemów z utrzymaniem spójnego (adekwatnego do
stanu rzeczywistego) obrazu danych — gdyby w naszym przykadzie
reyser zmieni nazwisko, zmiana ta musiaaby by przeprowadzona
dla niewiadomej, potencjalnie do duej liczby filmów. W takiej sytuacji
bardzo atwo o bd, wystarczy zmieni nazwisko w dziesiciu i zostawi
niezmienione w piciu komórkach.
Jednak uytkowników interesuje z reguy komplet informacji, np. chcie-
liby pozna tytu filmu, dane jego reysera i nazw gatunku, do którego
film naley. W relacyjnej bazie danych informacje te zapisane s w trzech
odrbnych tabelach: w tabeli Film znajduj si dane o filmach, w tabeli
Reyser — dane reyserów, a w tabeli Gatunek — nazwy gatunków
filmowych. Aby informacja o tym, kto nakrci dany film, nie zostaa
utracona, tabele te musz by ze sob powizane.
Zwizek zachodzcy pomidzy powizanymi ze sob tabelami w SZBD
Access nazywany jest relacj czc te tabele. Tak jak poszczególne
kolumny tabeli przechowuj wartoci atrybutów (cech) obiektów
danego typu (np. nazw firmy, adres koleanki czy tytu ksiki), tak
relacje przedstawiaj zachodzcy pomidzy obiektami dwóch rónych
typów zwizek (np. towar zosta sprzedany przez firm, koleanka po-
yczya pyty, autor napisa ksik).
Istniej trzy typy relacji dwuargumentowych (czyli takich, które odpo-
wiadaj zwizkowi czcemu dwie róne tabele). Oto one.
R o z d z i a 3 . • Re l a c j e
57
1.
Relacje typu jeden do jednego, w których jednemu obiektowi A
odpowiada dokadnie jeden obiekt B (przykadem takiej relacji
jest zwizek pomidzy uczniem a przypisan mu szafk w szatni).
2.
Relacje typu jeden do wielu, w których jednemu obiektowi A
odpowiada dowolna liczba obiektów B (przykadem takiej
relacji jest zwizek pomidzy firm a towarami — jedna firma
moe produkowa dowoln liczb towarów, ale ten sam towar
moe by wyprodukowany tylko w jednej firmie).
3.
Relacje typu wiele do wielu, w których dowolnej liczbie
obiektów A odpowiada dowolna liczba obiektów B
(przykadem takiej relacji jest zwizek pomidzy filmami
a aktorami — w kadym filmie moe zagra dowolna liczba
aktorów i kady aktor moe zagra w dowolnej liczbie filmów).
Wykorzystujc umiejtnoci zdobyte w poprzednich rozdziaach,
utworzymy baz danych dziaajc w rodowisku SZBD Access, która
bdzie podstaw do wicze z nastpnych rozdziaów.
W I C Z E N I E
3.1
Projekt przykadowej bazy danych
Na potrzeby tej ksiki zaprojektujemy i utworzymy baz danych Fil-
moteka, w której przechowywane bd podstawowe informacje o filmach
i poyczajcych je osobach. Zanim jednak zbudujemy now baz pro-
gramu Access, naley zaprojektowa ukad jej tabel.
Aby zaprojektowa przykadow baz danych:
1.
Wypisz, jedn pod drug, nazwy typów obiektów, o których
informacje powinny trafi do bazy:
Filmy
Osoby
2.
Wypisz te atrybuty obiektów, o których informacje powinny by
zapisane w bazie danych:
Film {Tytu, Nazwisko reysera, Imi reysera, Nazwiska aktorów,
Imiona aktorów, Gatunek, Cena, Data produkcji}
Osoba {Imi, Nazwisko, Adres, Telefon, Adres e-mail}
3.
Na podstawie zdobytej wiedzy o zaletach dzielenia danych
o obiektach rónego typu pomidzy powizane ze sob tabele
wyszukaj na licie wypisanych atrybutów te, które nie opisuj
bezporednio obiektu danego typu, i utwórz now list typów
obiektów:
58
A c c e s s 2 0 1 0 P L • wi c z e n i a p r a k t y c z n e
Film {Tytu, Gatunek, Cena, Data produkcji}
Osoba {Imi, Nazwisko, Adres, Telefon, Adres e-mail}
Reyser (Imi, Nazwisko} (trudno uzna imi czy nazwisko reysera
za bezporednie atrybuty filmu)
Aktor (Imi, Nazwisko} (trudno uzna imi czy nazwisko aktora
za bezporednie atrybuty filmu)
4.
W poprzednim rozdziale omówione zostay zalety dzielenia
informacji, opisujcych obiekty poszczególnych typów,
na atrybuty elementarne. Korzystajc z tych informacji,
zmodyfikuj list atrybutów obiektów:
Film {Tytu, Gatunek, Cena, Data produkcji}
Osoba {Imi, Nazwisko, Miasto, Ulica Nr domu, Telefon, Adres e-mail}
Reyser (Imi, Nazwisko}
Aktor (Imi, Nazwisko}
5.
Jednym z etapów procesu normalizacji baz danych, który
dodatkowo korzystnie wpynie na wydajno bazy danych
i komfort pracy uytkowników, jest wydzielenie tabel
sownikowych. Tabele tego typu przechowuj ustalon liczb
danych wykorzystywanych do okrelania wartoci
pojedynczego atrybutu obiektu nadrzdnego takiej tabeli.
W efekcie tabela nadrzdna jest mniejsza, a uytkownicy mog
wybra dan warto z listy, zamiast wielokrotnie wpisywa ten
sam cig znaków. W przykadowej bazie danych idealnym
kandydatem do roli tabeli sownikowej jest atrybut filmu
— gatunek (lista gatunków filmowych jest skoczona,
a prawdopodobiestwo wielokrotnego wpisywania tych
samych danych do due):
Film {Tytu, Cena, Data produkcji)
Gatunek {Nazwa}
Osoba {Imi, Nazwisko, Miasto, Ulica Nr domu, Telefon, Adres e-mail}
Reyser (Imi, Nazwisko}
Aktor (Imi, Nazwisko}
6.
Ostatnim zadaniem jest okrelenie relacji czcej poszczególne
obiekty.
T
Kady film naley do jednego, okrelonego gatunku, ale do
tego samego gatunku moe nalee dowolna liczba filmów
(zwizek typu wiele do jednego).
T
Kady film zosta nakrcony przez jednego, okrelonego
reysera, ale ten sam reyser moe nakrci dowoln liczb
filmów (zwizek typu wiele do jednego).
R o z d z i a 3 . • Re l a c j e
59
T
W kadym filmie moe zagra dowolna liczba aktorów,
a kady aktor moe zagra w dowolnej liczbie filmów
(zwizek typu wiele do wielu) — t relacj
zaimplementujemy za pomoc charakterystycznych
dla SZBD Access 2010 pól wielowartociowych.
T
Kady film (w tym samym czasie) moe by poyczony
tylko jednej osobie, ale ta sama osoba moe (jednoczenie)
poyczy dowoln liczb filmów (zwizek typu wiele do
jednego) — poniewa w bazie chcemy zapisa równie dat
poyczenia i oddania filmu, t relacj zaimplementujemy
za pomoc tabeli cznikowej.
W I C Z E N I E
3.2
Tabela sownikowa
Kolejno tworzenia tabel nie jest dowolna — jako pierwsze naley
utworzy tabele sownikowe, potem tabele podrzdne (tabele prze-
chowujce dane, do których odwouj si inne tabele), a jako ostatnie
— tabele nadrzdne (tabel nadrzdn przykadowej bazy danych jest
tabela Film, która odwouje si do danych zapisanych we wszystkich
pozostaych tabelach bazy danych).
Aby utworzy tabel Gatunek:
1.
Utwórz nowy projekt pustej bazy danych programu Access
i nazwij go Filmoteka.
2.
Korzystajc z umiejtnoci zdobytych w poprzednim rozdziale,
utwórz tabel Gatunek. Struktura tabeli zostaa pokazana na
rysunku 3.3.
W I C Z E N I E
3.3
Tabele podrzdne
Po utworzeniu tabeli sownikowej przysza pora na zbudowanie wszyst-
kich tabel podrzdnych — poniewa w przykadowej bazie danych
nie zawieraj one kolumn odwoujcych si do innych tabel (nie ma
ani jednej tabeli, która, bdc podrzdn w stosunku do jednej tabeli,
jednoczenie byaby nadrzdn w stosunku do innej tabeli), ich two-
rzenie nie róni si od opracowania tabel sownikowych.
60
A c c e s s 2 0 1 0 P L • wi c z e n i a p r a k t y c z n e
Rysunek 3.3.
Definicja tabeli
sownikowej
Aby utworzy tabele podrzdne (tabele niezawierajce kolumn kluczy
obcych):
1.
Utwórz tabel Osoba (rysunek 3.4).
Rysunek 3.4.
Definicja tabeli
podrzdnej
Osoba
2.
Utwórz tabel Rezyser. Struktura tej tabeli zostaa pokazana
na rysunku 3.5.
R o z d z i a 3 . • Re l a c j e
61
Rysunek 3.5. Definicja tabeli Rezyser — tworzc t (i pozostae tabele bazy
Filmoteka) mona wzorowa si na tabelach doczonej do ksiki bazy danych
W nazwach obiektów przykadowej bazy danych nie s uywane polskie
znaki diakrytyczne, natomiast w ich tytuach — tak. W ten sposób baza
danych bdzie prawidowo dziaaa w komputerach z zainstalowanym
systemem Windows w innej ni polska wersji jzykowej.
3.
Poniewa struktura tabeli Aktor jest identyczna ze struktur
tabeli Rezyser, skopiuj t tabel pod nazw Aktor, wywietl
nowo utworzon tabel w widoku projektu i zmie nazw
kolumny IdRezysera na IdAktora. Struktura pozostaych
kolumn nie wymaga zmiany.
W I C Z E N I E
3.4
Tabela nadrzdna
Na tym etapie baza danych Filmoteka zawiera cztery, niepowizane ze
sob tabele. Nadszed czas, aby zamieni te niezwizane ze sob obiekty
w relacyjn baz danych, przechowujc informacje o poszczególnych
filmach. Poniewa tabela Film zawiera kolumny, wskazujce na dane
zapisane w innych tabelach, jej utworzenie wymaga bdzie zbudowa-
nia relacji czcych odpowiednie tabele.
Aby utworzy tabel Film:
1.
Rozpocznij tworzenie nowej tabeli w widoku projektu.
2.
Utwórz kolumn klucza podstawowego (IdFilmu) oraz kolumny
przechowujce informacje o tytule danego filmu (Tytul), cenie
62
A c c e s s 2 0 1 0 P L • wi c z e n i a p r a k t y c z n e
zakupu (Cena), zysku, jaki uzyskalimy z wypoyczenia danego
filmu (Zysk), i dacie produkcji (DataPr).
3.
Jedn z cech charakterystycznych dla SZBD Access 2010 jest
moliwo formatowania danych typu Nota. Dodaj kolejn
kolumn Opinia typu Nota i zmie warto atrybutu Format
tekstu na Tekst sformatowany (rysunek 3.6).
Rysunek 3.6. Wpisujc opinie o filmach, bdziemy mogli dowolnie
zmienia krój, wielko i kolor czcionki
4.
Ustaw kursor w polu Typ danych nowej kolumny i z listy
dostpnych typów wybierz Kreator odnoników… (rysunek 3.7).
Rysunek 3.7. Aby unikn kopotów z niezgodnoci typów czonych
kolumn rónych tabel, naley najpierw uruchomi kreator odnoników,
a póniej (ewentualnie) zmieni nazw kolumny
R o z d z i a 3 . • Re l a c j e
63
5.
Poniewa chcemy poczy tabel Film z tabel Gatunek,
w odpowiedzi na pierwsze pytanie kreatora wybierz opcj
Obiekt kolumna odnonika ma pobiera wartoci z tabeli
lub kwerendy.
6.
Na licie dostpnych tabel zaznacz tabel Gatunek i kliknij
przycisk Dalej.
7.
Zostanie wywietlona lista kolumn tabeli Gatunek. Chocia
tabele zawsze powinny by czone za pomoc ich kluczy
podstawowych (w tym przypadku bd to wartoci pól kolumny
IdGatunku), identyfikatory poszczególnych gatunków s mao
opisowe (administrator musiaby zapamita, e np.
identyfikatorem gatunku horror jest liczba 12, a komedii — 3).
SZBD Access uatwia administratorowi przegldanie
i modyfikowanie danych w poczonych tabelach, bo
automatycznie zastpuje wywietlany identyfikator zwizanymi
z nim wartociami innych pól danej tabeli. I tak zamiast
wpisywa liczb 3 w oknie widoku arkusza danych tabeli,
bdziemy mogli wybra nazw gatunku danego filmu. Aby
osign ten cel, zaznacz oba pola tabeli Gatunek i kliknij
przycisk Dalej (rysunek 3.8).
Rysunek 3.8.
Kreator odnoników
umoliwia „ukrycie”
przed
administratorem
wykorzystanego
do poczenia tabel
klucza gównego
i zastpienie go
dowoln, opisow
wartoci, np. nazw
danego gatunku
filmowego
8.
SZBD Access 2010 umoliwia te posortowanie danych
wykorzystywanych do czenia tabel. Aby uatwi
administratorowi przypisywanie poszczególnych filmów
do gatunków, posortuj je alfabetyczne wedug nazw.
64
A c c e s s 2 0 1 0 P L • wi c z e n i a p r a k t y c z n e
9.
Odpowiadajc na kolejne pytanie kreatora, upewnij si, czy
pole wyboru Ukryj kolumn klucza (zalecane) jest zaznaczone,
i kliknij przycisk Dalej — w ten sposób gatunki filmowe bd
wybierane wycznie na podstawie nazw.
10.
Ostatnie pytanie kreatora bdzie dotyczyo nazwy tworzonej
kolumny:
T
Wpisz tak sam nazw, jak ma czona tabela (
Gatunek
),
T
Nie zaznaczaj pola Wcz integralno danych (jego
znaczenie wyjanilimy w wiczeniu powiconym
edytowaniu relacji),
T
Nie zaznaczaj pola Zezwalaj na wiele wartoci
(jego znaczenie wyjanilimy w dalszej czci rozdziau
na przykadzie relacji czcej tabele Film i Aktor),
T
I kliknij przycisk Zakocz.
11.
Po zakoczeniu pracy kreatora odnoników konieczne bdzie
zapisanie tabeli nadrzdnej — zapisz j pod nazw Film.
Wynik pracy kreatora zosta pokazany na rysunku 3.9.
Rysunek 3.9. Zakadka Odnonik pozwala pozna efekt pracy kreatora
odnoników: w tym przypadku dane pobierane z tabeli Gatunek bd
wywietlane w polu listy do poczenia tabel wykorzystana zostaa pierwsza
kolumna (kolumna klucza podstawowego), ale dane bd pobierane
z dwóch kolumn. Poniewa szeroko pierwszej kolumny zostaa ustawiona
na 0, uytkownik zobaczy w polu listy wycznie dane przechowywane
w drugiej kolumnie tabeli Gatunek
R o z d z i a 3 . • Re l a c j e
65
12.
W ten sam sposób, w jaki poczylimy tabele Film i Gatunek,
naley poczy tabele Film i Rezyser:
T
Po ustawieniu kursora w pustym polu kolumny Typ danych
z listy dostpnych typów wybierz Kreator odnoników….
T
Ponownie dane bd pobierane z innej tabeli, ale tym razem
z tabeli Rezyser.
T
Aby uatwi przegldanie i wprowadzanie danych
bezporednio do tabeli, z listy kolumn tabeli Aktor naley
wybra IdRezysera (klucz podstawowy powinien by
wykorzystany do czenia wszystkich tabel) oraz Nazwisko
(istnieje mniejsze prawdopodobiestwo, e kilku reyserów
bdzie nosi to samo nazwisko ni to samo imi).
Moliwe jest równie wskazanie wikszej liczby kolumn z tabeli
poczonej, ale wtedy dane wywietlane w polu listy bd zajmowa
duo miejsca na ekranie i w efekcie, zamiast uatwia, bd utrudnia
korzystanie z bazy danych.
T
Po posortowaniu danych wedug nazwisk aktorów i ukryciu
pola klucza podstawowego pozostaje jeszcze podanie nazwy
tworzonej kolumny odnonika (Rezyser) i zapisanie zmian
w tabeli Film.
Odpowiednikiem utworzenia odnonika do innej tabeli jest naoenie
na kolumn ograniczenia REFERENCES (klucz obcy). W efekcie ograniczymy
list dopuszczalnych dla danej kolumny wartoci do wartoci
przechowywanych w odpowiadajcej jej kolumnie w powizanej tabeli.
Kolumny z naoonym ograniczeniem REFERENCES mog przechowywa
wartoci NULL (niewypenione pola), o ile nie zabraniaj tego inne
ograniczenia. Aby SZBD Access móg utworzy klucz obcy, musi wczeniej
by utworzona tabela, do której klucz bdzie si odwoywa. Dodatkowo
w tabeli tej musi znajdowa si odpowiednia kolumna (lub kolumny),
dla której zdefiniowano taki sam typ danych jak dla kolumny z naoonym
ograniczeniem REFERENCES. Na kolumn tak musi by take naoone
jedno z dwóch ogranicze: PRIMARY KEY lub UNIQUE.
66
A c c e s s 2 0 1 0 P L • wi c z e n i a p r a k t y c z n e
W I C Z E N I E
3.5
Pola wielowartociowe
Skoro w jednym filmie gra wielu aktorów, a ten sam aktor wystpuje
w wielu filmach, wydaje si, e niemoliwe jest utworzenie kolumny
odnonika w tabeli Film (wtedy w filmie mógby zagra tylko jeden aktor)
ani w tabeli Aktor (wtedy z kolei aktor mógby zagra tylko w jednym
filmie). Poniewa wiele osób próbowao — bdnie — rozwiza ten
problem, dodajc do jednej z tabel kilka kolumn (w naszym przyka-
dzie do tabeli Film moglibymy doda kolumny Aktor1, Aktor2 itd.),
SZBD Access uproci tworzenie relacji typu wiele do wielu.
Umieszczenie w tabeli wielu kolumn, które odwouj si do tej samej
kolumny innej tabeli, jest bardzo zym pomysem. Nie tylko znacznie
ogranicza funkcjonalno bazy (musimy z góry zaoy maksymaln
liczb aktorów, którzy mog zagra w jednym filmie) i powoduje,
e w naszej tabeli przechowywanych jest mnóstwo wartoci Null
(bo w wikszoci przypadków interesuje nas tylko kilku aktorów
grajcych w danym filmie), ale równie ogromnie utrudnia tworzenie
powizanych z tak tabel formularzy i raportów.
Aby poczy tabele Film i Aktor:
1.
Wywietl projekt tabeli Film.
2.
Dodaj kolejn kolumn odnonika, wic j z kolumnami
IdAktora i Nazwisko tabeli Aktor.
3.
Posortuj dane wedug nazwisk i ukryj kolumn klucza.
4.
Koczc prac kreatora:
T
zmie nazw kolumny odnonika na Nazwiska,
T
zaznacz pole Zezwalaj na wiele wartoci (rysunek 3.10).
Rysunek 3.10.
W ten sposób
w kolumnie
odnonika
Nazwiska bdzie
mona zapisywa
dowoln liczb
nazwisk grajcych
w danym filmie
aktorów
R o z d z i a 3 . • Re l a c j e
67
5.
Zamknij okno projektu tabeli Film i zapisz wprowadzone w niej
zmiany.
W I C Z E N I E
3.6
Edytowanie relacji
Zanim poczymy tabele Film i Osoba, zmodyfikujemy relacje utwo-
rzone midzy pozostaymi tabelami.
W tym celu:
1.
Przejd na zakadk Narzdzia bazy danych i kliknij przycisk
Relacje.
2.
Aby upewni si, e wszystkie poczone tabele zostay
wywietlone, kliknij prawym przyciskiem myszy pusty obszar
okna relacji i z menu kontekstowego wybierz opcj Poka
wszystko.
3.
Za pomoc techniki „przecignij i upu” uporzdkuj ikony
tabel, tak aby linie obrazujce relacje nie krzyoway si,
i dopasuj rozmiar ikon poszczególnych tabel, tak by widoczne
byy wszystkie ich kolumny (rysunek 3.11).
Rysunek 3.11.
Linie czce
poszczególne
tabele
przedstawiaj
utworzone
pomidzy nimi
powizania
4.
Na tym etapie relacje czce poszczególne tabele nie
odzwierciedlaj jeszcze typów powiza (wszystkie te
powizania powinny by typu jeden do wielu).
Aby okreli typ relacji:
68
A c c e s s 2 0 1 0 P L • wi c z e n i a p r a k t y c z n e
T
Kliknij prawym przyciskiem myszy lini czc tabele Film
i Gatunek, a nastpnie z menu kontekstowego wybierz opcj
Edytuj relacj….
T
Zaznacz pole wyboru Wymuszaj wizy integralnoci — w ten
sposób okrelony zostanie typ powizania i SZBD Access
bdzie automatycznie sprawdza, czy dane w poczonych
tabelach s prawidowe (np. czy uytkownik nie próbowa
przypisa filmu do nieistniejcego w bazie gatunku).
T
Zaznacz pole wyboru Kaskadowo aktualizuj pola pokrewne
— w ten sposób zmiana wartoci klucza podstawowego
tabeli podrzdnej zostanie automatycznie uwzgldniona
w tabeli nadrzdnej (jeeli kto zmieni identyfikator
gatunku filmowego, np. komedii z 3 na 33, zmiana ta
zostanie automatycznie przeprowadzona w tabeli Film,
dziki czemu filmy, które wczeniej zostay zaklasyfikowane
jako komedie, nadal bd komediami) (rysunek 3.12).
Rysunek 3.12. O ile kaskadowa aktualizacja powizanych pól
zabezpiecza przed przypadkow modyfikacj wartoci kluczy
podstawowych, o tyle kaskadowe usuwanie moe spowodowa
przypadkowe usunicie wielu danych
T
Nie zaznaczaj pola wyboru Kaskadowo usu rekordy
pokrewne — zaznaczenie tego pola umoliwi nie tylko
usunicie gatunku, do którego zostay zaklasyfikowane
pewne filmy, ale SZBD Access automatycznie wyrzuci
z bazy informacje o wszystkich filmach usuwanego gatunku
(jeeli kto usunby wiersz z gatunkiem komedia, z tabeli
Film zostayby usunite wszystkie filmy zaklasyfikowane
jako komedie).
T
Kliknij przycisk OK.
R o z d z i a 3 . • Re l a c j e
69
5.
Linia czca tabele Film i Gatunek zostanie pogrubiona i,
co najwaniejsze, na jej kocach wywietlone zostan symbole
1 i
, obrazujce typ powizania.
6.
Powtórz czynnoci opisane w punkcie 4. dla pozostaych
relacji. Efekt pomylnego wykonania wiczenia pokazany
zosta na rysunku 3.13.
Rysunek 3.13. Zgodnie z zaoeniem projektu, jeden aktor (symbol 1) moe
zagra w wielu (symbol
) filmach, do jednego gatunku moe nalee wiele
filmów, jeden reyser moe nakrci wiele filmów, a pole wielowartociowe
pozwala wielu aktorom zagra w tym samym filmie
7.
Zamknij okno relacji i zapisz wprowadzone zmiany.
W I C Z E N I E
3.7
Wprowadzenie przykadowych danych
Po zdefiniowaniu czcych tabele relacji naley wprowadzi przyka-
dowe dane do tabel sownikowych i podrzdnych.
Aby wprowadzi przykadowe dane do bazy:
1.
Wywietl tabel Gatunek w widoku arkusza danych.
2.
Wpisz nazwy kilku gatunków filmów.
3.
Poniewa nie planujemy podczas wpisywania danych
dodawania do tabel bazy Filmoteka dodatkowych kolumn,
naley ukry kolumn Dodaj nowe pole:
T
rozwi menu Plik i kliknij przycisk Opcje,
T
przejd na zakadk Bieca baza danych,
70
A c c e s s 2 0 1 0 P L • wi c z e n i a p r a k t y c z n e
T
usu zaznaczenie pola wyboru Wcz zmiany projektu
w tabelach w widoku arkusza danych,
T
kliknij OK (eby zmiany zaczy obwizywa, konieczne
moe by zamknicie i ponowne otwarcie bazy danych).
4.
Aby przekona si, czy moliwe jest wpisanie filmów
bez jednoczesnego okrelenia gatunku, reysera czy aktora,
wprowad przykadowe dane o kilku filmach. Zwró uwag na
moliwo formatowania wpisywanych opinii (rysunek 3.14).
Rysunek 3.14. Przykadowe dane wprowadzone do tabeli Film
5.
Przekonaj si, e chocia pole odnonika moe zawiera
warto nieokrelon (warto
Null
), nie moe zawiera
wartoci nieodpowiadajcej jednemu z kluczy podstawowych
powizanej tabeli. Innymi sowy, niemoliwe jest
zaklasyfikowanie filmu do nieistniejcego gatunku.
6.
Zamknij okno tabeli Film.
7.
Otwórz w widoku arkusza danych tabel Rezyser.
Wpisz nazwiska i imiona kilku reyserów.
8.
Zamknij okno tabeli Rezyser i otwórz w widoku arkusza
danych tabel Aktor. Wpisz dane kilku aktorów.
9.
Zamknij okno tabeli Aktor i raz jeszcze otwórz w widoku
arkusza danych tabel Film. Ustaw kursor w polu Gatunek
pierwszego z wpisanych filmów i kliknij wywietlon z prawej
strony pola strzak — zobaczysz list nazw wprowadzonych
gatunków filmów (rysunek 3.15).
10.
Zwró uwag, e niemoliwe jest dodawanie nowych rekordów
do tabel podrzdnych w widoku arkusza danych tabeli
nadrzdnej. Aby np. doda nowy gatunek filmów, naley
otworzy tabel Gatunek, nie Film.
R o z d z i a 3 . • Re l a c j e
71
Rysunek 3.15. Gdy mamy ju dane w tabelach podrzdnych, wpisujc dane
do tabeli nadrzdnej, moemy si do nich odwoywa. W tym przykadzie
niektóre kolumny zostay ukryte — aby ukry wybrane kolumny, naley
klikn ich nagówek prawym przyciskiem myszy i z menu kontekstowego
wybra opcj Ukryj pola
W I C Z E N I E
3.8
Tabela cznikowa
Tabele Film i Osoba poczone s zwizkiem typu wiele do wielu. Po-
niewa chcemy zapisa pewne informacje (takie jak daty poyczenia
i zwrotu) o samym fakcie wypoyczenia filmu, implementacja tego
zwizku wymaga utworzenia dodatkowej tabeli cznikowej, w której
przechowywane bd wartoci kluczy podstawowych obu tabel. W ten
sposób relacja typu wiele do wielu zostanie zastpiona dwoma rów-
norzdnymi relacjami typu wiele do jednego.
Aby zbudowa tabel cznikow:
1.
Utwórz now tabel w widoku projektu.
2.
Za pomoc kreatora odnoników utwórz relacj czc t tabel
z tabel Film (tak jak poprzednio, tabele musz by powizane
na podstawie wartoci klucza podstawowego tabeli podrzdnej,
ale wywietlane powinny by alfabetycznie uoone tytuy
filmów). Ta kolumna nie powinna przechowywa wielu wartoci.
3.
Zapisz nowo tworzon tabel pod nazw Pozyczka.
W odpowiedzi na ostrzeenie o braku zdefiniowanego klucza
podstawowego kliknij przycisk Nie — tabela cznikowa,
przechowujca wycznie wartoci kluczy podstawowych
powizanych tabel, nie wymaga dodatkowej kolumny klucza
podstawowego.
72
A c c e s s 2 0 1 0 P L • wi c z e n i a p r a k t y c z n e
4.
Za pomoc kreatora odnoników utwórz relacj czc t tabel
z tabel Osoba (tak jak poprzednio, tabele musz by powizane
na podstawie wartoci klucza podstawowego tabeli podrzdnej,
ale wywietlane powinny by alfabetycznie uoone nazwiska
osób). Równie pola tej kolumny nie bd przechowyway
wielu wartoci.
5.
Dodaj kolumny DataPozyczki i DataZwrotu typu Data/godzina
i o formacie Data duga. Nadaj obu kolumnom odpowiednie
tytuy, a dla kolumny DataPozyczki dodatkowo okrel warto
domyln — wynik funkcji Now (w ten sposób dat poyczenia
automatycznie bdzie bieca data).
6.
Dodaj jeszcze kolumn Uwagi typu Nota i zezwól na
formatowanie uwag dotyczcych poyczenia przez dan
osob wybranego filmu.
7.
Na kocu zaznacz dwie pierwsze kolumny tabeli (obie kolumny
odnoników) i kliknij widoczny na wstce przycisk Klucz
podstawowy — w ten sposób kluczem tabeli Pozyczka bdzie
kombinacja identyfikatorów filmu i osoby (rysunek 3.16).
Rysunek 3.16.
Gotowy projekt
tabeli cznikowej
(tabeli
przechowujcej
informacje
o poyczonych
rónym osobom
filmach)
8.
Zamknij okno projektu tabeli Pozyczka i wywietl okno Relacje.
9.
Kliknij prawym przyciskiem myszy wolny obszar okna relacji
i z menu kontekstowego wybierz opcj Poka wszystko
— wywietlone zostan tabele Pozyczka i Osoba.
R o z d z i a 3 . • Re l a c j e
73
10.
Wykorzystaj umiejtnoci zdobyte w wiczeniu 3.5 i zmie
relacje czce tabele Film, Pozyczka i Osoba tak, aby SZBD
wymusza przestrzeganie wizów integralnoci, kaskadowo
aktualizowa i kaskadowo usuwa powizane pola
(rysunek 3.17).
Rysunek 3.17. Widok struktury bazy danych Filmoteka — taki ukad tabel
nazywany jest diagramem E/R (Encja/Relacja)
W I C Z E N I E
3.9
Korzystanie z tabeli cznikowej
Dziki tabeli cznikowej Pozyczka w bazie danych moliwe bdzie prze-
chowywanie informacji o tym, które osoby wypoyczyy dane filmy,
przy czym nie ma adnych ogranicze zwizanych z liczb filmów,
jakie moe poyczy ta sama osoba, i liczb osób, mogcych wypoyczy
kady film — tabele cznikowe s powszechnie stosowane do two-
rzenia relacji typu wiele do wielu.
Aby wprowadzi do bazy informacje o wypoyczeniu i zwrocie filmów:
1.
Otwórz w widoku arkusza danych tabel Osoba i wpisz dane
znajomych.
2.
Zamknij okno tabeli Osoba i otwórz w widoku arkusza danych
tabel Pozyczka.
74
A c c e s s 2 0 1 0 P L • wi c z e n i a p r a k t y c z n e
3.
Kliknij pole Tytu i z listy tytuów wybierz przykadowy tytu
filmu.
4.
Przekonaj si, e niemoliwe jest zapisanie danych
o wypoyczeniu filmu nieokrelonej osobie, tak samo
jak niemoliwe jest wypoyczenie wskazanej osobie
nieokrelonego filmu — Access nie pozwala na wpisywanie
wartoci
Null
do kolumn klucza podstawowego tabeli.
5.
Ustaw kursor w polu Nazwisko i z listy nazwisk wybierz
nazwisko znajomego.
6.
Zwró uwag, e data wypoyczenia zostaa automatycznie
ustalona na dzisiejsz. Wpisanie daty zwrotu bdzie oznaczao
oddanie filmu.
7.
Wpisz przykadowe dane do tabeli. Zwró uwag, e:
T
ten sam film moe by wielokrotnie wypoyczony,
T
ta sama osoba moe poyczy dowoln liczb filmów,
T
daty, zamiast wpisywa, mona wybiera z kalendarza,
T
uwagi mog by dowolnie formatowane (rysunek 3.18).
Rysunek 3.18. Tabela cznikowa umoliwiajca odzwierciedlanie
zwizków typu wiele do wielu