Tiedon hajauttaminen ja hajautettu kyselynkäsittely

Koko: px
Aloita esitys sivulta:

Download "Tiedon hajauttaminen ja hajautettu kyselynkäsittely"

Transkriptio

1 Tiedon hajauttaminen ja hajautettu kyselynkäsittely M. Kifer, A. Bernstein & P. M. Lewis: Database Systems. An Application-Oriented Approach. Complete Version. Second Edition. Pearson Addison Wesley, 2006; sivut , luku 16 (distributed databases). A. Silberschatz, H. F. Korth & S. Sudarshan: Database System Concepts. Sixth Edition. McGraw-Hill, 2010; sivut , luvun 17 (database-system architectures) kohdat 17.4 (distributed systems) ja 17.5 (network types); sivut ja , luvun 19 (distributed databases) kohdat 19.1 (homogeneous and heterogeneous databases), 19.2 (distributed data storage), 19.7 (distributed query processing) ja 19.8 (heterogeneous distributed databases). A. Silberschatz, H. F. Korth & S. Sudarshan: Database System Concepts. Fifth Edition. McGraw-Hill, 2006; sivut , luvun 20 (database-system architectures) kohdat 20.4 (distributed systems) ja 20.5 (network types); sivut ja , luvun 22 (distributed databases) kohdat 22.1 (homogeneous and heterogeneous databases), 22.2 (distributed data storage), 22.7 (distributed query processing) ja 22.8 (heterogeneous distributed databases). 1

2 Useaan tietokantaan operoivat sovellukset, s. 3. Hajautettu tietokantajärjestelmä, s. 6. Sovellussuunnittelijan näkemys hajautetusta tietokannasta, s. 9. Tiedon hajauttaminen eri tietokantoihin, s. 16. Vaakasuora osittaminen, s. 19. Pystysuora osittaminen, s. 23. Tiedon toisintaminen, s. 25. Hajautetun kyselyn laskentamenetelmät, s. 31. Liitosten globaali optimointi, s. 34. Puoliliitosoptimointi, s. 38. Liitokset, projektiot ja valinnat, s. 42. Monitietokantajärjestelmän kyselynoptimointi, s. 50. Tietokantasuunnitelman ja kyselyiden virittäminen, s. 53. Oraclen hajautetut tietokannat, s

3 Useaan tietokantaan operoivat sovellukset Yhä useammat sovellukset tarvitsevat pääsyn useisiin eri pisteissä sijaitseviin tietokantoihin, jotka voivat olla hyvinkin etäällä toisistaan. Sovellukset voidaan karkeasti jakaa kahteen tyyppiin: (1) Yrityksen sisäiset sovellukset. Verkkokauppa on perustanut maanlaajuisen varastoverkoston nopeuttaakseen tuotteittensa jakelua. Jokaisella varastolla on oma paikallinen tietokantansa, ja kauppiaalla on tietokanta pääkonttorissa. Sovellus, joka laskee tavaran varastoissa olevan määrän, ajetaan pääkonttorin pisteessä ja kohdistuu kaikkien varastojen pisteisiin. (2) Useamman yrityksen tietokantoihin kohdistuvat asiakassovellukset. Kun asiakas ostaa tavaroita Internet-kauppiaalta, osa transaktiosta kohdistuu kauppiaan tietokantaan ja osa luottokorttiyrityksen tietokantaan. Tieto kaupasta rekisteröityy muodossa tai toisessa kumpaankin tietokantaan. Kumpaankiin sovellustyyppiin liittyy hajautettua tietoa (distributed data). Ero on tavassa, jolla eri pisteissä oleviin tietoihin päästään käsiksi. 3

4 Tyypin (1) sovellus on kirjoitettu tietokantakaaviolle, joka sallii sovelluksen pääsyn kaikkiin pisteisiin SQL-lauseilla. Sovellus voi lähettää select-kyselyn kunkin varaston tietokantaan noutaakseen halutun tiedon ja sitten muodostaa yhdisteen kyselyiden palauttamista monikoista. Tyypin (2) sovellus ei voi päästä tietoihin käsiksi samalla tavalla. Kauppias ja luottokorttiyritys ovat eri yrityksiä, ja niiden tietokannat sisältävät liikesalaisuuden alaista tai arkaluontoista tietoa, joihin kumpikaan ei voi myöntää toiselle pääsyä. Kumpikaan ei myöskään voi sallia toisen aiheuttavan (tahallisesti tai tahattomasti) epäeheyttä tietokantaansa. Luottokorttiyritys tarjoaa aliohjelman (transaktiona suoritettavan tallennetun proseduurin) luottotietokannan päivittämiseksi siten, että asiakkaan tiliä veloitetaan kauppasummalla. Kun luottokorttiyritys laatii aliohjelman itse, se voi paremmin valvoa tietojensa turvallisuutta ja eheyttä. 4

5 Seuraavassa tarkastellaan tehokkaita menetelmiä hajautetun tiedon käsittelemiseksi. Tehokkuuteen vaikuttaa tietoalkioiden sijainti verkossa sekä tietoalkioiden käsittelyyn käytettävä algoritmi. Menetelmät soveltuvat ainoastaan tyypin (1) sovelluksiin. Tyypin (2) sovelluksissa yrityksen tiedon sijainnin määrää yritys itse, ja tietoon pääsee käsiksi vain yrityksen tarjoamilla aliohjelmilla. Voidaan laatia tyypin (2) sovellus, joka käynnistää näitä aliohjelmia ja käsittelee niiden palauttamaa tietoa, mutta se ei voi operoida tietokantoihin suoraan. Sovellusohjelmoijalla on silloin vain vähän mahdollisuuksia suunnitella tehokas tiedonkäsittelystrategia. Keskitymme tyypin (1) sovelluksiin. Nämä operoivat tietoon suoraan ja käyttävät tietokantasuuntautuneita menetelmiä suorituskyvyn ja tiedon saatavuuden parantamiseksi. 5

6 Hajautettu tietokantajärjestelmä Hajautettu tietokantajärjestelmä (distributed database system) koostuu joukosta tietokoneverkon toisiinsa yhdistämiä pisteitä (site). Kukin piste ylläpitää omaa (paikallista) tietokantajärjestelmäänsä. Järjestelmän pisteet kommunikoivat toistensa kanssa tietokoneverkon (lähi- tai kaukoverkon) välityksellä. Oletamme, että kunkin pisteen tietokantapalvelin on tavanomainen kyselypalvelin (query server) eli transaktiopalvelin (transaction server), joka palvelee (saman tai muiden pisteiden) sovelluksilta tulevia, tietokantaan kohdistuvia palvelupyyntöjä (SQL-lauseita). Järjestelmän pisteessä s käynnistetty transaktio voi olla joko (1) paikallinen transaktio (local transaction), joka operoi vain pisteen s tietoihin, tai (2) etätransaktio (remote transaction), joka operoi vain tietyn toisen pisteen s s tietoihin, tai (3) hajautettu transaktio (distributed transaction), joka operoi kahden tai useamman pisteen tietoihin. 6

7 Syitä tiedon hajauttamiseen: Tiedon sijoittelulla pyritään minimoimaan tiedonvälityskustannuksia ja/tai vasteaikaa. Yleensä tieto säilytetään siinä pisteessä, joka operoi siihen useimmin. Tiedon hajauttamisella pyritään tasaamaan työkuormaa: yksittäiset pisteet eivät ylikuormitu siinä määrin, että järjestelmän suorituskyky heikentyisi. Tieto halutaan säilyttää sen luontipisteessä, niin että tiedon luoja voi valvoa sitä ja taata sen turvallisuuden (pisteen paikallinen autonomia, local autonomy), Tiedon saatavuutta (availability) halutaan parantaa: jos yksi piste joutuu häiriötilaan, toiset pisteet voivat jatkaa toimintaansa. Tiettyjä tietoalkioita saatetaan toisintaa (replicate) eli kopioida useisiin pisteisiin suoritustehon lisäämiseksi ja vasteajan pienentämiseksi (tietoon päästään nopeammin käsiksi paikallista tai läheistä toisinnetta käyttäen) tai tiedon saatavuuden lisäämiseksi järjestelmän romahdustapauksissa (jos tietoalkion jokin toisinne ei enää ole saatavilla, voidaan operoida toiseen). 7

8 Tarkastelemme mm. seuraavia kysymyksiä: Kuinka hajautettu tietokanta pitäisi suunnitella? Missä pisteessä yksittäisiä tietoalkioita tai kokonaisia tauluja pitäisi säilyttää? Mitkä tietoalkiot pitäisi toisintaa ja mihin pisteisiin toisinteet pitäisi sijoittaa? Miten käsitellään useaan tietokantaan kohdistuvat kyselyt? Mitä näkökohtia liittyy hajautetun kyselyn optimointiin? Miten kyselynoptimointimenetelmät vaikuttavat tietokantasuunnitelmaan? 8

9 Sovellussuunnittelijan näkemys hajautetusta tietokannasta Sovellus perustuu tietokannan loogiseen kaavioon (logical schema), joka kuvaa sovelluksen näkemän tietokannan rakenteen. Hajautetun tietokannan tapauksessa voi olla käytössä kolmenlaisia kaavioita: useita paikallisia kaavioita, paikallisten kaavioiden yhdistekaavio, yksi koko tietokannan kattava kaavio. Useisiin paikallisiin kaavioihin (multiple local schemas) perustuva hajautettu tietokanta näyttäytyy sovellusohjelmalle kokoelmalta yksittäisiä tietokantoja, joilla kullakin on oma kaavionsa. Tällaista järjestelmää kutsutaan monitietokannaksi (multidatabase). Jos yksittäisissä pisteissä toimivat tietokannan hallintajärjestelmät ovat samalta toimittajalta, järjestelmä on homogeeninen, muuten heterogeeninen. Sovellusohjelman täytyy eksplisiittisesti luoda yhteys kuhunkin pisteeseen, jonka tietoja käsitellään: exec sql connect to palvelimen verkko-osoite. Kun yhteys on luotu, ohjelma voi käsitellä tietokantaa SQL-lausein, jotka noudattavat kyseisen pisteen kaaviota. Jos tietoalkion säilytyspiste muuttuu, sovellusohjelmaakin pitää muuttaa. 9

10 SQL-lause, joka viittaa eri pisteiden relaatioihin, ei ole mahdollinen. Jos sovellus esimerkiksi haluaa muodostaa eri pisteissä sijaitsevien relaatioiden liitoksen, sen täytyy lukea eri SQL-lausein kummankin relaation monikot sovelluspisteen puskuriin ja laskea liitos sovellusohjelmassa. Jos attribuuttiarvo (esim. henkilönnimi) on tallennettu eri pisteisiin eri muodossa, sovellusohjelman on ajoaikana huolehdittava tiedon muuntamisesta kulloinkin vaadittavaan muotoon. Sovellusohjelman on niin ikään huolehdittava tiedon toisintamisesta. Jos toisinnettua tietoalkiota kysytään, sovelluksen on päätettävä, mikä toisinne luetaan. Jos toisinnettua tietoalkiota päivitetään, sovelluksen on taattava, että päivitys toteutuu kaikkiin toisinteisiin. Tällaisena näkyy hajautettu tietokanta, kun sitä käsitellään tavanomaisen sulautettuun SQL:ään, JDBC:hen, SQLJ:hin tai ODBC:hen perustuvan tietokantaliittymän välityksellä. Kaikki tietokannan hajautettuun luonteeseen kuuluvat piirteet on käsiteltävä eksplisittisesti sovellusohjelmassa. 10

11 Paikallisten kaavioiden yhdistekaavioon eli rajoitettuun globaaliin kaavioon (restricted global schema) perustuvan hajautetun tietokannan kaavio on yhdiste yksittäisten pisteiden tietokantojen kaavioista. Tietokannan taulujen joukko on siis yhdiste yksittäisten pisteiden taulujen joukoista. Sovellukset soveltavat tiettyä nimeämiskäytäntöä viitatessaan kukin pisteen tietokannan tauluihin. Taulujen sijainti voidaan näin kätkeä sovellukselta. Tätä ominaisuutta kutsutaan sijainnin tuntumattomuudeksi (location transparency). Kun sovellus operoi tietyn pisteen tauluun, yhteys pisteeseen muodostetaan automaattisesti. Sovellus voi suorittaa SQL-lauseen, jotka viittaa eri pisteissä sijaitseviin tietoihin, esim. laskee kahden eri pisteissä sijaitsevan taulun liitoksen. Järjestelmässä on globaali kyselynoptimoija, joka tuottaa tehokkaita kyselysuunnitelmia usean pisteen tietoihin viittaville SQL-lauseille. Kyselysuunnitelman kustannusta arvioidaan paitsi levyhakujen määrän myös sen mukaan, kuinka paljon tietoa pitää siirtää pisteiden välillä. 11

12 Sovellussunnittelija voi päättää tiettyjen tietoalkioiden toisintamisesta ja määrätä toisinteiden sijoituspisteet. Globaali kyselynoptimoija kuitenkin tarjoaa toisinnuksen tuntumattomuuden (replication transparency), ts. kätkee toisinnuksen sovellusohjelmilta. Kun ohjelma viittaa toisinnettuun tietoalkioon, kyselynoptimoijan tuottama suoritussuunnitelma osoittaa sopivan toisinteen luettavaksi ja huolehtii tietoalkion päivityksen levittämisestä tietoalkion kaikkiin toisinteisiin. Järjestelmä on yleensä homogeeninen; pääsy toisen valmistajan tietokantaan on rajoitettua. 12

13 Yhteen koko tietokannan kattavaan kaavioon eli globaaliin kaavioon (global schema) perustuvassa hajautetussa tietokannassa kaikki tiedon hajauttamiseen liittyvät piirteet on kätketty sovellukselta, ja järjestelmä huolehtii niistä automaattisesti. Järjestelmää kutsutaan integroiduksi hajautetuksi tietokantajärjestelmäksi. Järjestelmä voi olla homogeeninen tai heterogeeninen. Integroinnista huolehtii väliohjelmisto (middleware): yksittäiset kaaviot yhdistyvät yhdeksi globaaliksi kaavioksi, joka sisältää kaikkien pisteiden tiedot. Globaali kaavio saattaa sisältää myös tauluja, jotka eivät esiinny missään paikallisessa kaaviossa mutta jotka voidaan laskea SQLlauseilla paikallisten kaavioiden tauluista. Globaali kaavio on siis yleisesti näkymä (view) paikallisiin kaavioihin. 13

14 Väliohjelmisto luo automaattisesti yhteyden yksittäisiin pisteisiin, kun globaalin kaavion tietoalkioihin viitataan. Näin toteutuu sijainnin tuntumattomuus. Globaali kaavio (ja siis myös sovellusohjelma) säilyy samana, vaikka tietoalkion sijaintipiste muuttuu. Väliohjelmistossa pitää kylläkin muuttaa kuvausta globaalista kaaviosta paikallisiin kaavioihin. Väliohjelmisto takaa myös toisinnuksen tuntumattomuuden. Väliohjelmisto huolehtii myös eri pisteiden välisestä heterogeenisyydestä tarjoamalla muunnosrutiinit, joilla eri tallennusmuodoissa olevat attribuuttiarvot muunnetaan globaalissa kaaviossa käytettävään muotoon. 14

15 Heterogeenisessa järjestelmässä on usein tarvetta myös semanttiseen integrointiin, johon liittyy ainakin arvojen ja nimien muuntaminen. Tarkastellaan hajautettua tietokantajärjestelmää, jolla on pisteitä Euroopassa, Japanissa ja Yhdysvalloissa. Raha-arvot voidaan esittää kaikissa pisteissä kaksoistarkkuuden luvuilla, joten mitään esitysmuotomuunnosta ei tarvita. Mutta 1000 euroa on eri kuin 1000 jeniä tai 1000 dollaria. Tokiossa tehty kysely myynnin kokonaismäärästä tarvitsee muunnoksen jeneiksi, ja Helsingissä tehty sama kysely tarvitsee muunnoksen euroiksi. Attribuuttinimen muunnos taas liittyy kulttuurieroihin ja yksilöllisiin tapoihin. Eri maissa on eri kielet, ja saman maankin eri pisteissä voidaan käyttää samalle attribuutille eri nimiä. 15

16 Tiedon hajauttaminen eri tietokantoihin Tiedon hajauttaminen eri pisteisiin ei aina ole sovellussuunnittelijan päätettävissä. Tietyt tietoalkiot täytyy sijoittaa tiettyyn pisteeseen turvallisuussyistä. Toisinaan sovellussuunnittelija voi osallistua sen päättämiseen, mihin tieto sijoitetaan tai miten sitä toisinnetaan. Yksinkertaisin tapa hajauttaa tieto on tallentaa yksittäisiä tauluja eri pisteisiin. Taulu ei kuitenkaan välttämättä ole paras valinta hajautusyksiköksi. Usein transaktio operoi vain osaan taulun riveistä tai johonkin taulun näkymään eikä koko tauluun. Jos eri transaktiot operoivat taulun eri osiin ja ne ajetaan eri pisteissä, suorituskykyä voidaan parantaa tallentamalla taulun osa siihen pisteeseen, jossa vastaava transaktio ajetaan. Kun taulu ositetaan (partition) eli jaetaan osiin tällä tavoin, kutsutaan taulun osia palasiksi (fragment) tai ositteiksi (partition). 16

17 Taulun osittamisella on myös muita mahdollisia etuja. Suureen tauluun kohdistuvan kyselyn käsittelyaikaa voidaan vähentää hajauttamalla laskentaa niihin pisteisiin, joihin taulun palasia on sijoitettu. Tarkastellaan yliopiston opiskelijarekisteriin kohdistuvaa kyselyä, joka laskee kunkin opiskelijan opintosuoritusten keskiarvon: select s.student-id, s.student-name, sum(t.credits t.grade)/sum(t.credits) from student s, transcript t where s.student-id = t.student-id group by s.student-id, s.student-name. Jos taulut student ja transcript on molemmat sijoitettu hallintoviraston pisteeseen, kysely lasketaan kokonaisuudessaan siellä. Jos transcript-taulu on ositettu opintosuorituksen antaneen laitoksen sijaintikampuksen mukaan, eri kampuksilla voidaan laskea rinnakkain koosteet select student-id, sum(credits grade), sum(credits) from transcript where department-id = d, group by student-id, missä d on kyseiselle kampukselle sijoitetun laitoksen tunniste. 17

18 Kun hajautettu tietokanta perustuu yhteen globaaliin kaavioon, ositettu relaatio voi näyttäytyä osittamattomana globaalissa kaaviossa. Toteutuu siis osituksen tuntumattomuus (partition transparency). Väliohjelmisto muuntaa kaikki relaatioon kohdistuvat operaatiot operaatioiksi relaation niihin palasiin, joita operaatio koskettaa. Useaan paikalliseen kaavioon perustuvissa monitietokantajärjestelmissä ositus ei sitä vastoin ole tuntumatonta, vaan kunkin sovellusohjelman on oltava tietoinen osituksesta ja operoitava eksplisiittisesti eri palasiin. 18

19 Vaakasuora osittaminen Taulu voidaan osittaa vaaka- tai pystysuorasti. Vaakasuorassa osittamisessa (horizontal partitioning) eli riveittäisessä osittamisessa relaatio r ositetaan useammaksi saman kaavion relaatioksi r 1,...,r n niin, että r 1... r n = r ja r i r j = /0 kaikilla i j. Verkkokaupassa voisi olla varastotilannetta kuvaava relaatio inventory(stock-number, amount, price, location), missä location ilmaisee asianomaisen varaston sijaintikaupungin. Relaatio voitaisiin osittaa varaston sijainnin mukaan, jolloin Helsinkiin sijoitettu palanen sisältäisi täsmälleen kyselyn select from inventory where location = Helsinki tuottamat monikot. 19

20 Yleisemmin ositukselle r = r 1... r n on ehdot r i = σ Ci (r) kaikilla i = 1,...,n, C i C j false kaikilla i j ja r = σ C1... C n (r) täyttävät valintaehdot C i. Tässä σ C tarkoittaa valintaoperaatiota ehdolla C. 20

21 Joskus on tarpeen osittaa relaatio vaakasuorasti, vaikkei relaatio itsessään sisällä riittävästi informaatiota sen päättämiseen, mihin palaseen mikäkin monikko kuuluu. Ts. palaselle r i ei ole olemassa sen määrittävää valintaehtoa C i. Oletetaan, että verkkokaupalla on samassa kaupungissa useampia varastoja ja että varastot identifioidaan niiden numeroilla: inventory(stock-number, amount, price, warehouse-number), warehouse(warehouse-number, capacity, street-address, location). Verkkokaupalla on yksi tietokanta kussakin kaupungissa. Relaatio inventory ositetaan vaakasuorasti kaupungeittain, niin että yhdessä palasessa on kaikkien asianomaisessa kaupungissa sijaitsevien varastojen inventory-monikot. Helsingissä sijaitseva palanen määräytyy nyt lausekkeella select i.stock-number, i.amount, i.price, i.warehouse-number from inventory i, warehouse w where i.warehouse-number = w.warehouse-number and location = Helsinki. 21

22 Helsingin palanen inventory-relaatiosta relaatio-operaatioilla ilmaistuna: inventory σ location= Helsinki (warehouse), missä tarkoittaa puoliliitosta (semijoin): r s = π X (r s), missä π X tarkoittaa projektiota r:n attribuuteille X ja (luonnollista) liitosta. Opintorekisterin relaation transcript ositus kampuksittain määriteltäisiin vastaavasti: transcript σ campus= Kumpula (department), missä relaatio transcript liittyy yliopiston laitoksia esittävään relaatioon department viiteavaimen department-number välityksellä. Tällaista puoliliitoksen kautta määräytyvää ositusta kutsutaan johdetuksi vaakasuoraksi ositukseksi (derived horizontal partitioning). Vaakasuoraa ositusta käytetään, kun kunkin pisteen useimmat sovellukset operoivat samaan aitoon osajoukkoon relaation monikoita. 22

23 Pystysuora osittaminen Pystysuorassa osittamisessa (vertical partitioning) eli sarakkeittaisessa osittamisessa relaatio r(x), jolla on avain Y X, ositetaan palasiin r 1 (X 1 ),...,r n (X n ) siten, että X 1... X n = X, Y X i jokaisella i = 1,...,n, r i = π Xi (r) jokaisella i = 1,...,n ja r 1... r n = r. Verkkokaupan kaikkia työntekijöitä esittävä relaatio employee(ssn, name, salary, title, location) voitaisiin osittaa pystysuorasti palasiin employee1(ssn, name, salary) ja employee2(ssn, name, title, location), joista employee1 sijoitetaan kaupan päätoimipaikkaan (jossa palkat lasketaan) ja employee2 sijoitetaan muualle. 23

24 Vaaka- ja pystysuorien ositusten yhdistelmät ovat myös mahdollisia. Alkuperäisen relaatio pitää kuitenkin aina olla konstruoitavissa palasista relaatio-operaatioilla. Tyypillisessä lähestymistavassa relaatio ositetaan ensin yhdellä tavalla (esim. pystysuorasti) ja sitten näin saadut palaset (tai osa niistä) toisella tavalla (esim. vaakasuorasti). Esimerkiksi relaatio employee ositetaan ensin pystysuoriin palasiin employee1 ja employee2. Sitten palanen employee2 ositetaan edelleen vaakasuorasti attribuutin location mukaan. 24

25 Tiedon toisintaminen Toisintaminen (replication) on hajautettujen tietokantojen eniten käytettyjä ja hyödyllisimpiä mekanismeja. Tiedon toisintaminen useisiin pisteisiin parantaa tiedon saatavuutta, koska tietoon päästään käsiksi vaikka jokin toisinteen sijoituspiste olisi romahtanut. Toisintaminen voi myös parantaa suorituskykyä: kysely voidaan suorittaa tehokkaammin, koska tieto voidaan lukea paikallisesta tai läheisestä kopiosta. Toisinnetun tietokannan päivitykset taas ovat yleensä hitaampia, koska päivitettävän tietoalkion kaikki toisinteet pitää myös päivittää. Toisintaminen tehostaa nimenomaan sovelluksia, joissa päivityksiä esiintyy huomattavasti vähemmän kuin kyselyitä. 25

26 Verkkokauppa pitää asiakkaistaan yllä relaatiota customer(customer-number, name, address, location), missä location määrittää tietyn varaston palveleman alueen. Relaatioon kohdistuu kysely päätoimipisteessä ajettavasta sovelluksesta, joka lähettää kuukausittain postia kaikille asiakkaille. Kussakin pisteessä ajettava sovellus kohdistaa relaatioon kyselyn saadakseen tietoa pisteen kattaman alueen toimituksista. Relaatiota päivitetään päätoimipisteen sovelluksella, kun (1) uusi asiakas rekisteröityy tai (2) rekisteröityneen asiakkaan tiedot muuttuvat (mikä tapahtuu harvoin). Tuntuu sopivalta osittaa relaatio vaakasuorasti location-attribuutin mukaan, niin että yksittäinen palanen sijoitetaan sekä vastaavaan varastoon että päätoimipisteeseen. Relaatio siis osittamisen lisäksi toisinnetaan, niin että päätoimipisteessä on koko relaatio. 26

27 Arvioidaan suunnittelupäätöstä vertaamalla sitä kahteen muuhun vaihtoehtoon, joissa tietoa ei toisinneta. Vertailtavat kolme vaihtoehtoa ovat: 1. Koko relaatio sijoitetaan päätoimipisteeseen. Varastopisteisiin ei sijoiteta mitään. 2. Relaatio ositetaan vaakasuorasti varastopisteisiin. Päätoimipisteeseen ei sijoiteta mitään. 3. Relaatio ositetaan vaakasuorasti varastopisteisiin. Päätoimipisteeseen toisinnetaan koko relaatio. 27

28 Vertaillaan vaihtoehtoja sen mukaan, kuinka paljon tietoa pitää siirtää pisteiden välillä mainituissa sovelluksissa. Tehdään seuraavat oletukset: Relaatiossa customer on noin monikkoa. Päätoimipisteen postitussovellus lähettää kullekin asiakkaalle yhden kirjeen kuukaudessa. Kaikista varastoista tehdään yhteensä noin 500 toimitusta päivässä. Kutakin toimitusta varten pitää lukea relaatiosta customer yksi monikko. Kauppa saa noin 100 uutta asiakasta päivittäin. Rekisteröityneen asiakkaan tietojen muutokset sitä vastoin ovat niin harvinaisia, ettei niitä tarvitse ottaa vertailussa huomioon. 28

29 Vertaillaan nyt kolmea vaihtoehtoa. 1. Jos koko relaatio sijoitetaan päätoimipisteeseen, tietoa pitää siirtää sieltä asianomaiseen varastopisteeseen aina toimitusta tehtäessä eli noin 500 monikkoa päivässä. 2. Jos relaatio ositetaan varastopisteisiin, tietoa pitää siirtää (a) varastopisteistä päätoimipisteeseen postitussovellusta suoritettaessa eli noin monikkoa kuukaudessa tai monikkoa päivässä sekä (b) päätoimipisteestä varastopisteisiin uuden asiakkaan rekisteröityessä eli noin 100 monikkoa päivässä. Yhteensä siirretään siis noin monikkoa päivässä. 3. Jos relaatio ositetaan varastopisteisiin ja koko relaatio toisinnetaan päätoimipisteeseen, tietoa pitää siirtää päätoimipisteestä asianomaiseen varastopisteeseen uuden asiakkaan rekisteröityessä eli noin 100 monikkoa päivässä. Tämän mitan mukaan toisintaminen näyttäisi siis parhaalta vaihtoehdolta. 29

30 Vertaillaan sitten vaihtoehtoja transaktioiden vasteajan mukaan. 1. Jos koko relaatio sijoitetaan päätoimipisteeseen, toimituksen käsittely kärsii tiedon etäkäsittelytarpeen vuoksi. Mutta tätä ei ehkä pidetä niin tärkeänä. 2. Jos relaatio ositetaan varastopisteisiin ja jos kuukausittaisen postituksen tekee yksi sovellus, varastopisteistä päätoimipisteeseen lähetettävät monikkoa saattavat tukkia tietoliikennejärjestelmän ja hidastaa muita sovelluksia. Tätä voidaan välttää ajamalla postitussovellus myöhään illalla tai viikonloppuisin, kun muita sovelluksia on käynnissä vähän. 3. Jos relaatio ositetaan varastopisteisiin ja koko relaatio toisinnetaan päätoimipisteeseen, uuden asiakkaan rekisteröinti kärsii, koska sekä asianomaisen varastopisteen palanen että päätoimipisteen relaatio pitää päivittää. Tämä on tärkeää, koska asiakas rekisteröityy vuorovaikutteisesti eikä siedä pitkää odotusta. Tässä sovelluksessa rekisteröitymistä voidaan kuitenkin pitää loppuun saatettuna (sitoutuneena) heti, kun päätoimipisteen tietokanta on päivitetty. Varastopisteen tietokantaan päivitys voidaan suorittaa myöhemmin, sillä tietoahan ei tarvita siellä ennen kuin jokin toimitustransaktio suoritetaan. Näinkin vertaillen toisintaminen näyttäisi olevan paras vaihtoehto. 30

31 Hajautetun kyselyn laskentamenetelmät Monitietokantajärjestelmä koostuu joukosta itsenäisiä tietokannan hallintajärjestelmiä, jotka kukin tarjoavat SQL-liittymän. Sovellus näkee joukon paikallisia tietokantakaavioita. Useaan tietokantaan kohdistuva kysely täytyy sovelluksessa osittaa jonoksi yksittäiseen tietokantaan kohdistuvia SQL-lauseita. Kun yksittäisen tietokannan kyselynoptimoija saa sille osoitetun SQL-lauseen, se optimoidaan ja suoritetaan, ja tulos palautetaan sovellukselle. 31

32 Globaaliin kaavioon perustuvassa järjestelmässä taas globaali kyselynoptimoija analysoi kyselyn käyttäen globaalin kaavion määrittelyitä ja kääntää sen sopivaksi jonoksi operaatioaskeleita suoritettaviksi yksittäisissä pisteissä. Kunkin pisteen paikallinen kyselynoptimoija voi edelleen optimoida suoritettavaksi saamansa operaatioaskeleen. Seuraavassa oletamme, että kysymyksessä on homogeeninen hajautettu tietokantajärjestelmä. Koska sellaisessa järjestelmässä yksittäiset tietokantajärjestelmät voivat kommunikoida suoraan keskenään, kyselynoptimoinnilla on enemmän mahdollisuuksia, ja hyvän ja huonon suoritussuunnitelman välinen kustannusero voi olla huomattava. Globaali kyselynoptimointi käyttää hajautettua algoritmia, johon liittyy suoraa tiedon vaihtoa eri pisteiden tietokantajärjestelmien välillä. 32

33 Kummassakin tapauksessa tavoitteena on suorittaa kysely tehokkaasti. Kustannusmittana käytämme erityisesti pisteiden välistä tietoliikennekustannusta; kustannusta mitataan niiden tavujen lukumäärällä, jotka laskennan kuluessa pitää siirtää pisteestä toiseen. Globaalin kyselynoptimoinnin algoritmien tuntemus auttaa suunnittelemaan globaaleja kyselyitä, joiden suoritus tietyllä tavalla hajautettuun tietoon on tehokasta, tehokkaita algoritmeja monitietokantajärjestelmän globaalien kyselyiden laskemiseksi sekä sopivan hajautustavan globaalien kyselyiden kohteena olevalle tiedolle. 33

34 Liitosten globaali optimointi Globaalilla liitoksella (global join) tarkoitetaan liitosta, jossa liitettävät taulut sijaitsevat eri pisteissä. Globaalit liitokset voivat olla erityisen kalliita, koska mahdollisesti suuri määrä monikoita joudutaan siirtämään pisteestä toiseen toisiinsa liittyvien monikoiden selvittämiseksi. Oletetaan esimerkiksi, että pisteen s 1 sovellus haluaa liittää pisteissä s 2 ja s 3 sijaitsevat relaatiot; liitoksen tulos pitää siis toimittaa pisteeseen s 1. Kaksi suoraviivaista tapaa laskea liitos: 1. Siirrä molempien relaatioiden monikot pisteeseen s 1 ja laske liitos siellä. 2. Siirrä pienemmän relaation (esim. pisteen s 2 relaation) monikot toisen relaation pisteeseen (s 3 :een), laske liitos siellä ja palauta tulos pisteeseen s 1. 34

35 Tarkastellaan yliopiston opetushallinnon relaatioita: student(id, major), missä major tarkoittaa opiskelijan pääainetta (koodi); relaatiota säilytetään pisteessä s 2. transcript(student-id, course-code), missä course-code osoittaa kuluvan lukukauden kurssin, jolle opiskelija on ilmoittautunut; relaatiota säilytetään pisteessä s 3. Pisteessä s 1 toimiva sovellus haluaa laskea liitoksen select id, major, course-code from student, transcript where id = student-id. 35

36 Vaihtoehtoisten suoritussuunnitelmien vertailemiseksi teemme seuraavat oletukset: Attribuuttiarvojen pituudet ovat: id ja student-id 9 tavua; major: 3 tavua; course-code: 6 tavua. Relaatiossa student on noin monikkoa, kukin pituudeltaan = 12 tavua. Noin 5000 opiskelijaa on ilmoittautunut ainakin yhdelle kurssille, ja heistä kukin on ilmoittautunut keskimäärin neljälle kurssille. Relaatiossa transcript on siis noin monikkoa, kukin pituudeltaan = 15 tavua. Koska kuluva lukukausi on kesälukukausi, valtaosa opiskelijoista (10 000) ei ole ilmoittautunut millekään kurssille. 36

37 Relaatioiden student ja transcript liitoksessa on noin monikkoa, kukin pituudeltaan = 18 tavua. Eri laskentastrategioiden tiedonsiirtokustannukset: 1. Jos molemmat relaatiot siirretään pisteeseen s 1 ja liitos lasketaan siellä, on siirettävä kaikkiaan = tavua. 2. Jos student-relaatio siirretään pisteeseen s 3 ja liitos lasketaan siellä, on siirrettävä kaikkiaan = tavua. 3. Jos transcript-relaatio siirretään pisteeseen s 2 ja liitos lasketaan siellä, on siirrettävä kaikkiaan = tavua. Paras kolmesta vaihtoehdosta on siis 1. 37

38 Puoliliitosoptimointi Pisteissä s 2 ja s 3 sijaitsevien relaatioiden liitoksen laskemiseksi ja toimittamiseksi pisteeseen s 1 on olemassa tehokkaampikin suoritussuunnitelma, jonka globaalin kyselynoptimoijan on mahdollista tuottaa. Siirretään pisteestä s 2 pisteeseen s 3 ainoastaan ne student-monikot, jotka todella osallistuvat liitokseen, ja lasketaan sitten pisteessä s 3 näiden monikoiden ja transcript-relaation liitos. Liitokseen osallistuvat monikot saadaan selville puoliliitoksella. Menettelyä kutsutaan puoliliitosoptimoinniksi (optimization with semijoins, planning with semijoins). 38

39 1. Pisteessä s 3 lasketaan väliaikainen relaatio P = select distinct student-id from transcript. Lähetetään P pisteeseen s 2. Siirtokustannus = tavua. 2. Pisteessä s 2 lasketaan puoliliitos Q = select id, major from student, P where id = student-id. Lähetetään Q pisteeseen s 3. Siirtokustannus = tavua. 3. Pisteessä s 3 lasketaan liitos R = select id, major, course-code from Q, transcript where id = student-id. Lähetetään R pisteeseen s 1. Siirtokustannus = tavua. Kaiken kaikkiaan siirretään siis = tavua, joten tämä suoritussuunnitelma on tietoliikennekustannuksissa mitaten aiemmin esitettyjä tehokkaampi. 39

40 Itse asiassa päästään vielä parempaan ratkaisuun seuraavasti. Sen sijaan, että askeleessa 2 lähetettäisiin Q pisteeseen s 3, lähetetäänkin sekä Q että transcript pisteeseen s 1 : 2. Pisteessä s 2 lasketaan puoliliitos Q = select id, major from student, P where id = student-id. Lähetetään Q pisteeseen s 1. Siirtokustannus = tavua. 3. Lähetetään transcript pisteeseen s 1. Siirtokustannus = tavua. Lasketaan siellä liitos R = select id, major, course-code from Q, transcript where id = student-id. Tämän suoritussuunnitelman kokonaiskustannus on = siirrettyä tavua. 40

T Hajautetut tietokannat

T Hajautetut tietokannat Opetusmoniste T-106.5241 Hajautetut tietokannat Syksy 2010 (periodi II) ss. 1 60 Osa 1: Tiedon hajauttaminen ja hajautettu kyselynkäsittely 3 Useaan tietokantaan operoivat sovellukset 6 Hajautettu tietokantajärjestelmä

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

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

Sovellusarkkitehtuurit

Sovellusarkkitehtuurit HELIA TiKo-05 1 (9) Sovellusarkkitehtuurit ODBC (Open Database Connectivity)... 2 JDBC (Java Database Connectivity)... 5 Middleware... 6 Middleware luokittelu... 7 Tietokanta -middleware... 8 Tapahtumamonitorit

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

Helsingin yliopisto/ tktl DO Tietokantojen perusteet, s 2000 Relaatioalgebra 14.9.2000. Harri Laine 1. Relaatioalgebra

Helsingin yliopisto/ tktl DO Tietokantojen perusteet, s 2000 Relaatioalgebra 14.9.2000. Harri Laine 1. Relaatioalgebra DO NOT PRINT THIS DOCUMENT operaatiot, joilla relaatioista voidaan muodostaa uusia relaatioita joukko opin perusoperaatiot yhdiste, erotus, ristitulo, leikkaus erityisiä relaatioalgebran operaatioita projektio,

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

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

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

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

Tietokantasuunnittelun pääperiaatteena on tiedon toiston välttäminen. Tiedon toistumiseen liittyy monenlaisia ongelmia.

Tietokantasuunnittelun pääperiaatteena on tiedon toiston välttäminen. Tiedon toistumiseen liittyy monenlaisia ongelmia. Tietokantasuunnittelusta Tietokantasuunnittelun pääperiaatteena on tiedon toiston välttäminen. Tiedon toistumiseen liittyy monenlaisia ongelmia toistuva tieto vie tilaa ylläpito muodostuu hankalaksi ylläpito-operaatioilla

Lisätiedot

Tietokannan eheysrajoitteet ja niiden määrittäminen SQL-kielellä

Tietokannan eheysrajoitteet ja niiden määrittäminen SQL-kielellä hyväksymispäivä arvosana arvostelija Tietokannan eheysrajoitteet ja niiden määrittäminen SQL-kielellä Tuomas Husu Helsinki 20.2.2010 HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Sisältö i 1 Johdanto

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

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

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

HELIA TIKO-05 1 (17) ICT03D Tieto ja tiedon varastointi Räty, Virkki

HELIA TIKO-05 1 (17) ICT03D Tieto ja tiedon varastointi Räty, Virkki HELIA TIKO-05 1 (17) SQL / DML 4 Alikyselyt...2 Joukko-operaatiot...7 Yhdiste, unioni...8 Leikkaus...9 Erotus... 10 Tietokannan datan muokkaus... 11 Lisäys... 11 Yhden rivin lisääminen... 12 Useamman rivin

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

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

joukko operaatioita, joilla relaatioista voidaan muodostaa uusia relaatioita joukko opin perusoperaatiot yhdiste, erotus, ristitulo, leikkaus

joukko operaatioita, joilla relaatioista voidaan muodostaa uusia relaatioita joukko opin perusoperaatiot yhdiste, erotus, ristitulo, leikkaus DO NOT PRINT THIS DOCUMENT joukko operaatioita, joilla relaatioista voidaan muodostaa uusia relaatioita joukko opin perusoperaatiot yhdiste, erotus, ristitulo, leikkaus erityisiä relaatioalgebran operaatioita

Lisätiedot

Hakukyselyt: SELECT * FROM taulu WHERE sarake1 = Malli Nimi [WHERE sarake1 LIKE M% ] [WHERE BETWEEN ehto1 AND ehto2] [WHERE sarake1 IN/= (alikysely)]

Hakukyselyt: SELECT * FROM taulu WHERE sarake1 = Malli Nimi [WHERE sarake1 LIKE M% ] [WHERE BETWEEN ehto1 AND ehto2] [WHERE sarake1 IN/= (alikysely)] Tällä viikolla Kertaus SQL-asioista jatketaan SQL-tekstifuntio-harjoituksia tehdään pelifirman tietokannasta ER-malli MySQL:llä, tarkastellaan mallin toimivuutta ja korjataan, jos korjattavaa löytyy, tehdään

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

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

CSE-A1200 Tietokannat

CSE-A1200 Tietokannat CSE-A1200 Tietokannat 22.3.2016 CSE-A1200 Tietokannat 22.3.2016 1 / 35 Oppimistavoitteet: tämän luennon jälkeen Osaat tehdä SQL:llä kyselyitä, jotka käyttävät hyväkseen toisen kyselyn tuloksia (alikyselyt).

Lisätiedot

KAUPPATIEDONSIIRRON VÄLINEET RAKENNUSALAN VERKOSTOTALOUDESSA

KAUPPATIEDONSIIRRON VÄLINEET RAKENNUSALAN VERKOSTOTALOUDESSA KAUPPATIEDONSIIRRON VÄLINEET RAKENNUSALAN VERKOSTOTALOUDESSA CM-Systems Oy tutkimuksen tausta ja tavoite tulos ja kehitetty ratkaisu ohjelmiston kuvaus projektinhallintaan erikoistunut ohjelmisto- ja konsulttiyritys,

Lisätiedot

Salasanojen hallinta. Salasanojen hallintaopas RESTAURANT ENTERPRISE SOLUTION

Salasanojen hallinta. Salasanojen hallintaopas RESTAURANT ENTERPRISE SOLUTION Salasanojen hallinta Salasanojen hallintaopas RESTAURANT ENTERPRISE SOLUTION Restaurant Enterprise Solution Asiakirjan tarkoitus Tämä asiakirja kertoo tarvittavat säännöt kuinka hallinnoida RES salasanoja

Lisätiedot

TIEDONHALLINNAN PERUSTEET - SYKSY 2013

TIEDONHALLINNAN PERUSTEET - SYKSY 2013 TIEDONHALLINNAN PERUSTEET - SYKSY 2013 Kurssikoodi: Saapumisryhmä: Luento 5 XX00AA79-3013 TU12S2 Pasi Ranne 11.9.2013 11/9/13 Helsinki Metropolia University of Applied Sciences 1 Tietokannan normalisoinnin

Lisätiedot

FinFamily PostgreSQL installation ( ) FinFamily PostgreSQL

FinFamily PostgreSQL installation ( ) FinFamily PostgreSQL FinFamily PostgreSQL 1 Sisällys / Contents FinFamily PostgreSQL... 1 1. Asenna PostgreSQL tietokanta / Install PostgreSQL database... 3 1.1. PostgreSQL tietokannasta / About the PostgreSQL database...

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

Hajautettu versionhallinta Gitillä

Hajautettu versionhallinta Gitillä Ohjelmistotekniikka Henrik Hedberg Tietojenkäsittelytieteiden laitos Versionhallintajärjestelmä Hallitsee tiedostot ja niiden eri versiot ts. muutokset Mahdollisuus rinnakkaisiin historioihin ts. haaroihin

Lisätiedot

815338A Ohjelmointikielten periaatteet Harjoitus 3 vastaukset

815338A Ohjelmointikielten periaatteet Harjoitus 3 vastaukset 815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 3 vastaukset Harjoituksen aiheena ovat imperatiivisten kielten muuttujiin liittyvät kysymykset. Tehtävä 1. Määritä muuttujien max_num, lista,

Lisätiedot

811120P Diskreetit rakenteet

811120P Diskreetit rakenteet 811120P Diskreetit rakenteet 2016-2017 1. Algoritmeista 1.1 Algoritmin käsite Algoritmi keskeinen laskennassa Määrittelee prosessin, joka suorittaa annetun tehtävän Esimerkiksi Nimien järjestäminen aakkosjärjestykseen

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

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

JHS 180 Paikkatiedon sisältöpalvelut Liite 4 INSPIRE-palvelujen laadun testaus

JHS 180 Paikkatiedon sisältöpalvelut Liite 4 INSPIRE-palvelujen laadun testaus JHS 180 Paikkatiedon sisältöpalvelut Liite 4 INSPIRE-palvelujen laadun testaus Versio: 28.2.2013 Julkaistu: 28.2.2013 Voimassaoloaika: toistaiseksi Sisällys 1 Yleiset vaatimukset... 2 2 Latauspalvelun

Lisätiedot

Mitä raportit ja tilastot kertovat?

Mitä raportit ja tilastot kertovat? Mitä raportit ja tilastot kertovat? 2 Sisällysluettelo Sisällysluettelo... 1 1 Mitä tietoja raportissa voi kerätä?... 3 2 Raportissa tarkasteltavat käyttäjät... 4 3 Raportissa esillä olevat asiat... 5

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

Luku 10 Käyttöönoton suunnitteluja toteutusvaihe

Luku 10 Käyttöönoton suunnitteluja toteutusvaihe Luku 10 Käyttöönoton suunnitteluja toteutusvaihe Käyttöönoton Roll-Out Planning suunnittelu- & Preparation ja valmistelu Design Tiedon- Data Conversion muunnos- prosessien Processes suunnittelu Toimipisteiden

Lisätiedot

D B. Tietokannan hallinta - kurssin tavoite. Kurssilla opitaan periaatteet. Edellytyksenä osallistumiselle on Tietokantojen perusteiden hallinta

D B. Tietokannan hallinta - kurssin tavoite. Kurssilla opitaan periaatteet. Edellytyksenä osallistumiselle on Tietokantojen perusteiden hallinta Tietokannan hallinta - kurssin tavoite Kurssilla opitaan periaatteet fyysisen tietokannan tallennuksesta ja käsittelystä tietokantakyselyiden muuntamisesta fyysisen tietokannan käsittelyoperaatioiksi kyselyn

Lisätiedot

Johdatus Ohjelmointiin

Johdatus Ohjelmointiin Johdatus Ohjelmointiin Syksy 2006 Viikko 2 13.9. - 14.9. Tällä viikolla käsiteltävät asiat Peruskäsitteitä Kiintoarvot Tiedon tulostus Yksinkertaiset laskutoimitukset Muuttujat Tiedon syöttäminen Hyvin

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

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

Tentti erilaiset kysymystyypit

Tentti erilaiset kysymystyypit Tentti erilaiset kysymystyypit Kysymystyyppien kanssa kannatta huomioida, että ne ovat yhteydessä tentin asetuksiin ja erityisesti Kysymysten toimintatapa-kohtaan, jossa määritellään arvioidaanko kysymykset

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

IIO10200 Tietokantaohjelmointi (4 op)

IIO10200 Tietokantaohjelmointi (4 op) IIO10200 Tietokantaohjelmointi (4 op) Opintojakson esittely Jouni Huotari S2008 http://student.labranet.jamk.fi/~huojo/opetus/iio10200/ Tavoitteena on, että opiskelija: Osaa SQL-kielen perusteet Taulujen

Lisätiedot

Käytettyjen tavaroiden tuontihuojennus Ahvenanmaan verorajaa ylitettäessä

Käytettyjen tavaroiden tuontihuojennus Ahvenanmaan verorajaa ylitettäessä Käytettyjen tavaroiden tuontihuojennus Ahvenanmaan verorajaa ylitettäessä Asiakasohje tulli.fi 8.12.2016 Käytettyjen tavaroiden tuontihuojennus Ahvenanmaan verorajaa ylitettäessä Sisällys 1 Käytettyjen

Lisätiedot

HELIA 1 (16) Outi Virkki Tietokantasuunnittelu

HELIA 1 (16) Outi Virkki Tietokantasuunnittelu HELIA 1 (16) Luento 3.2 Suorituskyvyn optimointi jatkuu...... 2 Tietojen tallennusratkaisut... 2 Tiedon tallennuksen yksiköitä... 3 Loogiset... 3 Fyysiset... 3 Tallennusmäärittelyt Oraclessa... 5 Loogiset

Lisätiedot

TIETOKANTOJEN PERUSTEET MARKKU SUNI

TIETOKANTOJEN PERUSTEET MARKKU SUNI TIETOKANTOJEN PERUSTEET MARKKU SUNI OSIO 01 Peruskäsitteitä Kurssin tavoite: antaa osallistujille valmiudet ymmärtää tietokantojen periaatteet ymmärtää tietokantojen suunnittelunäkökohtia osallistua tietokantojen

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

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

TIETOKANNAT JOHDANTO

TIETOKANNAT JOHDANTO TIETOKANNAT JOHDANTO JOUNI HUOTARI & ARI HOVI 2000-2011 Tieto TAUSTAA Yritykselle tiedot ovat tärkeä resurssi päätöksenteon tukena (JIT) varastointi ja käyttö vaativat investointeja vrt. energia (lähde,

Lisätiedot

HELIA 1 (21) Outi Virkki Tietokantasuunnittelu

HELIA 1 (21) Outi Virkki Tietokantasuunnittelu HELIA 1 (21) Luento 3.1 Suorituskyvyn optimointi... 2 Suunnittele... 3 Tiedonhallintajärjestelmän rakenne... 4 SQL-käsittelijä... 5 Parsinta... 5 Optimointi... 5 Tilan käsittelijä... 5 Puskurin käsittelijä

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

2. Haet työntekijöiden tiedot etunimen mukaan nousevasti järjestettyinä. (ORDER BY) SELECT * FROM employees ORDER BY firstname ASC;

2. Haet työntekijöiden tiedot etunimen mukaan nousevasti järjestettyinä. (ORDER BY) SELECT * FROM employees ORDER BY firstname ASC; Tällä viikolla Kotitehtävien läpikäynti SQL-harjoituksia, osa 1 Jatketaan Pelifirman tietovaraston suunnittelua: tietotyyppien kertaus, taulun luonti ER-kaavioon, taulun luonti kaavion avulla tietokantaan,

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

VINKKI: Katso Kentät Muistioon -painikkeella, mikä on taulukon nimen oikea kirjoitusasu.

VINKKI: Katso Kentät Muistioon -painikkeella, mikä on taulukon nimen oikea kirjoitusasu. RATKAISUJA PULMAILMOITUKSIIN ASTERIOHJELMIEN SQLKYSELYISSÄ Virhe kyselyssä: Microsoft Jet tietokantamoduuli ei löydä syötetaulukkoa tai kyselyä Laskut. Varmista, että se on luotu ja että kirjoitit nimen

Lisätiedot

HELIA 1 (11) Outi Virkki Tiedonhallinta

HELIA 1 (11) Outi Virkki Tiedonhallinta HELIA 1 (11) Luento Käyttöoikeuksista ja tiedon suojauksesta... 2 Käyttäjätunnukset... 3 Tunnuksen luominen... 4 Oikeudet / Valtuudet... 5 Oikeuksien hallinta SQL:ssa... 6 Suojaustarkkuus?... 7 Roolit...

Lisätiedot

1 + b t (i, j). Olkoon b t (i, j) todennäköisyys, että B t (i, j) = 1. Siis operaation access(j) odotusarvoinen kustannus ajanhetkellä t olisi.

1 + b t (i, j). Olkoon b t (i, j) todennäköisyys, että B t (i, j) = 1. Siis operaation access(j) odotusarvoinen kustannus ajanhetkellä t olisi. Algoritmien DP ja MF vertaileminen tapahtuu suoraviivaisesti kirjoittamalla kummankin leskimääräinen kustannus eksplisiittisesti todennäköisyyksien avulla. Lause T MF ave = 1 + 2 1 i

Lisätiedot

Haaga-Helia / TIKO-05 1 (12) Tietokannan suunnittelu ja Toteutus Outi Virkki

Haaga-Helia / TIKO-05 1 (12) Tietokannan suunnittelu ja Toteutus Outi Virkki Haaga-Helia / TIKO-05 1 (12) Tietotarpeet Tietotarpeiden määrittely... 2 Tietotarveanalyysi... 3 Lähtökohtana tietojenkäsittelytehtävät... 3 Määrittelyn sisältö... 4 Vaiheistus... 5 Tietolähteet... 5 Lähestymistapa...

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

HELIA 1 (19) Outi Virkki Tietokantasuunnittelu

HELIA 1 (19) Outi Virkki Tietokantasuunnittelu HELIA 1 (19) Luento 3.0 Tietokannan hajautus... 2 Haasteita... 3 Hajautusvaihtoehtoja... 4 Segmentointi... 5 Replikointi... 9 Mobiilitietokannat ja synkronointi... 10 Hajautetun tietokannan idea... 11

Lisätiedot

Valitaan alkio x 1 A B ja merkitään A 1 = A { x 1 }. Perinnöllisyyden nojalla A 1 I.

Valitaan alkio x 1 A B ja merkitään A 1 = A { x 1 }. Perinnöllisyyden nojalla A 1 I. Vaihto-ominaisuudella on seuraava intuition kannalta keskeinen seuraus: Olkoot A I ja B I samankokoisia riippumattomia joukkoja: A = B = m jollain m > 0. Olkoon vielä n = m A B, jolloin A B = B A = n.

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

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 16. marraskuuta 2015

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 16. marraskuuta 2015 ja ja TIEA241 Automaatit ja kieliopit, syksy 2015 Antti-Juhani Kaijanaho NFA:ksi TIETOTEKNIIKAN LAITOS 16. marraskuuta 2015 Sisällys ja NFA:ksi NFA:ksi Kohti säännöllisiä lausekkeita ja Nämä tiedetään:

Lisätiedot

Testaa: Vertaa pinon merkkijono syötteeseen merkki kerrallaan. Jos löytyy ero, hylkää. Jos pino tyhjenee samaan aikaan, kun syöte loppuu, niin

Testaa: Vertaa pinon merkkijono syötteeseen merkki kerrallaan. Jos löytyy ero, hylkää. Jos pino tyhjenee samaan aikaan, kun syöte loppuu, niin Yhteydettömien kielioppien ja pinoautomaattien yhteys [Sipser s. 117 124] Todistamme, että yhteydettömien kielioppien tuottamat kielet ovat tasan samat kuin ne, jotka voidaan tunnistaa pinoautomaatilla.

Lisätiedot

Tentti erilaiset kysymystyypit

Tentti erilaiset kysymystyypit Tentti erilaiset kysymystyypit Monivalinta Monivalintatehtävässä opiskelija valitsee vastauksen valmiiden vastausvaihtoehtojen joukosta. Tehtävään voi olla yksi tai useampi oikea vastaus. Varmista, että

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

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

Lisätään avainarvo 1, joka mahtuu lehtitasolle:

Lisätään avainarvo 1, joka mahtuu lehtitasolle: Helsingin Yliopisto, Tietojenkäsittelytieteen laitos Tietokannan hallinta, kurssikoe 14.5.2004, J. Lindström Ratkaisuehdotuksia 1. Hakemistorakenteet, 15p. Tutkitaan tyhjää B+-puuta, jossa jokaiselle hakemistosivulle

Lisätiedot

Loogisempaa sisälogistiikkaa: tuotteiden yksilöinti ja tuotetietojen hallinta verkkokaupassa

Loogisempaa sisälogistiikkaa: tuotteiden yksilöinti ja tuotetietojen hallinta verkkokaupassa Loogisempaa sisälogistiikkaa: tuotteiden yksilöinti ja tuotetietojen hallinta verkkokaupassa Tomi-Pekka Juha, Sector Manager, GS1 Finland Oy 08.10.2015 Sisältö GS1 Finland GS1 ja verkkokauppa GS1 järjestelmä

Lisätiedot

Elisa Kassa - Tuotetietojen tuonti järjestelmään (Import products)

Elisa Kassa - Tuotetietojen tuonti järjestelmään (Import products) Elisa Kassa - Tuotetietojen tuonti järjestelmään (Import products) Tämän ohjeen avulla opit tuomaan tuotetietoja Elisa Kassaan käyttämällä hyväksi tiedostoa (esim. Microsoft Excel tai OpenOffice). Tuotteiden

Lisätiedot

Tietokantojen perusteet k2004helsingin yliopisto/tktl Tietokantojen perusteet, s 2005 relaatiomalli Harri Laine 1.

Tietokantojen perusteet k2004helsingin yliopisto/tktl Tietokantojen perusteet, s 2005 relaatiomalli Harri Laine 1. Relaatiotietokannat Relaatiomalli Perustana rakennetason tietomalli (the relational model of data) perusteoria: E.F.Codd 1970 ensimmäiset kaupalliset toteutukset 70-luvun lopulla yleistynyt 80-luvun lopulla

Lisätiedot

QR-koodit INNOSTAVAA HAUSKAA PALJON KÄYTTÖTAPJA HELPPOA ILMAISTA MOTIVOIVAA

QR-koodit INNOSTAVAA HAUSKAA PALJON KÄYTTÖTAPJA HELPPOA ILMAISTA MOTIVOIVAA QR-koodit QR-koodit INNOSTAVAA HAUSKAA PALJON KÄYTTÖTAPJA HELPPOA MOTIVOIVAA ILMAISTA QR-koodi paljon tietoa Koodin avulla pääsee nopeasti halutulle verkkosivulle tai esim. YouTube-videoon ilman osoitteen

Lisätiedot

KÄYTTÖOHJE METRIRUNKO-OBJEKTILLE. Metrirunko-elementtien lisääminen runkoratkaisuksi

KÄYTTÖOHJE METRIRUNKO-OBJEKTILLE. Metrirunko-elementtien lisääminen runkoratkaisuksi KÄYTTÖOHJE METRIRUNKO-OBJEKTILLE Suunnittelun työvaiheet Rakennuksen mallintaminen 1. Säädä kerroskorkeus elementin korkeudeksi (2,500m + 0,048m, jos valitset alajuoksun elementin alle) Erikoistilauksesta

Lisätiedot

Tietokannan hallintajärjestelmän (DBMS) palvelut ja rakenne

Tietokannan hallintajärjestelmän (DBMS) palvelut ja rakenne HAAGA-HELIA Heti-09 1 (6) Tietokannan hallintajärjestelmän (DBMS) palvelut ja rakenne Tietovarastotekniikan kehittyminen... 2 Tiedostopohjaiset ratkaisut... 2 Tiedoston palvelut... 3 Tiedostopohjaisten

Lisätiedot

WEBINAARI Mitä Tag Management on käytännössä ja miten se vaikuttaa analytiikkaan?

WEBINAARI Mitä Tag Management on käytännössä ja miten se vaikuttaa analytiikkaan? WEBINAARI 7.4.2016 Mitä Tag Management on käytännössä ja miten se vaikuttaa analytiikkaan? Petri Mertanen, Super Analytics - @mertanen Jarno Wuorisalo, Cuutio - @jarnowu Tomi Grönfors, Brandfors - @groenforsmethod

Lisätiedot

Käyttöohjeet. Sovellussivusto

Käyttöohjeet. Sovellussivusto Käyttöohjeet Sovellussivusto SISÄLLYSLUETTELO Tietoja oppaasta...2 Oppaassa käytetyt symbolit...2 Vastuuvapauslauseke...3 Huomautuksia...3 Mitä sovellussivustolla voi tehdä... 4 Ennen sovellussivuston

Lisätiedot

FYYSINEN SUUNNITTELU

FYYSINEN SUUNNITTELU IIO30120 DATABASE DESIGN / TIETOKANTOJEN SUUNNITTELU JA IIO30220 DATABASE MANAGEMENT / TIETOKANNAN HALLINTA FYYSINEN SUUNNITTELU KIRJAN HOVI, HUOTARI, LAHDENMÄKI: TIETOKANTOJEN SUUNNITTELU & INDEKSOINTI,

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

HELIA 1 (14) Outi Virkki Tiedonhallinta

HELIA 1 (14) Outi Virkki Tiedonhallinta HELIA 1 (14) Luento Transaktion / Tapahtuman hallinta... 2 Taustaa... 3 Tapahtuman käsite... 5 ACID-ominaisuudet... 7 Samanaikaisuuden hallinta... 8 Lukitukset... 9 Toipuminen... 10 Loki-tiedosto... 11

Lisätiedot

HAAGA-HELIA Heti-09 1 (14) ICT05: Tiedonhallinta ja Tietokannnat O.Virkki Transaktionkäsittely

HAAGA-HELIA Heti-09 1 (14) ICT05: Tiedonhallinta ja Tietokannnat O.Virkki Transaktionkäsittely HAAGA-HELIA Heti-09 1 (14) Transaktionkäsittely Transaktion / Tapahtuman hallinta... 2 Taustaa... 3 Tapahtuman käsite... 5 ACID-ominaisuudet... 7 Samanaikaisuuden hallinta... 8 Lukitukset... 9 Toipuminen...

Lisätiedot

Kaikki kurssin laskuharjoitukset pidetään Exactumin salissa C123. Malliratkaisut tulevat nettiin kurssisivulle.

Kaikki kurssin laskuharjoitukset pidetään Exactumin salissa C123. Malliratkaisut tulevat nettiin kurssisivulle. Kombinatoriikka, kesä 2010 Harjoitus 1 Ratkaisuehdotuksia (RT (5 sivua Kaikki kurssin laskuharjoitukset pidetään Exactumin salissa C123. Malliratkaisut tulevat nettiin kurssisivulle. 1. Osoita, että vuoden

Lisätiedot

Suvi Junes Tietohallinto / Opetusteknologiapalvelut 2012

Suvi Junes Tietohallinto / Opetusteknologiapalvelut 2012 Tiedostot Uudet ominaisuudet: - Ei Tiedostot-kohtaa alueen sisällä, vaan tiedostonvalitsin, jolla tiedostot tuodaan alueelle siihen kohtaan missä ne näytetään - Firefox-selaimella voi työpöydältä raahata

Lisätiedot

Nimettömien tietojen lähettäminen Lenovolle

Nimettömien tietojen lähettäminen Lenovolle Nimettömien tietojen lähettäminen Lenovolle Sisältö Nimettömien tietojen lähettäminen Lenovolle... 1 Harmony... 1 Lenovo Companion 3.0... 2 Lenovo Customer Engagement Service... 3 Lenovo Experience Improvement

Lisätiedot

Päivitetty 9.5.2012. Text Mining -käyttöopas

Päivitetty 9.5.2012. Text Mining -käyttöopas Päivitetty 9.5.2012 Text Mining -käyttöopas WEBROPOL ANALYTICS: TEXT MINING Mitä tarkoittaa kun asiakkaat tai henkilöstö antavat arvosanan 3.1 o Keskiarvoa informatiivisempaa ovat taustalla olevat syyt

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

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

Javan perusteita. Janne Käki

Javan perusteita. Janne Käki Javan perusteita Janne Käki 20.9.2006 Muutama perusasia Tietokone tekee juuri (ja vain) sen, mitä käsketään. Tietokone ymmärtää vain syntaksia (sanojen kirjoitusasua), ei semantiikkaa (sanojen merkitystä).

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

KGU kannassa omaisuuden hallinta moduuli on valmiiksi asennettu.

KGU kannassa omaisuuden hallinta moduuli on valmiiksi asennettu. 1 Investointien hallinta ja poistot Investointien (esimerkiksi koneet ja laitteet, maa-alueet ja kiinteistöt) hallinta Odoo kirjanpidossa tehdään "Omaisuuden hallinta" moduulin alaisuudessa. Siellä voidaan

Lisätiedot

Paroc Panel System ArchiCAD-sovellus

Paroc Panel System ArchiCAD-sovellus Paroc Panel System ArchiCAD-sovellus 1.1.2014 Käyttöehdot Sovelluksen käyttö ja kopiointi on maksutonta. Sovelluksen ja kaikki sen näyttämä sisältö toimitetaan sellaisenaan ilman minkäänlaista takuuta.

Lisätiedot

NORMALISOINTI TIETOJEN MALLINNUS JOUNI HUOTARI & ARI HOVI

NORMALISOINTI TIETOJEN MALLINNUS JOUNI HUOTARI & ARI HOVI TIETOJEN MALLINNUS NORMALISOINTI HOVI, HUOTARI, LAHDENMÄKI: TIETOKANTOJEN SUUNNITTELU & INDEKSOINTI DOCENDO (2003, 2005) LUKU 5 JOUNI HUOTARI & ARI HOVI SUUNNITTELUPUTKI Käyttäjien näkemykset Näytöt, ikkunat

Lisätiedot

Pikaohjeet A&O oppimisympäristön käytön aloittamiseen

Pikaohjeet A&O oppimisympäristön käytön aloittamiseen Pikaohjeet A&O oppimisympäristön käytön aloittamiseen 1. Kirjaudu A&O-ympäristöön Verkkopalvelun sisällöntuotanto kurssilla käytettävä A&O alusta löytyy verkko-osoitteesta: http://ao4.ee.tut.fi/hypermedia/

Lisätiedot

815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset

815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset 815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 2 vastaukset Harjoituksen aiheena on BNF-merkinnän käyttö ja yhteys rekursiivisesti etenevään jäsentäjään. Tehtävä 1. Mitkä ilmaukset seuraava

Lisätiedot

Kuva 7.2 vastaustaulu harjoitukseen 7.2

Kuva 7.2 vastaustaulu harjoitukseen 7.2 Harjoitus 7. Lataa tiedosto http://users.metropolia.fi/~pasitr/opas/ran13b/data/ran13b.zip levylle Z: ja pura se. Kun olet tehnyt kaikki seuraavat 17 tehtävää palauta Tuubiin harjoituksen 7 vastauksena

Lisätiedot

Approbatur 3, demo 1, ratkaisut A sanoo: Vähintään yksi meistä on retku. Tehtävänä on päätellä, mitä tyyppiä A ja B ovat.

Approbatur 3, demo 1, ratkaisut A sanoo: Vähintään yksi meistä on retku. Tehtävänä on päätellä, mitä tyyppiä A ja B ovat. Approbatur 3, demo 1, ratkaisut 1.1. A sanoo: Vähintään yksi meistä on retku. Tehtävänä on päätellä, mitä tyyppiä A ja B ovat. Käydään kaikki vaihtoehdot läpi. Jos A on rehti, niin B on retku, koska muuten

Lisätiedot

S BAB ABA A aas bba B bbs c

S BAB ABA A aas bba B bbs c T-79.148 Kevät 2003 Tietojenkäsittelyteorian perusteet Harjoitus 8 Demonstraatiotehtävien ratkaisut 4. Tehtävä: Laadi algoritmi, joka testaa onko annetun yhteydettömän kieliopin G = V, Σ, P, S) tuottama

Lisätiedot

D B. Kyselyjen käsittely ja optimointi. Kyselyn käsittelyn vaiheet:

D B. Kyselyjen käsittely ja optimointi. Kyselyn käsittelyn vaiheet: Kyselyjen käsittely ja optimointi Kyselyn käsittelyn vaiheet: TKHJ ottaa vastaan kyselyn asiakasohjelmalta Kysely selataan ja jäsennetään tarkistetaan kyselyn rakenteellinen oikeellisuus Jäsennetty kysely

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

Supply Chain Module 1

Supply Chain Module 1 2.5.2016 Supply Chain Module 1 1. Määritelmä 2. Kuinka vähittäiskaupan ketju toimii? 3. Mitä toimenpiteitä teet kaupassa? 3.1. Perusvarastonvalvonta/ Check-in ja Check-out toiminnot (Vastaanotto ja Palautukset)

Lisätiedot

Matematiikan tukikurssi, kurssikerta 2

Matematiikan tukikurssi, kurssikerta 2 Matematiikan tukikurssi kurssikerta 1 Relaatioista Oletetaan kaksi alkiota a ja b. Näistä kumpikin kuuluu johonkin tiettyyn joukkoon mahdollisesti ne kuuluvat eri joukkoihin; merkitään a A ja b B. Voidaan

Lisätiedot