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.
58Seuraavassa kyselyssä käytetään : - primitiiviä tulosrelaation muodonmäärittelyssä. Kysely antaa tulokseksi kaikki ylimmän tason olioiden tyypit <strong>ja</strong>näiden tyyppien ilmentymiä vastaavat price-attribuutin arvot:tulos(X,Y:price) where X is_top_type,Y is_instance_of XKysely antaa vastaukseksi esimerkkitietokantaan liittyen seuraavan relaation:tulos(tricycle,100)tulos(tricycle,250)tulos(tricycle,400)tulos(bicycle,500)tulos(bicycle,400)Sama tulos oltaisiin saatu myös kyselyllätulos(X,Y) where X is_top_type,Z is_instance_of X,Z:price(Y).Aikaisempi kysely oli kuitenkin yksinkertaisempi: vastaukseen on helppo poimiajokin muuttu<strong>ja</strong>, joka tarkoittaa oliota <strong>ja</strong> viitata sitten sen ominaisuuden arvoon.Tulosrelaation määrittelyssä voidaan viitata sekä tavalliseen, että johdettuunattribuuttiin. Jos sen si<strong>ja</strong>an olioille asetetaan rajoituksia attribuuttien arvojenperusteella, joudutaan käyttämään ominaisuuden arvon ilmaisemista jälkimmäisellätavalla.Aggregointifunktiolla suoritetaan erilaisia tietokannassa oleviin tietoihinkohdistuvia laskutoimituksia. Aggregointioperaatioita ovat lukumäärä count,keskiarvo avg sekä maksimi- max <strong>ja</strong> minimiarvon min(). Tulosrelaation kuvauksessailmaistaan aggregointioperaatioiden argumenttina se kohde, josta aggregointitieto<strong>ja</strong>halutaan laskea. Kyselytulos(count(X)) where X is_top_object.tulostaa vastaukseksitulos(6)Kyselyn tuloksena saatiin esimerkkitietokannassa olevien osakokonaisuussuhteidenylimpien tasojen olioiden kokonaislukumäärä. Vaikka