Technologie informacyjne: Lab2 - Bazy danych

Transkrypt

Technologie informacyjne: Lab2 - Bazy danych
Technologie informacyjne — ETD1063
dr inŜ. Krzysztof Urbański
Technologie informacyjne – lab. 2: Bazy danych
Współcześnie bazy danych i narzędzia wspierające ich przetwarzanie cieszą się
ogromną popularnością, i to nie tylko w zastosowaniach profesjonalnych, ale takŜe w
codziennym uŜytkowaniu komputera w warunkach domowych. Dzisiejsze zajęcia
poświęcimy wykonaniu bazy adresowej, która posłuŜy następnie do przygotowania
zaproszeń na odlotową imprezę, druga część zajęć będzie poświęcona relacyjnym bazom
danych.
Do komunikacji z bazami danych został opracowany pewien standard, jakim jest
język SQL (Structured Query Language). W praktyce nie jest on do końca standardowy,
ale na szczęście popularne, proste zapytania przygotowane w tym języku działają z
większością baz danych.
System bazodanowy z prawdziwego zdarzenia to najczęściej osobny serwer lub
zespół serwerów zajmujący się tylko jednym: obsługą transakcji bazodanowych. Do
obsługi nieskomplikowanych i niewielkich baz danych, zwłaszcza gdy bazy uŜywa
pojedynczy uŜytkownik, wystarcza w zupełności narzędzie jakim jest Access (z pakietu
Microsoft Office) lub OpenOffice Base.
Zadanie 1. Przygotowanie pliku z bazą danych [10 minut]
Zgodnie z przedstawionymi poniŜej krokami przygotuj bazę zawierającą listę
znajomych. Plik bazy nazwij lista_adresowa. W tabeli „Znajomi” utwórz klucz
główny o nazwie ID. Wypełnij tabelę przykładowymi wartościami. Co się stanie, gdy
uŜyjesz identycznej wartości klucza ID w róŜnych wierszach tabeli?
Wydział Elektroniki Mikrosystemów i Fotoniki
Politechnika Wrocławska
1
Technologie informacyjne — ETD1063
dr inŜ. Krzysztof Urbański
Rys. 1: Tworzymy nową bazę danych
Rys. 2: Rejestracja nie jest potrzebna, z kreatora rezygnujemy
Wydział Elektroniki Mikrosystemów i Fotoniki
Politechnika Wrocławska
2
Technologie informacyjne — ETD1063
dr inŜ. Krzysztof Urbański
Rys. 3: Nazwijmy naszą bazę "lista adresowa"
Rys. 4: Utwórzmy tabelę "ręcznie", bez uŜycia kreatora
Wydział Elektroniki Mikrosystemów i Fotoniki
Politechnika Wrocławska
3
Technologie informacyjne — ETD1063
dr inŜ. Krzysztof Urbański
Rys. 5: Jedną z kolumn (pól tabeli) traktujemy jako klucz główny - przyda się to trochę później
Rys. 6: Tworzymy kolumny w tabeli (przykład)
Rys. 7: Nazywamy naszą nową tabelę "Znajomi"
Wydział Elektroniki Mikrosystemów i Fotoniki
Politechnika Wrocławska
4
Technologie informacyjne — ETD1063
dr inŜ. Krzysztof Urbański
Rys. 8: Baza danych po dodaniu tabeli "Znajomi"
Rys. 9: tabela wypełniona przykładowymi danymi
Zadanie 2. Korespondencja seryjna [20 minut]
Utwórz dokument zaproszenie.odt (uŜywając aplikacji Writer). Wypełnij
dokument treścią. W specjalny sposób do dokumentu wstawia się pola pochodzące np. z
baz danych:
Wydział Elektroniki Mikrosystemów i Fotoniki
Politechnika Wrocławska
5
Technologie informacyjne — ETD1063
dr inŜ. Krzysztof Urbański
Poszczególne pola moŜna wstawiać wybierając je w okienku dialogowym:
Rys. 10: Lista pól do wyboru (z zewnętrznej bazy danych)
Cały dokument moŜe wyglądać następująco:
Rys. 11: Szablon dokumentu - odpowiednie pola zostaną później zastąpione danymi
pochodzącymi z bazy
Podczas próby drukowania dokumentu (Ctrl+D) zostaniemy poproszeni o dokonanie
Wydział Elektroniki Mikrosystemów i Fotoniki
Politechnika Wrocławska
6
Technologie informacyjne — ETD1063
dr inŜ. Krzysztof Urbański
wyboru:
Rys. 12: Wybieramy "Plik" zamiast "Drukarka"
Pozostaje tylko wydrukowanie, wysłanie e-mailem lub zapisanie na dysku zbioru
dokumentów końcowych. W zaleŜności od tego, ile rekordów (wierszy) posiada nasza
tabela z bazy danych, jako wynik powstanie kilka-kilkanaście plików w których nazwy
pól zostaną zastąpione konkretnymi wartościami. Przykładowo:
Rys. 13: Jeden z licznych plików powstałych w wyniku naszych działań
Efekty pracy w postaci szablonu (plik zaproszenie.odt), bazy danych
(lista_adresowa.odb) oraz wygenerowane zaproszenia (pliki z wypełnionymi polami)
spakuj i nazwij LAB2_zad1zad2.zip, a następnie prześlij prowadzącemu zajęcia.
Wydział Elektroniki Mikrosystemów i Fotoniki
Politechnika Wrocławska
7
Technologie informacyjne — ETD1063
dr inŜ. Krzysztof Urbański
Zadanie 3. Zaprojektowanie bazy danych zawierającej kilka tabel oraz
opracowanie powiązań między tabelami [20 minut]
Tym razem zadanie jest znacznie trudniejsze: nasza baza będzie „prawdziwą”
relacyją bazą danych! Na tym etapie najwaŜniejsze jest sensowne zaprojektowanie
struktury bazy danych, liczby i rodzaju tabel oraz zaplanowanie powiązań między
tabelami.
Weźmy przykładowo uproszczoną bazę danych rekrutacji. Zacznijmy od tabeli
zawierającej dane kandydatów. MoŜe ona wyglądać następująco:
Zaprojektuj samodzielnie tabelę mogącą przechowywać te dane. Bardzo waŜne jest
uwzględnienie pola, które stanie się kluczem głównym. W naszym przypadku to pole
nazwane zostało ID i zawiera liczby całkowite.
Kandydaci rekrutując się wybierają jeden lub więcej wydziałów. Utwórzmy tabelę
mogącą przechowywać informacje o poszczególnych wydziałach:
Tutaj równieŜ nie zapomnij o kluczu głównym!
KaŜdy z wydziałów moŜe kształcić na więcej niŜ jednym kierunku, ponadto istnieją
obecnie dwa stopnie studiów. Nazywamy to „przedmiotami rekrutacji”. Kandydat moŜe
wybrać wiele wydziałów, w obrębie kaŜdego z nich wiele przedmiotów rekrutacji.
Odpowiednia tabela (bardzo uproszczona) mogłaby wyglądać tak:
Wydział Elektroniki Mikrosystemów i Fotoniki
Politechnika Wrocławska
8
Technologie informacyjne — ETD1063
dr inŜ. Krzysztof Urbański
Rys. 14: Tabela przedmiotów rekrutacji
(Mam nadzieję, Ŝe tym razem nie muszę juŜ przypominać o kluczu głównym w tej
tabeli).
Mamy obecnie 3 róŜne tabele („Kandydaci”, „Wydzialy”, „Przedmioty_rek”), ale
nadal brakuje najwaŜniejszego: co tak właściwie wybrali nasi kandydaci jako przedmiot
rekrutacji? Co chcą studiować? Te informacje plus cała historia zgłoszeń rekrutacyjnych
zawarta jest w niepozornie wyglądającej tabeli „Rekrutacja”:
Rys. 15: Tabela przebiegu rekrutacji
„Na oko” dane te są zupełnie nieczytelne, ale przyjrzyjmy się im dokładniej. Weźmy
pierwszy wiersz tabeli „Rekrutacja”. Kandydata posiada ID=0. Zaglądamy do tabeli
„Kandydaci” i widzimy Ŝe jest to
Widzimy takŜe, Ŝe 02-09-2007 ten kandydat zadeklarował wybór przedmiotu rekrutacji o
identyfikatorze „3”. Zaglądamy do tabeli „Przedmioty_rek” aby się dowiecieć Ŝe są to
studia pierwszego stopnia na kierunku EIT oraz Ŝe identyfikator wydziału który te studia
prowadzi ma wartość 1004.
Wydział Elektroniki Mikrosystemów i Fotoniki
Politechnika Wrocławska
9
Technologie informacyjne — ETD1063
dr inŜ. Krzysztof Urbański
Rys. 16: Tabela przedmiotów rekrutacji
Pozostaje zajrzeć do tabeli „Wydzialy” aby ostatecznie dowiedzieć się, Ŝe ID_Wydzialu
równe 1004 oznacza:
Rys. 17: Tabela wydziałów
Oczywiście ten sposób korzystania z baz danych byłby niesłychanie uciąŜliwy dla
zwykłego
śmiertelnika,
zatem
opracowano
wygodny
mechanizm
uzyskiwania
podobnych(a takŜe duŜo bardziej wyrafinowanych) informacji za pomocą tzw. zapytań.
Zacznijmy od czytelnego przedstawienia poprzednich relacji za pomocą diagramu:
Rys. 18: Powiązania między tabelami (w widoku kwerendy)
Aby przygotować taki diagram, trzeba wybrać Kwerendy i „Utwórz projekt
kwerendy”. Następnie wskazujemy (dodajemy) wszystkie tabele które pojawiły się na
Wydział Elektroniki Mikrosystemów i Fotoniki
Politechnika Wrocławska
10
Technologie informacyjne — ETD1063
dr inŜ. Krzysztof Urbański
liście. Łapiąc myszką określone pola w poszczególnych tabelach i przeciągając, moŜemy
tworzyć powiązania między tabelami.
Mając zdefiniowane powiązania między tabelami moŜemy przygotować np.
imienną listę wszystkich kandydatów z pełną nazwą przedmiotów rekrutacji i nazwami
wydziałów. Po kilku kliknięciach powinniśmy uzyskać taki efekt:
Rys. 19: Kwerenda "lista_rekrutacyjna_1"
W języku SQL dałoby się ten efekt uzyskać za pomocą przykładowej instrukcji:
SELECT Imie, Nazwisko, Przedmioty_rek.Nazwa,
Wydzialy.Nazwa
FROM Kandydaci, Rekrutacja, Przedmioty_rek, Wydzialy
WHERE (
Kandydaci.ID = Rekrutacja.ID_Kandydata
AND Przedmioty_rek.ID = Rekrutacja.ID_Przedmiotu_rek
AND Wydzialy.ID = Przedmioty_rek.ID_Wydzialu
)
Wydział Elektroniki Mikrosystemów i Fotoniki
Politechnika Wrocławska
11
Technologie informacyjne — ETD1063
dr inŜ. Krzysztof Urbański
Przykład 2. Zamiast pełnej zawartości tabeli przygotujmy zapytanie które wyświetli
tylko kolumny Nazwisko, Imię, Pesel:
SELECT Nazwisko, Imie, Pesel FROM Kandydaci
Rys. 20: Kwerenda z drugiego
przykładu
W bardziej przyjaznej formie będzie to wyglądać następująco:
Rys. 21: Graficzna forma kwerendy
Przykład 3. Jak wyŜej, ale interesują nas tylko nazwiska „Nowak”:
SELECT Nazwisko, Imie, Pesel FROM Kandydaci WHERE
( Nazwisko = 'Nowak' )
Rys. 22: Sami Nowakowie
Przygotuj tabele zgodnie z przedstawionymi schematami i wypełnij je danymi.
Sprawdź działanie zapytań (kwerend) dla podanych przykładów. Tworząc zapytania
moŜesz posługiwać się formą graficzną lub tekstową (językiem SQL). Wynikiem będzie
dokument LAB2-zad3.odb. W pliku tym powinny znaleźć się definicje kwerend:
Wydział Elektroniki Mikrosystemów i Fotoniki
Politechnika Wrocławska
12
Technologie informacyjne — ETD1063
dr inŜ. Krzysztof Urbański
Rys. 23: Widok kwerend w projekcie bazy danych
PowyŜszy rysunek to tylko przykład, moŜesz inaczej nazwać kwerendy.
Zadanie 4. Własne kwerendy [20 minut]
Opracuj kwerendę:
1. wyświetlającą wszystkich kandydatów, którzy wybrali wydział WEMiF
2. wyświetlającą wszystkie wydziały, które prowadzą kierunek EIT na studiach
pierwszego stopnia
3. wyświetlającą wszystkie wydziały, które prowadzą kierunek EIT na studiach
dowolnego stopnia
4. wyświetlającą
pełny
przebieg
rekrutacji
(wwzystkie
transakcje),
posortowany według wieku kandydatów (wskazówka: PESEL).
Wynik (plik LAB2-zad4.odb) tradycyjnie prześlij do prowadzącego zajęcia. W
pliku powinny znaleźć się kwerendy o nazwach ZAD4_1, ZAD4_2, ZAD4_3, ZAD4_4.
Wydział Elektroniki Mikrosystemów i Fotoniki
Politechnika Wrocławska
13
Technologie informacyjne — ETD1063
dr inŜ. Krzysztof Urbański
Spis treści
Technologie informacyjne – lab. 2: Bazy danych................................................................................1
Zadanie 1. Przygotowanie pliku z bazą danych [10 minut].............................................................1
Zadanie 2. Korespondencja seryjna [20 minut]...............................................................................5
Zadanie 3. Zaprojektowanie bazy danych zawierającej kilka tabel oraz opracowanie powiązań
między tabelami [20 minut].............................................................................................................8
Zadanie 4. Własne kwerendy [20 minut].......................................................................................13
Indeks ilustracji
Tworzymy nową bazę danych.......................................................................2
Rejestracja nie jest potrzebna, z kreatora rezygnujemy.......................................2
Nazwijmy naszą bazę "lista adresowa".............................................................3
Utwórzmy tabelę "ręcznie", bez uŜycia kreatora.................................................3
Jedną z kolumn (pól tabeli) traktujemy jako klucz główny - przyda się to trochę później 4
Tworzymy kolumny w tabeli (przykład)............................................................4
Nazywamy naszą nową tabelę "Znajomi"..........................................................4
Baza danych po dodaniu tabeli "Znajomi".........................................................5
tabela wypełniona przykładowymi danymi........................................................5
Lista pól do wyboru (z zewnętrznej bazy danych)...............................................6
Szablon dokumentu - odpowiednie pola zostaną później zastąpione danymi
pochodzącymi z bazy.......................................................................6
Wybieramy "Plik" zamiast "Drukarka"...............................................................7
Jeden z licznych plików powstałych w wyniku naszych działań................................7
Tabela przedmiotów rekrutacji.....................................................................9
Tabela przebiegu rekrutacji.........................................................................9
Tabela przedmiotów rekrutacji...................................................................10
Tabela wydziałów...................................................................................10
Powiązania między tabelami (w widoku kwerendy)............................................10
Kwerenda "lista_rekrutacyjna_1"..................................................................11
Kwerenda z drugiego przykładu...................................................................12
Graficzna forma kwerendy.........................................................................12
Sami Nowakowie.....................................................................................12
Widok kwerend w projekcie bazy danych........................................................13
Wydział Elektroniki Mikrosystemów i Fotoniki
Politechnika Wrocławska
14