ullman247 (2)

ullman247 (2)



:>uu 8. ZORIENTOWANE OBIEKTOWO JĘZYKI ZAPYTAŃ

8.5.1. Typ wiersza

W języku SQL3 można zdefiniować typ krotek, który w dużym uproszczeniu odpowiada pojęciu klasy obiektów. Deklaracja typu wierszy składa się z:

1.    Słowa kluczowego CRF.ATF. ROW TYPE.

2.    Nazwy typu.

3.    Listy par atrybutów i ich typów, którą otacza się nawiasami.

A zatem można przedstawić postać tej deklaracji w następujący sposób: CRF.A7E ROW TYPE 7'(<deklaracja składowych>)

PRZYKŁAD 8.22

Utworzymy typ wiersza, który posłuży do reprezentowania gwiazd filmowych, o właściwościach podobnych do klasy Gwiazda opisanej w przykładzie użycia OQL na rys. 8.4. Jednakże w tym przypadku nie ma możliwości bezpośredniego reprezentowania zbioru filmów jako pola w krotce Gwiazda. Dlatego na początku krotka Gwiazda będzie zawierać tylko składowe opisujące na zwis ko i adres.

Zauważmy, że typ określający adres, przedstawiony na rys. 8.4, sam jest typem krotkowym, o składowych ulica oraz miasto. Czyli musimy określić dwa dodatkowe typy - jeden do reprezentowania adresu, a drugi do reprezentowania gwiazdy. W języku SQL3 dopuszcza się, aby w typie wiersza określać typ składowej, jako inny typ wiersza, albo relację. Na rysunku 8.11 przedstawiono omawiane definicje.

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

);

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

);

RYSUNEK 8.11

Dwie definicje typu wiersza

Krotka typu TypAdres ma dwie składowe, atrybutami są tutaj ulica i adres. Typami tych atrybutów są ciągi znaków o długościach równych odpowiednio 50 i 20. Krotka typu TypGwiazda ma także dwie składowe. Pierwsza określa wartość atrybutu nazwisko, którego typ zdefiniowaono jako 30-znakowy tekst, a typem drugiego atrybutu jest TypAdres, tzn. krotka o składowych ul i ca oraz miasto.

8.5.2. Deklarowanie relacji z typem wiersza

Po zadeklarowaniu typu wiersza można określić jedną lub więcej relacji, których krotki mają taki typ. Postać deklaracji relacji jest podobna do postaci przedstawionej w p. 5.7.2, ale zamiast określanej w deklaracji tabel SQL listy atrybutów i ich typów, tutaj umieszcza się następującą frazę:

OF TYPE <nazwa typu wiersza>

PRZYKŁAD 8.23

Można zadeklarować relację Gwiazda Fi linowa w taki sposób, żeby jej krotkom przypisać typ TypGwiazda. Wygląda to następująco:

CREATE TA3LE Gwiazda Fi linowa CF TYPE TypGwiazda;

W efekcie tabela Gwiazda Filmowa ma dwa atrybuty: nazwisko i adres. Zauważmy, żc typ tego drugiego atrybutu jest typem wiersza, co w wersjach języka SQL wcześniej szych niż SQL3 nie było dopuszczalne.

Całkiem zrozumiałe wydaje się to, że dla każdego typu wiersza istnieje relacja, którą rozumie się tak samo jak jest rozumiany zasięg (w rozumieniu p. 8.1.3) klasy odpowiadającej temu typowi krotek, ale można także określić wiele relacji o jednym typie krotkowym albo nie zdefiniować żadnej relacji tego typu.

8.5.3. Dostęp do składowych typu wiersza

Ponieważ składowe w języku SQL3 mogą być strukturami, trzeba dysponować mechanizmami dostępu do składowych tych struktur. W SQL3 w tym celu korzysta się z notacji podwójnej kropki, która jest bliskim odpowiednikiem notacji kropkowej z języków OQL i C.

SELECT GwiazdaFilmowa.nazwisko,

gwiazdaFilmowa.adres.ulica FROM Gwia zda Filmowa

WHERE GwiazdaFilmowa.adres..miasto = 'Beverly Hills';

RYSUNEK 8.12 Dostęp do składowych

PRZYKŁAD 8.24

Zapytanie z rys. 8.12 służy do odszukania nazwiska oraz adresu tych gwiazd które mieszkają w Bcverly Hills. Użyjemy pełnego opisu kropkowego atty butów GwiazdaFilmowa.nazwisko i GwiazdaFilmowa.adres po tc


Wyszukiwarka

Podobne podstrony:
70029 ullman243 (2) 492 8. ZORIENTOWANE OBIEKTOWO JĘZYKI ZAPYTAŃ lect-from-whcre; przedstawiono ją n
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
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
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
ullman249 (2) 504 fi ZORIENTOWANE OBIEKTOWO JĘZYKI ZAPYTAŃ jako referencja. Rozpoczynamy od zdefinio

więcej podobnych podstron