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

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

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

Algoritmit 2. Luento 6 Ke Timo Männikkö

Algoritmit 2. Luento 6 Ke Timo Männikkö Algoritmit 2 Luento 6 Ke 29.3.2017 Timo Männikkö Luento 6 B-puun operaatiot B-puun muunnelmia Nelipuu Trie-rakenteet Standarditrie Pakattu trie Algoritmit 2 Kevät 2017 Luento 6 Ke 29.3.2017 2/31 B-puu

Lisätiedot

Algoritmit 2. Luento 6 To Timo Männikkö

Algoritmit 2. Luento 6 To Timo Männikkö Algoritmit 2 Luento 6 To 28.3.2019 Timo Männikkö Luento 6 B-puun operaatiot Nelipuu Trie-rakenteet Standarditrie Pakattu trie Algoritmit 2 Kevät 2019 Luento 6 To 28.3.2019 2/30 B-puu 40 60 80 130 90 100

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

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

Algoritmit 2. Luento 7 Ti Timo Männikkö

Algoritmit 2. Luento 7 Ti Timo Männikkö Algoritmit 2 Luento 7 Ti 4.4.2017 Timo Männikkö Luento 7 Joukot Joukko-operaatioita Joukkojen esitystapoja Alkiovieraat osajoukot Toteutus puurakenteena Algoritmit 2 Kevät 2017 Luento 7 Ti 4.4.2017 2/26

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

Tiedonhallinnan perusteet. Viikko 1 Jukka Lähetkangas

Tiedonhallinnan perusteet. Viikko 1 Jukka Lähetkangas Tiedonhallinnan perusteet Viikko 1 Jukka Lähetkangas Kurssilla käytävät asiat Tietokantojen toimintafilosofian ja -tekniikan perusteet Tiedonsäilönnän vaihtoehdot Tietokantojen suunnitteleminen internetiä

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

Datatähti 2019 loppu

Datatähti 2019 loppu Datatähti 2019 loppu task type time limit memory limit A Summa standard 1.00 s 512 MB B Bittijono standard 1.00 s 512 MB C Auringonlasku standard 1.00 s 512 MB D Binääripuu standard 1.00 s 512 MB E Funktio

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

Algoritmit 2. Luento 2 To Timo Männikkö

Algoritmit 2. Luento 2 To Timo Männikkö Algoritmit 2 Luento 2 To 14.3.2019 Timo Männikkö Luento 2 Tietorakenteet Lineaarinen lista, binääripuu Prioriteettijono Kekorakenne Keko-operaatiot Keon toteutus taulukolla Algoritmit 2 Kevät 2019 Luento

Lisätiedot

HELIA 1 (11) Outi Virkki Tiedonhallinta 4.11.2000

HELIA 1 (11) Outi Virkki Tiedonhallinta 4.11.2000 HELIA 1 (11) Access 1 ACCESS...2 Yleistä...2 Access-tietokanta...3 Perusobjektit...3 Taulu...5 Kysely...7 Lomake...9 Raportti...10 Makro...11 Moduli...11 HELIA 2 (11) ACCESS Yleistä Relaatiotietokantatyyppinen

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

Tietokantojen suunnittelu, relaatiokantojen perusteita

Tietokantojen suunnittelu, relaatiokantojen perusteita Tietokantojen suunnittelu, relaatiokantojen perusteita A277, Tietokannat Teemu Saarelainen teemu.saarelainen@kyamk.fi Lähteet: Leon Atkinson: core MySQL Ari Hovi: SQL-opas TTY:n tietokantojen perusteet-kurssin

Lisätiedot

Helsingin yliopisto/tktl Kyselykielet, s 2006 Optimointi Harri Laine 1. Kyselyn optimointi. Kyselyn optimointi

Helsingin yliopisto/tktl Kyselykielet, s 2006 Optimointi Harri Laine 1. Kyselyn optimointi. Kyselyn optimointi Miksi optimoidaan Relaatiotietokannan kyselyt esitetään käytännössä SQLkielellä. Kieli määrittää halutun tuloksen, ei sitä miten tulos muodostetaan (deklaratiivinen kyselykieli) Tietokannan käsittelyoperaatiot

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

Algoritmit 2. Luento 3 Ti Timo Männikkö

Algoritmit 2. Luento 3 Ti Timo Männikkö Algoritmit 2 Luento 3 Ti 20.3.2018 Timo Männikkö Luento 3 Järjestäminen eli lajittelu Kekorakenne Kekolajittelu Hajautus Yhteentörmäysten käsittely Ketjutus Algoritmit 2 Kevät 2018 Luento 3 Ti 20.3.2018

Lisätiedot

Algoritmit 2. Luento 4 To Timo Männikkö

Algoritmit 2. Luento 4 To Timo Männikkö Algoritmit 2 Luento 4 To 21.3.2019 Timo Männikkö Luento 4 Hajautus Yhteentörmäysten käsittely Avoin osoitteenmuodostus Hajautusfunktiot Puurakenteet Solmujen läpikäynti Algoritmit 2 Kevät 2019 Luento 4

Lisätiedot

Taulukot. Jukka Harju, Jukka Juslin 2006 1

Taulukot. Jukka Harju, Jukka Juslin 2006 1 Taulukot Jukka Harju, Jukka Juslin 2006 1 Taulukot Taulukot ovat olioita, jotka auttavat organisoimaan suuria määriä tietoa. Käsittelylistalla on: Taulukon tekeminen ja käyttö Rajojen tarkastus ja kapasiteetti

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

Algoritmit 2. Luento 5 Ti Timo Männikkö

Algoritmit 2. Luento 5 Ti Timo Männikkö Algoritmit 2 Luento 5 Ti 26.3.2019 Timo Männikkö Luento 5 Puurakenteet B-puu B-puun korkeus B-puun operaatiot B-puun muunnelmia Algoritmit 2 Kevät 2019 Luento 5 Ti 26.3.2019 2/34 B-puu B-puut ovat tasapainoisia

Lisätiedot

Algoritmit 2. Luento 3 Ti Timo Männikkö

Algoritmit 2. Luento 3 Ti Timo Männikkö Algoritmit 2 Luento 3 Ti 21.3.2017 Timo Männikkö Luento 3 Järjestäminen eli lajittelu Kekorakenne Kekolajittelu Hajautus Yhteentörmäysten käsittely Ketjutus Algoritmit 2 Kevät 2017 Luento 3 Ti 21.3.2017

Lisätiedot

Algoritmit 2. Luento 2 Ke Timo Männikkö

Algoritmit 2. Luento 2 Ke Timo Männikkö Algoritmit 2 Luento 2 Ke 15.3.2017 Timo Männikkö Luento 2 Tietorakenteet Lineaarinen lista, binääripuu Prioriteettijono Kekorakenne Keko-operaatiot Keon toteutus taulukolla Algoritmit 2 Kevät 2017 Luento

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 25.2.2009 T-106.1208 Ohjelmoinnin perusteet Y 25.2.2009 1 / 34 Syötteessä useita lukuja samalla rivillä Seuraavassa esimerkissä käyttäjä antaa useita lukuja samalla

Lisätiedot

Algoritmit 1. Luento 10 Ke Timo Männikkö

Algoritmit 1. Luento 10 Ke Timo Männikkö Algoritmit 1 Luento 10 Ke 14.2.2018 Timo Männikkö Luento 10 Algoritminen ongelmanratkaisu Suunnittelumenetelmät Raaka voima Järjestäminen eli lajittelu Kuplalajittelu Lisäyslajittelu Valintalajittelu Permutaatiot

Lisätiedot

Relaatiomalli ja -tietokanta

Relaatiomalli ja -tietokanta Relaatiomalli ja -tietokanta > Edgar. F. (Ted) Codd, IBM, 1969 < A Relational Model of Data for Large Shared Data Banks Communications of the ACM, Vol. 13, No. 6, June 1970, pp. 377-387. > 70-luvun lopulla

Lisätiedot

Tietorakenteet, laskuharjoitus 7, ratkaisuja

Tietorakenteet, laskuharjoitus 7, ratkaisuja Tietorakenteet, laskuharjoitus, ratkaisuja. Seuraava kuvasarja näyttää B + -puun muutokset lisäysten jälkeen. Avaimet ja 5 mahtuvat lehtisolmuihin, joten niiden lisäys ei muuta puun rakennetta. Avain 9

Lisätiedot

Algoritmit 2. Luento 4 Ke Timo Männikkö

Algoritmit 2. Luento 4 Ke Timo Männikkö Algoritmit 2 Luento 4 Ke 22.3.2017 Timo Männikkö Luento 4 Hajautus Yhteentörmäysten käsittely Avoin osoitteenmuodostus Hajautusfunktiot Puurakenteet Solmujen läpikäynti Algoritmit 2 Kevät 2017 Luento 4

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

Tietokanta (database)

Tietokanta (database) Tietokanta Tietokanta (database) jotakin käyttötarkoitusta varten laadittu kokoelma toisiinsa liittyviä säilytettäviä tietoja 1 Tiedosto Ohjelmointikielissä apumuistiin tallennettuja tietoja käsitellään

Lisätiedot

Helsingin yliopisto/tktl DO Tietokantojen perusteet, s 2000 Johdanto & yleistä Harri Laine 1. Tietokanta. Tiedosto

Helsingin yliopisto/tktl DO Tietokantojen perusteet, s 2000 Johdanto & yleistä Harri Laine 1. Tietokanta. Tiedosto Tietokanta Tiedosto Tietokanta (database) jotakin käyttötarkoitusta varten laadittu kokoelma toisiinsa liittyviä säilytettäviä tietoja Ohjelmointikielissä apumuistiin tallennettuja tietoja käsitellään

Lisätiedot

Tieto- ja tallennusrakenteet

Tieto- ja tallennusrakenteet Tieto- ja tallennusrakenteet Sisältö Tyyppi, abstrakti tietotyyppi, abstraktin tietotyypin toteutus Tallennusrakenteet Taulukko Linkitetty rakenne Abstraktit tietotyypit Lista (Puu) (Viimeisellä viikolla)

Lisätiedot

Ohjelmoinnin perusteet Y Python

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

Lisätiedot

TIEDONHALLINTA - SYKSY Luento 11. Hannu Markkanen /10/12 Helsinki Metropolia University of Applied Sciences

TIEDONHALLINTA - SYKSY Luento 11. Hannu Markkanen /10/12 Helsinki Metropolia University of Applied Sciences TIEDONHALLINTA - SYKSY 2011 Kurssikoodi: Saapumisryhmä: Luento 11 TU00AA48-2002 TU10S1E Hannu Markkanen 22.11.2011 9/10/12 Helsinki Metropolia University of Applied Sciences 1 Indeksit Indeksit Taulun

Lisätiedot

jotakin käyttötarkoitusta varten laadittu kokoelma toisiinsa liittyviä säilytettäviä tietoja

jotakin käyttötarkoitusta varten laadittu kokoelma toisiinsa liittyviä säilytettäviä tietoja Tietokanta Tietokanta (database) jotakin käyttötarkoitusta varten laadittu kokoelma toisiinsa liittyviä säilytettäviä tietoja mikä tahansa tietokokoelma? --> erityispiirteitä Tietokanta vs. tiedosto 1

Lisätiedot

HELIA 1 (15) Outi Virkki Tiedonhallinta

HELIA 1 (15) Outi Virkki Tiedonhallinta HELIA 1 (15) Luento Suorituskyvyn optimointi... 2 Tiedonhallintajärjestelmän rakenne... 3 Suunnittele... 4 SQL-komentojen viritys... 5 Tekninen ympäristö... 6 Fyysisen tason ratkaisut... 7 Indeksit...

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

Tietokannan hallinta. Kevät 2004 Jan Lindström R&G Chapter 1

Tietokannan hallinta. Kevät 2004 Jan Lindström R&G Chapter 1 Tietokannan hallinta Kevät 2004 Jan Lindström R&G Chapter 1 Tietokannan hallinta 1. Johdanto (käsitteitä) 2. Tietokannan talletusrakenteet 3. Tietokannan hakemistorakenteet 4. Kyselyiden käsittely ja optimointi

Lisätiedot

TKT20001 Tietorakenteet ja algoritmit Erilliskoe , malliratkaisut (Jyrki Kivinen)

TKT20001 Tietorakenteet ja algoritmit Erilliskoe , malliratkaisut (Jyrki Kivinen) TKT0001 Tietorakenteet ja algoritmit Erilliskoe 5.1.01, malliratkaisut (Jyrki Kivinen) 1. [1 pistettä] (a) Esitä algoritmi, joka poistaa kahteen suuntaan linkitetystä järjestämättömästä tunnussolmullisesta

Lisätiedot

Algoritmit 2. Luento 5 Ti Timo Männikkö

Algoritmit 2. Luento 5 Ti Timo Männikkö Algoritmit 2 Luento 5 Ti 28.3.2017 Timo Männikkö Luento 5 Puurakenteet B-puu B-puun korkeus B-puun operaatiot Algoritmit 2 Kevät 2017 Luento 5 Ti 28.3.2017 2/29 B-puu Algoritmit 2 Kevät 2017 Luento 5 Ti

Lisätiedot

PN-puu. Helsinki Seminaari: Tietokannat nyt HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

PN-puu. Helsinki Seminaari: Tietokannat nyt HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos PN-puu Erno Härkönen Helsinki 24.10.2006 Seminaari: Tietokannat nyt HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET UNIVERSITY OF HELSINKI Tiedekunta/Osasto

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

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

58131 Tietorakenteet ja algoritmit (kevät 2016) Ensimmäinen välikoe, malliratkaisut

58131 Tietorakenteet ja algoritmit (kevät 2016) Ensimmäinen välikoe, malliratkaisut 58131 Tietorakenteet ja algoritmit (kevät 2016) Ensimmäinen välikoe, malliratkaisut 1. Palautetaan vielä mieleen O-notaation määritelmä. Olkoon f ja g funktioita luonnollisilta luvuilta positiivisille

Lisätiedot

Arkkitehtuurikuvaus. Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy. Ryhmä 14

Arkkitehtuurikuvaus. Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy. Ryhmä 14 Arkkitehtuurikuvaus Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy Ryhmä 14 Muutoshistoria Versio Pvm Päivittäjä Muutos 0.4 1.11.2007 Matti Eerola 0.3 18.10.2007 Matti Eerola 0.2

Lisätiedot

Algoritmit 1. Luento 3 Ti Timo Männikkö

Algoritmit 1. Luento 3 Ti Timo Männikkö Algoritmit 1 Luento 3 Ti 17.1.2017 Timo Männikkö Luento 3 Algoritmin analysointi Rekursio Lomituslajittelu Aikavaativuus Tietorakenteet Pino Algoritmit 1 Kevät 2017 Luento 3 Ti 17.1.2017 2/27 Algoritmien

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

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

Digiroad-aineiston 2018_01 haltuunotto

Digiroad-aineiston 2018_01 haltuunotto Digiroad-aineiston 2018_01 haltuunotto Jukka Rahkonen, http://latuviitta.org Lisenssi https://creativecommons.org/licenses/by/4.0/ Viimeksi muokattu 24. toukokuuta 2018 Tämä on päivitetty versio vuonna

Lisätiedot

Opettajana Mika Sorsa, mika.sorsa@koudata.fi, HAMK:n ammatillisen opettajakoulutuksen opetusharjoittelija

Opettajana Mika Sorsa, mika.sorsa@koudata.fi, HAMK:n ammatillisen opettajakoulutuksen opetusharjoittelija Opettajana Mika Sorsa, mika.sorsa@koudata.fi, HAMK:n ammatillisen opettajakoulutuksen opetusharjoittelija Opintojaksolla: keskitytään relaatiotietokantojen teoriaan ja toimintaan SQL-kieli kyselykielenä

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

Concurrency - Rinnakkaisuus. Group: 9 Joni Laine Juho Vähätalo

Concurrency - Rinnakkaisuus. Group: 9 Joni Laine Juho Vähätalo Concurrency - Rinnakkaisuus Group: 9 Joni Laine Juho Vähätalo Sisällysluettelo 1. Johdanto... 3 2. C++ thread... 4 3. Python multiprocessing... 6 4. Java ExecutorService... 8 5. Yhteenveto... 9 6. Lähteet...

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

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

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

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

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

Pinot, jonot, yleisemmin sekvenssit: kokoelma peräkkäisiä alkioita (lineaarinen järjestys) Yleisempi tilanne: alkioiden hierarkia

Pinot, jonot, yleisemmin sekvenssit: kokoelma peräkkäisiä alkioita (lineaarinen järjestys) Yleisempi tilanne: alkioiden hierarkia Pinot, jonot, yleisemmin sekvenssit: kokoelma peräkkäisiä alkioita (lineaarinen järjestys) Yleisempi tilanne: alkioiden hierarkia Kukin alkio (viite) talletettuna solmuun (node) vastaa paikan käsitettä

Lisätiedot

Seminaari: Keskusmuistitietokannat. Keskusmuistitietokantojen samanaikaisuuden hallinta Ilkka Pullinen

Seminaari: Keskusmuistitietokannat. Keskusmuistitietokantojen samanaikaisuuden hallinta Ilkka Pullinen Seminaari: Keskusmuistitietokannat Keskusmuistitietokantojen samanaikaisuuden hallinta Ilkka Pullinen Sisältö Johdanto Esiteltävien menetelmien taustoja Hajautetun tietokannan spekuloiva samanaikaisuuden

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

Written by Administrator Monday, 05 September 2011 15:14 - Last Updated Thursday, 23 February 2012 13:36

Written by Administrator Monday, 05 September 2011 15:14 - Last Updated Thursday, 23 February 2012 13:36 !!!!! Relaatiotietokannat ovat vallanneet markkinat tietokantojen osalta. Flat file on jäänyt siinä kehityksessä jalkoihin. Mutta sillä on kuitenkin tiettyjä etuja, joten ei se ole täysin kuollut. Flat

Lisätiedot

Määrittelydokumentti

Määrittelydokumentti Määrittelydokumentti Aineopintojen harjoitustyö: Tietorakenteet ja algoritmit (alkukesä) Sami Korhonen 014021868 sami.korhonen@helsinki. Tietojenkäsittelytieteen laitos Helsingin yliopisto 23. kesäkuuta

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

HAAGA-HELIA Heti-09 1 (12) ICT05 Tiedonhallinta ja Tietokannat O.Virkki Näkymät

HAAGA-HELIA Heti-09 1 (12) ICT05 Tiedonhallinta ja Tietokannat O.Virkki Näkymät HAAGA-HELIA Heti-09 1 (12) Näkymät Näkymät... 2 Eri tyyppisiä relaatioita... 2 Taulu - Tallennettu relaatio... 2 Tulosrelaatio - Kyselyn tulos... 2 Näkymä - Virtuaalirelaatio... 2 Näkymien määrittely...

Lisätiedot

Algoritmit 1. Luento 10 Ke 11.2.2015. Timo Männikkö

Algoritmit 1. Luento 10 Ke 11.2.2015. Timo Männikkö Algoritmit 1 Luento 10 Ke 11.2.2015 Timo Männikkö Luento 10 Algoritminen ongelman ratkaisu Suunnittelumenetelmät Raaka voima Järjestäminen eli lajittelu Kuplalajittelu Väliinsijoituslajittelu Valintalajittelu

Lisätiedot

TIETOJEN TUONTI TIETOKANNASTA + PIVOT-TAULUKON JA OLAP-KUUTION TEKO

TIETOJEN TUONTI TIETOKANNASTA + PIVOT-TAULUKON JA OLAP-KUUTION TEKO TIETOJEN TUONTI TIETOKANNASTA + PIVOT-TAULUKON JA OLAP-KUUTION TEKO JOUNI HUOTARI 2005-2010 OLAP-OHJETEKSTIT KOPIOITU MICROSOFTIN OHJATUN OLAP-KUUTION TEKO-OHJEESTA ESIMERKIN KUVAUS JA OLAP-MÄÄRITELMÄ

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

Jouni Huotari OLAP-ohjetekstit kopioitu Microsoftin ohjatun OLAP-kuution teko-ohjeesta. Esimerkin kuvaus ja OLAP-määritelmä

Jouni Huotari OLAP-ohjetekstit kopioitu Microsoftin ohjatun OLAP-kuution teko-ohjeesta. Esimerkin kuvaus ja OLAP-määritelmä OLAP-kuution teko Jouni Huotari OLAP-ohjetekstit kopioitu Microsoftin ohjatun OLAP-kuution teko-ohjeesta Esimerkin kuvaus ja OLAP-määritelmä Tavoitteena on luoda OLAP-kuutio Northwind-tietokannan tilaustiedoista

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

Tietorakenteet ja algoritmit Johdanto Lauri Malmi / Ari Korhonen

Tietorakenteet ja algoritmit Johdanto Lauri Malmi / Ari Korhonen Tietorakenteet ja algoritmit Johdanto Lauri Malmi / Ari 1 1. JOHDANTO 1.1 Määritelmiä 1.2 Tietorakenteen ja algoritmin valinta 1.3 Algoritmit ja tiedon määrä 1.4 Tietorakenteet ja toiminnot 1.5 Esimerkki:

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

Tietokantakurssit / TKTL

Tietokantakurssit / TKTL Tietokantakurssit / TKTL Tietokantojen perusteet - tietokannan käyttö: SQL, sovellukset Tietokannan hallinta - tietokannanhallintajärjestelmän ominaisuuksia: tallennusrakenteet kyselyjen toteutus tapahtumien

Lisätiedot

Insert lauseella on kaksi muotoa: insert into taulu [(sarakenimet)] values (arvot)

Insert lauseella on kaksi muotoa: insert into taulu [(sarakenimet)] values (arvot) SQL sisältää operaatiot tietokannan sisällön muodostamiseen ja ylläpitoon: insert - uusien rivien vienti tauluun delete - rivien poisto update - rivien muutos 1 Insert lauseella on kaksi muotoa: insert

Lisätiedot

SQL - STRUCTURED QUERY LANGUAGE

SQL - STRUCTURED QUERY LANGUAGE SQL Peruskomentoja SQL - STRUCTURED QUERY LANGUAGE SQL on tietokantojen käsittelyyn kehitetty kieli Esimerkkejä kielellä hoidettavistaa toiminnoista: Tietokannan rakenteen määrittely ja muuttaminen Kyselyt

Lisätiedot

Projektinhallintaa paikkatiedon avulla

Projektinhallintaa paikkatiedon avulla Projektinhallintaa paikkatiedon avulla Tampereen Teknillinen Yliopisto / Porin laitos Teemu Kumpumäki teemu.kumpumaki@tut.fi 25.6.2015 1 Paikkatieto ja projektinhallinta Paikkatiedon käyttäminen projektinhallinnassa

Lisätiedot

Tietorakenteet ja algoritmit - syksy 2015 1

Tietorakenteet ja algoritmit - syksy 2015 1 Tietorakenteet ja algoritmit - syksy 2015 1 Tietorakenteet ja algoritmit - syksy 2015 2 Tietorakenteet ja algoritmit Johdanto Ari Korhonen Tietorakenteet ja algoritmit - syksy 2015 1. JOHDANTO 1.1 Määritelmiä

Lisätiedot

A274101 TIETORAKENTEET JA ALGORITMIT

A274101 TIETORAKENTEET JA ALGORITMIT A274101 TIETORAKENTEET JA ALGORITMIT VERKOT ELI GRAAFIT Lähteet: Timo Harju, Opintomoniste Keijo Ruohonen, Graafiteoria (math.tut.fi/~ruohonen/gt.pdf) HISTORIAA Verkko- eli graafiteorian historia on saanut

Lisätiedot

Tietokannat II -kurssin harjoitustyö

Tietokannat II -kurssin harjoitustyö Tietokannat II -kurssin harjoitustyö Jyri Lehtonen (72039), jkoleh@utu.fi Azad Hajipour (72187), azhaji@utu.fi 10.6.2007 Sisältö 1. Tietokannan kuvaus... 1 1.1 Tietokannan rakenne... 1 1.2 Relaatiokaava

Lisätiedot

Paikkatiedon hallinta ja analyysi 3. Paikkatietomallit ja kyselyt

Paikkatiedon hallinta ja analyysi 3. Paikkatietomallit ja kyselyt HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET UNIVERSITY OF HELSINKI Paikkatiedon hallinta ja analyysi 3. Paikkatietomallit ja kyselyt Antti Leino 21. maaliskuuta 2005 Tietojenkäsittelytieteen

Lisätiedot

Luento 3: 3D katselu. Sisältö

Luento 3: 3D katselu. Sisältö Tietokonegrafiikan perusteet T-.43 3 op Luento 3: 3D katselu Lauri Savioja Janne Kontkanen /27 3D katselu / Sisältö Kertaus: koordinaattimuunnokset ja homogeeniset koordinaatit Näkymänmuodostus Kameran

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

811312A Tietorakenteet ja algoritmit 2015-2016. I Johdanto

811312A Tietorakenteet ja algoritmit 2015-2016. I Johdanto 811312A Tietorakenteet ja algoritmit 2015-2016 I Johdanto Sisältö 1. Algoritmeista ja tietorakenteista 2. Algoritmien analyysistä 811312A TRA, Johdanto 2 I.1. Algoritmeista ja tietorakenteista I.1.1. Algoritmien

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

Tietojärjestelmä tuotantoympäristössä. Sovellusohjelmat Helsingin ammattikorkeakoulu Stadia / Tekniikka ja liikenne Vesa Ollikainen

Tietojärjestelmä tuotantoympäristössä. Sovellusohjelmat Helsingin ammattikorkeakoulu Stadia / Tekniikka ja liikenne Vesa Ollikainen Tietojärjestelmä tuotantoympäristössä Tausta ja tavoitteet Tausta Kurssilla on opiskeltu suunnittelemaan ja toteuttamaan tietokanta, joka on pieni perustuu selkeisiin vaatimuksiin on (yleensä) yhden samanaikaisen

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

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

Algoritmit 1. Luento 14 Ke 25.2.2015. Timo Männikkö

Algoritmit 1. Luento 14 Ke 25.2.2015. Timo Männikkö Algoritmit 1 Luento 14 Ke 25.2.2015 Timo Männikkö Luento 14 Heuristiset menetelmät Heuristiikkoja kapsäkkiongelmalle Kauppamatkustajan ongelma Lähimmän naapurin menetelmä Kertaus ja tenttivinkit Algoritmit

Lisätiedot

Excel-taulukkoon X- ja Y-sarakkeisiin tallennettujen koordinaattien muuntaminen paikkatietokohteiksi

Excel-taulukkoon X- ja Y-sarakkeisiin tallennettujen koordinaattien muuntaminen paikkatietokohteiksi Excel-taulukkoon X- ja Y-sarakkeisiin tallennettujen koordinaattien muuntaminen paikkatietokohteiksi Esimerkkinä Excel-taulukkona ladattavat Helsingin pysäköintilippuautomaatit Viimeksi muokattu 27. huhtikuuta

Lisätiedot

10. Painotetut graafit

10. Painotetut graafit 10. Painotetut graafit Esiintyy monesti sovelluksia, joita on kätevä esittää graafeina. Tällaisia ovat esim. tietoverkko tai maantieverkko. Näihin liittyy erinäisiä tekijöitä. Tietoverkkoja käytettäessä

Lisätiedot

Kirjoita jokaiseen erilliseen vastauspaperiin kurssin nimi, tenttipäivä, oma nimesi (selkeästi), opiskelijanumerosi ja nimikirjoituksesi

Kirjoita jokaiseen erilliseen vastauspaperiin kurssin nimi, tenttipäivä, oma nimesi (selkeästi), opiskelijanumerosi ja nimikirjoituksesi Helsingin yliopisto, Tietojenkäsittelytieteen laitos Tietokantojen perusteet, kurssikoe 29.2.2012 (vastauksia) Liitteenä on tiivistelmä SQL-syntaksista Kirjoita jokaiseen erilliseen vastauspaperiin kurssin

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

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

Tietokannanhoitaja DBA (Database Administrator) ja tietokannan hallinta

Tietokannanhoitaja DBA (Database Administrator) ja tietokannan hallinta Tietokannanhoitaja DBA (Database Administrator) ja tietokannan hallinta Jouni Huotari Martti Laiho (materiaali on osa virtuaaliammattikorkeakoulun Tietokantaosaaja-opintokokonaisuutta) opintokokonaisuutta)

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

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

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

A274101 TIETORAKENTEET JA ALGORITMIT

A274101 TIETORAKENTEET JA ALGORITMIT A274101 TIETORAKENTEET JA ALGORITMIT PERUSTIETORAKENTEET LISTA, PINO, JONO, PAKKA ABSTRAKTI TIETOTYYPPI Tietotyyppi on abstrakti, kun se on määritelty (esim. matemaattisesti) ottamatta kantaa varsinaiseen

Lisätiedot