Informatyka Ćwiczenie 10 Bazy danych Baza danych jest zbiór informacji (zbiór danych). Strukturę bazy danych można określić w formie jak na rysunku 1. Pracownik(ID pracownika, imie, nazwisko, pensja) Klient(ID klienta, imie, nazwisko, adres, dataur) Film(ID filmu, tytuł, kategoria, cena, reżyser) Rysunek 1. Przykładowe struktury baz danych Pierwszy człon to nazwa tabeli, np. Pracownik, Klient, Film. W nawiasach znajdują się nazwy kolumn tabeli (nazwy atrybutów). Pierwsza kolumna jest tzw. kluczem podstawowym, czyli informacją, która identyfikuje jeden wiersz tabeli. Pozostałe kolumny są związane relacją z kluczem podstawowym. Jeżeli dwie tabele chcemy połączyć relacją to w drugiej tabeli musimy powtórzyć ten klucz podstawowy z pierwszej tabeli i nazywamy go kluczem obcym. Przykładową tabelę przedstawiono na rysunku 2. Pracownicy atrybuty ID pracownika imie nazwisko pensja 1 Jacek Jakieła 3000 zł 2 Paweł Litwin 3000 zł 3 Jan Nowak 3,500 zł Rekord (krotka) Rysunek 2. Tabela reprezentująca relację Pracownik Na rysunku 2. atrybuty: imie, nazwisko, pensja są związane relacją z kluczem podstawowym ID pracownika. Każdy wiersz jest rekordem (krotką). 1
Matematyczna definicja relacji oparta na teorii zbiorów Iloczyn kartezjański zbiorów A={a, b,c} B={c,d} A B={(x,y): x A y B } x y e A B = a (a,e) b (b,e) c (c,e)( f (a,f) (b,f) (c,f) Relacją nazywamy dowolny podzbiór iloczynu kartezjańskiego. Relacyjna baza danych Relacyjną bazę danych nazywamy taką bazę, w której informacje umieszczone są w tabelach. Każda tabela musi mieć swoją nazwę. Tabela zbudowana jest z wierszy i kolumn. Każda kolumna tabeli ma swoją nazwę. Kolumnę tabeli nazywamy polem (ang. field). Każda identyfikuje jednoznaczne każdy wiersz tabeli. Zwykle nazywamy ją jako ID nazwa_tabeli, ale nie zawsze. Wiersz tabeli nazywamy rekordem lub krotką. Przykładowa relacyjna baza danych Załóżmy, że mamy dwa zbiory, takie jak: Imiona i Nazwiska. Iloczyn kartezjański tych dwóch zbiorów, zapisywany w postaci Imiona Nazwiska, gdzie Imiona={Jan, Jacek, Paweł} i Nazwiska={ Jakieła, Litwin} jest następujący: Imiona Nazwiska={(Jan, Jakieła), (Jan, Litwin), (Jacek, Jakieła), (Jacek, Litwin), (Paweł, Jakieła), (Paweł, Litwin)} 2
Załóżmy, że interesuje nas relacja autorzy książki Bazy Danych. Będzie ona podzbiorem przedstawionego iloczynu kartezjańskiego. R autorzy książki = {(Jacek, Jakieła), (Paweł, Litwin)} Jeżeli uporządkowane pary zapiszemy jedna nad drugą, a nad elementami uporządkowanych par wprowadzimy nazwy kategorii (nazwy kolumn - atrybutów) do których należą elementy zbiorów, wówczas otrzymamy strukturę tabeli jak poniżej: Relacja Autorzy książki imie nazwisko Jacek Jakieła Paweł Litwin Jak widać, reprezentacja relacji w formie tabeli jest bardzo naturalnym sposobem zapisu struktur tego typu. Każda nazwa kolumny tabeli reprezentuje atrybut relacji, natomiast każdy wiersz określany również terminem rekord krotkę relacji. Krotka relacji opisuje więc konkretny obiekt, na temat którego dane są przechowywane w bazie danych. Krotki w relacji mogą występować w dowolnej kolejności i reprezentują stan relacji, który może zmieniać się w czasie. Atrybut relacji opisuje cechę obiektu, którego dane będą przechowywane w bazie danych. Wartości każdego atrybutu muszą być zgodne z dziedziną. Dziedzina atrybutu jest zbiorem dopuszczalnych wartości, jakie może przyjmować atrybut. Wartościami atrybutów może być : text, liczba, waluta, data, autonumerowanie (automatycznie nadawana wartość kolejnej liczby). Zgodnie z definicją relacyjnej bazy danych w programie Access utworzymy dwie tabele źródłowe o nazwach: Imiona i Nazwiska oraz tabelę łączącą o nazwie Autorzy. Tabele źródłowe tworzymy w widoku projektu. Będą się składały z 2 nazw kolumn (Nazwa pola). Pierwsza nazwa będzie kluczem podstawowym typu Autonumerowanie, druga nazwą kolumny typu Tekst. Imiona Widok projektu tabeli Imiona Nazwa pola Typ danych ID imienia Autonumerowanie Imię Tekst 3
Nazwiska Widok projektu tabeli Nazwiska Nazwa pola Typ danych ID nazwiska Autonumerowanie Nazwisko Tekst Dane do tabeli wprowadzamy w widoku Arkusza Danych. Widok Arkusza danych tabeli Imiona ID imienia Imię 1 Jan 2 Jacek 3 Paweł Widok Arkusza danych tabeli Nazwiska ID Nazwiska Imię 1 Jakieła 2 Litwin Tabela łącząca Autorzy Tabela łącząc będzie się składała z trzech kolumn. Pierwsza kolumna o nazwie ID autora będzie kluczem podstawowym typu Autonumerowanie, druga kolumna o nazwie ID imienia będzie taka sama jak nazwa klucza podstawowego z tabeli Imiona, zaś trzecia kolumna o nazwie ID nazwiska będzie taka sama jak nazwa klucza podstawowego z tabeli Nazwiska. Druga i trzecia kolumna to będą klucze obce typu Liczba. Widok projektu tabeli Autorzy Nazwa pola ID autora ID imienia ID nazwiska Typ danych Autonumerowanie Liczba Liczba 4
Uruchomienie programu Access 2010 Z folderu Microsoft Office wybieramy ikonę Microsoft Access 2010 Po uruchomieniu programu Access klikamy na ikonę Pusta Baza Danych Pojawi się okno w widoku tworzenia nagłówków tabeli z nazwą pierwszej kolumny Identyfikator. Klikamy w ikonę Widok i wybieramy Widok projektu Pojawi się okno z propozycją zapisu tabeli o nazwie Tabela1 5
Zmieniamy nazwę tabeli Tabela1 na nazwę Imiona i klikamy OK. Pojawi się ikona tabeli Imiona z propozycją zmiany nazwy pierwszej kolumny Identyfikator Zmieniamy nazwę pierwszej kolumny na: ID imienia. Dopisujemy niżej nazwę drugiej kolumny na Imię i zmieniamy Typ danych na Tekst. Zapisujemy zmiany klikając w dyskietkę. Wprowadzanie danych do tabeli Klikamy w ikonę Widok i zmieniamy widok na Widok arkusza danych Wprowadzamy dane tylko do kolumny Imię. W kolumnie ID imienia kolejne liczby pojawią się automatycznie. Zapisujemy dane klikając w ikonę dyskietki. 6
Tworzenie nowej tabeli źródłowej Nazwiska Postępujemy podobnie ja przy tworzeniu tabeli Imiona. Wybieramy z menu Tworzenie i wybieramy ikonę Tabela. Wybieramy Widok projektu, Zmieniamy nazwę Tabela1 na nazwę Nazwiska,, Naciskamy OK Klikamy w ikonę Widok i wybieramy Widok projektu Wpisujemy nazwy kolumn: ID nazwiaka,nazwisko. Zapisujemy zmiany do tabeli klikając w dyskietkę. Zmieniamy widok tabeli na Widok arkusza danych i wpisujemy dane do kolumny Nazwisko, Zapisujemy dane klikając w dyskietkę. 7
Tworzenie tabeli łączącej Autorzy Postępujemy podobnie ja przy tworzeniu tabeli Imiona. Wybieramy z menu Tworzenie i wybieramy ikonę Tabela. Wybieramy Widok projektu, Zmieniamy nazwę Tabela1 na nazwę Autorzy,, Naciskamy OK Wpisujemy nazwy kolumn: ID autora,id imienia, ID nazwiska. Zmieniamy typ danych kolumn ID imienia i ID nazwiska na Liczba. Zapisujemy zmiany do tabeli klikając w dyskietkę. 8
Klikamy w nazwę ID imienia i następnie w zakładkę Odnośnik Pojawi się okno Odnośnik z typem formantu Pole tekstowe Klikamy w to pole tekstowe, pojawi się z prawej strony grot strzałki, klikamy w ten grot strzałki i wybieramy pole listy 9
Wybieramy: jako źródło wierszy tabelę Imiona, jako liczbę kolumn 2, jako Szerokości kolumn liczby 0;2 które oddzielamy średnikiem Podobnie wybieramy Odnośnik dla nazwy pola ID Nazwiska 10
Zapisujemy tabelę Autorzy klikając w dyskietkę. Tworzenie relacji między tabelami Zamykamy wszystkie tabele. Z menu głównego wybieramy opcję: Narzędzia bazy danych, następnie ikonę Relacje Pojawi się okno 11
Dodajemy wszystkie tabele: Autorzy, Imiona, Nazwiska. Tabele można poprzesuwać tak jak na rysunku W tabelach są zaznaczone ikoną klucza klucze podstawowe w każdej tabeli. Łączymy klucz podstawowy ID imienia z tabeli Imiona z kluczem obcym ID imienia w tabeli Autorzy. Tzn. klikamy lewym przyciskiem myszy na ikonę klucza podstawowego ID imienia w tabeli Imiona trzymając przycisk myszy przesuwamy go na napis ID imienia w tabeli Autorzy. 12
Po zwolnieniu przycisku myszy pojawi się okno. Należy wtedy zaznaczyć opcję: Wymuszaj więzy integralności. i kliknąć przycisk Utwórz. Następnie należy połączyć klucz podstawowy ID nazwiska z tabeli Nazwiska z kluczem obcym ID nazwiska w tabeli Autorzy. Tzn. klikamy lewym przyciskiem myszy na ikonę klucza podstawowego ID nazwiska w tabeli Nazwiska trzymając przycisk myszy przesuwamy go na napis ID Nazwiska w tabeli Autorzy. Zapisujemy relację klikając na ikonę dyskietki. Zamykamy relacje. Tworzenie tabeli Autorzy Klikamy na tabelę Autorzy. Pojawia się okno: 13
Wybieramy w kolumnie ID imienia odpowiednie imię zaś w kolumnie ID Nazwiska odpowiednie nazwisko spełniające relację, tak ja na rysunku poniżej. Zapisujemy zmiany klikając w dyskietkę. Tworzenie kwerendy Kwerendą nazywany nową tabelę powstałą przez wybór wszystkich lub niektórych informacji z istniejącej bazy danych. W celu utworzenia kwerendy wybieramy z menu głównego opcję : Tworzenie i następnie ikonę Projekt kwerendy. Pojawi się okno: Wtedy dodajemy wszystkie tabele i klikamy przycisk Zamknij. Pojawi się relacyjna baza danych a niżej projekt pustej tabeli z pustymi polami na nagłówki kolumn. 14
Przeciągamy wszystkie nazwy kolumn z każdej tabeli kolejno do pustej tabeli poniżej lub klikamy kolejno w każdą nazwę kolumny. Otrzymamy projekt kwerendy (nowej tabeli). Klikamy w ikonę Uruchom (!). 15
Pojawi się nowa tabela o nazwie Kwerena1 Klikamy w dyskietkę i dopisujemy nazwę z wszystkimi nazwami. Tworzymy drugą kwerendę tylko z imionami i nazwiskami. 16
Klikamy ikonę Uruchom. Klikamy ikonę dyskietki i zmieniamy nazwę na: Kwerenda2 Autorzy Zadanie 1 Zaprojektować bazę danych noblistów, w której istnieją dwie tabele: Kraje(nr_noblisty, kraj) Nobliści(nr_noblisty, nazwisko, nr_kraju, rok_nagrody), oraz wpisać do nich po kilka rekordów. Ustawić w tabeli nobliści odnośnik do nr_kraju Utworzyć odpowiednią relację między tabelami Dodać kwerendy: - wyboru noblistów do roku 1980 - wyboru noblistów z Polski Zadanie 2 Zaprojektować bazę danych studentów, w której istnieją dwie tabele: Grupa studencka(nr grupy, Rok studiów) Student(ID studenta, Nazwisko, Imię, Stypendium, Nr grupy), oraz wpisać do nich po kilka rekordów. Ustawić w tabeli Student odnośnik do pola Nr grupy Utworzyć odpowiednią relację między tabelami Dodać kwerendy: - studenci posiadający stypendium - studenci pierwszego roku 17