17347 ullman235 (2)

17347 ullman235 (2)



S. £UKI£IS]OWANŁ UOifcK l UWU    AAł T I At\

karka". Ale powstają tu również interesujące możliwości dotyczące sposobu zadawania zapytań.

Ponieważ atrybut typ dziedziczy się z klasy Produkt do podklasy Drukarka, a więc można atrybut typ w podklasie nazwać rypDrukarki. Będzie on określał typ drukarki (np. laserowa lub atramentowa), podczas gdy atrybut typ w klasie Produkt przyjmuje wartość PC, laptop lub drukarka.

Do kodu ODL, zapisanego na rys. 8.2, należy dołączyć sygnatury metod odpowiednie dla następujących funkcji:

*a) Odjęcie wartości x od ceny produktu. Zakładamy, że* jest parametrem wejściowym funkcji.

*b) Zwrócenie szybkości produktu, jeśli jest to PC lub laptop, albo uruchomienie wyjątku nieKomputer w przeciwnym razie, c) Określenie wartości atrybutu ekran laptopa według zadanego x.

!d) Stwierdzenie, jeśli produkt p określa wartość wejścia, a produkt q uruchamia metodę, czy ą ma większą szybkość i jednocześnie niższą cenę niż p. Jeśli p nie jest właściwym produktem (tzn. nie jest ani PC, ani laptopem), to należy uruchomić wyjątek błądWejścia, a wyjątek brakSzybkcści, jeśli q jest niewłaściwym produktem.

Ćwiczenie 8.1.2. Na rysunku 8.3 przedstawiono opis w ODL schematu bazy danych „Okręty”. Należy do niego dołączyć sygnatury następujących metod:

a)    Obliczyć moc bojową okrętu, tzn. liczbę dział przemnożoną przez sześcian średnicy.

b)    Należy znaleźć okręt bliźniaczy- danego okrętu. Jeśli w danej klasie jest tylko jeden egzemplarz, to uruchomić wyjątek brakBliźniaczego.

c)    Podana jest bitwa b jako parametr, a metodę stosuje się dla okrętu s. Należy odnaleźć wszystkie okręty, który uczestniczyły w bitwie b, jeśli s także w niej uczestniczy ł. Jeśli s nie uczestniczył w bitwie b, to należy uruchomić wyjątek nieUc2estniczy.

d)    Jako parametry- podaje się nazwę i rok wodowania okrętu. Okręt o tych atrybutach należy dołączyć do klasy okrętów, która uruchamia metodę.

8.2. Wprowadzenie do j ęzyka OQL

W bieżącym rozdziale opiszemy ogólnie obiektowy język zapytań (OQL). Ani w tym, ani w następnych dwóch rozdziałach opis nic będzie tak obszerny jak w przypadku opisu $QL. Objaśnimy tylko najważniejsze instrukcje i właściwości tego języka, ale wicie elementów języka OQL nie będzie uwzględnionych. Często te pozostałe możliwości występują albo w języku SQL, albo w typowych obiektowych językach programowania.

W języku OQL, inaczej niż w konw encjonalnych językach programowania, nie ma sposobu jawnego definiowania funkcji. Notacja OQL przypomina raczej notację $QL, dostarczając mechanizmu do opisu pewnych zapytań na wyższym poziomie abstrakcji niż można było to wyrazić w' typowych instrukcjach języków programowania, np. w C. W założeniu OQL ma być rozszerzeniem pewnego podstawowego języka zorientowanego obiektowo, takiego jat C++, Smalltalk lub Java. Do obiektów' można mieć zatem dostęp zarównc poprzez typowe instrukcje języka podstawowego, jak i poprzez zapytani? OQL. Ta możliwość przemieszania instrukcji języka programowania i zapy tań OQL, dzięki której unika się konieczności pośredniego przekazywani? wartości między dwoma językami, stanowi o przewadze opisywanej technik nad osadzaniem SQL w języku podstawowym, które było omawiane w pod rozdziale 7.1.

8.2.1. Obiektowa wersja przykładu filmowego

Aby lepiej zobrazow-ać pojęcia OQL, posłużymy się przykładem znanycl już klas Film, Gwiazda oraz Studio. Na rysunku 8.1 zamieszczono defini cję klasy Film. Natomiast definicje klas Studio oraz Gwiazda zostały- za czerpnięte z rys. 2.6, rozszerzyliśmy je na rys. 8.4 o deklaracje kluczy i zasię gu. Nie wprowadziliśmy jeszcze jednak deklaracji metod.

interface Gwiazda (extervc Gwiazdy key nazwa)

{

attribute string nazwisko; attribute Struct Adr

{string ulica, string miasto} adres; relatienship Set<Film> występujeW

inverse Film::gwiazdy;

};

interface Studio (extent Studia key nazwa)

{

attribute string nazwa; attribute string adres; relat.ionship Set<Filmy> posiada

inverse Film::należyDc; ł;

RYSUNEK 8.4

Fragment zorientowanej obiektowo bazy danych filmów


Wyszukiwarka

Podobne podstrony:
ullman233 (2) A 4AJtJLCCI    W IŁif*. I UWU J l^c, T M ĆAT X l/.N zero. W ODL deklara
28962 6819 / I; %/(/ (/ & //juiy<i ^aiidmitf yar A, ioii fuj ha Aut At Aj mu/// tadud, 
PIC044 Celem uzupełnienia luki w narom rozwijamy na płaszczyznę ćwiartkę wytłoczki cylindrycznej pow
16. Przeczytaj tekst. Uzupetnij luki u tekście, nazyuając obrazki. To jest mój On lubi tu Ja bardzo,
12165 ullman122 (2) 1 1 -. V 4 DZIAŁANIA W MODELU RELACYJNYM Następne przetwarzanie nic powoduje juz
71922 ullman174 (2) • iv uni. L»Ał< i vn oyi- tość FAl.SE, gdy wartością at jest FALSE. Przeciwne
10356681d9150638505143 8922628 n Am^aT    ,H‘    a*^cct.,. /vioX.
ullman174 (2) • iv uni. L»Ał< i vn oyi- tość FAl.SE, gdy wartością at jest FALSE. Przeciwne warto
biofiz (8) lITf £?*<> O fftAHO StÓ.yĆESA 4^ fi WOJLtsfUa at, oDy Im-oUtóti, ;AAl.

więcej podobnych podstron