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.

62res(wheel,weigth)Seuraavaksi esitän yhdistetyn kyselyn, jossa intensionaalisen vastauksen antavankyselyn sisällä ilmaistaan ekstensionaalinen alikysely. Kyselyssä halutaansaada vastaukseksi intensionaalista tietoa käyttämällä ekstensionaalista kriteeriä.Kyselyssä etsitään kaikki ne tricycle:n <strong>ja</strong> bicycle:n yhteiset komponenttityypit,joiden ekstensionaaliselta tasolta löytyy ainakin yksi olio, jonka materialattribuutinarvo on steel.res(X) where common_component X, Y is_instance_of X, Y:material(steel).Kyselyssä siis ilmaistaan, että X on yhteinen komponentti kaikille tietokannassaoleville osa-kokonaisuussuhteille. Esimerkkitietokannassa ei ole muita osakokonaisuussuhteitakuin tricycle <strong>ja</strong> bicycle. Tämän takia apply_to –primitiivinkäyttö ei ole välttämätöntä, koska oletuksena kyselyyn otetaan kaikki osakokonaisuussuhteet.Muuttu<strong>ja</strong> Y ilmaisee kyselyssä yhteisen komponentin mitätahansa ilmentymää. Lopuksi kyselyssä rajoitetaan Y –muuttu<strong>ja</strong>n sisältämiäolioita siten, että olion material-attribuutin arvona täytyy olla steel. Kyselyn tulokseenhalutaan saada vain X-muuttu<strong>ja</strong>n arvot. Tuloksia saadaan esimerkkitietokannanyhteydessä vain yksi:res(frame)Seuraava intensionaalinen kysely on myös yhdistetty kysely. Siinä etsitäänkaikki ne tricycle:n komponenttityypit, joilla on ainakin yksi ilmentymä, jonkadiam-attribuutin arvona on joko 4 tai 5.res(Y) where X is_component_object_of tricycle, (X:diam(4);X:diam(5)), Xis_instance_of Y.Kyselyssä ilmaistaan, että X-muuttu<strong>ja</strong>n tulee olla kolmipyörätyypin komponenttiolio,jonka diam-attribuutin arvon täytyy olla joko 4 tai 5. Lisäksi ilmaistaan,että muuttu<strong>ja</strong> Y on X-komponenttia vastaava oliotyyppi. Vastaukseenpoimitaan ainoastaan Y-muuttu<strong>ja</strong>n arvotuksia. Vastaukseksi esimerkkitietokannassasaadaan kaksi oliotyyppiä:res(pedals)res(wheel)

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

Saved successfully!

Ooh no, something went wrong!