selykielen suunnittelu ja toteutus Samu Viita
selykielen suunnittelu ja toteutus Samu Viita
selykielen suunnittelu ja toteutus Samu Viita
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
64Käyttäjän ei tarvitse välittää siitä, onko komponentilla material-nimistä attribuuttia.res(steel)res(aluminium)Seuraavassa kyselyssä ilmaistaan tricycle:n ilmentymien määrän <strong>ja</strong> niiden painonkeskiarvon antava kysely:res(avg(X:weigth),count(X)) where X is_instance_of tricycle.Kyselyn lopputuloksessa halutaan saada johdetun attribuutin keskiarvo, elikyselyn aikana suoritetaan ensin komponenttien painojen yhteenlasku kolmipyöränweigth-metodin avulla <strong>ja</strong> tämän jälkeen lasketaan näistä tuloksista vieläkeskiarvo. Samalla voidaan kysyä, kuinka monta tricycle:ä tietokannassa on.Vastaus ilmaisee, että kannan kolmipyörien keskiarvo on 7.1 <strong>ja</strong> että keskiarvolaskettiin kolmesta tricycle-oliosta. Toisin sanoen kysely antaa seuraavan vastauksen:res(7.1,3)Seuraava esimerkki esittelee yhdistetyn kyselyn, joka antaa ekstensionaalisenvastauksen. Siinä halutaan saada selville sellaisen bicycle:n frame- komponentinmateriaali, jonka frame:n sar<strong>ja</strong>numero on 5435534. Tässä kyselyssä käyttäjän eitarvitse tietää, minkä niminen attribuutti frame:n sar<strong>ja</strong>numeroon liitetään. Kyselyssäres(Y:material) where Y is_component_object_of tricycle, P is_property_offrame,Y:P(5435534).käyttäjä ilmaisee, että Y tarkoittaa oliota, joka on tricycle:n alikomponenttina.Lisäksi hän ilmaisee, että P tarkoittaa frame:n ominaisuutta <strong>ja</strong> rajoittaa Y olionkoskemaan vain oliota, jonka ominaisuuden arvona on 5435534. Kieli mahdollistaasiis erittäin käyttäjäystävällisen tavan viitata ominaisuuksiin. Riittää, ettäkäyttäjä tietää ominaisuuden arvon. Hän voi tällöin kyselyssä viitata oliotyypinominaisuuteen muuttu<strong>ja</strong>lla. Vastaukseksi yllä olevaan kyselyyn saadaan