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.

16(oid1, ).”Helkama”, oh<strong>ja</strong>us: oid3, runko: oid4,Tällöin oid3 olisi sellaisen olion identiteetti, jolla olisi komponenttinaan etuhaarukka<strong>ja</strong> rengas. Oid4-olioidentiteetti puolestaan kuuluisi oliolle, joka olisi tuplerakenteinen.Tällä rakenteella kuvattaisiin rungon attribuutit. Oid5:een liittyvärakenne olisi joukkorakenteinen. Joukon arvo sisältäisi takaosan alikomponentit.Polkupyörä itse (oid1) on tuplerakenteinen. O 2-oliomallilla voidaanluonnehditulla tavalla kuvata kompleksisia rakenteita, kuten osakokonaisuussuhteita.Metodien avulla voidaan lisäksi toteuttaa johdetut ominaisuudetosa-kokonaisuussuhteessa. Mallin poh<strong>ja</strong>lta ei kuitenkaan kyetä toteuttamaankyselykieltä, joka täyttää tämän tutkielman vaatimukset käyttäjäystävällisyydestä.O 2-oliomalliin poh<strong>ja</strong>utuen on tehty kyselykieli nimeltä OQL [Cluet, 1998],jolla pystytään tekemään kyselyjä mallin mukaiseen oliotietokantaan. Kyselykielipystyy käsittelemään kompleksisia objekte<strong>ja</strong>, mutta käyttäjäystävällistenkyselyjen tekeminen monimutkaisissa kyselyissä on tämän tutkimuksen vaatimuksiinusein riittämätöntä. Kyselykieli perustuu iteraattoreiden soveltamiseen<strong>ja</strong> osa-kokonaisuushierarkiassa navigointiin. Iteraattoreiden avulla voidaan käsitelläjonkin luokan kaikki ilmentymät käyttämällä siihen viittaavaa muuttu<strong>ja</strong>a.Tällöin muuttu<strong>ja</strong>n voidaan katsoa edustavan mitä tahansa luokkaan kuuluvaaoliota. Iteraattorin käyttämistä esittelen seuraavalla polkupyöräesimerkillä.Kielen varatut sanat ovat lihavoitu<strong>ja</strong>. Jos halutaan saada kaikkien kuvitteellisessatietokannassa olevien polkupyörien hinnat selville, muodostetaan seuraavakysely:select p.hinta from p in PolkupyöräIlmauksessa from arvottaa muuttu<strong>ja</strong>n p vuoron perään kaikilla luokan polkupyöräilmentymillä <strong>ja</strong> select valitsee jokaisen hinta-attribuutin arvon tulokseen.Käyttäjän täytyy ymmärtää, että p arvotetaan eri olioilla iteraattorissa, eli itetraattorillakäydään kaikki luokan oliot läpi. Jos edellä esitetystä pyöräesimerkinmukaisesta rakenteesta haluttaisiin tietää niiden pyörien merkit, joiden eturenkaidenhalkaisi<strong>ja</strong> on 0.5, täytyisi muodostaa seuraavanlainen kysely:select p.merkki from p in Polkupyörä where p.oh<strong>ja</strong>us.rengas.halkaisi<strong>ja</strong> = 0.5

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

Saved successfully!

Ooh no, something went wrong!