Wróć do informacji o e-podręczniku Wydrukuj Pobierz materiał do PDF Pobierz materiał do EPUB Pobierz materiał do MOBI Zaloguj się, aby dodać do ulubionych Zaloguj się, aby skopiować i edytować materiał Zaloguj się, aby udostępnić materiał Zaloguj się, aby dodać całą stronę do teczki

Powiązania między tabelami w bazie danych

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 podstawowegoMicrosoft Access:

R1cUHe7tUwlYC

lub tzw. klucza głównegoLibreOffice 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:

  1. dla konkretnego klienta w bazie danych może być zarejestrowanych wiele różnych zamówień, natomiast określone zamówienie dotyczy tylko jednego klienta,

  2. 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
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

W kolejnym filmie zaprezentowano procedurę łączenia tabel relacjami w programie LibreOffice Base:

Rfa8xM0bIorGX
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