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
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
lub tzw. klucza głównego w LibreOffice Base:
R48sdsMgfEZ3k
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
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
tabela Produkty:
R19liUiPAI8DR
tabela Zamowienia:
R1Z2J1drO3jj3
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
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
Wymienione trzy tabele bazy danych możemy przedstawić na jednym wspólnym schemacie relacji:
RuYtIAt7eqHOH
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
W filmie zaprezentowano procedurę łączenia tabel relacjami w programie Microsoft Access:
R6v3kRKJqgmyq
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
W kolejnym filmie zaprezentowano procedurę łączenia tabel relacjami w programie LibreOffice Base:
Rfa8xM0bIorGX
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