Zadanie II - 8.
Jakie znasz relacje między tabelami ?
Otwórz bazę Everest, w której zapisane są informacje dotyczące wejść na szczyt do 1986 r. Odczytaj w jakiej relacji pozostają tabele: Wejścia na M_Everest i Zdobywcy M_Everestu. Jak uzasadnisz tę relacje.
Zaprojektuj kwerendy, które odpowiedzą na interesujące Cię pytania dotyczące zdobywców M. Everestu.
**Nazwa kraju Szerpa występująca w tabeli dotyczy miejscowej ludności wynajmowanej przez uczestników wypraw w Himalaje, do noszenia ekwipunku.
Rozwiązanie:
Relacja stanowi powiązanie miedzy parą tabel. Istnieje wtedy, gdy dwie tabele są połączone poprzez pole kluczowe (kolumna lub kombinacja kolumn, która jednoznacznie określa rekord) Relacje umożliwiają eliminowanie powtarzających się danych.
Istnieją trzy rodzaje relacji między tabelami:
Jeden do jednego (1:1)
Tabela A jest z powiązana z tabelą B związkiem 1:1, gdy danemu rekordowi w tabeli A przypisany jest dokładnie jeden rekord tabeli B i odwrotnie : rekordowi tabeli B przyporządkowany jest jeden rekord tabeli A
Jeden do wielu (1:n)
Relacje jeden do wielu są najbardziej popularne w relacyjnej bazie danych. Przy tego rodzaju relacjach każdemu rekordowi tabeli A może odpowiadać zero, jeden lub wiele rekordów tabeli B, ale każdemu rekordowi tabeli A odpowiada dokładnie jeden rekord z tabeli A
Wiele do wielu (n:n)
W przypadku tego typu relacji rekordowi w tabeli A może odpowiadać kilka rekordów w tabeli B i odwrotnie: rekordowi w tabeli B może odpowiadać kilka rekordów w tabeli A. Microsoft Accesss nie dostarcza tych relacji w sposób bezpośredni.
Ustawienie relacji wiele do wielu wymaga zmiany projektu bazy danych. Relacja wiele do wielu musi być podzielona na dwie relacje jeden do wielu. Wymaga to wprowadzenia trzeciej tabeli zwanej tabelą sprzęgającą.
Baza Everest zawiera dwie tabele: Wejścia na M_Everest oraz Zdobywcy M_Everestu
Relacje między tabelami można zobaczyć po kliknięciu w przycisk Relacje
Powiązanie 1:n oznacza, że jednemu rekordowi z tabeli Zdobywcy M_Everestu odpowiada jeden lub kilka rekordów z tabeli Wejscia na M_Everest. tzn. są himalaiści, którzy weszli na Mont Everest więcej niż jeden raz. Zatem aby uzasadnić typ relacji, uczeń może na podstawie analizy danych zawartych w tabelach podać chociaż jedno nazwisko wielokrotnego zdobywcy Mount Everestu.
I tak np. elementowi
Id osoby |
Imię |
Nazwisko |
Kraj |
61 |
Reinhold |
Messner |
Włochy |
W tabeli Zdobywcy M_Everestu są przyporządkowane dwa elementy:
Id osoby |
Data |
Nr drogi |
61 |
1978-05-08 |
1 |
61 |
1980-08-20 |
8 |
w tabeli Wejscia na M_Everest
Na pewno lepszym rozwiązaniem będzie utworzenie kwerendy wykorzystującej funkcje agregującą Policz, która policzy wejścia himalaistów na Mount Everest (Policz wg pola Data) z kryterium: Data>1
W wyniku działania kwerendy otrzymujemy:
Jak widać najliczniejsza grupę zdobywców stanowią Szerpowie.
Dodatkowe kryterium w powyższej kwerendzie Kraj<>Szerpa pozwala uzyskać następujące dane:
A oto przykładowe zapytania, jakie można sformułować:
Którzy Polacy weszli na Mount Everest, w którym roku i jaką drogą ?
Jak przedstawiają się liczby zdobywców Mount Everestu w poszczególnych krajach?
W którym kraju było ich najwięcej ?
Ile dróg wytyczono na szczyt? Policz himalaistów wg numerów dróg.
Kto był pierwszym zdobywcą Mount Everestu?