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.

60Start-komento käynnistää kyselytilan, jonka jälkeen kyselyitä voisuorittaa. Quit-komento siirtyy puolestaan pois kyselytilasta. Add-komennollavoidaan luoda uusia olioita tiedostoon. Tämä helpottaa olioiden luomista, silläkompleksisen rakenteen omaavia olioita luotaessa täytyy asettaa monta arvoa.Olioiden luonnissa tarvittavat arvot voidaan kirjoittaa vain kerran tiedostoon.Kun add-komento suoritetaan, ohjelma pyytää käyttäjää kirjoittamaan tiedostonnimen, jossa olion luontikomennot si<strong>ja</strong>itsevat.6.3. EsimerkkikyselytOlen <strong>ja</strong>otellut esimerkkikyselyt samalla tavalla kuin kappaleessa neljä. Annantoisin sanoen esimerkkikyselyjä intensionaalisista-, ekstensionaalisista- sekäintensionaalis-ekstensionaalisista kyselyistä. Jokaisen kyselytyypin kohdallaesitän myös kyselytyyppiä vastaavia yhdistettyjä kyselyjä.6.3.1. Intensionaaliset esimerkkikyselytEnsimmäisellä tämän kategorian esimerkkikyselyllä haetaan tricycle:n peruskomponenttityypitseuraavasti:result(X) where apply_to[tricycle], X is_basic_type.Kyselyn alussa määritellään, että ollaan kiinnostuneita ainoastaan tricycle:n osakokonaisuussuhteesta.Vastaus saadaan kyselyn muuttu<strong>ja</strong>n X arvotuksista.Vastaukseksi saadaan tuloksetresult(frame)result(saddle)result(front_axle)result(handlebar)result(pedals)result(rear_axle)result(wheel).Jos kyselyn haluttaisiin kohdistuvan koko esimerkkitietokantaan, olisi kyselystäpitänyt jättää apply_to –primitiivi pois. Jos kyselyn kohdassa result(X) olisi sovellettucount() –aggregointiprimitiiviä, oltaisiin saatu selville kuinka montaperuskomponenttityyppiä tricycle:llä on.Seuraavalla kyselyllä haetaan kaikkien niiden oliotyyppien polut, joilla onominaisuutena diam.

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

Saved successfully!

Ooh no, something went wrong!