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

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

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

Saved successfully!

Ooh no, something went wrong!