ullman248 (2)

ullman248 (2)



502 S. /.ORIENTOWANE OBIEKTOWO JĘZYKI ZAPYTAŃ

bv zilustrować różnicę między pojedynczą a podwójną kropką. Ale ponieważ nazwy adres i nazwisko w tym miejscu są jednoznaczne, więc tak naprawdę Gwiazda Filmowa i kropka nie $ą potrzebne.

8.5.4. Referencje

Identyczność obiektów z języków obiektowych w języku SQL3 jest zapewniona dzięki pojęciu referencji (odniesienia). Typem składowej w typie wiersza może być referencja do innego typu wiersza. Jeśli 7“jest typem wiersza, to REF(7) oznacza typ, który jest referencją do krotki typu T. Gdy traktujemy krotkę jako obiekt, wówczas referencją do tego obiektu jest jego ID.

PRZYKŁAD 8.25

Nadal nie ma sposobu na zapisanie w tabeli Gwiazda Filmowa zbioru wszystkich filmów, w których dana gwiazda brała udział, ale spróbujmy tam umieścić jej najlepszy film. Najpierw jednak trzeba zdefiniować relację Film, a jednocześnie można zdefiniować typ wiersza tej relacji. Najprostszy typ dla filmów, bez uwzględniania teraz związków z gwiazdami, studiami i producentami, definiuje się w następujący sposób:

CREATE ROW TYPE TypFilm( tytuł CHAR(30),

.rok INTEGER, czyKolor BIT(l)

>;

Relację krotek tego typu definiuje sic następująco:

CREATE TABLE Film OF TYPE TypFilm;

Potem trzeba zmodyfikować typ krotek Gwiazda Filmowa tak, aby obejmował referencję do najlepszego filmu danej gwiazdy*. Nowa definicja typu TypGwiazća wygląda następująco:

CREATE ROW TYPS TypGwiazda{ nazwisko CHAR(30), adres TypA.dres, najlepszyFiim REF(TypFilm)

' W języku SQL3 nic występuje operator ALTER TABLE ani żadna podobna instrukcja. która umożliwiłaby zmianę istniejącej definicji typu. Dlatego w praktyce gdybyśmy chcieli zmieniać definicję typu wiersza, trzeba by usuwać definicje zmienianego typu oraz tabele z nim związane, a potem powtórnie zdefiniować ten typ oraz zrekonstruować tabele.

IłRZYKŁAD 8.26

Teraz spróbujmy określić standardowy związek typu wiele do wiele między gwiazdami a filmami: jedna gwiazda występuje w wielu filmach, a w jednym filmie może brać udział wiele gwiazd. W języku ODL można określić jako składową filmu cały zbiór gwiazd i odwrotnie, jednak w języku SQL3 nadal obowiązuje mechanizm związków, który przewija się przez cały nasz podręcznik*. A więc związki wiele do wiele można reprezentować jako oddzielne relacje, złożone z par wielkości tworzących ten związek.

CREATE ROW TYPE TypFilm{ tytuł    CHAR(30)

rok    INTEGER,

czyKolor RTT(l)

);

CREATE ROW TYPE TypAcires ( ulica CHAR (50), miasto CHAR(20)

);

CREATE ROW TYPE TypGwiazda ( nazwisko CHAR(30), adres TypAdres

) ;

CREATE ROW TYPE TypGwiazdyW( awiazda REF(TypGwiazda), film REF(TypFilm)

) ;

CREATE TABLE Film OF TYPE TypFilm;

CREATE TABLE GwiazdaFilinowa OF TYPE TypGwiazda

CREATE TABLE Gwi&zdyW OF TYPE TypGwiazdyW;

RYSUNEK 8.13

Gwiazdy, filmy i związki między nimi

Na rysunku 8.13 przedstawiono jeden ze sposobów określenia związku gwiazdy-w między filmami a gwiazdami. W standardach wcześniejszych niż SQL3 związki wiele do wicie reprezentuje się przez pary kluczy klas tworzących związek, natomiast w języku $QL3 można bezpośrednio odwoływać się do obiektów (a dokładnie krotek) przez atrybuty, których typ jest określony

' W niektórych projektach SQL3 dopuszcza się kolekcje (tzn. zbiory lub relacje) występujące w charakterze typu atrybutu, jednakże jest bardziej prawdopodobne, że stosowanie typów kolekcji zostanie odłożone do następnego standardu SQL4.


Wyszukiwarka

Podobne podstrony:
42460 ullman241 (2) 488 8. ZORIENTOWANE OBIEKTOWO JĘZYKI ZAPYTAŃ Korzystamy tutaj z podzapytania po
24504 ullman238 (2) 482 S ZORIENTOWANE OBIEKTOWO JĘZYKI ZAPYTAŃ T cych klauzulę WHERE. Te nazwiska s
70029 ullman243 (2) 492 8. ZORIENTOWANE OBIEKTOWO JĘZYKI ZAPYTAŃ lect-from-whcre; przedstawiono ją n
73187 ullman254 (2) 514 s zorientowani: obiektowo języki zapytań traktowano by jako równe, jeśli wyg
82105 ullman255 (2) 516 S. ZORIENTOWANE OBIEKTOWO JEŻYKI ZAPYTAŃ 1)    B*UNCTION Adre
ullman247 (2) :>uu 8. ZORIENTOWANE OBIEKTOWO JĘZYKI ZAPYTAŃ8.5.1. Typ wiersza W języku SQL3 można
ullman250 (2) 506 8 ZORIENTOWANE OBIEKTOWO JEŻYKI ZAPYTAŃ która relacja jest relacją R? W rozpatry w
48057 ullman236 (2) 478 8 ZORIENTOWANE OBIEKTOWO JĘZYKI ZAPYTAŃ8.2.2. System typów Struktura typów w

więcej podobnych podstron