Tabele baz danych – relacje

Teraz spróbujemy zdefiniować relację.

Relacją nazywamy podzbiory iloczynu kartezjańskiego.
Niech podzbiorem dla naszego przykładu będą (1-Jacek, 2 – Ewa). Jeśli umieścimy  te elementy w tabeli, otrzymamy:

 

 

Numery Imiona
1 Jacek
2 Ewa
1 Ewa
3 Ewa
2 Jacek
3 Jacek

Dlatego w relacyjnych bazach danych relacją nazywać będziemy tabele bazy danych, ponieważ zawartość tabeli ulega ciągłym zmianom. Kolumny – atrybuty mogą przechowywać wartości określonych typów, jednak wartości te mogą być modyfikowane. Podobnie jest w naszym przykładzie. Relacja (tabela) przechowuje dane, które zwykle ulegają pewnym zmianom. Zawartość tabeli, jeśli nie jest modyfikowana, może być rozszerzana o kolejne wiersze (rew). Operacje, jeśli nie zachodzą w danej chwili, mogą zajść w przyszłości, dlatego zawartość relacji możemy traktować jako zmienną. Teoretyk baz danych Chris Date zaproponował określanie tabel w relacyjnych bazach danych mianem relvar. Jest to skrót od relation (relacja – tabela) oraz variable – zmienna. Ten nowy termin w ję­zyku polskim tłumaczymy jako zmienna relacyjna. Takie definiowanie tabeli w relacyjnej bazie danych ma na celu uświadomienie osobom poznającym teorie, że tabela spełnia wymogi matematyczne relacji, a jej zawartość (to co jest przechowywane wewnątrz tabe­li) może ulegać zmianom w określonym czasie.

W większości opracowań dotyczących baz danych pojęcie relacja odnosi się do tabeli w relacyjnej bazie danych. Problemem teorii baz danych jest stosowanie terminu relacja również do związków, które występują pomiędzy tabelami (np. relacja jeden do wielu). W efekcie przyjęcia takiej nomenklatury, gdy chcemy powiedzieć, że pomiędzy tabelą A i tabelą B występuje związek „jeden do wielu”, mówimy, że pomiędzy relacją A a relacją B występuje relacja „jeden do wielu” (zupełnie tak, jakby oznaczało to istnienie trzeciej tabeli o nazwie „jeden do wielu”). Jak łatwo zauważyć, postępowanie takie doprowadza do zatarcia sensu wypowiedzi. W tym podręczniku konsekwentnie używane będą jako syno­nimy pojęcia relacja i tabela, a stosunki pomiędzy tabelami nazywane będą związkami, np. związkiem jeden do wielu, związkiem jeden do jednego.

PRZYKŁAD

 

Tabela 7.1. Lista reprezentantów Polski w piłce nożnej

Nr

Imię i nazwisko

Data urodzenia / Wiek

Występy

Gole

Klub

12

Grzegorz Sandomierski

5 września 1989 / 22 lata

3

0

Jagiellonia Białystok

1

Wojciech Szczęsny

18 kwietnia 1990 / 22 lata

11

0

Arsenał F.C.

22

Przemysław Tytoń

4 stycznia 1987 / 25 lat

8

0

PSY Eindhoven

Tabela przedstawia fragment składu reprezentacji Polski w piłce nożnej. W dniu 16.07.2012 r. odpowiadała rzeczywistości, jednak po pewnym czasie jej zawartość może ulec zmianie. Wystarczy, że któryś z zawodników strzeli gola, wtedy zawar­tość relacji ulegnie zmianie. Podobnie dane ulegną modyfikacji po podjęciu decyzji personalnej przez selekcjonera mającego wpływ na ostateczny skład reprezentacji Polski. W 2013 roku zmieni się również zawartość kolumny Wiek (każdy z piłkarzy będzie o rok starszy).

Ponieważ zachowanie zawartości relacji przypomina zawartość zmiennej znanej z języków programowania (pole przechowuje pewną wartość określonego typu i może ulec zmianie), stąd pisząc o tabeli, której zawartość ulega zmianom, użyjemy pojęcia zmienna relacyjna, natomiast gdy mamy na myśli tabelę, której zawartość jest rozpatrywani w danej określonej chwili i nie ulega zmianie, będziemy mówić o wartości relacyjnej lub w skrócie, relacji.

SPRAWDŹ SWOJĄ WIEDZĘ

  1. Co to jest iloczyn kartezjański i kto jest jego twórcą?
  2. Dlaczego tabela w relacyjnych bazach danych określana jest terminem relacja?