Spatiaaliset tietokannat

Koko: px
Aloita esitys sivulta:

Download "Spatiaaliset tietokannat"

Transkriptio

1 Spatiaaliset tietokannat Riku Koffert Joensuun yliopisto Tietojenkäsittelytiede Pro gradu tutkielma

2 TIIVISTELMÄ Spatiaaliset tietojärjestelmät ja spatiaalista tietoa käsittelevät ohjelmistot ovat yleistyneet perinteistä tietoa tallentavien tietokantojen rinnalla navigaatio- sekä kartoitusjärjestelmien yleistyessä. Tässä tutkielmassa perehdytään spatiaalisen tiedon käsittelyn perusteisiin, spatiaalisiin tietomalleihin, spatiaalisten järjestelmien erikoispiirteisiin suhteessa perintei-siin tietokantajärjestelmiin sekä esitetään käytännön esimerkkejä spatiaalisen tiedon tallentamisesta sekä analysoinnista Oracle Spatial järjestelmän avulla SQL-kyselykielen sekä Java-ohjelmointirajapinnan esimerkkien kautta. ACM-luokat: (ACM Computing classification system, 1998 version): H.2.8 Avainsanat: spatiaalisuus, tietokantajärjestelmät, SQL, Java i

3 Sisällysluettelo 1. Johdanto Spatiaalisen tiedon varastointi Spatiaalisen tiedon peruskäsitteet ja mallit Spatiaalisen tiedon geometriatyypit Oracle Spatial -järjestelmän geometriatyypit Spatiaalinen tietomalli Objektien joukon geometrian kuvaminen Spagettimalli Verkkomalli Topologinen malli Spatiaaliset hierarkiat Käsitteellisen skeeman muuntaminen loogiseksi skeemaksi Oracle Spatialin hierarkkinen tietorakenne Indeksointi ja spatiaaliset tiedonsaantimenetelmät R-puu-indeksointi R-puun laatu Indeksointi Oracle Spatial -järjestelmässä Spatiaalisen tiedon tallennus Oracle Spatial -järjestelmässä Spatiaalisen tietomallin luonti Oracle Spatial -järjestelmässä Tietokantataulun luonti Spatiaalisen tiedon hakeminen Spatiaalisen tiedon hakumenetelmät I/O-algoritmit Spatiaaliset liitokset Monimutkaiset spatiaaliset kyselyt Kyselysuunnitelma Ongelmat spatiaalisten hakujen käsittelyssä Spatiaaliset tiedonhakumenetelmät dynaamisissa järjestelmissä SQL-lausekkeet spatiaalisen tiedon hakemisessa Yksinkertaiset hakulauseet Spatiaaliset liitokset Hakulauseet Java-rajapinnan kautta Oracle Spatial järjestelmässä Yhteenveto...55 Viitteet...57 Liite 1 SdoPrint-ohjelman lähdekoodi...60 ii

4 1. Johdanto Spatiaaliset tietokannat sekä niihin tallennetun sijaintitiedon käyttäminen joko analysoinnissa, päätöksenteossa tai paikannuksessa ovat yleistynyt kuluneen vuosikymmenen aikana. Tässä tutkielmassa perehdytään spatiaalisen tiedon käsittelyn perusteisiin, spatiaalisten järjestelmien erikoispiirteisiin suhteessa perinteisiin tietokantajärjestelmiin sekä esitetään käytännön esimerkkejä Spatiaalisen tiedon tallentamisesta sekä analysoinnista Oracle Spatial järjestelmän (Oracle, 2003; Kothuri & al., 2004) avulla. Luvussa 2 käsittelemme tarkemmin spatiaalisen tiedon peruskäsitteitä, kuten geometriaa ja spatiaalisten tietokantojen yhteydessä käytettäviä tietomalleja (Rigaux & al., 2005; Malinowski & Zimányi, 2005) sekä käsitteellisellä että konkreettisella tasolla. Tutustumme myös spatiaalisiin tietomalleihin, spatiaalisen tiedon indeksointiin sekä yleisesti spatiaalisissa järjestelmissä indeksirakenteena käytettyihin R-puihin. Luvun lopussa perehdytään tarkemmin spatiaalisen tietokannan luomiseen (Oracle, 2003) ja tiedon tallentamiseen Oracle Spatial -järjestelmässä esitettyjen esimerkkien avulla. Luvussa 3 perehdymme spatiaalisen tiedon hakemiseen tietokannasta (Rigaux & al., 2003; Oracle, 2003). Luvun alussa tutustutaan spatiaalisten hakulauseiden käsittelyyn, sekä tutustutaan lyhyesti spatiaalisiin liitoksiin, jotka muodostavat spatiaalisten hakujen ytimen, ja spatiaalisessa tiedonkäsittelyssä käytettyihin algoritmeihin sekä I/O-algoritmien että hakualgoritmien osalta. Lisäksi käsitellään monimutkaisempien spatiaalisten hakulauseiden yhteydessä oleellisia kyselysuunnitelmia, sekä yleisimpiä spatiaaliseen tiedonhakuun liittyviä ongelmia ja spatiaalisten hakujen käsittelyä dynaamisissa ympäristöissä, kuten paikannusjärjestelmissä. Luvun loppupuolella esitetään esimerkkejä spatiaalisista hakulauseista Oracle Spatial -ympäristössä, sekä tutkitaan spatiaalista tiedonhakua ohjelmointirajapinnan (Kothuri & al., 2004) kautta Java-ympäristössä. Spatiaalisen tiedon visualisointi varsinaisissa sovelluskohteissa ja ohjelmistoissa on rajattu tämän tutkielman aihealueen ulkopuolelle. 1

5 Luvussa 4 luomme lopuksi yhteenvedon tutkielman keskeisistä kohdista sekä spatiaalisen tiedonkäsittelyn jatkotutkimusmahdollisuuksista ja tulevaisuudennäkymistä. Tässä viimeisessä luvussa esitetään myös lyhyesti tutkielman ulkopuolelle jätettyjä tekniikoita. 2

6 2. Spatiaalisen tiedon varastointi Sijaintitietoa varastoidaan tietokantoihin perinteisen numeraalisen tiedon tapaan, mutta spatiaalisen tiedon tallentaminen vaatii tallennusjärjestelmältä, tietokantaskeemalta ja tietokannanhallintajärjestelmältä tiettyjä ominaisuuksia, jotka mahdollistavat spatiaalisen tiedon tehokkaan käsittelyn. Tässä luvussa perehdytään tarkemmin spatiaalisen tiedon peruskäsitteisiin, sen yhteydessä käytettäviin tietomalleihin ja spatiaalisen tiedon tallentamiseen liittyviin seikkoihin. Luvun loppupuolella esitetään myös esimerkkejä spatiaalisen tietokannan luomisesta ja tiedon tallentamisesta Oracle Spatial -järjestelmässä Spatiaalisen tiedon peruskäsitteet ja mallit Avaruudellisia sekä ajallisia ominaisuuksia kuvaavat standardisoidut skeemat mahdollistavat tehokkaamman tiedon jakamisen ja siirron eri sovellusten ja järjestelmien välillä (OGC, 2003). Näitä skeemoja käyttävät sekä spatiaalista tietoa käsittelevät järjestelmät, että geograafisten informaatiojärjestelmien kehittäjät ja käyttäjät. Skeemojen avulla pyritään takaamaan ymmärrettävien ja oikeiden spatiaalisten tietojen saatavuus. Geometria antaa mahdollisuudet kvantitatiiviseen kuvaamiseen koordinaattien ja matemaattisien funktioiden avulla. Näin voidaan esimerkiksi kuvailla erilaisia ominaisuuksia kuten ulottuvuuksia, sijaintia, kokoa, muotoa ja asentoa. Objektin geometrian kuvaamiseen käytettävät matemaattiset funktiot riippuvat spatiaalista sijaintia kuvaavasta koordinaattien viitejärjestelmästä. Geometria on siis ainoa muuttuva osa siirrettäessä informaatiota yhdestä viittaus-tai koordinaattijärjestelmästä toiseen. Topologia käsittelee niitä geometristen muotojen ominaisuuksia, jotka säilyvät muuttumattomina, jos tilaa muutetaan joustavasti ja toistuvasti, kuten esimerkiksi silloin kun geograafista tietoa muunnetaan koordinaattijärjestelmien välillä. Geograa- 3

7 fisen tiedon kontekstissa topologiaa käytetään yleensä kuvaamaan n-ulottuvuudellisten graafien yhdistettävyyttä. Tämä ominaisuus on muuttumaton graafin muutoksista huolimatta. Laskennallinen topologia antaa tietoa niiden geometristen primitiivien liitettävyydestä, jotka voidaan johtaa näitä primitiivejä sisältävistä geometrioista Spatiaalisen tiedon geometriatyypit Spatiaalisessa informaatiossa geometria on järjestetyistä kärkipisteistä koostuva sekvenssi, jotka on yhdistetty joko suorilla tai kaarevilla viivoilla (Oracle, 2003). Geometrian tyyppi määrittelee sen merkityksen. Spatiaaliset tietokannat tukevat useita primitiivisiä geometrioita, sekä näistä primitiiveistä koottuja kokoelmia. OGC:n refrenssimallin (OGC, 2003) määritelmän mukaan geometrinen objekti on koordinaattigeometrian sekä koordinaattiviitejärjestelmän yhdistelmä, joukko suorilla sijainneilla (direct positions) ilmaistuja geometrisia pisteitä. Suora sijainti viittaa sijaintiin koordinaattien viitejärjestelmän sisällä. Spatiaalisen tiedon kuvaamiseen käytettävien geometrioiden tyypit riippuvat käytettävän järjestelmän toteutuksesta, mutta perusperiaatteiltaan ne noudattavat ISO standardissa määriteltyjä geometriatyyppejä (ISO, 2003). ISO standardissa määritellään yhdenmukaistavat luokat 1-, 2- ja 3-ulotteisille primitiivisille geometriatyypeille. Kaksiulotteisia objekteja tai pintoja sisältäviä objekteja käytetään useimmiten kuvattaessa entiteettejä, jotka sisältävät suuria yhtenäisiä alueita (Rigaux & al., 2002). Tällaisia kuvattavia kohteita ovat esimerkiksi paikannustietokantoihin tallennettavat maaalueet, tiet sekä muut geograafiset elementit. Polygoni on tärkein geometrinen tyyppi kuvattaessa edellä mainitun kaltaisten objektien geometriaa. Polygoni on murtoviivalla (polyline) rajattu alue tietyllä tasolla (plane). Tätä polygonia ympäröivää murtoviivaa kutsutaan sen rajaksi (boundary). 4

8 2.1.2 Oracle Spatial -järjestelmän geometriatyypit Oracle Spatial (Oracle, 2003) tukee useita erilaisia primitiivisiä geometriatyyppejä sekä näistä koottuja kokoelmia. Kaksiulotteiset pisteet muodostuvat X- ja Y- koordinaattiparista, jonka avulla ilmaistaan yleensä pituus ja leveysasteiden arvoja. Viivajonot muodostuvat yhdestä tai useammasta pisteparista, jotka määrittelevät viivasegmentin. Polygonit muodostuvat yhdistetyistä viivajonoista, jotka muodostavat suljetun kehän. Näiden primitiivisten tyyppien avulla kuvataan varsinaista spatiaalista tietoa. Esimerkiksi polygonia voidaan käyttää kuvaamaan paikoitusaluetta, tai pistettä kuvaamaan rakennuksen sijaintia. Esimerkkejä Oracle Spatialin (Oracle, 2003) tukemista primitiiveistä sekä näistä koostuvista geometrioista ovat esimerkiksi 2-ulotteiset geometriatyypit: pisteet ja pisteryhmät murtoviivat polygonit kaariviivat kaaripolygonit yhdistelmäpolygonit kaarimurtoviivat ympyrät optimoidut suorakaiteet. Oracle Spatial tukee myös kolmi- ja neliulotteisia geometrisia tyyppejä, joissa käytetään kolmea tai neljää koordinaattia kuvaamaan kutakin objektin pintaa. Useimmat spatiaaliset funktiot toimivat kuitenkin ainoastaan kaksiulotteisille spatiaalisille objekteille Oracle Spatial -järjestelmässä (Oracle, 2003). Kuvassa 1 on 5

9 esitetty esimerkkejä useimmista tavallisista spatiaalisissa järjestelmissä käytettävistä 2-ulotteisista geometriatyypeistä. Piste Murtoviiva Polygoni Kaariviiva Kaaripolygoni Yhdistelmäpolygoni Yhdistelmäjono Ympyrä Suorakulmio Kuva 1: Esimerkkejä 2-ulotteisista geometriatyypeistä Spatiaalinen tietomalli Tietomalli voidaan määritellä yleisen tason kuvaukseksi joukosta entiteettejä, sekä näiden joukkoon kuuluvien entiteettien välisistä suhteista (Peuquet & Marble, 1990). Entiteetillä tarkoitetaan yksilöitävissä olevaa objektia, kuten vaikkapa spatiaalisissa tietojoukoissa esiintyvät tiet, rakennukset ja maa-alueet. Entiteettikokoelmat ovat kokoelma entiteettejä, joilla on yhteisiä piirteitä tai jokin yhdistävä tekijä. Spatiaalisessa tiedossa tällaisia kokoelmia ovat esimerkiksi kaupungit ja vuoristot. Tietomalliin tallennettavat suhteet sisältävät tietoa objektien välisistä etäisyyksistä, vierekkäisyydestä ja muista vastaavista tiedoista. Sekä entiteeteillä että niiden välisillä 6

10 suhteilla voi olla monia erilaisia arvoja tai ominaisuuksia, kuten leveys, korkeus tai syvyys. Tietomallin peruspiirre on se, että malli on abstraktio todellisuudessa olemassaolevista objekteista ja näiden relaatioista, ja jokainen tietomalli kuvaa todellisuutta tietyllä tarkkuustasolla. Monet tietomallien suunnittelijat ovat ymmärtäneet, että tallennettua tietoa tulisi olla mahdollista tarkastella monella eri tasolla. Ei kuitenkaan ole olemassa yleisesti hyväksyttyä mallia siitä kuinka moneen abstraktiotasoon tietomalli tulisi erotella. Esimerkkinä voidaan mainita nelitasoinen malli (Peuquet & Marble, 1990), jossa abstraktio jaetaan seuraavalla tavalla : - Todellisuus : Tilanne joka vallitsee todellisessa maailmassa sisältäen kaikki tarkasteltaessa ihmiselle näkyvät sekä näkymättömät osat. - Tietomalli: Abstraktio todellisuudesta, johon sitältyvät vain ne osat, joita pidetään merkittävinä sovelluksen tai sovelluskohteen toiminnan kannalta. - Tietorakenne: Tietomallin esitysmuoto, joka kuvataan yleensä listoina, kaavioina tai muina vastaavina kokoelmina, jotka voidaan tallentaa tietokoneen ymmärtämässä muodossa. - Tiedostorakenne : Tiedon esitysmuoto fyysisellä tallennusmedialla Objektien joukon geometrian kuvaminen Spatiaalisen tiedon kokoelmien kuvaamiseen käytettävistä malleista voidaan eritellä yleisimmät kolme mallia: spagetti-, verkko- ja topologiamallit (Rigaux & al., 2002). Nämä mallit eroavat toisistaan pääasiassa topologisten suhteiden kuvaustavan osalta. Objektien väliset topologiset suhteet ovat niitä suhteita, jotka pysyvät muuttumattomina topologian muuttuessa. Nämä suhteet siis säilytetään, kun spatiaalisia objekteja muutetaan esimerkiksi kääntämällä tai skaalaamalla niitä euklidisella tasolla. Topologisia suhteita ovat mm. naapuruus-, limittyneisyys-, erillisyys- ja sisältyvyyssuhteet, jotka muodostavat tärkeän luokan spatiaalisia riippuvuuksia. Tällaisten relaatioiden eksplisiittinen kuvaus spatiaalisessa tietokannassa lisää käytettävissä olevaa spatiaalista tietoa ja on hyödyllistä esimerkiksi arvioitaessa 7

11 spatiaalisia tietokantakyselyitä. Kuvassa 2 esitetään muutamia mahdollisia geometristen objektien välisiä topologisia suhteita. Naapuruus Limittyneisyys Erillisyys Sisältyneisyys Kuva 2: Esimerkkejä objektien välisistä topologisista suhteista Spagettimalli Spagettimallissa minkä tahansa kokoelmaan liittyvän spatiaalisen objektin tiedot kuvaillaan itsenäisesti riippumatta muista kokoelmaan liittyvistä objekteista (Rigaux & al., 2002). Tämän kaltaiset mallit eivät tallenna kokoelmaan liittyvää topologista tietoa, joten kaikki topologiset riippuvuudet tulee laskea suorituksen aikana niitä tarvittaessa. Tämä rakenne antaa myös ymmärtää, että malli sisältää ylimääräistä tietoa. Esimerkkinä kahden vierekkäisen alueen välistä rajaa kuvaava tieto esitetään kahdesti. Tämä yksinkertainen malli mahdollistaa heterogeenisen esitystavan, jonka 8

12 avulla pisteet, murtoviivat ja alueet voidaan sekoittaa yhteen kokoelmaan ilman rajoituksia. Tämän lähestymistavan suurin hyöty on sen yksinkertaisuus. Malinowskin ja Zimányin (2005) mukaan mallin käyttökelpoisuutta lisää myös se, ettei käyttäjän tarvitse tietää uutta tietokantaobjektia lisättäessä mitään tietokannassa olevien tai sinne lisättävien objektien topologisista suhteista. Tämän vuoksi tiedon lisääminen onnistuu huomattavasti yksinkertaisemmin kuin esimerkiksi topologisessa mallissa. Toisaalta mallin suurimmat puutteet johtuvat eksplisiittisen relaatiotiedon puutteesta kokoelman objektien välillä, kuten objektien vierekkäisyys tai tieto siitä sisältääkö objekti jonkin toisen kokoelmaan kuuluvan objektin (Rigaux & al., 2002). Tämän takia mallissa ei ole esimerkiksi suoraviivaista tapaa selvittää sitä jakavatko kahden polygonin rajat saman pisteen. Edellä mainittu tiedon ylimäärä on toinen mahdollinen ongelma, jonka merkitys kasvaa käsiteltävän paikannustiedon määrän kasvaessa Verkkomalli Verkkotyylinen spatiaalinen malli kehitettiin alunperin kuvaamaan verkkoja verkkograafeihin perustuvissa ohjelmistoissa kuten liikenneyhteysohjelmistoissa (Rigaux & al., 2002). Tätä mallia käytettäessä tallennetaan kokoelmiin topologiset relaatiot pisteiden ja murtoviivojen välillä. Mallissa käytettävien geometristen tyyppien joukko on hieman monimutkaisempi kuin spagettimallissa. Mallin käyttöä varten tarvitaan kaksi uutta käsitettä jotka ovat solmut ja kaaret. Solmu on yksilöllinen piste, johon yhdistyy vaihteleva määrä kaaria. Kaari on murtoviiva joka alkaa ja päättyy solmuun. Kuvassa 3 esitetään yksinkertainen verkkomallin mukainen tietojoukko. 9

13 Kaari Solmu Kuva 3: Verkkomallin mukainen kuvaus topologiasta. Toteutustavasta riippuen verkosto on joko planaarinen tai ei-planaarinen. Planaarisessa verkossa jokainen sivujen risteys tallennetaan solmuna, vaikka kyseinen solmu ei vastaisikaan geograafista objektia. Ei-planaarisessa verkossa sivut voivat ylittää toisensa muodostamatta risteystä. Esimerkkinä ei-planaarisista verkoista voidaan mainita esimerkiksi maakuljetusverkot, jotka sisältävät tunneleita ja tasoristeyksiä. Alue kuvataan verkkomallissa verteksien järjestettynä listana polygonin rajaamalla alueella, eli samalla tavalla kuin spagettimallissa. Tämän mallin käytön hyviä puolia ovat sen esittämä luontainen kuvaus verkon muotoisesta topologiasta sekä yhteneväisyyskäsite, joiden avulla on esimerkiski mahdollista etsiä optimaalisia polkuja verkon läpi. Tämä malli ei tallenna 2-ulotteisten objektien välistä relaatiotietoa Topologinen malli Topologinen malli on hyvin samankailtainen verkkomallin kanssa, mutta mallissa käytetty verkosto on planaarinen (Rigaux & al., 2002). Tämä verkosto aiheuttaa 10

14 planaarisen jakautumisen vierekkäisiksi polygoneiksi, joista jotkut eivät välttämättä vastaa todellista geograafista objektia. Verkkomallin mukaisesti solmu kuvaillaan topologisessa mallissa pisteenä, joka koostuu joukoista kaaria. Jos lista on tyhjä, on solmu eristyksissä muista verkon osista. Verkosta eristyneitä pisteitä käytetään kuvattaessa erilaisten objektien sijainteja kuten tornien tai toriaukioiden sijaintia. Kaaret sisältävät alku-ja loppupisteidensä lisäksi tiedon niistä polygoneista, joille kaari toimii yhteisenä osana. Malli kuvaa polygonin kaarien joukkona, joista kukin kaari on jaettuna viereisen polygonin kanssa. Tehokkuuskysymyksien vuoksi mallissa esiintyy hieman tiedon ylimäärä näiden tietojen osalta, esimerkiksi polygoneja voidaan käsitellä joko polygoneina tai kaarina. Tallennetussa sijantitiedossa ei sen sijaan esiinny ylimäärää, koska kukin piste tai viiva tallennetaan vain kerran. Malinowskin ja Zimányin (2005) mukaan topologinen malli on huomattavasti monimutkaisempi ja joustamattomampi kuin spagettimalli, sekä vaatii enemmän tallennustilaa massamuistilta tietorakenteen tallentamiseen. Kuvassa 4 esitetään esimerkki polygonien esitystavasta topologisessa mallissa. P1 P2 P3 [P1+P2] Kuva 4: Polygonien esitystapa topologisessa mallissa. 11

15 Eräs topologisen mallin eduista on topologisten kyselyiden nopea laskettavuus. Esimerkiksi kaikkien polygonin P viereisten polygonien etsiminen on suoraviivaista, koska voidaan suorittaa haku kaarista, jotka muodostavat polygonin P:n naapureina. Lisäksi tällaiseen malliin perustuvan tietojoukon säännöllinen päivittäminen ja ylläpitäminen on helpompaa objektien jakaman tiedon takia, toisin kuin esimerkiksi spagettimalliin perustuvassa tiedossa, jossa kahdelle polygonille yhteinen sivu tallennetaan kahteen kertaan. Tästä johtuen myös tietoa päivitettäessä muutokset tulee tehdä molempiin tietueisiin. Topologisen mallin käytössä on muutamia ongelmia. Ensinnäkin osalla tietokannan spatiaalisista objekteista ei välttämättä ole semanttista vastinetta reaalimailman kanssa. Toinen ongelma on rakenteen monimutkaisuus, joka saattaa hidastaa joitain tiedon käsittelyyn liittyviä operaatioita. Monimutkaisten tietorakenteiden läpikäynti toistuvasti voi aiheuttaa suurta käsittelykuormaa. Lisäksi uuden objektin lisääminen tietojoukkoon edellyttää planaarisen graafin osittaista uudelleen laskemista Spatiaaliset hierarkiat Malinowskin ja Zimányin (2005) mukaan yksinkertaiset spatiaaliset hierarkiat ovat sellaisia, joiden jäsenet voidaan kuvata käsitteellisessä mallissa puurakenteena. Nämä yksinkertaiset hierarkiat voidaan jakaa kolmeen alakategoriaan, jotka ovat symmetriset, epäsymmetriset ja yleistetyt spatiaaliset hierarkiat. Symmetrisen spatiaalisen hierarkian skeemassa on ainoastaan yksi polku, jonka kaikki tasot ovat pakollisia. Esiintymätasolla rakenteen elementit muodostavat puurakenteen, jonka kaikki oksat ovat saman pituisia. Jokaisella vanhemmalla tulee olla vähintään yksi lapsisolmu, ja kukin lapsisolmu voi kuulua ainoastaan yhdelle vanhemmalle. 12

16 Kuvassa 5 esitetään symmetrisen hierarkian skeema sekä esimerkki skeeman mukaisesta puurakenteesta 1. << contains >> << contains >> << point >> Toimipiste Toimipisteen tunnus Osoite Esimiehen nimi Muita atribuutteja Maantieteelinen sijainti << surface >> Kunta Kunnan tunnus Kunnan alue Muita atribuutteja << surface set >> Maa Maan tunnus Asukasluku Muita atribuutteja Maa 1 Kunta 1 Kunta 2 Toimipiste 1 Toimipiste 2 Toimipiste 3 Toimipiste 4 Kuva 5: Symmetrisen hierarkian skeema ja esimerkki puurakenteesta (Malinowski & Zimányi, 2005). Asymmetrisissä spatiaalisissa hierarkioissa on myös ainoastaan yksi polku skeeman tasolla, mutta kardinaliteettien mukaan kaikki hierarkian alemmat tasot eivät ole pakollisia. Näin toteutustasolla puun jäsenet voivat muodostaa epätasapainoisen puun, jonka oksat eivät ole saman pituisia. Kuvassa 6 esitetään asymmetrisen hierarkian skeema, sekä esimerkki skeeman mukaisesta puurakenteesta. 1 Tässä tutkielmassa osa Malinowskin ja Zimanyin [6] käyttämistä piktogrammeista on korvattu UMLnotaation stereotyypeillä. 13

17 << surface set >> Osasolu Tunnus Hakuehto Tyyppi Koko Muita atribuutteja Alueen rakenne << surface set >> Solu Tunnus Koko Muita atribuutteja << surface set >> Segmentti Tunnus Koko Muita atribuutteja << surface set >> Alue Tunnus Nimi Muita atribuutteja Alue 1 Segmentti 1 Segmentti 2 Segmentti 3 Solu 11 Solu 12 Solu 31 Solu 32 Solu 33 Osasolu 111 Osasolu 112 Kuva 6: Asymmetrisen hierarkian skeema ja esimerkki puurakenteesta (Malinowski & Zimányi, 2005). Yleistetyt hierarkiat sisältävät skeematasolla monia toisensa poissulkevia polkuja, jotka jakavat joidenkin tasojen tietoja. Jokainen näistä poluista kuvaa yhtä hierarkiaa. Esiintymätasolla jokainen hierarkian jäsen kuuluu ainoastaan yhteen polkuun. Symboli x ilmaisee sitä että polut ovat eksklusiivisia. Oheisessa kuvan 7 esimerkissä tämä tarkoittaa sitä, että teiden osat voivat kuulua sekä kaupungin omiin teihin että valtaväyliin. Kaupungin teiden osien huolto on paikallisen huollon vastuulla, kun taas valtavylien osien huoltotoimet on ulkoistettu tietyille yhtiöille. 14

18 << surface >> Kaupungin osa << surface set >> Kaupunki << line segment >> Tien osa Numero Nopeusrajoitus Muita atribuutteja Tyyppi X Nimi Muita atribuutteja << surface >> Yhtiö Nimi Osoite Muita atribuutteja Nimi Alue Muita atribuutteja X << surface set >> Osavaltio Nimi Alue Muita atribuutteja Lääni 1 Kaupunki 1 Kaupunki 2 Yhtiö 1 Yhtiö 2 Kaupungin osa A Kaupungin osa B Tien osa 21 Tien osa 22 Tien osa 21 Tien osa 22 Kuva 7: Yleistetyn hierarkian skeema ja esimerkki puurakenteesta (Malinowski & Zimányi, 2005) Käsitteellisen skeeman muuntaminen loogiseksi skeemaksi Malinowski ja Zimányi (2007) esittävät lisäksi artikkelissaan, kuinka suunniteltu käsitteellinen tietomalli voidaan muuntaa varsinaiseksi loogiseksi tietokantamalliksi. He viittaavat myös niihin etuihin, joita tämän kaltaisten muunnosten suorittamisessa saavutetaan käyttämällä spatiaaliset ominaisuudet jo sisältäviä tietokannanhallintajärjestelmiä, kuten Oracle Spatialia, spagettitietomallin etuihin topologiseen malliin verrattuna, sekä semantiikan säilyttämisen tärkeyteen muunnettaessa käsitteellistä mallia loogiseksi malliksi. Yleinen tapa toteuttaa spatiaalinen tietokanta loogisella tasolla perustuu joko relationaaliseen, olio-pohjaiseen tai oliorelaatio-pohjaiseen lähestymistapaan. Monimutkai- 15

19 sen ei-atomisen tiedon esittäminen on tunnetusti eräs relaatiomallin heikkouksista. Spatiaalisen tiedon tallentamisen yhteydessä tämä tarkoittaa esimerkiksi sitä, että polygonin tallentaminen relaatiomallin mukaisesti vaatii useita rivejä, jotka kuvaavat yksittäisen polygonin murtoviivoja näiden alku- ja loppupisteiden avulla, jättäen täten käyttäjän harteille kullekkin objektille kuuluvien tietojen ryhmittelyn. Olio-pohjainen lähestymistapa tiedon tallentamiseen mahdollistaa näiden ongelmien ratkaisemisen geometrioita kuvaavien olioluokkien avulla, mutta olioihin perustuvat tallennusjärjestelmät eivät ole vielä yleistyneet kovinkaan laajalti tietokantajärjestelmissä. Toisaalta olio-relaatiomalli sisältää relaatiomallin hyvät ominaisuudet, kuten nopean tiedon haun, sekä laajentaa sen ilmaisuvoimaa oliomallin avulla. Olio-relaatiomallin ominaisuudet ovat lisäksi mukana SQL:2003-standardissa sekä johtavissa tietokantaratkaisuissa, kuten Oracle tai Informix. Malinowski ja Zimányi (2007) käyttävät omassa skeeman muunnoksessaan surrogaatteja käyttäjän määrittelemien avaimien sijaan. Tämä johtuu siitä, että esimerkiksi tietovarastoissa käyteään usein järjestelmän määrittelemiä avaimia, joka nopeuttaa liitosten suorittamista. Lisäksi surrogaatit eivät muutu ajan kuluessa, eli kaksi objektia, joiden surrogaatit ovat identtisiä, kuvaavat samaa entiteettiä mahdollistaen historiatietojen tallentamisen. SQL:2003-standardi sekä useat kaupalliset tietokantajärjestelmät, kuten Oracle 10g, tukevat surrogaatteja. Spatiaalisen tiedon tallentamiseen voidaan käyttää joko kaksiosaista tai integroitua arkkitehtuuria. Ensimmäinen perustuu tekniikkaan, jossa spatiaaliselle ja ei-spatiaaliselle tiedolle käytetään erillisiä hallintajärjestelmiä. Integroiduissa järjestelmissä tietokantajärjestelmää on laajennettu spatiaalisilla tietotyypeillä ja funktioilla. Kaksiosaista arkkitehtuuria käytetään useimmiten traditionaalisissa GIS-järjestelmissä. Nämä järjestelmät vaativat erillisen tietomallin kuvaamaan sekä spatiaalista että ei-spatiaalista informaatiota, joka hankaloittaa mallintamista sekä lisää järjestelmän monimutkaisuutta. Spatiaalisilla ominaisuuksilla laajennetut tietokantajärjestelmät sisältävät spatiaalisten objektien käsittelyyn vaadittavat työkalut säilyttäen silti muut ominaisuudet kuten optimointityökalut. 16

20 Malinowski ja Zimanyi (2007) valitsivat omassa tutkimuksessaan spagettitietomallin mukaisen tallennusrakenteen skeemamuunnoksen suorittamisessa. Perustelut spagettimallin valinnalle olivat mallin yksinkertaisuus verrattuna topologiseen malliin, jonka tarjoama tallennusmalli on heidän mukaansa liian rajoittava ja joustamaton. Eräs tärkeä osatekijä käsitteellisten mallien muuntamisessa loogisiksi malleiksi on semantiikan säilyttäminen. Osa käsitteellisessä mallissa määritellystä semantiikasta voidaan menettää, jos käyttöalustaksi valittu tietokannan hallintajärjestelmä ei tue konseptimallin sisältämiä rakenteita. Tässä tapauksessa voidaan käyttää eheysrajoitteita, kuten laukaisimia (triggers), joiden avulla voidaan varmistaa käsitteellisen ja loogisen skeeman ekvivalenssi. Laukaisin suorittaa tarvittavat eheyden tarkistukset aina tietokannan tietojen päivittyessä Oracle Spatialin hierarkkinen tietorakenne Oracle Spatialin tietomalli on hierarkkinen rakenne, joka koostuu elementeistä, geometrioista sekä kerroksista (Oracle, 2003). Kerrokset muodostuvat geometrioista, jotka vastaavasti muodostuvat elementeistä. Oracle Spatialin hierarkkinen tietorakenne sisältää myös koordinaattijärjestelmän ja toleranssin. Elementti (element) on geometrian perusosa. Oracle Spatialin tukemia elementin tyyppejä ovat pisteet, murtoviivat ja polygonit. Elementit voivat kuvastaa esimerkiksi tähtikuvioita (pisteryhmä) tai teitä (joukko murtoviivoja). Jokainen elementin koordinaatti tallennetaan X,Y koordinaattiparina. Yksittäisen pisteen tieto koostuu yhdestä koordinaatista. Viivan sisältämä tieto koostuu kahdesta koordinaatista, jotka kuvaavat elementin osaa. Polygonin tiedot koostuvat koordinaattipareista, yksi koordinaattipari polygonin kutakin sivua kohti. Geometria (geometry) on jonkin spatiaalisen ominaisuuden esitysmuoto, joka on mallinnettu tiettyjen primitiivisten spatiaalisten elementtien järjestettynä joukkona. 17

21 Geometria voi koostua yksittäisestä elementistä, joka on jonkin tuetun primitiivisen tyypin ilmentymä, tai vaihtoehtoisesti se voi muodostua homogeenisestä tai heterogeenisestä elementtikokoelmasta. Homogeeninen kokoelma voi sisältää esimerkiksi tietyn maa-alueen geometriaa kuvaavat polygonit. Heterogeeninen kokoelma taas sisältää eri tyyppisiä elementtejä, kuten pisteitä ja polygoneja. Kerros (layer) on kokoelma geometrioita, jotka jakavat samanlaisen attribuuttijoukon. GIS-järjestelmän yksi kerros voi esimerkiksi kuvata objektien topografisia ominaisuuksia, toisen tason kuvatessa asukastiheyttä. Kuhunkin kerrokseen kuuluvat geometriat ja näihin liittyvät spatiaaliset indeksit tallennetaan tavalliseen tietokantatauluun. Koordinaattijärjestelmän (coordinate system) tai spatiaalisen viitejärjestelmän avulla määritellään koordinaatit tietylle sijainnille sekä muodostetaan suhteita näin määriteltyjen sijaintien välille. Se mahdollistaa todellisessa maailmassa sijaitsevan sijainnin esittämisen koordinaattijoukkona paikannusjärjestelmässä. Toleranssia (tolerance) käytetään, kun spatiaaliselle tiedolle halutaan asettaa jokin tietty tarkkuusaste. Toleranssi kuvaa etäisyyttä, jonka verran objektit voivat poiketa toisistaan, mutta tulos tulkitaan edelleen sellaiseksi, että objektit ovat samassa pisteessä. Tämä on käytännöllistä esimerkiksi pyöristyksestä aiheutuvien tarkkuusvirheiden poistamisessa. Oracle Spatialin hierarkkinen rakenne mahdollistaa spagettimallin käytön SDO_GEOMETRY-tietotyypin avulla (Oracle, 2003), sekä verkko- ja topologiamallin mukaisen tietomallin generoinnin (Oracle, 2005). Tässä tutkielmassa esitetyt Oracle Spatial järjestelmän esimerkit on toteutettu spagettimallin mukaisella tallennusrakenteella. 18

22 2.3. Indeksointi ja spatiaaliset tiedonsaantimenetelmät Moniulotteisten geograafisten objektien käsittelyä tehostavat tiedonsaantimenetelmät ovat ensisijaisen tärkeitä esim. CAD-suunnittelun sekä spatiaalista tietoa käsittelevien tietokantojen yhteydessä (Seeger & Kriegel, 1990). Tiedonsaantimenetelmät voidaan jakaa karkeasti pistetiedon saantimenetelmiin (PAM, Point Access Methods) sekä spatiaalisen tiedon saantimenetelmiin (SAM, Spatial Access Methods), joita käytetään haettaessa tietoa pisteistä tai spatiaalisista objekteista kuten polygoneista moniulotteisessa spatiaalisessa avaruudessa. Käytettävien tiedonsaantimenetelmien tulee olla dynaamisia, eli toisin sanoen niiden täytyy tukea toistuvaa tiedon lisäämistä, poistamista ja päivittämistä ilman tiedon globaalia uudelleenjärjestämistä tai suorituskyvyn heikkenemistä. Lisäksi niiden tulisi tukea tehokkaasti monia spatiaaliseen tietoon liittyviä hakutyyppejä, kuten lähimmän naapurin tai objektien välisen etäisyyden selvittämistä. Spatiaalisten kyselyiden tehokas suorittaminen vaatii tietorakenteeseen soveltuvaa saantimenetelmää, jota kutsutaan indeksiksi (Rigaux & al., 2002). Saantimenetelmän tarkoituksena on nopeuttaa tiedonsaantia vähentämällä niiden objektien määrää, joiden tietoja haetaan tietokannasta hakua suoritettaessa. Perinteisissä tietokannoissa käytettävät yksiulotteiset indeksirakenteet eivät ole tehokkaita moniulotteista spatiaalista tietoa käsiteltäessä (Guttman, 1984). Arvojen absoluuttiseen vertailuun perustuvat rakenteet, kuten hajautustaulut, eivät ole käytännöllisiä, ja yksiulotteiseen avainarvojen järjestämiseen perustuvat rakenteet, kuten B-puut tai ISAM-indeksit, eivät toimi moniulotteisessa hakuavaruudessa. Esimerkkeinä spatiaalisista kyselyistä voidaan mainita piste-ja ikkuna-haut (Rigaux & al., 2002). Näissä kyselyissä etsitään objekteja, joiden geometria sisältää haetun pisteen, tai sijaitsee suorakaiteella rajatun alueen sisällä. Kuvassa 8 esitetään esimerkki ikkuna-haun toiminnasta käytännössä. Spatiaalinen liitos (spatial join) on myös eräs tärkeistä hakuesimerkeistä, jolla haetaan objekteja jotka kuuluvat haluttuun spatiaaliseen relaatioon kuten vierekkäisyys, päällekkäisyys tai sisältyvyys. 19

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys Tällä kurssilla on tutustuttu ohjelmistojen mallintamiseen oliomenetelmiä ja UML:ää käyttäen Samaan aikaan järjestetyllä kurssilla on käsitelty

Lisätiedot

Luku 8. Aluekyselyt. 8.1 Summataulukko

Luku 8. Aluekyselyt. 8.1 Summataulukko Luku 8 Aluekyselyt Aluekysely on tiettyä taulukon väliä koskeva kysely. Tyypillisiä aluekyselyitä ovat, mikä on taulukon välin lukujen summa tai pienin luku välillä. Esimerkiksi seuraavassa taulukossa

Lisätiedot

Algoritmit 1. Luento 7 Ti Timo Männikkö

Algoritmit 1. Luento 7 Ti Timo Männikkö Algoritmit 1 Luento 7 Ti 31.1.2017 Timo Männikkö Luento 7 Järjestetty binääripuu Binääripuiden termejä Binääripuiden operaatiot Solmun haku, lisäys, poisto Algoritmit 1 Kevät 2017 Luento 7 Ti 31.1.2017

Lisätiedot

SQL-perusteet, SELECT-, INSERT-, CREATE-lauseet

SQL-perusteet, SELECT-, INSERT-, CREATE-lauseet SQL-perusteet, SELECT-, INSERT-, CREATE-lauseet A271117, Tietokannat Teemu Saarelainen teemu.saarelainen@kyamk.fi Lähteet: Leon Atkinson: core MySQL Ari Hovi: SQL-opas TTY:n tietokantojen perusteet-kurssin

Lisätiedot

HELIA 1 (17) Outi Virkki Tiedonhallinta

HELIA 1 (17) Outi Virkki Tiedonhallinta HELIA 1 (17) Luento 4.1 Looginen suunnittelu... 2 Relaatiomalli... 3 Peruskäsitteet... 4 Relaatio... 6 Relaatiokaava (Relation schema)... 6 Attribuutti ja arvojoukko... 7 Monikko... 8 Avaimet... 10 Avain

Lisätiedot

Algoritmit 1. Luento 8 Ke Timo Männikkö

Algoritmit 1. Luento 8 Ke Timo Männikkö Algoritmit 1 Luento 8 Ke 1.2.2017 Timo Männikkö Luento 8 Järjestetty binääripuu Solmujen läpikäynti Binääripuun korkeus Binääripuun tasapainottaminen Graafit ja verkot Verkon lyhimmät polut Fordin ja Fulkersonin

Lisätiedot

Relaatiotietokantojen perusteista. Harri Laine Helsingin yliopisto

Relaatiotietokantojen perusteista. Harri Laine Helsingin yliopisto Harri Laine Helsingin yliopisto Suosion syy? Yksinkertaisuus vähän käsitteitä helppo hahmottaa Selkeä matemaattinen perusta ei tulkintaongelmia kuten esim. UML:ssä teoria käytäntö kaavio: R(A 1 :D 1, A

Lisätiedot

2. Seuraavassa kuvassa on verkon solmujen topologinen järjestys: x t v q z u s y w r. Kuva 1: Tehtävän 2 solmut järjestettynä topologisesti.

2. Seuraavassa kuvassa on verkon solmujen topologinen järjestys: x t v q z u s y w r. Kuva 1: Tehtävän 2 solmut järjestettynä topologisesti. Tietorakenteet, laskuharjoitus 11, ratkaisuja 1. Leveyssuuntaisen läpikäynnin voi toteuttaa rekursiivisesti käsittelemällä jokaisella rekursiivisella kutsulla kaikki tietyllä tasolla olevat solmut. Rekursiivinen

Lisätiedot

T Syksy 2004 Logiikka tietotekniikassa: perusteet Laskuharjoitus 7 (opetusmoniste, kappaleet )

T Syksy 2004 Logiikka tietotekniikassa: perusteet Laskuharjoitus 7 (opetusmoniste, kappaleet ) T-79144 Syksy 2004 Logiikka tietotekniikassa: perusteet Laskuharjoitus 7 (opetusmoniste, kappaleet 11-22) 26 29102004 1 Ilmaise seuraavat lauseet predikaattilogiikalla: a) Jokin porteista on viallinen

Lisätiedot

Paikkatiedon hallinta ja analyysi

Paikkatiedon hallinta ja analyysi HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET UNIVERSITY OF HELSINKI Paikkatiedon hallinta ja analyysi Antti Leino Marko Salmenkivi 15.3.29.4.2005

Lisätiedot

Jokaisella tiedostolla on otsake (header), joka sisältää tiedostoon liittyvää hallintatietoa

Jokaisella tiedostolla on otsake (header), joka sisältää tiedostoon liittyvää hallintatietoa Tietojen tallennusrakenteet Jokaisella tiedostolla on otsake (header), joka sisältää tiedostoon liittyvää hallintatietoa tiedot tiedostoon kuuluvista lohkoista esim. taulukkona, joka voi muodostua ketjutetuista

Lisätiedot

Algoritmit 1. Luento 1 Ti Timo Männikkö

Algoritmit 1. Luento 1 Ti Timo Männikkö Algoritmit 1 Luento 1 Ti 10.1.2017 Timo Männikkö Luento 1 Algoritmi Algoritmin toteutus Ongelman ratkaiseminen Algoritmin tehokkuus Algoritmin suoritusaika Algoritmin analysointi Algoritmit 1 Kevät 2017

Lisätiedot

Luku 7. Verkkoalgoritmit. 7.1 Määritelmiä

Luku 7. Verkkoalgoritmit. 7.1 Määritelmiä Luku 7 Verkkoalgoritmit Verkot soveltuvat monenlaisten ohjelmointiongelmien mallintamiseen. Tyypillinen esimerkki verkosta on tieverkosto, jonka rakenne muistuttaa luonnostaan verkkoa. Joskus taas verkko

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 17.2.2010 T-106.1208 Ohjelmoinnin perusteet Y 17.2.2010 1 / 41 Sanakirja Monissa sovelluksissa on tallennettava rakenteeseen avain arvo-pareja. Myöhemmin rakenteesta

Lisätiedot

Matematiikan tukikurssi

Matematiikan tukikurssi Matematiikan tukikurssi Kurssikerta 4 Jatkuvuus Jatkuvan funktion määritelmä Tarkastellaan funktiota f x) jossakin tietyssä pisteessä x 0. Tämä funktio on tässä pisteessä joko jatkuva tai epäjatkuva. Jatkuvuuden

Lisätiedot

Königsbergin sillat. Königsberg 1700-luvulla. Leonhard Euler ( )

Königsbergin sillat. Königsberg 1700-luvulla. Leonhard Euler ( ) Königsbergin sillat 1700-luvun Königsbergin (nykyisen Kaliningradin) läpi virtasi joki, jonka ylitti seitsemän siltaa. Sanotaan, että kaupungin asukkaat yrittivät löytää reittiä, joka lähtisi heidän kotoaan,

Lisätiedot

Luento 2: Tiedostot ja tiedon varastointi

Luento 2: Tiedostot ja tiedon varastointi HELIA 1 (19) Luento 2: Tiedostot ja tiedon varastointi Muistit... 2 Päämuisti (Primary storage)... 2 Apumuisti (Secondary storage)... 2 Tiedon tallennuksen yksiköitä... 3 Looginen taso... 3 Fyysinen taso...

Lisätiedot

Algoritmit 1. Luento 9 Ti Timo Männikkö

Algoritmit 1. Luento 9 Ti Timo Männikkö Algoritmit 1 Luento 9 Ti 7.2.2017 Timo Männikkö Luento 9 Graafit ja verkot Kaaritaulukko, bittimatriisi, pituusmatriisi Verkon lyhimmät polut Floydin menetelmä Lähtevien ja tulevien kaarien listat Forward

Lisätiedot

Hakupuut. tässä luvussa tarkastelemme puita tiedon tallennusrakenteina

Hakupuut. tässä luvussa tarkastelemme puita tiedon tallennusrakenteina Hakupuut tässä luvussa tarkastelemme puita tiedon tallennusrakenteina hakupuun avulla voidaan toteuttaa kaikki joukko-tietotyypin operaatiot (myös succ ja pred) pahimman tapauksen aikavaativuus on tavallisella

Lisätiedot

D B. Tietokannan hallinta kertaus

D B. Tietokannan hallinta kertaus TKHJ:n pääkomponentit metadata TKHJ:ssä Tiedostojen käsittely puskurien rooli tiedostokäsittelyssä levymuistin rakenne ja käsittely mistä tekijöistä hakuaika muodostuu jonotus jos useita samanaikaisia

Lisätiedot

Graafit ja verkot. Joukko solmuja ja joukko järjestämättömiä solmupareja. eli haaroja. Joukko solmuja ja joukko järjestettyjä solmupareja eli kaaria

Graafit ja verkot. Joukko solmuja ja joukko järjestämättömiä solmupareja. eli haaroja. Joukko solmuja ja joukko järjestettyjä solmupareja eli kaaria Graafit ja verkot Suuntamaton graafi: eli haaroja Joukko solmuja ja joukko järjestämättömiä solmupareja Suunnattu graafi: Joukko solmuja ja joukko järjestettyjä solmupareja eli kaaria Haaran päätesolmut:

Lisätiedot

A274101 TIETORAKENTEET JA ALGORITMIT

A274101 TIETORAKENTEET JA ALGORITMIT A274101 TIETORAKENTEET JA ALGORITMIT PUURAKENTEET, BINÄÄRIPUU, TASAPAINOTETUT PUUT MIKÄ ON PUUTIETORAKENNE? Esim. Viereinen kuva esittää erästä puuta. Tietojenkäsittelytieteessä puut kasvavat alaspäin.

Lisätiedot

HELIA 1 (8) Outi Virkki Tietokantasuunnittelu

HELIA 1 (8) Outi Virkki Tietokantasuunnittelu HELIA 1 (8) Luento 1 Johdatusta tietokannan suunnitteluun... 2 Tietokantasuunnittelu?... 2 Tietokanta?... 2 Tieto?... 2 Tietokantasuunnittelun tavoite, v.1... 2 Luotettavuus?... 3 Tietokantasuunnittelun

Lisätiedot

Sisältö. 2. Taulukot. Yleistä. Yleistä

Sisältö. 2. Taulukot. Yleistä. Yleistä Sisältö 2. Taulukot Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko operaation parametrina. Taulukko ja HelloWorld-ohjelma. Taulukko paluuarvona. 2.1 2.2 Yleistä

Lisätiedot

AVL-puut. eräs tapa tasapainottaa binäärihakupuu siten, että korkeus on O(log n) kun puussa on n avainta

AVL-puut. eräs tapa tasapainottaa binäärihakupuu siten, että korkeus on O(log n) kun puussa on n avainta AVL-puut eräs tapa tasapainottaa binäärihakupuu siten, että korkeus on O(log n) kun puussa on n avainta pohjana jo esitetyt binäärihakupuiden operaatiot tasapainotus vie pahimmillaan lisäajan lisäys- ja

Lisätiedot

Oliotietokannat. Nääsvillen Oliopäivät Pekka Kähkipuro Kehitysjohtaja, FT

Oliotietokannat. Nääsvillen Oliopäivät Pekka Kähkipuro Kehitysjohtaja, FT Oliotietokannat Nääsvillen Oliopäivät 2004 15.12.2004 Pekka Kähkipuro Kehitysjohtaja, FT pekka.kahkipuro@sysopen.fi Oliotietokanta Idea: pysyvän tiedon tallentaminen suoraan oliomuodossa Tietosisältö ja

Lisätiedot

TIETOKANNAT: MYSQL & POSTGRESQL Seminaarityö

TIETOKANNAT: MYSQL & POSTGRESQL Seminaarityö TIETOKANNAT: MYSQL & POSTGRESQL Seminaarityö Tekijät: Eemeli Honkonen Joni Metsälä Työ palautettu: SISÄLLYSLUETTELO: 1 SEMINAARITYÖN KUVAUS... 3 2 TIETOKANTA... 3 2.1 MITÄ TIETOKANNAT SITTEN OVAT?... 3

Lisätiedot

Kysymys: Voidaanko graafi piirtää tasoon niin, että sen viivat eivät risteä muualla kuin pisteiden kohdalla?

Kysymys: Voidaanko graafi piirtää tasoon niin, että sen viivat eivät risteä muualla kuin pisteiden kohdalla? 7.7. Tasograafit Graafi voidaan piirtää mielivaltaisen monella tavalla. Graafin ominaisuudet voivat näkyä selkeästi jossain piirtämistavoissa, mutta ei toisessa. Eräs tärkeä graafiryhmä, pintagraafit,

Lisätiedot

Paikkatietokantojen EUREFmuunnoksen

Paikkatietokantojen EUREFmuunnoksen Paikkatietokantojen EUREFmuunnoksen käytännön toteutus EUREF-II teemapäivä Jukka Vänttinen Sisältö Koordinaattimuunnokset Teklan ohjelmistoissa Muunnostyön valmistelu ja vaiheistus Muunnokset tietojärjestelmän

Lisätiedot

isomeerejä yhteensä yhdeksän kappaletta.

isomeerejä yhteensä yhdeksän kappaletta. Tehtävä 2 : 1 Esitetään aluksi eräitä havaintoja. Jokaisella n Z + symbolilla H (n) merkitään kaikkien niiden verkkojen joukkoa, jotka vastaavat jotakin tehtävänannon ehtojen mukaista alkaanin hiiliketjua

Lisätiedot

Yleistä. Nyt käsitellään vain taulukko (array), joka on saman tyyppisten muuttujien eli alkioiden (element) kokoelma.

Yleistä. Nyt käsitellään vain taulukko (array), joka on saman tyyppisten muuttujien eli alkioiden (element) kokoelma. 2. Taulukot 2.1 Sisältö Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko operaation parametrina. Taulukko ja HelloWorld-ohjelma. Taulukko paluuarvona. 2.2 Yleistä

Lisätiedot

Helsingin yliopisto, Tietojenkäsittelytieteen laitos Tietokantojen perusteet, , H.Laine

Helsingin yliopisto, Tietojenkäsittelytieteen laitos Tietokantojen perusteet, , H.Laine Helsingin yliopisto, Tietojenkäsittelytieteen laitos Tietokantojen perusteet, 3.5.2007, H.Laine Kirjoita kuhunkin erilliseen vastauspaperiin kurssin nimi, oma nimesi, syntymäaikasi ja nimikirjoituksesi

Lisätiedot

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1 Ohjelmoinnin peruskurssi Y1 CSE-A1111 30.9.2015 CSE-A1111 Ohjelmoinnin peruskurssi Y1 30.9.2015 1 / 27 Mahdollisuus antaa luentopalautetta Goblinissa vasemmassa reunassa olevassa valikossa on valinta Luentopalaute.

Lisätiedot

Paikkatiedon käsittely 6. Kyselyn käsittely

Paikkatiedon käsittely 6. Kyselyn käsittely HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET UNIVERSITY OF HELSINKI Paikkatiedon käsittely 6. Kyselyn käsittely Antti Leino antti.leino@cs.helsinki.fi 1.2.2007 Tietojenkäsittelytieteen laitos Kysely indeksin

Lisätiedot

Action Request System

Action Request System Action Request System Manu Karjalainen Ohjelmistotuotantovälineet seminaari HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos 25.10.2000 Action Request System (ARS) Manu Karjalainen Ohjelmistotuotantovälineet

Lisätiedot

ATK tähtitieteessä. Osa 3 - IDL proseduurit ja rakenteet. 18. syyskuuta 2014

ATK tähtitieteessä. Osa 3 - IDL proseduurit ja rakenteet. 18. syyskuuta 2014 18. syyskuuta 2014 IDL - proseduurit Viimeksi käsiteltiin IDL:n interaktiivista käyttöä, mutta tämä on hyvin kömpelöä monimutkaisempia asioita tehtäessä. IDL:llä on mahdollista tehdä ns. proseduuri-tiedostoja,

Lisätiedot

SQL. ! nykystandardi SQL3 eli SQL'99. ! CREATE TABLE, ALTER TABLE ja DROP TABLE. ! CREATE VIEW ja DROP VIEW. ! CREATE INDEX ja DROP INDEX

SQL. ! nykystandardi SQL3 eli SQL'99. ! CREATE TABLE, ALTER TABLE ja DROP TABLE. ! CREATE VIEW ja DROP VIEW. ! CREATE INDEX ja DROP INDEX SQL - perusteet SQL - yleistä Esa Salmikangas InMics SE Oy versio 16.6.2003 SQL - perusteet 1 SQL - perusteet 2 SQL Structured Query Language SQL on tietokantojen käsittelyyn kehitetty kieli yleisimmät

Lisätiedot

Palvelun versio 1.0 Toimeenpanopalvelun tunnus (ks. M ) 10fea, 9c2f, 4760, 9095, f4f9295f4b19

Palvelun versio 1.0 Toimeenpanopalvelun tunnus (ks. M ) 10fea, 9c2f, 4760, 9095, f4f9295f4b19 1 5. Luokittamispalvelu 5.1. Palveluinformaatio Palvelun nimi Luokittamispalvelu Palvelun versio 1.0 Toimeenpanopalvelun tunnus (ks. M14.4.42) 10fea, 9c2f, 4760, 9095, f4f9295f4b19 5.2 Avainkäsitteet 5.2.1

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 10.2.2010 T-106.1208 Ohjelmoinnin perusteet Y 10.2.2010 1 / 43 Kertausta: listat Tyhjä uusi lista luodaan kirjoittamalla esimerkiksi lampotilat = [] (jolloin

Lisätiedot

HAAGA-HELIA Heti-09 1 (17) ICT05 Tiedonhallinta ja Tietokannat O.Virkki Suorituskyky

HAAGA-HELIA Heti-09 1 (17) ICT05 Tiedonhallinta ja Tietokannat O.Virkki Suorituskyky HAAGA-HELIA Heti-09 1 (17) Suorituskyky Suorituskyky... 2 Suorituskyvyn mittareita... 2 Tekninen ympäristö... 3 Suorituskyvyn optimointi... 4 Optimoinnin kohteet... 5 Fyysisen tason ratkaisut... 6 Indeksointi...

Lisätiedot

Tietorakenteet, laskuharjoitus 10, ratkaisuja. 1. (a) Seuraava algoritmi tutkii, onko jokin luku taulukossa monta kertaa:

Tietorakenteet, laskuharjoitus 10, ratkaisuja. 1. (a) Seuraava algoritmi tutkii, onko jokin luku taulukossa monta kertaa: Tietorakenteet, laskuharjoitus 10, ratkaisuja 1. (a) Seuraava algoritmi tutkii, onko jokin luku taulukossa monta kertaa: SamaLuku(T ) 2 for i = 1 to T.length 1 3 if T [i] = = T [i + 1] 4 return True 5

Lisätiedot

CSE-A1200 Tietokannat

CSE-A1200 Tietokannat CSE-A1200 Tietokannat 23.2.2016 CSE-A1200 Tietokannat 23.2.2016 1 / 36 Oppimistavoitteet: tämän luennon jälkeen Tunnet SQL:n perusteet ja osaat tehdä yksinkertaisia SQL-kyselyitä, esimerkiksi hakea relaatiosta

Lisätiedot

7/20: Paketti kasassa ensimmäistä kertaa

7/20: Paketti kasassa ensimmäistä kertaa Ohjelmointi 1 / syksy 2007 7/20: Paketti kasassa ensimmäistä kertaa Paavo Nieminen nieminen@jyu.fi Tietotekniikan laitos Informaatioteknologian tiedekunta Jyväskylän yliopisto Ohjelmointi 1 / syksy 2007

Lisätiedot

TIES592 Monitavoiteoptimointi ja teollisten prosessien hallinta. Yliassistentti Jussi Hakanen syksy 2010

TIES592 Monitavoiteoptimointi ja teollisten prosessien hallinta. Yliassistentti Jussi Hakanen syksy 2010 TIES592 Monitavoiteoptimointi ja teollisten prosessien hallinta Yliassistentti Jussi Hakanen jussi.hakanen@jyu.fi syksy 2010 Optimaalisuus: objektiavaruus f 2 min Z = f(s) Parhaat arvot alhaalla ja vasemmalla

Lisätiedot

2016/06/21 13:27 1/10 Laskentatavat

2016/06/21 13:27 1/10 Laskentatavat 2016/06/21 13:27 1/10 Laskentatavat Laskentatavat Yleistä - vaakageometrian suunnittelusta Paalu Ensimmäinen paalu Ensimmäisen paalun tartuntapiste asetetaan automaattisesti 0.0:aan. Tämä voidaan muuttaa

Lisätiedot

Harjoitus 6 ( )

Harjoitus 6 ( ) Harjoitus 6 (30.4.2014) Tehtävä 1 Määritelmän (ks. luentomoniste s. 109) mukaan yleisen, muotoa min f(x) s.t. g(x) 0 h(x) = 0 x X (1) olevan optimointitehtävän Lagrangen duaali on max θ(u,v) s.t. u 0,

Lisätiedot

2.2. Kohteiden konstruktiivinen avaruusgeometrinen esitys

2.2. Kohteiden konstruktiivinen avaruusgeometrinen esitys .. Kohteiden konstruktiivinen avaruusgeometrinen esitys Avaruusgeometrinen esitys on käyttäjäriippuvainen ja vaati erikoismenetelmiä tai lopuksi konversion monikulmiomalliksi. Se on korkean tason esitys

Lisätiedot

1. Johdanto Todennäköisyysotanta Yksinkertainen satunnaisotanta Ositettu otanta Systemaattinen otanta...

1. Johdanto Todennäköisyysotanta Yksinkertainen satunnaisotanta Ositettu otanta Systemaattinen otanta... JHS 160 Paikkatiedon laadunhallinta Liite III: Otanta-asetelmat Sisällysluettelo 1. Johdanto... 2 2. Todennäköisyysotanta... 2 2.1 Yksinkertainen satunnaisotanta... 3 2.2 Ositettu otanta... 3 2.3 Systemaattinen

Lisätiedot

Tietotekniikan laitos Käki-projekti TIETOKANTASUUNNITELMA. 1. Johdanto

Tietotekniikan laitos Käki-projekti TIETOKANTASUUNNITELMA. 1. Johdanto Jyväskylän yliopisto SUUNNITELMA Tietotekniikan laitos 5.11.2003 Käki-projekti TIETOKANTASUUNNITELMA 1. Johdanto Suunnitelma sisältää kuvauksen tietokannan suunnittelussa käytetyistä periaatteista, kuvan

Lisätiedot

Vektorien pistetulo on aina reaaliluku. Esimerkiksi vektorien v = (3, 2, 0) ja w = (1, 2, 3) pistetulo on

Vektorien pistetulo on aina reaaliluku. Esimerkiksi vektorien v = (3, 2, 0) ja w = (1, 2, 3) pistetulo on 13 Pistetulo Avaruuksissa R 2 ja R 3 on totuttu puhumaan vektorien pituuksista ja vektoreiden välisistä kulmista. Kuten tavallista, näiden käsitteiden yleistäminen korkeampiulotteisiin avaruuksiin ei onnistu

Lisätiedot

Sisältö. 22. Taulukot. Yleistä. Yleistä

Sisältö. 22. Taulukot. Yleistä. Yleistä Sisältö 22. Taulukot Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko metodin parametrina. Taulukko ja HelloWorld-ohjelma. Taulukko paluuarvona. 22.1 22.2 Yleistä

Lisätiedot

Ympyrä 1/6 Sisältö ESITIEDOT: käyrä, kulma, piste, suora

Ympyrä 1/6 Sisältö ESITIEDOT: käyrä, kulma, piste, suora Ympyrä 1/6 Sisältö Ympyrä ja sen yhtälö Tason pisteet, jotka ovat vakioetäisyydellä kiinteästä pisteestä, muodostavat ympyrän eli ympyräviivan. Kiinteä piste on ympyrän keskipiste ja vakioetäisyys sen

Lisätiedot

Tietorakenteet ja algoritmit

Tietorakenteet ja algoritmit Tietorakenteet ja algoritmit Rekursio Rekursion käyttötapauksia Rekursio määritelmissä Rekursio ongelmanratkaisussa ja ohjelmointitekniikkana Esimerkkejä taulukolla Esimerkkejä linkatulla listalla Hanoin

Lisätiedot

Luento 3 Tietokannan tietosisällön suunnittelu

Luento 3 Tietokannan tietosisällön suunnittelu HAAGA-HELIA / Heti-09 1 (17) Luento 3 Tietokannan tietosisällön suunnittelu Tietojärjestelmän suunnitteluprosessi... 2 Tietokannan suunnittelun tavoitteet... 3 Tietokannan suunnitteluprosessi... 4 Käsitteellinen

Lisätiedot

Tietorakenteet ja algoritmit

Tietorakenteet ja algoritmit Tietorakenteet ja algoritmit Kurssin sisältö pääpiirteittäin Tarvittavat pohjatiedot Avainsanat Abstraktio Esimerkkiohjelman tehtäväkuvaus Abstraktion käyttö tehtävässä Abstrakti tietotyyppi Hyötyjä ADT:n

Lisätiedot

Kirjasto Relaatiotietokannat Kevät 2001. Auvinen Annemari Niemi Anu Passoja Jonna Pulli Jari Tersa Tiina

Kirjasto Relaatiotietokannat Kevät 2001. Auvinen Annemari Niemi Anu Passoja Jonna Pulli Jari Tersa Tiina Kirjasto Kevät 2001 Auvinen Annemari Niemi Anu Harjoitustyö 7.4.2001 Sisällysluettelo 1. Yleiskuvaus... 3 2. Vaatimukset... 3 2.1. Toiminnalliset... 3 2.1.1. Sisäänkirjautuminen... 3 2.1.2. Nimikkeiden

Lisätiedot

Luku 6. Dynaaminen ohjelmointi. 6.1 Funktion muisti

Luku 6. Dynaaminen ohjelmointi. 6.1 Funktion muisti Luku 6 Dynaaminen ohjelmointi Dynaamisessa ohjelmoinnissa on ideana jakaa ongelman ratkaisu pienempiin osaongelmiin, jotka voidaan ratkaista toisistaan riippumattomasti. Jokaisen osaongelman ratkaisu tallennetaan

Lisätiedot

815338A Ohjelmointikielten periaatteet Harjoitus 6 Vastaukset

815338A Ohjelmointikielten periaatteet Harjoitus 6 Vastaukset 815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 6 Vastaukset Harjoituksen aiheena on funktionaalinen ohjelmointi Scheme- ja Haskell-kielillä. Voit suorittaa ohjelmat osoitteessa https://ideone.com/

Lisätiedot

Algoritmi on periaatteellisella tasolla seuraava:

Algoritmi on periaatteellisella tasolla seuraava: Algoritmi on periaatteellisella tasolla seuraava: Dijkstra(V, E, l, v 0 ): S := { v 0 } D[v 0 ] := 0 for v V S do D[v] := l(v 0, v) end for while S V do valitse v V S jolle D[v] on minimaalinen S := S

Lisätiedot

1. a) Laadi suoraviivaisesti kyselyä vastaava optimoimaton kyselypuu.

1. a) Laadi suoraviivaisesti kyselyä vastaava optimoimaton kyselypuu. Helsingin yliopisto, Tietojenkäsittelytieteen laitos Kyselykielet, s 2006, Harjoitus 5 (7.12.2006) Tietokannassa on tietoa tavaroista ja niiden toimittajista: Supplier(sid,sname,city,address,phone,etc);

Lisätiedot

Algoritmit 1. Luento 13 Ti 23.2.2016. Timo Männikkö

Algoritmit 1. Luento 13 Ti 23.2.2016. Timo Männikkö Algoritmit 1 Luento 13 Ti 23.2.2016 Timo Männikkö Luento 13 Suunnittelumenetelmät Taulukointi Kapsäkkiongelma Ahne menetelmä Verkon lyhimmät polut Dijkstran menetelmä Verkon lyhin virittävä puu Kruskalin

Lisätiedot

Solmu 3/2001 Solmu 3/2001. Kevään 2001 ylioppilaskirjoitusten pitkän matematiikan kokeessa oli seuraava tehtävä:

Solmu 3/2001 Solmu 3/2001. Kevään 2001 ylioppilaskirjoitusten pitkän matematiikan kokeessa oli seuraava tehtävä: Frégier n lause Simo K. Kivelä Kevään 2001 ylioppilaskirjoitusten pitkän matematiikan kokeessa oli seuraava tehtävä: Suorakulmaisen kolmion kaikki kärjet sijaitsevat paraabelilla y = x 2 ; suoran kulman

Lisätiedot

Algoritmit 1. Luento 6 Ke Timo Männikkö

Algoritmit 1. Luento 6 Ke Timo Männikkö Algoritmit 1 Luento 6 Ke 25.1.2017 Timo Männikkö Luento 6 Järjestetty lista Listan toteutus dynaamisesti Linkitetyn listan operaatiot Vaihtoehtoisia listarakenteita Puurakenteet Binääripuu Järjestetty

Lisätiedot

Esimerkkejä vaativuusluokista

Esimerkkejä vaativuusluokista Esimerkkejä vaativuusluokista Seuraaville kalvoille on poimittu joitain esimerkkejä havainnollistamaan algoritmien aikavaativuusluokkia. Esimerkit on valittu melko mielivaltaisesti laitoksella tehtävään

Lisätiedot

Kirjoita kuhunkin erilliseen vastauspaperiin kurssin nimi, tentin päiväys, oma nimesi, syntymäaikasi ja nimikirjoituksesi.

Kirjoita kuhunkin erilliseen vastauspaperiin kurssin nimi, tentin päiväys, oma nimesi, syntymäaikasi ja nimikirjoituksesi. Helsingin yliopisto, Tietojenkäsittelytieteen laitos Tietokantojen perusteet, kurssikoe 4.3.2015, H. Laine Tehtävien mukana jaetaan sql-syntaksin tiivistelmä. Kirjoita kuhunkin erilliseen vastauspaperiin

Lisätiedot

TKHJ:ssä on yleensä komento create index, jolla taululle voidaan luoda hakemisto

TKHJ:ssä on yleensä komento create index, jolla taululle voidaan luoda hakemisto Indeksin luonti ja hävitys TKHJ:ssä on yleensä komento create index, jolla taululle voidaan luoda hakemisto Komentoa ei ole standardoitu ja niinpä sen muoto vaihtelee järjestelmäkohtaisesti Indeksi voidaan

Lisätiedot

private TreeMap nimella; private TreeMap numerolla;

private TreeMap<String, Opiskelija> nimella; private TreeMap<String, Opiskelija> numerolla; Tietorakenteet, laskuharjoitus 7, ratkaisuja 1. Opiskelijarekisteri-luokka saadaan toteutetuksi käyttämällä kahta tasapainotettua binäärihakupuuta. Toisen binäärihakupuun avaimina pidetään opiskelijoiden

Lisätiedot

A ja B pelaavat sarjan pelejä. Sarjan voittaja on se, joka ensin voittaa n peliä.

A ja B pelaavat sarjan pelejä. Sarjan voittaja on se, joka ensin voittaa n peliä. Esimerkki otteluvoiton todennäköisyys A ja B pelaavat sarjan pelejä. Sarjan voittaja on se, joka ensin voittaa n peliä. Yksittäisessä pelissä A voittaa todennäköisyydellä p ja B todennäköisyydellä q =

Lisätiedot

Oliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä

Oliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä Oliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä Matti Luukkainen 10.12.2009 Tässä esitetty esimerkki on mukaelma ja lyhennelmä Robert Martinin kirjasta Agile and Iterative Development löytyvästä

Lisätiedot

Harjoitustyö. CSE-A1200 Tietokannat! Jasse Lahdenperä! 345396! killedwhale@kapsi.fi! Henri Nurmi! 345545! henri.nurmi@kapsi.fi!

Harjoitustyö. CSE-A1200 Tietokannat! Jasse Lahdenperä! 345396! killedwhale@kapsi.fi! Henri Nurmi! 345545! henri.nurmi@kapsi.fi! Harjoitustyö CSE-A1200 Tietokannat Jasse Lahdenperä 345396 killedwhale@kapsi.fi Henri Nurmi 345545 henri.nurmi@kapsi.fi 1 Ensimmäisen vaiheen ratkaisu ER-Kaavio 2 Relaatiomalli: Loanable(Id, MaximumLoanTime)

Lisätiedot

Harjoitus 6 ( )

Harjoitus 6 ( ) Harjoitus 6 (21.4.2015) Tehtävä 1 Määritelmän (ks. luentomoniste s. 109) mukaan yleisen, muotoa min f(x) s. t. g(x) 0 h(x) = 0 x X olevan optimointitehtävän Lagrangen duaali on missä max θ(u, v) s. t.

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 16.3.2009 T-106.1208 Ohjelmoinnin perusteet Y 16.3.2009 1 / 40 Kertausta: tiedostosta lukeminen Aluksi käsiteltävä tiedosto pitää avata: tiedostomuuttuja = open("teksti.txt","r")

Lisätiedot

Tietokannan suunnittelu

Tietokannan suunnittelu HELIA TIKO-05 1 (12) ICT03D Tieto ja tiedon varastointi Tietokannan suunnittelu Tietokannan suunnitteluprosessi... 2 Tavoitteet...2 Tietojärjestelmän suunnitteluprosessi...3 Abstraktiotasot tietokannan

Lisätiedot

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. FT Ari Viinikainen

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. FT Ari Viinikainen TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op FT Ari Viinikainen Tietokoneen rakenne Keskusyksikkö, CPU Keskusmuisti Aritmeettislooginen yksikkö I/O-laitteet Kontrolliyksikkö Tyypillinen Von Neumann

Lisätiedot

= 5! 2 2!3! = = 10. Edelleen tästä joukosta voidaan valita kolme särmää yhteensä = 10! 3 3!7! = = 120

= 5! 2 2!3! = = 10. Edelleen tästä joukosta voidaan valita kolme särmää yhteensä = 10! 3 3!7! = = 120 Tehtävä 1 : 1 Merkitään jatkossa kirjaimella H kaikkien solmujoukon V sellaisten verkkojen kokoelmaa, joissa on tasan kolme särmää. a) Jokainen verkko G H toteuttaa väitteen E(G) [V]. Toisaalta jokainen

Lisätiedot

Olkoon seuraavaksi G 2 sellainen tasan n solmua sisältävä suunnattu verkko,

Olkoon seuraavaksi G 2 sellainen tasan n solmua sisältävä suunnattu verkko, Tehtävä 1 : 1 a) Olkoon G heikosti yhtenäinen suunnattu verkko, jossa on yhteensä n solmua. Määritelmän nojalla verkko G S on yhtenäinen, jolloin verkoksi T voidaan valita jokin verkon G S virittävä alipuu.

Lisätiedot

Ohjelmistojen mallintaminen Olioiden yhteistyö. 18.11.2008 Harri Laine 1

Ohjelmistojen mallintaminen Olioiden yhteistyö. 18.11.2008 Harri Laine 1 Ohjelmistojen mallintaminen Olioiden yhteistyö 18.11.2008 Harri Laine 1 Olioiden yhteistyö Oliokeskeisen ohjelmistonäkemyksen mukaan ohjelmiston palvelut tuotetaan olioiden yhteistyön tuloksena. Ohjelmisto

Lisätiedot

Muita tietokantaobjekteja. Näkymät, synonyymit, indeksointi, valtuudet ja systeemihakemisto

Muita tietokantaobjekteja. Näkymät, synonyymit, indeksointi, valtuudet ja systeemihakemisto Muita tietokantaobjekteja Näkymät, synonyymit, indeksointi, valtuudet ja systeemihakemisto Näkymät Näkymä (view) on looginen näyte tietokannan tauluista tai näkymistä Näkymä ei voi sisältää SELECT INTO,

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 2.3.2009 T-106.1208 Ohjelmoinnin perusteet Y 2.3.2009 1 / 28 Puhelinluettelo, koodi def lue_puhelinnumerot(): print "Anna lisattavat nimet ja numerot." print

Lisätiedot

SELECT-lauseen perusmuoto

SELECT-lauseen perusmuoto SQL: Tiedonhaku SELECT-lauseen perusmuoto SELECT FROM WHERE ; määrittää ne sarakkeet, joiden halutaan näkyvän kyselyn vastauksessa sisältää

Lisätiedot

Relaatioalgebra. Relaatioalgebra. Relaatioalgebra. Relaatioalgebra - erotus (set difference) Kyselyt:

Relaatioalgebra. Relaatioalgebra. Relaatioalgebra. Relaatioalgebra - erotus (set difference) Kyselyt: Relaatiomalliin liittyy malli tietokannan käsittelystä Tietokannasta pitää pystyä hakemaan tietoa ja toisaalta tietokantaa on ylläpidettävä Tietokannan käsittelyn malli relaatioalgebra määrittelee operaatiot,

Lisätiedot

Luento 6: Piilopinnat ja Näkyvyys

Luento 6: Piilopinnat ja Näkyvyys Tietokonegrafiikan perusteet T-111.4300 3 op Luento 6: Piilopinnat ja Näkyvyys Janne Kontkanen Geometrinen mallinnus / 1 Johdanto Piilopintojen poisto-ongelma Syntyy kuvattaessa 3-ulotteista maailmaa 2-ulotteisella

Lisätiedot

TIES592 Monitavoiteoptimointi ja teollisten prosessien hallinta. Yliassistentti Jussi Hakanen syksy 2010

TIES592 Monitavoiteoptimointi ja teollisten prosessien hallinta. Yliassistentti Jussi Hakanen syksy 2010 TIES592 Monitavoiteoptimointi ja teollisten prosessien hallinta Yliassistentti Jussi Hakanen jussi.hakanen@jyu.fi syksy 2010 Evoluutiopohjainen monitavoiteoptimointi MCDM ja EMO Monitavoiteoptimointi kuuluu

Lisätiedot

Formaalit menetelmät: Kirjaston formalisointi Z-kuvauskielellä

Formaalit menetelmät: Kirjaston formalisointi Z-kuvauskielellä Formaalit menetelmät: Kirjaston formalisointi Z-kuvauskielellä 7.5.2002 Annemari Auvinen Anu Niemi Sisällysluettelo 1 Perustana olevat käyttötapaukset... 1 1.1 Käyttäjäryhmät... 1 1.2 Järjestelmään sisäänkirjautuminen...

Lisätiedot

Datatähti 2000: alkukilpailun ohjelmointitehtävä

Datatähti 2000: alkukilpailun ohjelmointitehtävä Datatähti 2000: alkukilpailun ohjelmointitehtävä 1 Lyhyt tehtävän kuvaus Tehtävänä on etsiä puurakenteen esiintymiä kirjaintaulukosta. Ohjelmasi saa syötteenä kirjaintaulukon ja puun, jonka jokaisessa

Lisätiedot

Matematiikan tukikurssi

Matematiikan tukikurssi Matematiikan tukikurssi Kurssikerta 7 1 Useamman muuttujan funktion raja-arvo Palautetaan aluksi mieliin yhden muuttujan funktion g(x) raja-arvo g(x). x a Tämä raja-arvo kertoo, mitä arvoa funktio g(x)

Lisätiedot

PROSEDUURIT, FUNKTIOT JA HERÄTTIMET - ESIMERKKEINÄ ORACLE, SQL SERVER, MYSQL JA OCELOT JOUNI HUOTARI K2009

PROSEDUURIT, FUNKTIOT JA HERÄTTIMET - ESIMERKKEINÄ ORACLE, SQL SERVER, MYSQL JA OCELOT JOUNI HUOTARI K2009 PROSEDUURIT, FUNKTIOT JA HERÄTTIMET - ESIMERKKEINÄ ORACLE, SQL SERVER, MYSQL JA OCELOT JOUNI HUOTARI K2009 PROSEDUURIT Ohjelmamoduuleita, jotka voidaan tallettaa tietokantaan (DBMS:n tietohakemistoon)

Lisätiedot

Esimerkkiprojekti. Mallivastauksen löydät Wroxin www-sivuilta. Kenttä Tyyppi Max.pituus Rajoitukset/Kommentit

Esimerkkiprojekti. Mallivastauksen löydät Wroxin www-sivuilta. Kenttä Tyyppi Max.pituus Rajoitukset/Kommentit Liite E - Esimerkkiprojekti E Esimerkkiprojekti Olet lukenut koko kirjan. Olet sulattanut kaiken tekstin, Nyt on aika soveltaa oppimiasi uusia asioita pienen, mutta täydellisesti muotoiltuun, projektiin.

Lisätiedot

Ne liittyvät samaan henkilöön, paikkaan, projektiin, asiaan, asiakkaaseen, tapahtumaan tai seikkaan.

Ne liittyvät samaan henkilöön, paikkaan, projektiin, asiaan, asiakkaaseen, tapahtumaan tai seikkaan. 6. Asiakirjapalvelu 6.1 PALVELUINFORMAATIO Palvelun nimi Asiakirjapalvelu Palvelun versio 1.0 Tunnus (ks. M14.4.42) 6.2 Avainkäsitteet 6.2.1 Tarkoituksenmukainen asiakirjakoosteiden muodostaminen MoReq2010

Lisätiedot

verkkojen G ja H välinen isomorfismi. Nyt kuvaus f on bijektio, joka säilyttää kyseisissä verkoissa esiintyvät särmät, joten pari

verkkojen G ja H välinen isomorfismi. Nyt kuvaus f on bijektio, joka säilyttää kyseisissä verkoissa esiintyvät särmät, joten pari Tehtävä 9 : 1 Merkitään kirjaimella G tehtäväpaperin kuvan vasemmanpuoleista verkkoa sekä kirjaimella H tehtäväpaperin kuvan oikeanpuoleista verkkoa. Kuvan perusteella voidaan havaita, että verkko G on

Lisätiedot

Tietokannat. CREATE TABLE table(col1,col2,... ); Luo uuden taulun. CREATE TABLE opiskelijat(opnumero,etunimi,sukunimi);

Tietokannat. CREATE TABLE table(col1,col2,... ); Luo uuden taulun. CREATE TABLE opiskelijat(opnumero,etunimi,sukunimi); Tietokannat SQL-peruskomentojen pikaopas CREATE TABLE table(col1,col2,... ); Luo uuden taulun. CREATE TABLE opiskelijat(opnumero,etunimi,sukunimi); INSERT INTO table VALUES(val1,val2,... ); Lisää tauluun

Lisätiedot

ECDL Tietokannat. Copyright 2015 ECDL Foundation ECDL Tietokannat Sivu 1 / 7

ECDL Tietokannat. Copyright 2015 ECDL Foundation ECDL Tietokannat Sivu 1 / 7 ECDL Tietokannat Copyright 2015 ECDL Foundation ECDL Tietokannat Sivu 1 / 7 Tavoite Tässä esitellään tutkintovaatimukset moduulille ECDL Tietokannat, joka määrittelee tarvittavat tiedot ja taidot näyttökokeen

Lisätiedot

Tietokantajärjestelmät spatiaalisen tiedon louhinnassa

Tietokantajärjestelmät spatiaalisen tiedon louhinnassa Tietokantajärjestelmät spatiaalisen tiedon louhinnassa Mikko Valjento Helsinki 18. huhtikuuta 2003 Esitelmä, Spatiaalisen tiedon louhinnan seminaari HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Lisätiedot

Matematiikan johdantokurssi, syksy 2016 Harjoitus 11, ratkaisuista

Matematiikan johdantokurssi, syksy 2016 Harjoitus 11, ratkaisuista Matematiikan johdantokurssi, syksy 06 Harjoitus, ratkaisuista. Valitse seuraaville säännöille mahdollisimman laajat lähtöjoukot ja sopivat maalijoukot niin, että syntyy kahden muuttujan funktiot (ks. monisteen

Lisätiedot

Lauseen erikoistapaus on ollut kevään 2001 ylioppilaskirjoitusten pitkän matematiikan kokeessa seuraavassa muodossa:

Lauseen erikoistapaus on ollut kevään 2001 ylioppilaskirjoitusten pitkän matematiikan kokeessa seuraavassa muodossa: Simo K. Kivelä, 13.7.004 Frégier'n lause Toisen asteen käyrillä ellipseillä, paraabeleilla, hyperbeleillä ja niiden erikoistapauksilla on melkoinen määrä yksinkertaisia säännöllisyysominaisuuksia. Eräs

Lisätiedot

CSE-A1200 Tietokannat

CSE-A1200 Tietokannat CSE-A1200 Tietokannat 29.3.2016 CSE-A1200 Tietokannat 29.3.2016 1 / 40 Oppimistavoitteet: tämän luennon jälkeen Tiedät, miten tietokannan relaatioiden (taulujen) määrittelyt kirjoitetaan SQL:llä. Osaat

Lisätiedot

Navistools Standard. Navistools

Navistools Standard. Navistools Navistools Standard Navistools on Naviswork pohjainen Asset management sovellus, jota käytetään laitoksen, infrakohteen tai rakennuksen elinkaarenaikasen tiedonhallintaan, suunnittelusta työmaavaiheen

Lisätiedot

Algebralliset tietotyypit ym. TIEA341 Funktio ohjelmointi 1 Syksy 2005

Algebralliset tietotyypit ym. TIEA341 Funktio ohjelmointi 1 Syksy 2005 Algebralliset tietotyypit ym. TIEA341 Funktio ohjelmointi 1 Syksy 2005 Tällä luennolla Algebralliset tietotyypit Hahmonsovitus (pattern matching) Primitiivirekursio Esimerkkinä binäärinen hakupuu Muistattehan...

Lisätiedot

Tiedonhallintajärjestelmän rakenne ja Suorituskyky

Tiedonhallintajärjestelmän rakenne ja Suorituskyky HELIA TIKO-05 1 (20) Tiedonhallintajärjestelmän rakenne ja Suorituskyky Tiedonhallintajärjestelmän rakenne... 2 SQL-käsittelijä... 3 Parsinta (Parser)... 3 Optimointi (Optimizer)... 3 Tilan käsittelijä...

Lisätiedot

TIE448 Kääntäjätekniikka, syksy Antti-Juhani Kaijanaho. 27. lokakuuta 2009

TIE448 Kääntäjätekniikka, syksy Antti-Juhani Kaijanaho. 27. lokakuuta 2009 TIE448 Kääntäjätekniikka, syksy 2009 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 27. lokakuuta 2009 Sisällys Sisällys Seuraava deadline Vaihe D tiistai 10.11. klo 10 välikielen generointi Kääntäjän rakenne

Lisätiedot