11.07.2015 Views

selykielen suunnittelu ja toteutus Samu Viita

selykielen suunnittelu ja toteutus Samu Viita

selykielen suunnittelu ja toteutus Samu Viita

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

636.3.2. Ekstensionaaliset kyselytEkstensionaalisilla kyselyillä tarkoitetaan kaikkia sellaisia kyselyjä, jotka antavatainoastaan ekstensionaalista tietoa vastauksenaan. Tämän vuoksi olioitavastauksena antavat kyselyt kuuluvat myös tähän kyselyryhmään. Käyttäjä eiole tavallisesti kiinnostunut olioidentiteeteistä. Olioidentiteetit ovat ainoastaanyksilöinnin välineenä olio-orientoituneessa toteutuksessa. Tämän vuoksi olioitavastauksenaan antavia kyselyjä ei käsitellä, vaikka sellaisten kyselyiden ilmaiseminenkielellä onkin mahdollista.Seuraava kysely antaa tricycle:n <strong>ja</strong> bicycle:n komponentteina olevien polkimiendiam-attribuutin arvot:res(X:diam) where (X is_component_object_of bicycle; Xis_component_object_of tricycle), X is_instance_of pedals.Kyselyssä ilmaistaan, että muuttu<strong>ja</strong>n X tulee olla joko bicycle:n tai tricycle:n alikomponenttiolio<strong>ja</strong> lisäksi olion tulee kuulua pedals-luokkaan. Vaikka bicycle:ssäpedals-komponentti si<strong>ja</strong>itsee drive gear-komponentin komponenttina <strong>ja</strong> tricycle:ssäpuolestaan steering-komponentin komponenttina, vastaus sisältää molemmattapaukset. Tämäntapainen kysely ei olisi ollut mahdollista iteraatioonperustuvan kielen avulla, koska navigointipolku pedals-komponenttiin on erilainentricycle:llä <strong>ja</strong> bicycle:llä. Vastaukseksi kyselylle esimerkkitietokannastasaadaan seuraava yksipaikkainen relaatio:res(5)res(6)res(7)res(8)res(10)Seuraavassa kyselyssä ollaan kiinnostuneita vain tiedosta, mitä materialattribuutineri arvo<strong>ja</strong> on tricycle-luokan ilmentymien komponenteilla olemassa.Kysely edustaa tilannetta, jossa ei ole merkitystä tiedolla, minkä tyyppisessäkomponentissa kukin arvo si<strong>ja</strong>itsee. Kysely voidaan muodostaa seuraavallailmauksella:res(X:material) where X is_component_object_of tricycle.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!