1 * z 3. relacyjny modiu. imnych
Mimo że atrybuty schematu relacji nie stanowią listy, bowiem są zbiorem, to aby móc opowiadać o relacji, często trzeba określić „standardowy” porządek atrybutów. Stąd też, jeśli gdziekolwiek wprowadzimy schemat relacji w powyższej postaci, z listą atrybutów, to porządek na liście będziemy traktować wiążąco i przestrzegać go wszędzie tam, gdzie trzeba będzie rysować relacje lub jej wiersze.
W modelu relacyjnym projekt składa się z jednego lub kilku schematów relacji. Zbiór schematów relacji projektu jest określany schematem relacyjnym bazy danych lub po prostu schematem bazy danych.
Wiersze relacji, poza wierszem nagłówka, zawierającym atrybuty relacji, są nazy wane krotkami. W krotce każdy atrybut ma swój odpowiednik w postaci składowej krotki. Na przykład pierwsza z trzech krotek z rys. 3.1 ma cztery składowe: Gwiezdne Wojny, 19”?, 124 oraz kolor, które są kolejnymi wartościami atrybutów: tytuł, rok, długość oraz typFilmu. Jeśli przedstawiamy wyodrębnioną krotkę, a nic wskazujemy wiersza relacji, to jej składowe oddzielamy przecinkami, a samą krotkę ujmujemy w nawiasy. Na przykład:
(Gwiezdne Wojny, 1977, 124, kolor)
jest pierwszą krotką z rys. 3.1. Zauważmy, że jeśli krotka występuje osobno, nie w tabeli, to nie ma opisanych atrybutów, zatem trzeba mieć jakąś dodatkową wskazówkę, aby określić, o którą relację chodzi. Dlatego będziemy stosować len sam porządek wartości, w którym definiuje się atrybuty w schemacie relacji.
Często traktuje sic krotki tak jak obiekty, a relacje, tak jakby były klasami tych obiektów. Na pewno tak się dzieje z naszą przykładową relacją filmów, każda krotka reprezentuje obiekt typu film. Składowe krotek i właściwości obiektów z klasy opisanej na rys. 3.2 są identyczne. Jednak trzeba sobie zdawać sprawę, ż.c obiekt) mają tożsamość, a krotki nie. Oznacza to, że w reprezentacji obiektowej filmów mogą wystąpić dwa obiekty o takich samych wartościach wszystkich atrybutów, aczkolwiek, jak już wspomnieliśmy w przykładzie 2.23, taki przypadek wśród filmów nie powinien się zdarzyć.
Relacje natomiast są zbiorami krotek, a zatem jedna krotka nie może wystąpić w danej relacji więcej niż jeden raz. Jeśli więc relacja służy do przedstawienia obiektów pewnej klasy, to trzeba się upewnić, że ma dostatecznie szeroko określony zbiór atrybutów, po to by żadne dwa obiekty nic miały tych samych wartości atrybutów relacji. W przykładzie 2.23 stw ierdziliśmy, że nie może się zdarzyć, aby dwa różne filmy miały identyczny tytuł i rok produkcji. Jednak w najgorszym pr/ypadku może okazać się potrzebne utworzenie sztucznego atrybutu, który stanowiłby o identyfikacji obiektu. \ra przykład każdemu filmowi można by nadawać jednoznaczny numer „IdFilmu” oraz dodać la Fil mu do zbioru atrybutów naszej przykładowej relacji.
W modelu relacyjnym każda składowa każdej relacji musi mieć określony typ atomowy, tzn. jej typ musi należeć do typów elementarnych, np. musi być to typ całkowity lub znakowy'. Wartość atrybutu nie może być ani rekordem, ani listą, ani tablicą, ani zbiorem, ani żadną inną strukturą, którą można podzielić na mniejsze części. Właśnie to wymaganie sprawia, źc atrybuty' z notacji ODL nie mogą być automatycznie przekładane na pojedyncze atrybuty relacji. Jeśli na przykład atrybut nazwisko w ODL zapisuje się jako strukturę:
Struć” nazwisko {string pierwsze, string drugie}
to w odpowiadającej relacji muszą zostać uwzględnione osobno dwa atrybuty: pierwsze i drugie. Obszerniejsze omówienie lego zagadnienia znajduje się w p. 3.2.2.
Zakłada się, że z każdym atrybutem relacji jest powiązana dziedzina, czyli pewien określony typ elementarny. Każda składowa każdej krotki w relacji ma wartość, która należy do dziedziny odpowiedniej kolumny. Na przykład w krotkach relacji Film z rys. 3.1 pierwsza składowa musi mieć wartość typu string, druga i trzecia - typu integer, a czwarta musi inicć określonąjedną z dwóch wartości: Kolcr lub czarno-biały.
Jak już wiemy zarówno schematy, jak i krotki relacji są zbiorami, a nie listami. A zatem porządek, w jakim je przedstawimy, nie ma znaczenia. Na przykład trzy krotki z rys. 3.1 możemy przedstawić w dowolnym z sześciu możliwych porządków. Jednakże będzie to ciągle ta sama relacja przedstawiona na lys. 3.1.
Ponadto możemy zmieniać kolejność atrybutów relacji w dowolny sposób, a sama relacja nic ulegnie przez to zmianie. Jednak, jeśli zmienimy kolejność atrybutów w schemacie relacji, to trzeba zawsze brać pod uwagę, że są one także nagłówkami kolumn. A więc, jeśli zmieniamy kolejność atrybutów, to musimy także zmienić odpowiednio kolejność kolumn. Jeśli zmienia się położenie kolumny w tabeli, to zarazem zmienia się kolejność składowych w krotkach relacji. W wyniku zmiany kolejności atrybutów musi zatem rów-nież zajść właściwa permutacja składowych krotek.