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.
21depts = department.ext.apply(id.val).apply_at(staff, select(id->age > 45));Kaikkia QAL:n operaatioita en esitellyt edellä. Esittelemieni operaatioiden lisäksiQAL:ssä on muun muassa joukko-opista tuttu<strong>ja</strong> operaatioita <strong>ja</strong> nf 2 -mallinyhteydessä aiemmin esitellyt strukturointioperaatiot nest <strong>ja</strong> unnest. Edellä olevistaesimerkeistä voi kuitenkin päätellä, että ohjelmointitaidoton loppukäyttäjäei pysty QAL-kyselykieltä käyttämään. Kielen primitiivit eivät ole helpostiomaksuttavissa, koska suuri osa niistä on iteraattoreita, jolloin iteraatiokäsitteentulee olla käyttäjälle tuttu. Lisäksi käyttäjän tulee omaksua olioa<strong>ja</strong>ttelussakäytettyjä käsitteitä, kuten luokan <strong>ja</strong> olion arvo, sekä olion identiteetti.Edelleen käyttäjän täytyy osata käyttää metode<strong>ja</strong>, tietää niille annettavat argumentit<strong>ja</strong> parametrit sekä huolehtia siitä, että tyypit ovat oikeita. Monet metoditsaattavat toimia eri tavalla kuin käyttäjä on olettanut, jos hän antaa argumentiksitai parametreiksi vääriä tyyppejä. Operaatioiden palauttamien arvojenkanssa tilanne on sama. Käyttäjän tulee tietää, mitä operaatio palauttaa eri tilanteissa.Palautusarvojen tyypithän voivat vaihdella riippuen operaation argumentista<strong>ja</strong> parametreista. Tietojenkäsittelytaito<strong>ja</strong> huonosti hallitsevan käyttäjäntilanne on toivoton viimeistään kyselyissä, joissa täytyy metodin palauttamallearvolle soveltaa jotain toista metodia. Tällaiset kyselyt eivät välttämättäluonnistu virheettömästi edes kokeneemmalta ky<strong>selykielen</strong> käyttäjältä. Tässäkäänkyselykielessä ei päästä eroon rakenteessa navigoinnista tai strutkturointioperaatioidenkäytöstä. Toisin sanoen käyttäjän tulee tuntea tietokannassaolevien objektien rakenne. Yhteenvetona QAL-kyselykielestä voi sanoa, että seon ilmaisuvoimainen, mutta vaikea käyttää. Loppukäyttäjällä tulee olla kokemustaohjelmoinnista.3.3.3. ODMG 3.0 -standardiEdellä esittelemissäni kahdessa olio-orientoituneessa lähestymistavassa osakokonaisuussuhteeton mallinnettu siten, että luokan komponentit ovat komposiitinattribuutteina. Tällöin komposiitista päästään käsiksi komponenttiin,mutta komponentista ei päästä käsiksi sen komposiittiin. Olio-orientoituneellelähestymistavalle on yleistä tällainen mallintaminen [Junkkari, 2001]. Tästä seuraa,että komponentti ei sisällä informaatiota siitä, minkä kokonaisuuden osanase on. Moniin olio-orientoituneisiin tiedon esitystapoihin perustuen osan komposiittivoidaan löytää vain käymällä kaikki kompleksisia objekte<strong>ja</strong> sisältävätrakenteet läpi komposiitista komponenttiin. Etsimistä <strong>ja</strong>tketaan niin kauankunnes löydetään komposiitti, jolla on haluttu komponentti. Jos komponentistahalutaan suoraan kompositioon, tulee suhteet mallintaa jokaisessa luokassa