52682 ullman256 (2)

52682 ullman256 (2)



518 S ZORIENTOWANE OBIEKTOWO JI-ZYKI ZAPYTAŃ

8.6.4. Ćwiczenia do podrozdziału 8.6

*Ćwiczcnie 8.6.1. Należy zdefiniować abstrakcyjny typ danych „PC”, którego obiekty reprezentują komputery osobiste, przez zapis szybkości ich procesorów, wielkości RAM i dysku twardego, szybkości CD-ROM-u oraz ceny.

Ćwiczenie 8.6.2. Dla typu określonego w ćwiczeniu 8.6.1 należy zapisać poniższe funkcje w konwencji funkcji wewnętrznych rozszerzonego SQL3:

*a) Funkcja konstruująca o nazwie nowyPC, która pobiera wartości pięciu atrybutów typu ADT PC oraz tworzy nowy obiekt tego typu. Przypominamy, że w tej funkcji trzeba korzystać z konstruktora wbudowanego ?C (}.

*b) Funkcja wartość pobiera obiekt PC jako argument i zw-raca ,jakość” PC, czyli liczbę rzeczywistą, która określa, jak „dobry” jest ten komputer. Formuła wyliczenia jakości jest następująca: szybkość procesora plus pięcio-kroma wielkość RAM (w megabajtach) plus pięćdziesięciokrotna pojemność twardego dysku (w gigabajtach) plus 10 razy szybkość CD-ROM-u.

c)    Funkcja lepszy pobiera obiekt typu ?C jako argument i zwraca inny PC z dwa razy większymi: szybkością procesora, RAM, twardym dyskiem, szybkością CD-ROM-u, ale w tej samej cenie. Można skorzystać z konstruktora nowyPC, utworzonego w punkcie a).

d)    Funkcja równy PC, która testuje, czy komputery są takie same. Uznaje ona, że dwa PC są równe, jeśli mają taką samą szybkość procesora i wielkość dysku twardego, inne parametry nie są brane pod uwagę.

e)    Funkcja mn?C, która określa relację mniejszości abstrakcyjnego typu PC. Uznaje ona, że p^< jeśli Jakość” komputera p\ jest niższa od Jakości” komputera p2, gdzie Jakość” jest zdefiniowana w punkcie b).

Ćwiczenie 8.6.3. Należy' zdefiniować abstrakcyjny typ Okręty, w którym będą opisywane okręty, przez zapis ich: nazw, dat wodowania, liczby dział, średnicy dział, wyporności oraz zakodowanych w formacie MPEG wideoklipów okrętów w akcji oraz postskriptowego dokumentu opisującego historię okrętu.

Ćwiczenie 8.6.4. Należy utworzyć deklaracje i definicje następujących funkcji odnoszących się do typu AD T Okręty z ćwiczenia 8.6.3:

a)    Funkcja siłaBojowa, której argumentem jest obiekt typu Okręt., a która zwraca „siłę bojową”, czyli iloczyn liczby dział i sześcianu średnicy.

b)    Funkcja odtwórzWideo, której argumentem jest obiekt typu Okręt, a która powoduje wyświetlenie na ekranie wideoklipu tego okrętu, korzystając w tym celu z funkcji zewnętrznej (trzeba ją zadeklarować), nazywanej odtwórzMpeg, która wyświetla film zapisany wr formacie MPEG.

c)    Funkcja konstruująca nowyOkręt, której argumentem jest nazwa (innych składowych się nie pobiera), a która tworzy nowy obiekt typu Okręt o podanej nazwie.

d)    Funkcja równyOkręt, która testuje, czy okręty są takie same. Uznaje ona, żc dwa okręty są równe, jeśli mają taką samą nazwę i rok wodowania, inne parametry nie są brane pod uwagę.

e) funkcja mnOkręt, która określa relację mniejszości abstrakcyjnego typi Okręt. Uznaje ona, 2e si< s2, jeśli nazwa okrętu s\ jest alfabetycznie wcze śniejsza niż nazwa okrętu s2, a jeśli nazwy są takie same, to „mniejszy” jes statek o wcześniejszej dacie wodowania.

8.7. Porównanie koncepcji systemów ODL/OQL i SQL3

Po zapoznaniu się z dwoma głównymi standardami proponowanymi dh zorientowanych obiektowo systemów baz danych: 0DL70QL oraz SQL: określimy, na czym polegają główne różnice między nimi. Prawdą jest, żi podobieństwa przeważają nad różnicami i mimo że te standardy pochodzi z dwóch bardzo różnych modeli: języków programowania zoricntowanycł obiektowo oraz języków relacyjnych baz danych, to w każdym ze standardów w sposób efektywny adaptowano pojęcia z obcego mu modelu.

W bieżącym podrozdziale wymienimy podstawowe różnice oraz sposób w jaki w tych dwóch koncepcjach ustalono rożne rozwiązania kompromiso we. Poza tym wskażemy, czym różnią się typy krotkowe i abstrakcyjne typ\ danych z SQL3 od interfejsów' (czyli klas) w języku ODL. A tak naprawdę porównamy trzy koncepcje obiektowości: ODL/OQL, typy krotkowe $QL3 oraz typy wartości w SQL3.

1.    Środowisko programistyczne. W systemie OQL zakłada się, żc jege instrukcje są osadzane w języku programowania, który ma wspólne z nim środowisko programowania i model danych. Zakłada się również, że jest to język programowania zorientowany obiektowo, np C++, Smalltalk lub Java. Natomiast w SQL3 przyjmuje się, że jegc obiekty nie należą do środowiska zewnętrznego języka podstawowego. Tak samo jak w pozostałych implementacjach SQL, tak i tu istnieje wąski interfejs, który umożliwia przekazywanie wartości międz\ strukturami danych SQL a zmiennymi środowiska. W uzupełnieniu zwykłego interfejsu między SQL a językiem podstawowym, któr\ opisywaliśmy w podrozdziale 7.1, powstała w systemie SQL3 koncepcja funkcji zewnętrznych abstrakcyjnych typów danych.

2.    Rola relacji. W modelu danych SQL3 pojęcie relacji odgrywa główną rolę. Typy wiersza w rzeczywistości są opisem relacji, a typy ADT służą temu, by można było w sposób bardziej elastyczny definiować typy atrybutów relacji. Natomiast w języku OQL główną rolę odgrywają zbiory i wielozbiory obiektów lub struktur zc względu na funkcje pełnione w instrukcjach typu select-from-where. Kolekcje struktur w systemie ODL/OQL są bardzo zbliżone do pojęcia relacji $QL3.


Wyszukiwarka

Podobne podstrony:
76123 ullman242 (2) 8. ZORIENTOWANE OBIEKTOWO JŁ-ZYKI ZAPYTAŃ Zajmijmy się teraz klauzulą SELECT. Dl
ullman242 (2) 8. ZORIENTOWANE OBIEKTOWO JŁ-ZYKI ZAPYTAŃ Zajmijmy się teraz klauzulą SELECT. Dla każd
ullman240 (2) HOO 8 ZORIENTOWANE OBIEKTOWO Jl-ZYKl ZAPYTAŃ !e) Należy znaleźć nazwy bitew, w których
ullman258 (2) S ZORIENTOWANP. OBIEKTOWO Jlj/.YKI ZAPYTAŃ ferencja do typu wiersza jego własnej relac
ullman234 (2) 474 8. ZORIENTOWANE OBIEKTOWO JijZYKI ZAPYTAŃ8.1.4. Ćwiczenia do podrozdziału 8.1 Ćwic
ullman240 (2) HOO 8 ZORIENTOWANE OBIEKTOWO Jl-ZYKl ZAPYTAŃ !e) Należy znaleźć nazwy bitew, w których
ullman258 (2) S ZORIENTOWANP. OBIEKTOWO Jlj/.YKI ZAPYTAŃ ferencja do typu wiersza jego własnej relac
42460 ullman241 (2) 488 8. ZORIENTOWANE OBIEKTOWO JĘZYKI ZAPYTAŃ Korzystamy tutaj z podzapytania po
43611 ullman239 (2) 484 S. ZORIENTOWANE OBIEKTOWO JE2YK! ZAPYTAŃ SELECT m FROM Filmy :r. WHERE m.nal
44501 ullman253 (2) 512 8 ZORIENTOWANE OBIEKTOWO JĘZYK! ZAPYTAŃ Pozostałe funkcje można definiować a
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

więcej podobnych podstron