Projektowanie konceptualne,

Projektowanie konceptualne

ZAGADNIENIA

  •  Pojęcie projektowania konceptualnego
  • Różnica pomiędzy modelami (konceptualnym, logicznym, fizycznym)
  • Pojęcie anomalii występujących w bazach danych

Projektowanie konceptualne to proces konstrukcji modelu danych używany niezależnie od fizycznych rozważań (decydowania o zawartości tabel, typach danych w tabelach i rodza­jach powiązań).

Czytaj dalej

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?

Tabele baz danych – iloczyn kartezjąński

Relacja – tabela

Aby wyjaśnić pojęcie relacji, warto odświeżyć kilka istotnych informacji z matematyki i teorii zbiorów. Iloczyn kartezjański zawdzięcza swoją nazwę kartezjańskiemu układowi współrzędnych.

Jest to prostoliniowy układ współrzędnych o parach prostopadłych osi.

Nazwa pojęcia pochodzi od łacińskiego nazwiska francuskiego matematyka i filozofa Kartezjusza (René Descartes),

który opisał tę ideę w 1637 r. w traktacie La Geometrie. Iloczynem kartezjańskim prostej A i B będzie zbiór punktów płaszczyzny zawartej między nimi (każdy punkt należący do tej płaszczyzny). Idąc tym tokiem myślenia, jeśli będziemy mieć dwa zbiory A i B, to iloczynem kartezjańskim tych zbiorów będzie taki zbiór C, w którym każdy element A będzie połączony z każdym elementem B. Prześledźmy tą sytuację na przykładzie.

Zbiór A przechowujący cyfry                                              Zbiór przechowujący imiona

Iloczynem kartezjańskim tych dwóch zbiorów będzie następujący zbiór C, w którym każdemu elementowi zbioru A, będzie odpowiadał element zbioru B:

Rodzaje kluczy

Rodzaje kluczy

Zdarza się, że baza danych nie przechowuje pojedynczej tabeli, lecz wiele tabel, pomiędzy którymi występują powiązania. Aby pomiędzy tabelami można było tworzyć związki, powinny one mieć przynajmniej jeden atrybut (kolumnę), który musi spełniać dwa podstawowe warunki. Musi być unikatowy (oznacza to, że jeo wartości nie mogą się powtarzać). Drugim warunkiem jest jego atomowość (musi być minimalny, tzn. powinien zawierać elementarne, niepodzielne wartości). Możemy rozróżnić następujące rodzaje kluczy:

  • klucz prosty – to taki, który jest jednoelementowy (składa się z jednej kolumny),
  • klucz złożony – to taki, który jest kilkuelementowy (składa się z więcej niż jednej kolumny).

Kluczem może być zatem jedna lub kilka kolumn, które wspólnie będą w stanie jednoznacznie zidentyfikować pozostałe dane w tabeli (relacji). Kolumny, które należą do kluczy (używa się ich do jednoznacznej identyfikacji wierszy w tabeli), nazywamy atrybutami podstawowymi. Kolumny nie należące do kluczy (zawierają dane, które w określonej relacji są przedmiotem opisu) nazywamy atrybutami opisowymi.

Czytaj dalej