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