ullman056 (2)

ullman056 (2)



118 RELACYJNY MODEL DANYCH

właściwości. Każdy atrybut ma określony typ atomowy: tytuł jest napisem, rok i długość są typu całkowitego, a typFilmu może przyjmować jedną z. dwóch wartości.

Tworzymy relację o takiej samej nazwie jak nazwa klasy, w tym przypadku “i Im. Relacja ma cztery atrybuty, po jednym odpowiedniku dla każdego atrybutu klasy. Nazwy atrybutów relacji mogą być takie same jak nazwy odpowiednich atrybutów klasy. Zatem otrzymujemy następujący schemat dla tej relacji:

Film (tytuł, rok, długość, typFilmu) taki sam jak w p. 3.1.1.

W obiektach klasy są określone wartości dla każdego atrybutu klasy. Każdemu obiektowi może odpowiadać krotka, której składowe są równe wartościom poszczególnych atrybutów obiektu. Wynik takiego przekształcenia już widzieliśmy. Na rysunku 3.1 przedstawiono bowiem przykład przekształcenia obiektów klasy Film do postaci krotek.

3.2.2. Atrybuty nieatomowe w klasach

Niestety, nawet jeśli wszystkie właściwości klasy są atrybutami, to przy przekształcaniu klasy do postaci relacji mogą pojawić się problemy. Ich powodem może być złożony typ atrybutów w języku ODL, które bywają opisywane strukturami, zbiorami, wielozbiorami lub listami. Natomiast podstawowe założenie modelu relacyjnego stanowi o tym, że typy atrybutów mogą być wyłącznic atomowe, takie jak liczby lub napisy. Stąd też istnieje potrzeba określenia sposobu przedstawiania nieatomowych typów atry butów w postaci relacji.

Reprezentowanie typów wyliczeniowych i dat W modelu ODL istnieją pewne typy atomowe, w praktyce daty i typy wyliczeniowe, które nic mają odpowiedników w typach atomowych standardowego modelu relacyjnego. Na przykład typ wyliczeniowy, to jest to tak naprawdę zbiór odpowiedników dla pierwszych kilku liczb całkowitych. Zatem na przykład pole typu wyliczeniowego dla dni tygodnia można zastąpić atrybutem typu integer, a korzystać w krotkach tylko z wartości całkowitych od 1 do 6. W alternatywny sposób można korzystać z atrybutu typu string, a dni tygodnia przedstawiać wartościami „Pon”, „wt” itd. W podobny sposób można w modelu relacyjnym stosować typ string do reprezentow ania atrybutów, które w modelu ODI. mają określony typ jako data. W rozdziale 5 przy omawianiu relacyjnego języka zapytań SQL okaże się. że tak samo jak w języku ODL można tam używać atrybutów, które są typu wyliczeniowego i typu daty.


Struktury takie jak rekordy, których pola są z założenia typu atomowe-go, obsługuje się najłatwiej. Po prostu rozszerza się wówczas definicję struktury, dodając do relacji po jednym atrybucie dla każdego pola struktury. Jedyny kłopot może wynikać wówczas, gdy dwie struktur}' w klasie mają jednakowe nazwy pól, i w takim przypadku trzeba wymyślić dla jednego z powstających w tej parze atrybutów nową nazwę po to, by w relacji można je było odróżnić.

interface Gwiazda {

attribute string nazwisko; attribute Struct Adr

{string ulica, string miasto) adres;

};

RYSUNEK 3.5

Klasa z atrybutem strukturalnym PRZYKŁAD 3.3

Rozważmy wstępną definicję klasy Gwiazda z przykładu 2.3, podajemy ją ponownie na rys. 3.5. Atrybut n.azwi sko jest typu atomowego, ale już atrybut adres jest strukturą o dwóch polach: ulica oraz miasto. A więc w relacji odpowiadającej tej klasie trzeba utworzyć 3 atrybuty. Pierwszy z nich to będzie nazw.i sko i odpowiada on atrybutowi o tej samej nazw ie z języku ODL. Drugi i trzeci atrybut nazwiemy odpowiednio ulica oraz miasto, będą one stanowić odpowiedniki dwóch pól struktury adres i łącznic stanowić opis adresu. Schemat relacji przedstaw ia się zatem następująco:

Gwiazda (nazwisko, ulica, miasto)

Przykład instancji tej relacji z arbitralnie dobranymi krotkami został przedstawiony na rys. 3.6.

nazwisko

ulica

miasto

Carrie Fischer

123 Mapie St.

Hollywood

Mark Hamill

456 Oak Rd.

Brentwood

Harrisom Ford

783 Palm Dr.

3everly Hiils

RYSUNEK 3.6

Relacja reprezentująca gwiazdy

Ale to nie struktura typu rekord jest najbardziej skomplikowana wśród typów atrybutów, którymi można określać atrybuty w definicjach klas w modelu ODL. Można budować wartości, korzystając z konstruktorów typów takich jak: ser, baq, array i list. Każdy z nich stanowi osobny problem


Wyszukiwarka

Podobne podstrony:
28640 ullman078 (2) 162 3. RELACYJNY MODEL DANYCH PRZYKŁAD 3.28 Rozważmy relację z atrybutami: A, B,
ullman060 (2) 126 3 RELACYJNY MODEL DANYCH szczególnych wartości. I tak jak w przypadku atrybutów o
ullman084 (2) 174 3. RELACYJNY MODEL DANYCH re po lewej stronie mają jeden atrybut. Nie ma tu zbyt d
ullman085 (2) 176 3. RELACYJNY MODEL DANYCH 2. Schemat zawierający wszystkie atrybuty relacji film p
31783 ullman060 (2) 126 3 RELACYJNY MODEL DANYCH szczególnych wartości. I tak jak w przypadku atrybu
16228 ullman085 (2) 176 3. RELACYJNY MODEL DANYCH 2. Schemat zawierający wszystkie atrybuty relacji
ullman062 (2) 130 3. RELACYJNY MODEL DANYCH Wskaźniki: właściwości czy błędy? Związki w modelu ODL s
ullman065 (2) 136 1 RELACYJNY MODEL DANYCH Nazwy atrybutów wprowadzonych do relacji zostały uważnie
ullman084 (2) 174 3. RELACYJNY MODEL DANYCH re po lewej stronie mają jeden atrybut. Nie ma tu zbyt d
ullman092 (2) iyu 3. RELACYJNY MODEL DANYCH wościami gwiazdy, polega na tym, że każdy adres w połącz

więcej podobnych podstron