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

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

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

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

HELIA 1 (14) Outi Virkki Tiedonhallinta

HELIA 1 (14) Outi Virkki Tiedonhallinta HELIA 1 (14) Luento Näkymät... 2 Relaatiotyypit... 2 Taulu - Tallennettu relaatio... 3 Näkymä - Virtuaalirelaatio... 3 Tulosrelaatio - Kyselyn tulos... 3 Otetaulut - Tauluun tallennettu kyselyn tulos...

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

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

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

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

Kyselyt: Lähtökohtana joukko lukuja Laskukaava kertoo miten luvuista lasketaan tulos soveltamalla laskentaoperaatioita

Kyselyt: Lähtökohtana joukko lukuja Laskukaava kertoo miten luvuista lasketaan tulos soveltamalla laskentaoperaatioita Relaatioalgebra Relaatiomalliin liittyy malli tietokannan käsittelystä Tietokannasta pitää pystyä hakemaan tietoa ja toisaalta tietokantaa on ylläpidettävä Tietokannan käsittelyn malli relaatioalgebra

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. Kyselyt:

Relaatioalgebra. Kyselyt: Relaatioalgebra Relaatiomalliin liittyy malli tietokannan käsittelystä Tietokannasta pitää pystyä hakemaan tietoa ja toisaalta tietokantaa on ylläpidettävä Tietokannan käsittelyn malli relaatioalgebra

Lisätiedot

Järjestelmäarkkitehtuuri (TK081702) Hajautettu tietokanta. Hajautuksen hyötyjä

Järjestelmäarkkitehtuuri (TK081702) Hajautettu tietokanta. Hajautuksen hyötyjä Järjestelmäarkkitehtuuri (TK081702) Hajautettu tietokanta Hajautettu tietokanta Jokainen hajautettu tietokanta muodostaa oman kokonaisuutensa Loogisesti yhtenäinen data on hajautettu tietokantoihin (eri

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

TIETOKANTOJEN PERUSTEET OSIO 14 MARKKU SUNI

TIETOKANTOJEN PERUSTEET OSIO 14 MARKKU SUNI TIETOKANTOJEN PERUSTEET OSIO 14 MARKKU SUNI Tavoite: Suunnitella käyttäjien tarvitsemat turvallisuusmekanismit ja säännöt. Toisin sanoen: tehdä tietokannasta turvallinen ja luotettava. Muistutus: Tietokanta

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

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

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

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

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

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

TIEDONHALLINTA - SYKSY Luento 10. Hannu Markkanen /10/12 Helsinki Metropolia University of Applied Sciences TIEDONHALLINTA - SYKSY 2011 Kurssikoodi: Saapumisryhmä: Luento 10 TU00AA48-2002 TU10S1E Hannu Markkanen 14.-15.11.2011 9/10/12 Helsinki Metropolia University of Applied Sciences 1 SQL: Monen taulun kyselyt

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 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

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

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

Helsingin yliopisto Tietojenkäsittelytieteen laitos (H.Laine) Tietokantojen perusteet. Liitteenä: Tiivistelmä SQL-syntaksista

Helsingin yliopisto Tietojenkäsittelytieteen laitos (H.Laine) Tietokantojen perusteet. Liitteenä: Tiivistelmä SQL-syntaksista Helsingin yliopisto Tietojenkäsittelytieteen laitos 26.2.2014 (H.Laine) Tietokantojen perusteet Liitteenä: Tiivistelmä SQL-syntaksista Kirjoita jokaiseen erilliseen vastausarkkiin kurssin nimi, tenttipäivä,

Lisätiedot

Johdanto Javaan ja tietokantojen käsittelyyn Java Database Connectivity (JDBC)

Johdanto Javaan ja tietokantojen käsittelyyn Java Database Connectivity (JDBC) HAAGA-HELIA ICT1TA006: Ohjelmointi 1 /5 Johdanto Javaan ja tietokantojen käsittelyyn Java Database Connectivity (JDBC) (Lähteet: Oracle java jdbc Tutorial, Arvo Lipitsäinen: Tietokannan käsittely JDBC:n

Lisätiedot

HOJ Haja-aiheita. Ville Leppänen. HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.1/10

HOJ Haja-aiheita. Ville Leppänen. HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.1/10 HOJ Haja-aiheita Ville Leppänen HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.1/10 Missä mennään... 1. Johdanto (1h) 2. Säikeet (2h) 3. Samanaikaisuudesta (2h) 4. Hajautetuista sovelluksista (1h)

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

Pilvi 9.0. Arkkitehtuuri. Esimerkki arkkitehtuurit

Pilvi 9.0. Arkkitehtuuri. Esimerkki arkkitehtuurit Esimerkki arkkitehtuurit Sivu 2/8 Sisällysluettelo 1. Johdanto... 3 1.1. Termejä... 3 2. Web hosting ilman kuormantasausta... 4 3. Web hosting kuormatasaus ja bastion... 5 3.1.... 5 3.2. Kuvaus... 5 4.

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

FROM-lausekkeessa voidaan määritellä useampi kuin yksi taulu, josta tietoja haetaan: Tuloksena on taululistassa lueteltujen taulujen rivien

FROM-lausekkeessa voidaan määritellä useampi kuin yksi taulu, josta tietoja haetaan: Tuloksena on taululistassa lueteltujen taulujen rivien Monen taulun kyselyt FROM-lausekkeessa voidaan määritellä useampi kuin yksi taulu, josta tietoja haetaan: SELECT FROM Tuloksena on taululistassa lueteltujen taulujen rivien karteesinen

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

Helsingin yliopisto/tktl DO Tietokantojen perusteet, s 2000 Relaatiomallin peruskäsitteet Harri Laine 1. Relaatiotietokannat DONOTP

Helsingin yliopisto/tktl DO Tietokantojen perusteet, s 2000 Relaatiomallin peruskäsitteet Harri Laine 1. Relaatiotietokannat DONOTP RINT THIS DOCUM ENT Relaatiotietokannat DONOTP Relaatiomalli Perustana rakennetason tietomalli relaatiomalli (the relational model of data) perusteoria: Codd 1970 ensimmäiset kaupalliset toteutukset 70-luvun

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

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

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

18 LIITTYMÄT MUIHIN JÄRJESTELMIIN

18 LIITTYMÄT MUIHIN JÄRJESTELMIIN 18 MUIHIN JÄRJESTELMIIN Prospekti DAFOon rakennettu liittymiä muiden ohjelmiston toimittajien järjestelmiin. Tässä yhteydessä ei tarkoiteta siirtotiedoston muodostamista, kuten reskontraan siirto tai lappujen

Lisätiedot

HELIA 1 (15) Outi Virkki Tietokantasuunnittelu 13.11.2000

HELIA 1 (15) Outi Virkki Tietokantasuunnittelu 13.11.2000 HELIA 1 (15) Luento 2.7 Toiminnallisuutta tietokantaan... 2 Deklaratiivinen eheysvalvonta... 2 Proseduraalinen eheysvalvonta... 3 Eheysvalvonnan suunnittelusta... 4 Sääntöjen määrittely... 4 Toteutusvaihtoehdot...

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

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

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

Transaktiot - kertausta

Transaktiot - kertausta Hajautettujen järjestelmien perusteet Transaktiot - kertausta Distributed Systems, Concepts and Design, George Coulouris, Jean Dollimore, Tim Kindberg Addison-Wesley 1988,1994. Pearson Education 2001 ISBN:

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

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

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

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

Tietokannat II -kurssin harjoitustyö

Tietokannat II -kurssin harjoitustyö Tietokannat II -kurssin harjoitustyö Olli Opiskelija (123), olli.opiskelija@foo.fi Maija Mallioppilas (321), maija.mallioppilas@foo.fi 13.3. 2007 1 Sisältö 1 Tietokannan kuvaus 3 1.1 Tietokannan rakenne..................................

Lisätiedot

Contents AdsML ympäristö... 2 AdsML Testi ympäristö... 2 AdsML tuotantoympäristö... 2 AdsML käyttöliittymä... 3 Kirjautuminen...

Contents AdsML ympäristö... 2 AdsML Testi ympäristö... 2 AdsML tuotantoympäristö... 2 AdsML käyttöliittymä... 3 Kirjautuminen... Contents AdsML ympäristö... 2 AdsML Testi ympäristö... 2 AdsML tuotantoympäristö... 2 AdsML käyttöliittymä... 3 Kirjautuminen... 3 Käsiteltävät sanomat... 4 Yhdisteltävät sanomat... 5 Sanoman historia

Lisätiedot

Pikaopas työjärjestystietojen viemiseen uuteen Outlook -kalenteriin

Pikaopas työjärjestystietojen viemiseen uuteen Outlook -kalenteriin Pikaopas työjärjestystietojen viemiseen uuteen Outlook -kalenteriin Seuraavassa on esitetty, miten TimeEditissä olevat tiedot saadaan siirrettyä uuteen Outlook -kalenteriin. Vaihe 1 Ensimmäisenä käsitellään

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

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

812347A Olio-ohjelmointi, 2015 syksy 2. vsk. IX Suunnittelumallit Proxy, Factory Method, Prototype ja Singleton

812347A Olio-ohjelmointi, 2015 syksy 2. vsk. IX Suunnittelumallit Proxy, Factory Method, Prototype ja Singleton 2015 syksy 2. vsk IX Suunnittelumallit Proxy, Factory Method, Prototype ja Singleton Sisältö 1. Johdanto luontimalleihin 2. Proxy 3. Factory Method 4. Prototype 5. Singleton Suunnittelumallit Proxy et.

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

Visma Liikkuvan työn ratkaisut Päivitysohje. Pääkäyttäjän opas

Visma Liikkuvan työn ratkaisut Päivitysohje. Pääkäyttäjän opas Visma Liikkuvan työn ratkaisut Pääkäyttäjän opas Visma Software Oy pidättää itsellään oikeuden mahdollisiin parannuksiin ja/tai muutoksiin tässä oppaassa ja/tai ohjelmassa ilman eri ilmoitusta. Oppaan

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

Olio-ohjelmoinnissa luokat voidaan järjestää siten, että ne pystyvät jakamaan yhteisiä tietoja ja aliohjelmia.

Olio-ohjelmoinnissa luokat voidaan järjestää siten, että ne pystyvät jakamaan yhteisiä tietoja ja aliohjelmia. 4. Periytyminen 4.1. Johdantoa Käytännössä vähänkään laajemmissa ohjelmissa joudutaan laatimaan useita luokkia, joiden pitäisi pystyä välittämään tietoa toisilleen. Ohjelmien ylläpidon kannalta olisi lisäksi

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

Tietomallit. Näkökulmat tietoon. Näkökulmat tietoon. Mitä malleja olisi tarjolla? Abstraktiotasot tiedon käsittelyssä

Tietomallit. Näkökulmat tietoon. Näkökulmat tietoon. Mitä malleja olisi tarjolla? Abstraktiotasot tiedon käsittelyssä Tietomallit Tietomallilla (data model) tarkoitetaan tiedon rakenteen ja tiedolle suoritettavan käsittelyn määrittelevää kehikkoa - käsitteistöä Tietoa voidaan tarkastella eri näkökulmista - eri abstraktiotasoilla

Lisätiedot

Käyttöohje. Boa Open Access. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Käyttöohje. Boa Open Access. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Käyttöohje Boa Open Access Helsinki 5.5.2006 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti (6 ov) Projektiryhmä Ilmari Heikkinen

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

Järjestelmänvalvontaopas

Järjestelmänvalvontaopas Järjestelmänvalvontaopas Medtronic MiniMed Northridge, CA 91325 USA 800 646 4633 (800-MiniMed) 818 576 5555 www.minimed.com Edustaja EU:n alueella Medtronic B.V. Earl Bakkenstraat 10 6422 PJ Heerlen Alankomaat

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

MEMS-muisti relaatiotietokannoissa

MEMS-muisti relaatiotietokannoissa MEMS-muisti relaatiotietokannoissa Antti Tikka Espoo 28.2.2009 Seminaari HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET UNIVERSITY OF HELSINKI Tiedekunta/Osasto

Lisätiedot

Rekursiolause. Laskennan teorian opintopiiri. Sebastian Björkqvist. 23. helmikuuta Tiivistelmä

Rekursiolause. Laskennan teorian opintopiiri. Sebastian Björkqvist. 23. helmikuuta Tiivistelmä Rekursiolause Laskennan teorian opintopiiri Sebastian Björkqvist 23. helmikuuta 2014 Tiivistelmä Työssä käydään läpi itsereplikoituvien ohjelmien toimintaa sekä esitetään ja todistetaan rekursiolause,

Lisätiedot

Harjoituksen aiheena on tietokantapalvelimen asentaminen ja testaaminen. Asennetaan MySQL-tietokanta. Hieman linkkejä:

Harjoituksen aiheena on tietokantapalvelimen asentaminen ja testaaminen. Asennetaan MySQL-tietokanta. Hieman linkkejä: Linux-harjoitus 6 Harjoituksen aiheena on tietokantapalvelimen asentaminen ja testaaminen. Asennetaan MySQL-tietokanta. Hieman linkkejä: http://www.mysql.com/, MySQL-tietokantaohjelman kotisivu. http://www.mysql.com/doc/en/index.html,

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

Maiju Mykkänen (D6297@jamk.fi) Susanna Sällinen (E0941@jamk.fi)

Maiju Mykkänen (D6297@jamk.fi) Susanna Sällinen (E0941@jamk.fi) Maiju Mykkänen (D6297@jamk.fi) Susanna Sällinen (E0941@jamk.fi) Tietokannan hallinta-opintojakson selvitysraportti Huhtikuu 2010 Mediatekniikka ICT/Teknologia Tämän teosteoksen käyttöoikeutta koskee Creative

Lisätiedot

Ylläpitodokumentti. Ohjelmistotuotantoprojektin tietojärjestelmä OhtuTie

Ylläpitodokumentti. Ohjelmistotuotantoprojektin tietojärjestelmä OhtuTie Ylläpitodokumentti Ohjelmistotuotantoprojektin tietojärjestelmä OhtuTie Helsinki 16.7.2004 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti

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

Pipfrog AS www.pipfrog.com. Tilausten hallinta

Pipfrog AS www.pipfrog.com. Tilausten hallinta Tilausten hallinta Tilausten hallinta Tilausten hallinnassa on neljän tyyppisiä dokumentteja: Tilaukset, laskut, lähetykset ja hyvityslaskut, Tilaus on ensimmäinen dokumentti, jonka joko ostaja on luonnut

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

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

SQL:N PERUSTEET MARKKU SUNI

SQL:N PERUSTEET MARKKU SUNI SQL:N PERUSTEET MARKKU SUNI Relaatiomallisen tietokannan käsittely Tietojen saanti, talletus ja päivitys tapahtuu SQL-kielellä Yhtä operaatiota sanotaan kyselyksi (query) Kyselyjä voidaan laittaa peräkkäin

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

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

WEBINAARIN ISÄNNÄT. Jarno Wuorisalo Cuutio.fi. Petri Mertanen Superanalytics.fi. Tomi Grönfors Brandfors.com

WEBINAARIN ISÄNNÄT. Jarno Wuorisalo Cuutio.fi. Petri Mertanen Superanalytics.fi. Tomi Grönfors Brandfors.com WEBINAARI 3.11.2015 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

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

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

Miten voin selvittää säästömahdollisuuteni ja pääsen hyötymään niistä?

Miten voin selvittää säästömahdollisuuteni ja pääsen hyötymään niistä? Se edullisempi tietokanta Miten voin selvittää säästömahdollisuuteni ja pääsen hyötymään niistä? Rasmus Johansson rasmus.johansson@microsoft.com Ratkaisumyyntipäällikkö (Sovellusalusta) Microsoft Oy Miten

Lisätiedot

R 2 [0] ei ole likainen luku, sillä avaimelle 0 on jo palautettu sen alkuperäinen arvo.

R 2 [0] ei ole likainen luku, sillä avaimelle 0 on jo palautettu sen alkuperäinen arvo. Tietokantarakenteet ja -algoritmit 5. harjoitus Malliratkaisut 1. B 1 : T 1 alkaa. I 1 [1]: T 1 :lle pitkäkestoinen X-lukko avaimeen 1 ja lyhytkestoinen X-lukko avaimen 1 seuraajaan. B 2 : T 2 alkaa. I

Lisätiedot

Haaga-Helia/IltaTiko ict2tcd005: Ohjelmiston suunnittelutaito 1/7 Anne Benson. Tällä opintojaksolla käytämme VS:n kolmen kokonaisuuden luomiseen:

Haaga-Helia/IltaTiko ict2tcd005: Ohjelmiston suunnittelutaito 1/7 Anne Benson. Tällä opintojaksolla käytämme VS:n kolmen kokonaisuuden luomiseen: Haaga-Helia/IltaTiko ict2tcd005: Ohjelmiston suunnittelutaito 1/7 Microsoft SQL käyttö Yleistä VisualStudiosta Tällä opintojaksolla käytämme VS:n kolmen kokonaisuuden luomiseen: - sovellushallintaan -

Lisätiedot

IIO30220 Database Management / Tietokannan hallinta TAPAHTUMIEN HALLINTA JOUNI HUOTARI (7.3.2012)

IIO30220 Database Management / Tietokannan hallinta TAPAHTUMIEN HALLINTA JOUNI HUOTARI (7.3.2012) IIO30220 Database Management / Tietokannan hallinta TAPAHTUMIEN HALLINTA JOUNI HUOTARI (7.3.2012) TEHTÄVIÄ/KYSYMYKSIÄ Määrittele tapahtuma (transaction) tapahtumien hallinta Mitä ovat tapahtuman ACIDominaisuudet?

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

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

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

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

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

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

oheishakemistoja voi tiedostoon liittyä useita eri perustein muodostettuja

oheishakemistoja voi tiedostoon liittyä useita eri perustein muodostettuja Tietokantojen hakemistorakenteet Hakemistorakenteiden (indeksien) tarkoituksena on nopeuttaa tietojen hakua tietokannasta. Hakemisto voi olla ylimääräinen oheishakemisto (secondary index), esimerkiksi

Lisätiedot

Kuva maailmasta Pakettiverkot (Luento 1)

Kuva maailmasta Pakettiverkot (Luento 1) M.Sc.(Tech.) Marko Luoma (1/20) M.Sc.(Tech.) Marko Luoma (2/20) Kuva maailmasta Pakettiverkot (Luento 1) WAN Marko Luoma TKK Teletekniikan laboratorio LAN M.Sc.(Tech.) Marko Luoma (3/20) M.Sc.(Tech.) Marko

Lisätiedot

Pertti Pennanen DOKUMENTTI 1 (5) EDUPOLI ICTPro1 29.10.2013

Pertti Pennanen DOKUMENTTI 1 (5) EDUPOLI ICTPro1 29.10.2013 Virtualisointi Pertti Pennanen DOKUMENTTI 1 (5) SISÄLLYSLUETTELO Virtualisointi... 2 Virtualisointiohjelmia... 2 Virtualisointitapoja... 2 Verkkovirtualisointi... 2 Pertti Pennanen DOKUMENTTI 2 (5) Virtualisointi

Lisätiedot

Kyselyn yleisrakenne:

Kyselyn yleisrakenne: SQL kysely Kyselyn yleisrakenne: select tulostietomäärittely from taulukkeet [where valintaehdot] [group by ryhmitystekijät] [having ryhmärajoitteet] [order by järjestysperusta] Kysely tuottaa nimettömän

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

7.11.2006. Helsingin yliopisto/tktl Kyselykielet, s 2006 Relaatiokalkyylit. Harri Laine 1

7.11.2006. Helsingin yliopisto/tktl Kyselykielet, s 2006 Relaatiokalkyylit. Harri Laine 1 perusteita - relaatiokalkyylit perusteita - relaatiokalkyylit Relaatioalgebra on luonteeltaan proseduraalinen tapa käsitellä tietoa. Tiedon haetaan sarjaksi järjestettyjen operaatioiden avulla. Edellä

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

4. Kyselyjen käsittely ja optimointi

4. Kyselyjen käsittely ja optimointi Tietokannan hallinta 1 4. Kyselyjen käsittely ja optimointi Tietokannan hallinta 2 4. Kyselyjen käsittely ja optimointi 4. Kyselyjen käsittely ja optimointi (E&N, Ch. 18) - taustana mm. relaatioalgebra

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