Jak już wiemy z e‑materiału Relacyjne bazy danychPJJU7OW9ARelacyjne bazy danych – są one używane w celu odzwierciedlenia określonej sytuacji. Stosujemy w nich tzw. encjeencjaencje, czyli wyodrębnione obiekty. Relacyjna baza danych składa się z tabel zawierających zestaw cech opisujących konkretną encję:
R1QqzV7h7jGoh
Ilustracja przedstawia trzy tabele reprezentują określone klasy obiektów. Pierwsza tabela: Zasoby zawiera: IDZasobu, Nazwa, Rodzaj, StanMagazynowy, Kaloryczność, KosztMagazynowania, Zdjęcie. Druga tabela o nazwie Budynki zawiera: IDBudynku, Nazwa, Rodzaj, Przeznaczenie, Pojemność, Wytrzymałość, StopieńZuzycia, Zdjęcie. Trzecia tabela o nazwie: Postacie zawiera nazwy pól oraz ich typ. Kolejno: IDPostaci autonumerowanie, Nazwa tekst, DataUrodzin data, FazaRozwoju tekst, ZasiegLotu liczba, Energia Liczba, Obrona liczba, szybkość liczba, Zdjecie media.
Tabele reprezentują określone klasy obiektów. Między obiektami zachodzą pewne zależności, które powinny zostać uwzględnione w projekcie bazy danych. Zależności te nazywamy relacjamirelacje (związki)relacjami. Określony budynek może być np. zamieszkiwany przez wiele różnych postaci, natomiast konkretna postać może być przypisana tylko do jednego budynku.
Ważne!
W nomenklaturze bazodanowej pojęcie relacji oznacza tabelę, ale może również dotyczyć powiązania występującego między tabelami.
Do ustanawiania relacji między tabelami wykorzystywane są tzw. klucze.
Już wiesz
Projektując tabelę w systemie zarządzania bazą danych, program automatycznie proponuje utworzenie dodatkowego pola ID, któremu przypisuje rolę tzw. klucza podstawowegoklucz podstawowyklucza podstawowego w Microsoft Access:
R1cUHe7tUwlYC
Zrzut ekranu przedstawia fragment arkusza Microsoft Access. Znajduje się na nim projekt tabeli o sześciu kolumnach i różnych typach danych. Znajdują się także dwie zielone strzałki. Pierwsza wskazuje na ikonę klucza obok Nazwy pola: id. Druga zielona strzałka wskazuje opcję: Klucz podstawowy z listy po kliknięciu prawym przyciskiem myszy na pole: id.
lub tzw. klucza głównego w LibreOffice Base:
R48sdsMgfEZ3k
Zrzut ekranu przedstawia fragment arkusza programu LibreOffice Base. Znajduje się na nim projekt tabeli o siedmiu kolumnach i różnych typach danych. Znajdują się także dwie zielone strzałki. Pierwsza wskazuje na ikonę klucza obok Nazwy pola:KodPrezentu. Druga zielona strzałka wskazuje opcję: Klucz główny z listy po kliknięciu prawym przyciskiem myszy na pole: KodPrezentu.
Klucz występujący w różnych aplikacjach pod nazwą klucza podstawowego lub klucza głównego traktujemy jako ten sam typ klucza, którego funkcja polega na jednoznacznym identyfikowaniu każdego pojedynczego rekordu w konkretnej tabeli bazy danych.
Budowanie relacji w bazie danych
Tworzenie relacji między tabelami przedstawimy na przykładzie bazy danych utworzonej w celu obsługi sklepu z produktami (sklep należy do rodziców Tomka). Baza ta została zaprojektowana w oparciu o istniejący wcześniej arkusz kalkulacyjny:
RG6XLWsKPWX0T
Zrzut ekranu przedstawia tabelę w arkuszu bazy danych. W kolumnach A, B, C, D, E , F, G, H wprowadzono kolejne opisy: W komórce A1: DATA ZAKUPU, w komórce B1: IMIĘ I NAZWISKO KLIENTA, w komórce C1: Adres Klienta, W komórce D1: Produkt, w komórce E1: Pojemność (w litrach), w komórce F1: Liczba sztuk, w komórce G1: Cena za sztukę, w komórce H1: Należność. W komórkach od A2 do A10 wpisano daty, w komórkach od B2 do B10 wypisano Imiona i nazwiska, w komórkach od C2 do C10 wypisano adresy, w komórkach od D2 do D10 wypisano nazwy produktów, w komórkach od E2 do H10 wypisano wartości liczbowe.
Wyodrębnione zostały następujące tabele:
Klienci;
Produkty;
Zamowienia.
Ważne!
Podział jednego arkusza (w którym dotychczas były odnotowywane zamówienia klientów sklepu) na kilka tabel służy zredukowaniu powtórzeń. Zwróć uwagę, że wprowadzenie do przedstawionego arkusza informacji o nowym zamówieniu dla klienta, który wcześniej już dokonywał zakupu w sklepie, wiąże się z ponownym wpisaniem imienia, nazwiska oraz adresu klienta.
Poszczególne tabele uzyskały następującą postać:
tabela Klienci:
R1OHySjmNG8yf
Zrzut ekranu przedstawia tabelę w arkuszu bazy danych. W nagłówkach kolumn wprowadzono kolejne opisy oraz dane: W kolumnie pierwszej: KodKlienta oraz kolejne wartości liczbowe, w kolumnie drugiej: Imię oraz wypisane imiona, W kolumnie trzeciej Nazwisko oraz wypisane nazwiska, w kolumnie czwartej UlicaNr oraz adresy, w kolumnie piątej KodPocztowy oraz kody pocztowe, w kolumnie szóstej Miejscowość oraz nazwy miejscowości, w kolumnie siódmej LiczbaPunktów oraz wartości liczbowe, w kolumnie ósmej LiczbaZakupów oraz wartości liczbowe, w kolumnie dziewiątej Telefon oraz numery telefonów, w kolumnie dziesiątej Email oraz adresy email.
tabela Produkty:
R19liUiPAI8DR
Zrzut ekranu przedstawia tabelę w arkuszu bazy danych. W nagłówkach kolumn wprowadzono kolejne opisy oraz dane: W kolumnie pierwszej: KodProduktu oraz kolejne wartości liczbowe, w kolumnie drugiej: NazwaProduktu oraz wypisane nazwy, W kolumnie trzeciej Pojemność oraz wypisane wartości liczbowe, w kolumnie czwartej CenaZaSztukę oraz ceny, w kolumnie piątej LiczbaSztukDoSprzedania oraz wartości liczbowe.
tabela Zamowienia:
R1Z2J1drO3jj3
Zrzut ekranu przedstawia tabelę w arkuszu bazy danych. W nagłówkach kolumn wprowadzono kolejne opisy oraz dane: W kolumnie pierwszej: KodZamówienia oraz kolejne wartości liczbowe, w kolumnie drugiej: KodKlienta oraz wypisane wartości liczbowe, W kolumnie trzeciej KodProduktu oraz wypisane wartości liczbowe, w kolumnie czwartej LiczbaSztuk oraz wypisane wartości liczbowe, w kolumnie piątej Należność oraz wartości liczbowe, w kolumnie szóstej DataZamówienia oraz daty.
Projektowanie relacji w bazie danych powinno być poprzedzone analizą zależności występujących między obiektami bazy. W przypadku bazy danych dla sklepu podstawową zależnością jest związek między klientem, produktem i zamówieniem. Dla uproszczenia przyjmijmy, że pojedyncze zamówienie wiąże się z zakupem tylko jednego produktu. Możemy wówczas sformułować następujące zależności:
dla konkretnego klienta w bazie danych może być zarejestrowanych wiele różnych zamówień, natomiast określone zamówienie dotyczy tylko jednego klienta,
konkretny produkt może figurować na wielu różnych zamówieniach, natomiast określone zamówienie dotyczy tylko jednego produktu.
Ważne!
Opisaną zależność (zarówno w pierwszym jak i drugim wypadku) nazywamy relacją typu jeden do wielurelacja jeden do wielujeden do wielu.
Relację „jeden do wielu”, jaka występuje między tabelami Klienci oraz Zamowienia, możemy oznaczyć symbolicznie w następujący sposób:
RPo3Ba4c44Qox
Ilustracja przedstawia relację dwóch tabel Klienci oraz zamówienia. Pierwsza tabela o nazwie klienci posiada pola IdKlienta znajduje się ikona klucza, Imie Nazwisko UlicaNr KodPocztowy Miejscowość Telefon Email Druga tabela o nazwie zamowienia posiada pola idZamowienie z ikoną klucza Klient Produkt LiczbaSztuk Naleznosc DataZamowienia Do pola idKlienta w tabeli klienci wskazuje linia z oznaczeniem 1 przy tabeli. Natomiast oznaczenie nieskończoności znajduje się przy polu Klient w tabeli zamowienia.
Zwróć uwagę, że cyfra 1 umieszczona jest w pobliżu pola KodKlienta tabeli Klienci, zaś symbol nieskończoności umieszczono w pobliżu pola KodKlienta tabeli Zamowienia. Oznacza to, że:
dany klient może figurować na wielu zamówieniach, natomiast konkretne zamówienie może dotyczyć wyłącznie jednego klienta,
pole KodKlienta jest tzw. kluczem obcymklucz obcykluczem obcym w tabeli Zamowienia, tzn. jest polem łączącym tę tabelę z tabelą Klienci, dla której pole KodKlienta jest kluczem podstawowym.
Analogicznie oznaczona zostanie relacja „jeden do wielu”, występująca między tabelami Produkty oraz Zamowienia, tzn. pole KodProduktu będące kluczem podstawowym dla tabeli Produkty jest kluczem obcym dla tabeli Zamowienia:
R1dYv73WPMp7O
Ilustracja przedstawia relację dwóch tabel zamówienia oraz produkty. Pierwsza tabela o nazwie zamowienia posiada pola idZamowienie z ikoną klucza Klient Produkt LiczbaSztuk Naleznosc DataZamowienia Ostatnia tabela o nazwie produkty posiada pola idProduktu z ikoną klucza Nazwa Pojemnosc CenaZaSztuke LiczbaSztukDoSprzedania Do pola idProduktu w tabeli produkty wskazuje linia z oznaczeniem 1 przy tabeli. Natomiast oznaczenie nieskończoności znajduje się przy polu Produkt w tabeli zamowienia.
Wymienione trzy tabele bazy danych możemy przedstawić na jednym wspólnym schemacie relacji:
RuYtIAt7eqHOH
Ilustracja przedstawia relację trzech tabel Klienci, zamówienia oraz produkty. Pierwsza tabela o nazwie klienci posiada pola IdKlienta znajduje się ikona klucza, Imie Nazwisko UlicaNr KodPocztowy Miejscowość Telefon Email Środkowa tabela o nazwie zamowienia posiada pola idZamowienie z ikoną klucza Klient Produkt LiczbaSztuk Naleznosc DataZamowienia Ostatnia tabela o nazwie produkty posiada pola idProduktu z ikoną klucza Nazwa Pojemnosc CenaZaSztuke LiczbaSztukDoSprzedania Do pola idKlienta w tabeli klienci wskazuje linia z oznaczeniem 1 przy tabeli. Natomiast oznaczenie nieskończoności znajduje się przy polu Klient w tabeli zamowienia. Do pola idProduktu w tabeli produkty wskazuje linia z oznaczeniem 1 przy tabeli. Natomiast oznaczenie nieskończoności znajduje się przy polu Produkt w tabeli zamowienia.
Utworzenie relacji w wybranym systemie zarządzania bazą danych
Utworzenie relacji w bazie danych programu Microsoft Access jest możliwe dzięki funkcji Relacje, uruchamianej po wejściu w zakładkę Narzędzia bazy danych:
Rx2FyE73V0gKw
Ilustracja przedstawia fragment programu Microsoft Access. Znajdują się na nim dwie zielone strzałki z numerami. Strzałka z numerem: 1 wskazuje na zakładkę o nazwie: Narzędzia bazy danych. Strzałka z numerem: 2 wskazuje na narzędzie o nazwie: Relacje.
W filmie zaprezentowano procedurę łączenia tabel relacjami w programie Microsoft Access:
R6v3kRKJqgmyq
W filmie zaprezentowano procedurę łączenia tabel relacjami w programie Microsoft Access
W filmie zaprezentowano procedurę łączenia tabel relacjami w programie Microsoft Access
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY-SA 3.0.
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY-SA 3.0.
W filmie zaprezentowano procedurę łączenia tabel relacjami w programie Microsoft Access
Podczas definiowania relacji między tabelami możliwe jest włączenie opcji Wymuszaj więzy integralności (przedstawiono ją w filmie). Wymuszenie więzów integralności zapobiega powstawaniu tzw. rekordów odłączonych. Oznacza to, że nie można usunąć rekordu w tabeli podstawowej, jeśli istnieją odpowiadające mu rekordy w tabeli połączonej. Niemożliwe będzie np. usunięcie rekordu z tabeli Klienci, jeśli dla konkretnego klienta zostały zarejestrowane jakiekolwiek rekordy w tabeli Zamowienia.
W programie LibreOffice Base utworzenie relacji wiąże się z wyborem opcji Relacje… w zakładce Narzędzia:
R1enTCilQICGO
Ilustracja przedstawia fragment programu LibreOffice Base. Znajduje się na nim zielona strzałka wskazująca na opcję: Relacje z rozwiniętej listy Narzędzia.
W kolejnym filmie zaprezentowano procedurę łączenia tabel relacjami w programie LibreOffice Base:
Rfa8xM0bIorGX
W filmie zaprezentowano procedurę łączenia tabel relacjami w programie LibreOffice Base
W filmie zaprezentowano procedurę łączenia tabel relacjami w programie LibreOffice Base
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY-SA 3.0.
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY-SA 3.0.
W filmie zaprezentowano procedurę łączenia tabel relacjami w programie LibreOffice Base
Słownik
encja
encja
(ang. entity) schematyczny opis rzeczywistych lub wymyślonych obiektów posiadających te same cechy, zwane atrybutami lub własnościami
klucz obcy
klucz obcy
kolumna (bądź grupa kolumn) będąca kluczem głównym w jednej tabeli, a włączona do drugiej tabeli w celu ustanowienia relacji (powiązania) między obiema tabelami
klucz podstawowy
klucz podstawowy
zwany też kluczem głównym to jedno lub więcej pól (atrybutów), których wartość jednoznacznie identyfikuje każdy rekord w tabeli; taka cecha klucza nazywana jest unikatowością (unikalność); klucz podstawowy służy do powiązania rekordów w jednej tabeli z rekordami z innej tabeli
rekord
rekord
w kontekście relacyjnej bazy danych to jeden wiersz tabeli, zawiera wartości wszystkich pól; rekordem nazywa się również wiersze uzyskiwane w wynikach zapytań, każdy taki wiersz zawiera wartości z pól wskazanych w zapytaniu
relacja jeden do wielu
relacja jeden do wielu
najczęstszy typ relacji w bazie danych polegający na tym, że jeden rekord w tabeli A może mieć wiele odpowiadających rekordów w tabeli B, zaś konkretny rekord z tabeli B może mieć tylko jeden pasujący rekord z tabeli A, np. jeden klient może mieć złożonych wiele zamówień, natomiast konkretne zamówienie dotyczy tylko jednego klienta
relacje (związki)
relacje (związki)
powiązania między tabelami w bazie danych, realizowane za pomocą klucza podstawowego jednej tabeli, który w drugiej tabeli pełni rolę tzw. klucza obcego