Looginen tietokanta ja transaktiot

Koko: px
Aloita esitys sivulta:

Download "Looginen tietokanta ja transaktiot"

Transkriptio

1 Looginen tietokanta ja transaktiot A. Silberschatz, H. F. Korth & S. Sudarshan: Database System Concepts. Fifth Edition. McGraw-Hill, 2006, sivut 22 23, luvun 1 (introduction) kohta kohta 1.9 (transaction management); sivut , luku 3 (SQL); sivut , luvun 4 (advanced SQL) kohta 4.4 (embedded SQL); sivut , luvun 15 (transactions) kohdat 15.1 (transaction concept) ja 15.2 (transaction state); sivut , luvun 20 (database-system architectures) kohta 20.1 (centralized and clientserver architectures). Transaktiopalvelin, s. 2. Looginen tietokanta, s. 4. Loogisen tietokannan eheys, s. 10. Transaktiot, s. 11. Transaktioiden tilat, s. 17. Oikeellinen transaktio, s. 23. Luku-kirjoitusmalli, s. 24. Avainvälimalli, s. 30. Peruutuspisteet ja osittaisperuutus, s. 34. Monirakeisuus, s

2 Transaktiopalvelin Useimmat relaatiotietokannan hallintajärjestelmät ovat ns. transaktiopalvelimia (transaction server) eli kyselypalvelimia (query server). Transaktiopalvelin tarjoaa liittymän, jonka välityksellä asiakassovellukset voivat lähettää palvelimelle tietokantaoperaatioiden (kyselyiden ja päivitysten) suorituspyyntöjä. Palvelin palauttaa asiakkaalle operaation tuloksen. Pyynnöt voidaan määrittää SQL-kielellä tai erityisellä sovellusohjelmointiliittymällä (esim. JDBC, ODBC tms). Transaktiopalvelinjärjestelmän toimintatapaa kutsutaan transaktionkuljetukseksi (transaction shipping) eli kyselynkuljetukseksi (query shipping) eli funktionkuljetukseksi (function shipping). 2

3 Palvelimessa toimii yksi tai useampi (yleensä monisäikeinen) palvelinprosessi (server process). Joissakin järjestelmissä käytetään omaa palvelinprosessia kunkin käyttäjän istunnolle (asiakassovelluprosessille). Yleisempi lienee käytäntö, jossa yksi palvelinprosessi palvelee useampaa käyttäjää niin, että kullekin käyttäjälle on osoitettu yksi palvelinprosessin säie (thread). Prosessin kaikki säikeet toimivat rinnakkain samassa virtuaalimuistitilassa. Sovellusprosessin yhteys palvelimeen luodaan sulautettuun SQLkieleen (embedded SQL) kuuluvalla lauseella connect to s, missä s on palvelimen tunniste (verkko-osoite). Lause luo sovellusprosessia palvelemaan uuden säikeen tai osoittaa tehtävään vapaana olevan säikeen. 3

4 Looginen tietokanta Looginen tietokanta (logical database) on loogisen tietokantamallin (useimmiten relaatiomallin tai oliomallin) mukainen kokoelma tietoalkioita. Tällä kurssilla käsittelemämme loogiset tietokannat ovat relaatiotietokantoja. Looginen tietokanta on siten kokoelma relaatioita (relation) eli tauluja (table), jotka ovat monikoiden (tuple) eli rivien (row) monijoukkoja. Monijoukko (multiset, bag) on (järjestämätön) joukko, jossa sama alkio voi esiintyä useita kertoja. Relaation monikot ovat kaikki saman kaavion mukaisia, so. samantyyppisiä. Relaatiokaavio (relation schema) r(z) sisältää kaavion nimen r ja attribuuttien nimi- ja tyyppimääritykset Z kaavioon asetettuine eheysrajoitteineen (avain- ja viite-eheys- ym. rajoitteet). 4

5 Tietokantasovellus näkee tietokannan loogisena tietokantana ja operoi siihen loogisen tietokannan operaatioita käyttäen. Relaatiotietokannan loogisia operaatioita ovat (mm.): (1) Uuden monikon t lisääminen relaatioon r. (2) Monikon t poistaminen relaatiosta r. (3) Relaation r monikon t attribuutin A arvon päivittäminen. (4) Relaation r ehdon C täyttävän monikon t lukeminen. (5) Uuden relaation r(z) luonti tietokantaan. Operaation syötteenä on relaatiokaavio. Operaatio on mahdollinen, mikäli tietokannassa ei ennestään ole r-nimistä relaatiota. Operaatio luo tyhjän relaation, johon sitten voi kohdistaa muita operaatioita. (6) Tyhjän relaation r hävittäminen tietokannasta. Operaation jälkeen r:ään voi kohdistaa ainoastaan operaation 5. 5

6 Loogisiin operaatioihin kuuluvat lisäksi transaktioiden hallinnassa tarvittavat operaatiot: aloituskirjaus, sitoutumispyyntö, keskeytyspyyntö ja peruutuksen päättymiskirjaus. Tarkasteltava loogisten operaatioiden joukko kiinnitetään myöhemmin tarkemmin transaktiomallin (avainvälimallin) määrittelyn yhteydessä. Loogiset operaatiot tuotetaan tietokannan hallintajärjestelmän tiedonkäsittelykielen (data manipulation language, DML) ja tiedonmäärittelykielen (data definition language, DDL) lauseilla. Useimmiten tiedonkäsittely- ja määrittelykielenä käytetään SQL:ää. Tiedonmäärittelykieleen kuuluviksi luetaan ne lauseet, jotka päivittävät tietokannan tietohakemistoa eli järjestelmäluetteloa (data dictionary, system catalog), kuten create table ja drop table. SQL-kielen lauseet tuottavat seuraavanlaisia loogisia operaatioita: 6

7 (1) Monikon t lisäys relaatioon r: insert into r values (t) (2) Yksilöivän avaimen X arvolla x varustetun monikon poistaminen relaatiosta r: delete from r where X = x. (2) Ehdon C täyttävien monikoiden poistaminen relaatiosta r: delete from r where C (sarja monikoiden poisto-operaatioita). (3) Relaation r yksilöivän avaimen X arvolla x varustetun monikon attribuutin A arvon muuttaminen e:ksi: update r set A = e where X = x, missä e on mahdollisesti A:n tai muita r:n attribuutteja sisältävä lauseke. Mikäli e sisältää A:n tai muita r:n attribuutteja, lause tuottaa avaimen X arvolla x varustetun monikon (x, v) lukuoperaation ja sitä seuraavan päivitysoperaation, jossa arvo v muutetaan e:n arvoksi. Mikäli e ei sisällä r:n attribuutteja, lause tuottaa vain päivitysoperaation. 7

8 (3) Relaation r ehdon C täyttävien monikoiden attribuutin A arvon muuttaminen e:ksi: update r set A = e where C. Lause tuottaa sarjan monikoiden päivitysoperaatioita (mikäli e ei sisällä r:n attribuutteja) tai sarjan luku- ja päivitysoperaatioiden pareja (mikäli e sisältää r:n attribuutin). (4) Relaation r(z) ehdon C täyttävien monikoiden t projektiomonikoiden t[y ] lukeminen, kun Y Z, so. attribuuttijoukko Y on kaavion attribuuttijoukon Z osajoukko: select Y from r where C (sarja monikoiden lukuoperaatioita). (5) Relaation r(z) luonti: create table r(z), missä Z on kaavion attribuuttien ja eheysrajoitteiden määrittely SQL:llä. 8

9 (6) Relaation r hävittäminen tietokannasta: drop table r. Mikäli r on tyhjä, lause tuottaa yhden loogisen operaation: hävitä tyhjä relaatio r tietokannasta. Mikäli r on epätyhjä, sisältönään monikot t 1,...,t n, lause tuottaa operaatiosarjan: poista monikko t 1 relaatiosta r; poista monikko t 2 relaatiosta r;... poista monikko t n relaatiosta r; hävitä tyhjä relaatio r tietokannasta. 9

10 Loogisen tietokannan eheys Looginen tietokanta (tai oikeammin sen tila) on eheä (integral, consistent), jos se täyttää tietokannan kaavion sisältämät tyyppi- sekä rajoitemääritykset sekä muut tietokannalle asetetut eheysrajoitteet (integrity constraint). Relaatiotietokannassa kunkin relaation monikoiden attribuuttiarvojen tulee olla oikeaa tietotyyppiä ja relaation tulee toteuttaa kaavion avainrajoitteet (key constraint) eli (SQL:n) perusavainrajoitteet (primary key) ja yksilöivyysrajoitteet (unique). Relaatioiden välille määriteltyjen viite-eheysrajoitteiden (referential integrity constraint) eli (SQL:n) viiteavainrajoitteiden (foreign key) tulee niin ikään olla voimassa. SQL:llä tietokannan kaavioon määriteltävissä olevien eheysrajoitteiden lisäksi loogiseen tietokantaan liittyy yleensä sovellusaluekohtaisia rajoitteita, joiden tarkistaminen ja voimassa pysyttäminen on tietokantaa käyttävien sovellusten tehtävänä. 10

11 Transaktiot Loogisen tietokannan D transaktio eli tietokantatapahtuma (transaction) on D:hen kohdistuva loogisten tietokantaoperaatioiden sarja, jonka vaikutusten halutaan muodostavan yhden atomisen (so. jakamattoman) kokonaisuuden. Tietokantasovelluksen ohjelmoija merkitsee ohjelmaan transaktioiden rajat: transaktio alkaa aloituskirjauksella (begin) ja päättyy sitoutumispyyntöön (commit) tai keskeytys- ja peruutuspyyntöön (abort tai rollback). SQL:ssä ei eksplisiittistä transaktion aloitusoperaatiota ole, vaan uuden transaktion katsotaan alkavan ensimmäisestä tietokantaoperaatiosta, joka ei vielä kuulu mihinkään transaktioon. 11

12 Tarkastellaan relaatiota r(x,v ), missä attribuutti V on numeerinen. Millaisen transaktion tuottaa asiakassovellusohjelman osan update r set V = 2 V ; select sum(v ) from r; commit; suoritus, kun relaation r sisältönä suoritushetkellä on monikkojoukko {t 1,...,t n }? Asiakasprosessi lähettää palvelimelle yksitellen kunkin kolmen operaation (update, select, commit) suorituspyynnön jääden kunkin pyynnön jälkeen odottamaan vastausta. 12

13 update-operaation suorituspyyntö tuottaa palvelimella seuraavan operaatiojonon: aloita uusi transaktio T 1 ; lue relaation r ensimmäinen monikko t 1 ; päivitä t 1 :n V -attribuutin arvo v 1 kertomalla se kahdella. lue relaation r toinen monikko t 2 ; päivitä t 2 :n V -attribuutin arvo v 2 kertomalla se kahdella.... lue relaation r viimeinen monikko t n ; päivitä t n :n V -attribuutin arvo v n kertomalla se kahdella. Vastausviestinä on tieto update-operaation onnistumisesta. Koska SQL:n update r -lauseen tai select sum(v ) -kyselyn semantiikka ei kiinnitä r-monikoiden läpikäyntijärjestystä, palvelin valitsee tehokkuuden kannalta edullisimman, mikä arvattavasti on monikoiden fyysinen peräkkäisjärjestys r:n tiedostossa. 13

14 select-operaation suorituspyyntö tuottaa palvelimella seuraavan operaatiojonon: lue relaation r ensimmäinen monikko t 1 ; lue relaation r toinen monikko t 2 ;... lue relaation r viimeinen monikko t n. Palvelin palauttaa asiakasprosesille operaation onnistumisviestin lisäksi myös operaation tuloksen (lasketun summan). Vastauksena commit-pyyntöön palvelin suorittaa operaation commit T 1 ja palauttaa sitoutumisen onnistumisesta tiedon sovellusprosessille. 14

15 Transaktiolta vaadittava ominaisuus atomisuus (atomicity) tarkoittaa, että joko (1) kaikki transaktion aikaansaamat muutokset loogisen tietokannan tilaan toteutuvat tai (2) yksikään muutos ei jää voimaan loogiseen tietokantaan. Transaktio, joka on suorittanut loppuun commit-operaation, on sitoutunut (committed). Sitoutuneelta transaktiolta vaaditaan atomisuuden lisäksi ominaisuus pysyvyys (durability), mikä tarkoittaa, että sitoutuneen transaktion aikaansaamien muutosten on toteuduttuva ja jäätävä pysyvästi voimaan loogiseen tietokantaan, mahdollisista häiriöistä huolimatta. Sitoutuneen transaktion tekemät päivitykset voi kumota ainoastaan ohjelmoimalla sitä varten uusi transaktio (tai uusia transaktioita). 15

16 Esimerkkitransaktiomme T 1 päivittää relaation r kaikkien monikoiden V -attribuutin arvon kertomalla entisen arvon kahdella. Mikäli T 1 siis sitoutuu, so. commit T 1 -operaatio tulee loppuun suoritetuksi, r:n kaikkien monikoiden V -attribuutin päivityksen on jäätävä voimaan. Jos taas T 1 ei sitoudu esim. järjestelmähäiriön vuoksi, on r:n kaikkien monikoiden V -attribuutin arvojen jäätävä entiselleen, so. kahdella kertomatta. 16

17 Transaktioiden tilat Edellä määritelty transaktiokäsite sisältää vain sitoutuneen transaktion, so. transaktion, joka koostuu loogisten operaatioiden sarjasta BαC, missä B on transaktion aloituskirjaus (begin), α on jono normaaleja luku- ja päivitysoperaatioita ja C on transaktion sitoutumispyyntö (commit). Operaatiojono α muodostaa transaktion etenemisvaiheen (forwardrolling phase). Transaktiota suoritetaan kuitenkin operaatio kerrallaan, ja transaktio ei välttämättä koskaan pääty sitoutumiseen, vaan voi sen sijaan joko itse keskeyttää ja peruuttaa itsensä (SQL-lauseella rollback) tai keskeytyä transaktiosta riippumattomasta syystä (esim. järjestelmähäiriöstä), jolloin järjestelmä peruuttaa transaktion tietokannan elvytysvaiheessa. 17

18 Erotammekin neljä eri transaktiotyyppiä eli transaktion tilaa (transaction state): (1) etenevä transaktio, (2) sitoutunut transaktio, (3) peruuntuva transaktio ja (4) peruuntunut transaktio. Etenevä transaktio (forward-rolling transaction) koostuu operaatiosarjasta Bα, missä B on transaktion aloituskirjaus ja α jono etenemisvaiheen lukuja päivitysoperaatioita eli ns. etenemisoperaatioita (forward action). Etenevää transaktiota voidaan edistää normaaleilla luku- ja päivitysoperaatioilla sekä sitoutumis- tai keskeytyspyynnöllä. 18

19 Peruuntuva transaktio (backward-rolling transaction) koostuu operaatiosarjasta BαβAβ 1, missä B on transaktion aloituskirjaus, αβ jono etenemisvaiheen lukuja päivitysoperaatioita, A on transaktion keskeytyskirjaus (abort) ja β 1 on etenemisvaiheen operaatiojonon αβ loppuosan β peruutusjono. Operaatiojono β 1 muodostaa transaktion peruutusvaiheen (backward-rolling phase). Peruuntuva transaktio on peruuttanut loppuosan β etenemisvaiheen operaatioistaan; alkuosa α on vielä peruuttamatta. Etenemisvaiheen operaatiojonon β peruutusjono β 1 eli undo(β) koostuu β:n sisältämien päivitysoperaatioiden jonon o 1 o 2...o n operaatioiden o i käänteisoperaatioista o 1 i käänteisessä järjestyksessä o 1 n o 1 n 1...o

20 Etenemisperaation o käänteisoperaatio (inverse action) eli peruutusoperaatio (backward action) o 1 eli undo(o) määritellään operaatiokohtaisesti: (1) undo(monikon t lisääminen r:ään) = monikon t poistaminen r:stä. (2) undo(monikon t poistaminen r:stä) = monikon t lisääminen r:ään. (3) undo(r:n monikon t attribuutin A arvon u päivittäminen v:ksi) = r:n monikon t attribuutin A arvon v päivittäminen u:ksi. (4) Lukuoperaatiolla ei ole käänteisoperaatiota (tai se määritellään tyhjäksi merkkijonoksi ε). (5) undo(relaation r(z) luonti tietokantaan) = tyhjän relaation r(z) hävittäminen tietokannasta. (6) undo(tyhjän relaation r(z) hävittäminen tietokannasta) = relaation r(z) luonti tietokantaan. 20

21 Toisin kuin etenevää transaktiota, peruuntuvaa transaktiota ei voida edistää mielivaltaisesti, vaan seuraavaksi suoritettava operaatio on aina tarkasti määrätty: seuraavaksi suoritetaan etenemisvaiheen viimeisen vielä peruuttamatta olevan päivitysoperaation käänteisoperaatio. Kun kaikki etenemisvaiheen päivitykset on peruutettu, kirjataan transaktio peruuntuneeksi. Peruuntunut transaktio eli peruutuksensa päättänyt transaktio (rolled-back transaction) koostuu operaatiosarjasta: BαAα 1 C, missä B on transaktion aloituskirjaus, α jono etenemisvaiheen luku- ja päivitysoperaatioita, A on transaktion keskeytyskirjaus, α 1 on etenemisvaiheen operaatiojonon α peruutusjono ja C on transaktion peruutuksen päättymiskirjaus (rolled-back). Peruuntunut transaktio on siis peruutusvaiheensa α 1 tuloksena peruuttanut etenemisvaiheensa α kokonaan. 21

22 Peruuntuneella transaktiolla ei ole mitään vaikutusta loogisen tietokannan tilaan. Fyysisen tietokannan tila ei sitä vastoin välttämättä palaudu peruutuksessa entiselleen. Sitoutunut tai peruuntunut transaktio on päättynyt (terminated). Päättynyttä transaktiota ei enää voi edistää millään operaatiolla. Etenevä tai peruuntuva transaktio on aktiivinen (active). Peruuntuva tai peruuntunut transaktio on keskeytynyt (aborted). 22

23 Oikeellinen transaktio Tietokantasovelluksen laatijan tehtävänä on huolehtia siitä, että jokainen sovellusprosessin tuottama sitoutunut transaktio T on loogisesti oikeellinen: T säilyttää eheän loogisen tietokannan eheänä, kun T ajetaan yksinään häiriöttömässä tilassa. Transaktiot on luonnollisesti voitava ohjelmoida ottamatta huomioon fyysisen tietokannan rakennetta, muita samanaikaisia transaktioita sekä järjestelmähäiriöitä. Tietokannan hallintajärjestelmän tehtävänä on taata sekä loogisen että fyysisen tietokannan eheyden säilyminen, vaikka suorituksessa on samanaikaisesti useita loogisesti oikeellisia transaktioita ja järjestelmähäiriöitä voi esiintyä. Peruuntunut transaktio on aina triviaalisti loogisesti oikeellinen, tehtiinpä sen etenemisvaiheessa mitä tahansa ja olivatpa tietokannan eheysrajoitteet millaisia hyvänsä: peruutusvaihe joka tapauksessa peruuttaa kaikki etenemisvaiheen päivitykset. Etenevän transaktion ei ole tarpeen olla oikeellinen. 23

24 Luku-kirjoitusmalli Transaktionhallinnan yksityiskohtaista tarkastelua varten on tarpeen kiinnittää se tietokanta- ja transaktiomalli, jonka mukaisista operaatioista transaktiot koostuvat. Oletamme yksinkertaisuuden vuoksi, että looginen tietokantamme koostuu yhdestä kaavion r(xv ) mukaisesta relaatiosta. Relaation monikot ovat pareja (x, v), missä x on monikon yksilöivä avainarvo ja v on monikon arvo (so. monikon muiden attribuuttien arvot). Transaktiot operoivat r:n monikoihin (x, v) aina avainarvon x perusteella. Yksikertaisimmassa transaktiomallissa, ns. luku-kirjoitusmallissa (read-write model) tietokannan r transaktio voi sisältää seuraavia operaatioita: 24

25 (1) B: transaktio alkaa (begins). (2) R[x, v]: lue avainarvolla x varustettu monikko (x, v). Syöteparametrina annetaan avainarvo x. Operaatio hakee r:stä monikon (x, v). Jos monikkoa ei löydy, operaatio epäonnistuu. Operaatiota voidaan merkitä lyhyemmin R[x]. (3) W[x, u, v]: kirjoita avainarvolla x varustettu monikko. Syöteparametrina annetaan avainarvo x ja arvo v. Operaatio korvaa relaatiossa r olevan, avainarvolla x varustetun monikon arvon u arvolla v. Jos monikkoa ei löydy, operaatio epäonnistuu. Operaatiota voidaan merkitä lyhyemmin W[x,v] tai W[x]. (4) C: etenevä transaktio sitoutuu (commits) tai keskeytynyt transaktio päättää peruutuksensa (completes its rollback). (5) A: transaktio keskeytyy (aborts). 25

26 Esim. operaatiojono BR[x,u]R[y,v]W[z,w,u + v] on etenevä transaktio, joka lukee avainarvoilla x ja y varustettujen monikoiden arvot u ja v ja sijoittaa summan u+v avainarvolla z varustetun monikon arvoksi, kun avainarvolla z varustetun monikon entinen arvo on w. Operaatiojono BR[x,u]R[y,v]W[z,w,u + v]c on sitoutunut transaktio. 26

27 Keskeytyneen transaktion peruutusvaiheessa suoritetaan etenemisvaiheen kirjoitusoperaatioiden käänteisoperaatiot (käänteisessä järjestyksessä). Operaation W[x,u,v] käänteisoperaatio W 1 [x,u,v] on W[x,v,u]. Operaatiojono BR[x,u]R[y,v]W[z,w,u + v]aw 1 [z,w,u + v] on peruuntuva keskeytynyt transaktio, joka on peruuttanut (ainoan) kirjoitusoperaationsa. Operaatiojono BR[x,u]R[y,v]W[z,w,u + v]aw 1 [z,w,u + v]c on peruutuksensa päättänyt keskeytynyt transaktio. 27

28 Luku-kirjoitusmallissa ei voi esittää monikoiden lisäyksiä eikä poistoja. Kun kirjallisuudessa tarkastellaan luku-kirjoitusmalliin perustuvaa transaktionhallintaa, operaatioiden kohteina ovat monikoiden sijasta tarkemmin määrittelemättömät abstraktit tietoalkiot. Jos tietoalkioiksi valitaan loogisen tietokannan monikkokokoelmat, esim. relaatiotietokannan relaatiot, on mahdollista mallintaa monikoiden lisäykset ja poistot kyseisen kokoelman (relaation) kirjoitusoperaatioina. Vastaavasti jos tietoalkioiksi valitaan fyysisen tietokannan sivut, joille relaatioiden monikoita sijoitetaan, on mahdollista mallintaa monikoiden lisäykset ja poistot kyseisen sivun kirjoitusoperaatioina. 28

29 Kummassakin tapauksessa transaktionhallinta on varsin karkearakeista: lokiin on kirjattava kokonaisen relaation tai sivun muutoskirjauksia, ja samanaikaisuuden hallinnan synkroinointiyksikkönä, lukittavana kokonaisuutena, on kokonainen relaatio tai sivu. Nykyaikaisissa tietokannan hallintajärjestelmissä lokikirjaukset ja lukittavat kokonaisuudet ovat hienojakoisimmillaan yksittäisiä monikoita, jolloin transaktion T 1 päivittämää sivua voi toinen transaktio T 2 päivittää T 1 :n ollessa vielä aktiivisena. Transaktion T 2 aiheuttaman rakennemuutoksen seurauksena transaktion T 1 sivulla p päivittämä monikko voi siirtyä toiselle sivulle p transaktion T 1 ollessa vielä aktiivinen. 29

30 Avainvälimalli Avainvälimalliksi (key-range model) kutsumassamme transaktiomallissa lukuoperaatiot ovat selausoperaatioita, joissa haetaan relaatiosta r avainarvojen suuruusjärjestyksessä ensimmäinen monikko tietyltä avainväliltä (key range). Mallin päivitysoperaatiot ovat monikoiden lisäyksiä ja poistoja. Monikoiden avainarvojen joukon oletetaan olevan täydellisesti järjestetty; järjestystä merkitään ja sen käänteisrelaatiota ; vastaavia epärefleksiivisiä järjestysrelaatioita merkintään tuttuun tapaan < ja >. Pienintä avainarvoa merkitään ja suurinta. Oletamme, etteivät nämä esiinny tietokannan missään monikossa. Avainvälimalli on riittävä kuvaamaan tärkeimmät periaatteet, joita käytetään ns. fysiologisessa (fyysis-loogisessa) lokiperustaisessa elvytyksessä sekä monikkotason samanaikaisuuden hallinnassa (yksilöivän avaimen avainvälilukinta). Mallissa voidaan myös luontevasti esittää samanaikaisista avainväliselauksista ja yksittäisten monikoiden lisäyksistä ja poistoista johtuvat eristyneisyysanomaliat (mm. haamuilmiö). 30

31 Avainvälimallissa tietokannan r transaktio voi sisältää seuraavia operaatioita: (1) B: transaktio alkaa (begins). (2) R[x, z, v]: lue ensimmäinen hakuehdon täyttävä monikko (retrieve first tuple) (x, v). Syöteparametrina annetaan avainarvo z, z <. Operaatio hakee sen monikon (x,v), jonka avainarvo x on pienin ehdot x z ja (x,v) r täyttävä. Jos tällaista ei ole, palautetaan (,0). Operaatiota voidaan merkitä lyhyemmin R[x, z], R[x,v] tai R[x]. (3) R[x,>z,v]: lue seuraava monikko (retrieve next tuple) (x,v). Syöteparametrina annetaan avainarvo z, z <. Operaatio hakee sen monikon (x,v), jonka avainarvo x on pienin ehdot x > z ja (x,v) r täyttävä. Jos tällaista ei ole, palautetaan (, 0). Operaatiota voidaan merkitä lyhyemmin R[x,>z], R[x,v] tai R[x]. 31

32 (4) I[x, v]: lisää monikko (insert tuple) (x, v). Syöteparametrina annetaan avainarvo x ja arvo v. Operaatio lisää monikon (x,v) relaatioon r. Mikäli r sisältää ennestään avainarvolla x varustetun monikon, operaatio epäonnistuu. Operaatiota voidaan merkitä lyhyemmin I[x]. (5) D[x, v]: poista monikko (delete tuple) (x, v). Syöteparametrina annetaan avainarvo x. Operaatio etsii relaatiosta r avainarvolla x varustetun monikon (x, v) ja poistaa sen. Jos monikkoa ei löydy, operaatio epäonnistuu. Operaatiota voidaan merkitä lyhyemmin D[x]. (6) C: etenevä transaktio sitoutuu (commits) tai keskeytynyt transaktio päättää peruutuksensa (completes its rollback). (7) A: transaktio keskeytyy (aborts). 32

33 Luku-, lisäys- ja poisto-operaatioille o[ x] määritellään käänteisoperaatio o 1 [ x] seuraavasti: R 1 [x,v] = ε, missä ε tarkoittaa tyhjää operaatiojonoa. I 1 [x,v] = D[x,v]. D 1 [x,v] = I[x,v]. Esim. peruuntunut transaktio BR[x 1, x,v 1 ]R[x 2,>x 1,v 2 ]R[x 3,>x 2,v 3 ]D[x,v]I[x,v 1 + v 2 + v 3 ] AI 1 [x,v 1 + v 2 + v 3 ]D 1 [x,v]c = BR[x 1, x,v 1 ]R[x 2,>x 1,v 2 ]R[x 3,>x 2,v 3 ]D[x,v]I[x,v 1 + v 2 + v 3 ] AD[x,v 1 + v 2 + v 3 ]I[x,v]C lukee kolmen peräkkäisillä avainarvoilla varustetun monikon arvon, korvaa avainarvolla x varustetun monikon arvon luettujen monikoiden arvojen summalla, keskeytyy, peruuttaa päivityksensä ja päättää peruutuksensa. 33

34 Peruutuspisteet ja osittaisperuutus SQL:n transaktiomallissa on mahdollista ns. osittaisperuutus (partial rollback), jolla peruutetaan osa etenevän transaktion tekemistä päivityksistä peruuttamatta koko transaktiota. Osittaisperuutuksen jälkeen transaktio on edelleen etenevässä tilassa ja voi siis suorittaa uusia etenemisvaiheen operaatioita. Osittaisperuutuksessa peruutettava etenemisvaiheen osa määrätään määrittelemällä transaktion sisälle peruutuspisteitä (savepoint) SQL:n lauseella set savepoint P, missä P on peruutuspisteelle annettava nimi. SQL:n lauseella rollback to savepoint P palataan peruutuspisteeseen P, so. perutaan kaikki pisteen P jälkeen suoritetut (vielä perumatta olevat) etenemisvaiheen päivitykset. 34

35 Osittaisperuutukset voivat olla sisäkkäisiä: insert into r values (x 1,v 1 ); set savepoint P 1 ; insert into r values (x 2,v 2 ); set savepoint P 2 ; insert into r values (x 3,v 3 ); rollback to savepoint P 2 ; insert into r values (x 4,v 4 ); rollback to savepoint P 1 ; insert into r values (x 5,v 5 ); commit. Lause rollback to savepoint P 2 poistaa relaatiosta r siihen lisätyn monikon (x 3,v 3 ). Lause rollback to savepoint P 1 poistaa relaatiosta r siihen lisätyt monikot (x 4,v 4 ) ja (x 2,v 2 ). Transaktion lopputuloksena relaatiossa r on siis monikot (x 1,v 1 ) ja (x 5,v 5 ). 35

36 Lisätään transaktiomalliimme (avainvälimalliin) osittaisperuutukset. Tätä varten transaktiomalliin lisätään seuraavat operaatiot: (6) S[P]: aseta peruutuspiste (set savepoint) P. (7) A[P]: aloita osittaisperuutus pisteeseen (begin partial rollback to savepoint) P. (8) C[P]: päätä osittaisperuutus pisteeseen (complete the partial rollback to savepoint) P. Määritellään myös: S 1 [P] = ε. 36

37 Transaktion etenemisvaihe voi nyt olla mitä tahansa seuraavista muodoista: (1) Jono α operaatioita R, I, D ja S. (2) Muotoa αs[p]βa[p]β 1 C[P]γ oleva operaatiojono, missä α, β ja γ ovat muotoa (1) tai (2). (3) Muotoa αs[p]βδa[p]δ 1 oleva operaatiojono, missä α, β ja δ ovat muotoa (1) tai (2). Tapauksessa (2) osajono S[P]βA[P]β 1 C[P] esittää päätettyä peruutusta pisteeseen P. Tapauksessa (3) osajono S[P]βδA[P]δ 1 ilmaisee, että transaktio on parhaillaan peruuttamassa pisteeseen P. Operaatiojonon α peruutusjono (undo string) α 1 eli undo(α) määritellään nyt sen mukaan, minkä muotoinen se on: Muotoa (1) olevalle jonolle α peruutusjono α 1 määritellään kuten aiemmin. Muotoa (2) olevan jonon peruutusjono on γ 1 α 1. Muotoa (3) olevan jonon peruutusjono on β 1 C[P]α 1. 37

38 Monirakeisuus Lisätään tietokanta- ja transaktiomalliin monirakeisuutta (multiple granularity) niin, että monikoita voidaan ryhmitellä relaatioiksi ja relaatioita tietokannoiksi. Tietokantajärjestelmän s tietokannat muodostavat tunnisteidensa mukaan täydellisesti järjestetyn joukon (b 1,w 1 ),...,(b m,w m ), missä b i on tietokannan yksilöivä tunniste ja w i sisältää tietokannan omistajan tunnisteen yms. tietoa. Kunkin tietokannan b i relaatiot muodostavat tunnisteidensa mukaan täydellisesti järjestetyn joukon (r 1,R 1 ),...,(r ni,r ni ), missä r i on relaation yksilöivä tunniste ja R i on relaation kaavio (= X i V i ). 38

39 Tietokannan b relaation r yksilöi pari (b, r) ja relaation r monikon (x,v) yksilöi kolmikko (b,r,x). Monikkokohtaiset operaatiot ovat nyt: R[b,r,x,θz,v]: tietokannan b relaation r monikon (x,v) lukeminen. I[b,r,x,v]: monikon (x,v) lisääminen tietokannan b relaatioon r. D[b,r,x,v]: monikon (x,v) poistaminen tietokannan b relaatiosta r. 39

40 Uusia operaatioita ovat: R[b,θb,w ]: järjestelmän tietokantojen b tunniste- ja omistajatietojen selailu. I[b, w]: uuden tietokannan b luonti; vastaa SQL:n create database -operaatiota. D[b,w]: (tyhjän) tietokannan b hävittäminen; vastaa SQL:n destroy database -operaatiota. R[b,r,θr,R ]: tietokannan b relaatioiden r kaavioiden selailu. I[b, r, R]: uuden relaation r(r) luonti tietokantaan b; vastaa SQL:n operaatiota create table r(r). D[b, r, R]: (tyhjän) relaation r poistaminen tietokannasta b; vastaa SQL:n operaatiota drop table r. 40

T-106.5220 Transaktionhallinta tietokantajärjestelmissä

T-106.5220 Transaktionhallinta tietokantajärjestelmissä Opetusmoniste T-106.5220 Transaktionhallinta tietokantajärjestelmissä Kevät 2009 (periodi III) Osa 1: Looginen tietokanta ja transaktiot Osa 2: Fyysinen tietokanta Osa 3: Lokin ylläpito ja puskurinhallinta

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

Tietokantarakenteet ja -algoritmit 6. harjoitus

Tietokantarakenteet ja -algoritmit 6. harjoitus Tietokantarakenteet ja -algoritmit 6. harjoitus Malliratkaisut 1.. a) T1 = B I[b, r 2, 0, 0] IX-lukitaan järjestelmä s, tietokanta b ja relaatio (b, r 2 ) (tässä järjestyksessä), X-lukitaan (b, r 2, 0)

Lisätiedot

Transaktioiden eristyvyys

Transaktioiden eristyvyys Transaktioiden eristyvyys H. Berenson, P. Bernstein, J. Gray, J. Melton, E. O Neil & P. O Neil: A critique of ANSI SQL isolation levels. Proc. of the 1995 ACM SIG- MOD Internat. Conf. on Management of

Lisätiedot

Tietokantarakenteet ja -algoritmit 3. harjoitus

Tietokantarakenteet ja -algoritmit 3. harjoitus Tietokantarakenteet ja -algoritmit 3. harjoitus Malliratkaisut 1. Analyysivaiheen alussa alustetaan aktiivisten transaktioiden taulu (tyhjä) ja päivitettyjen sivujen taulu (samoin tyhjä) tarkistuspisteestä.

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

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

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

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

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

Transaktioiden peruutus ja tietokannan elvytys häiriöstä

Transaktioiden peruutus ja tietokannan elvytys häiriöstä Transaktioiden peruutus ja tietokannan elvytys häiriöstä C. Mohan, D. Haderle, B. Lindsay, H. Pirahesh & P. Schwartz: ARIES: a transaction recovery method supporting fine-granularity locking and partial

Lisätiedot

HELIA 1 (17) Outi Virkki Tiedonhallinta

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

Lisätiedot

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

Samanaikaisuuden hallinta. Optiot transaktionaalisissa työnkuluissa

Samanaikaisuuden hallinta. Optiot transaktionaalisissa työnkuluissa Samanaikaisuuden hallinta Optiot transaktionaalisissa työnkuluissa Sisältö Transaktionaaliset työnkulut Samanaikaisuuden ongelmat Optiot idea käyttökohteet WorkMan Optioiden toteutus Arviointi Transaktionaaliset

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

Lokin ylläpito ja puskurinhallinta

Lokin ylläpito ja puskurinhallinta Lokin ylläpito ja puskurinhallinta C. Mohan, D. Haderle, B. Lindsay, H. Pirahesh & P. Schwartz: ARIES: a transaction recovery method supporting fine-granularity locking and partial rollbacks using write-ahead

Lisätiedot

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

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

Lisätiedot

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

5. Tapahtumien hallinta. Esim. pankkitilisovelluksen proseduuri tilisiirto(t1, t2, x), joka siirtää x mk tililtä t1 tilille t2:

5. Tapahtumien hallinta. Esim. pankkitilisovelluksen proseduuri tilisiirto(t1, t2, x), joka siirtää x mk tililtä t1 tilille t2: Tietokannan hallinta 1 5. Tapahtumien hallinta Tietokannan hallinta 2 5. Tapahtumien hallinta 5. Tapahtumien hallinta = transaction management (yleistä: E&N, Ch. 19) kaikkien tietokantajärjestelmien keskeinen

Lisätiedot

Tietokantakurssit / TKTL

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

Lisätiedot

SQL - STRUCTURED QUERY LANGUAGE

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

Lisätiedot

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

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

Lisätiedot

TIETOKANTOJEN PERUSTEET MARKKU SUNI

TIETOKANTOJEN PERUSTEET MARKKU SUNI TIETOKANTOJEN PERUSTEET MARKKU SUNI SQL - KIELI TIETOJEN MUOKKAUS MARKKU SUNI Tarkastellaan tauluissa olevien tietojen muokkausta muokkauskäskyjä: INSERT UPDATE DELETE Kysymys kuuluu: Voiko tietoja muokata

Lisätiedot

HAAGA-HELIA TIKO-05 1 (19) ICT23a Tietokannan suunnittelu ja toteutus O.Virkki 4.9.2008

HAAGA-HELIA TIKO-05 1 (19) ICT23a Tietokannan suunnittelu ja toteutus O.Virkki 4.9.2008 HAAGA-HELIA TIKO-05 1 (19) Relaatiomalli Relaatiomalli... 2 Peruskäsitteet... 3 Relaatio... 5 Attribuutti ja arvojoukko... 6 Monikko... 7 Säännöt... 8 Yksilön eheyssääntö ja Pääavain... 9 Viite-eheyssääntö

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

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

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

CS-A1150 Tietokannat CS-A1150 Tietokannat / 43

CS-A1150 Tietokannat CS-A1150 Tietokannat / 43 CS-A1150 Tietokannat 27.3.2018 CS-A1150 Tietokannat 27.3.2018 1 / 43 Oppimistavoitteet: tämän luennon jälkeen Tiedät, miten tietokannan relaatioiden (taulujen) määrittelyt kirjoitetaan SQL:llä. Osaat päivittää

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

Elvytys. R & G Chapter Tietokannan hallinta, kevät 2006, J. Li 1

Elvytys. R & G Chapter Tietokannan hallinta, kevät 2006, J. Li 1 Elvytys R & G Chapter 18 16.02.06 Tietokannan hallinta, kevät 2006, J. Li 1 Motivaatio Atomisuus: Transaktiot voivat päättyä peruutukseen ( Rollback ). Pysyvyys: Entä jos TKHJ kaatuu? (Syyt?) Halutut ominaisuudet

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

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

HELIA 1 (14) Outi Virkki Tiedonhallinta

HELIA 1 (14) Outi Virkki Tiedonhallinta HELIA 1 (14) Luento SQL... 2 Historiaa... 2 Standardit... 3 Käyttö... 4 DDL... 5 Tietokantaobjektien määrittely... 5 SQL:n tietotyypit... 6 Eheyssääntöjen määrittely... 9 Indeksin määrittely... 11 Syntaksikuvaukset...

Lisätiedot

HELIA 1 (12) Outi Virkki Tiedonhallinta 4.11.2000

HELIA 1 (12) Outi Virkki Tiedonhallinta 4.11.2000 HELIA 1 (12) Luento 4.3 Eheyssäännöt (Integrity Constraints)... 2 Eheyden valvonta... 3 Yksilön eheyssääntö... 4 Viite-eheyssäännöt... 5 Arvojoukkoeheyssäännöt... 8 Null-arvoista... 10 Sovelluskohtaiset

Lisätiedot

Muita transaktioiden hallintamenetelmiä

Muita transaktioiden hallintamenetelmiä Muita transaktioiden hallintamenetelmiä H. Berenson, P. Bernstein, J. Gray, J. Melton, E. O Neil & P. O Neil: A critique of ANSI SQL isolation levels. Proc. of the 1995 ACM SIG- MOD Internat. Conf. on

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

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

Hajautettujen transaktioiden hallinta

Hajautettujen transaktioiden hallinta Hajautettujen transaktioiden hallinta M. Kifer, A. Bernstein & P. M. Lewis: Database Systems. An Application-Oriented Approach. Complete Version. Pearson Addison Wesley, 2006; sivut 1005 1028, luvun 24

Lisätiedot

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

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

Lisätiedot

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

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

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

HAAGA-HELIA heti09 1 (27) ICT05 Tiedonhallinta ja tietokannat O.Virkki 19.1.2010. Relaatiomalli

HAAGA-HELIA heti09 1 (27) ICT05 Tiedonhallinta ja tietokannat O.Virkki 19.1.2010. Relaatiomalli HAAGA-HELIA heti09 1 (27) Relaatiomalli Relaatiomalli... 2 Peruskäsitteet... 3 Relaatio... 5 Attribuutti ja arvojoukko... 6 Monikko... 7 Säännöt... 8 Arvojoukkoeheyssääntö... 8 Pääavain ja yksilön eheyssääntö...

Lisätiedot

CS-A1150 Tietokannat CS-A1150 Tietokannat / 43

CS-A1150 Tietokannat CS-A1150 Tietokannat / 43 CS-A1150 Tietokannat 15.4.2019 CS-A1150 Tietokannat 15.4.2019 1 / 43 Oppimistavoitteet: tämän luennon jälkeen Tiedät, mitä tarkoitetaan hakemistolla ja mitä hyötyä hakemistosta on. Tiedät, miten voidaan

Lisätiedot

Helsingin yliopisto/tktl Tietokannan hallinta, kevät Harri Laine 1 D B. Transaktionhallinta. Transaktionhallinta. Transaktionhallinta

Helsingin yliopisto/tktl Tietokannan hallinta, kevät Harri Laine 1 D B. Transaktionhallinta. Transaktionhallinta. Transaktionhallinta (transaction management) on keskeinen tekijä tietokannan samanaikaisen käytön ja virheistä toipumisen kannalta. Useat prosessit voivat käsitellä tietokantaa samanaikaisesti Jos tietokoneessa on vain yksi

Lisätiedot

CS-A1150 Tietokannat CS-A1150 Tietokannat / 44

CS-A1150 Tietokannat CS-A1150 Tietokannat / 44 CS-A1150 Tietokannat 2.4.2019 CS-A1150 Tietokannat 2.4.2019 1 / 44 Oppimistavoitteet: tämän luennon jälkeen Tiedät, miten tietokannan taulujen (relaatioiden) määrittelyt kirjoitetaan SQL:llä. Osaat päivittää

Lisätiedot

Proseduurit, funktiot ja herättimet - esimerkkeinä Oracle, SQL Server, MySQL ja OCELOT. Jouni Huotari S2008

Proseduurit, funktiot ja herättimet - esimerkkeinä Oracle, SQL Server, MySQL ja OCELOT. Jouni Huotari S2008 Proseduurit, funktiot ja herättimet - esimerkkeinä Oracle, SQL Server, MySQL ja OCELOT Jouni Huotari S2008 2 Proseduurit Ohjelmamoduuleita, jotka voidaan tallettaa tietokantaan (DBMS:n tietohakemistoon)

Lisätiedot

On autoja, henkilöitä, Henkilöllä on nimi Autolla on omistaja, joka on henkilö. Taulu AUTO(rekno, malli) Taulu HENKILO(nimi, )

On autoja, henkilöitä, Henkilöllä on nimi Autolla on omistaja, joka on henkilö. Taulu AUTO(rekno, malli) Taulu HENKILO(nimi, ) 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

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

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

Lisätiedot

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

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

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

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

Lisätiedot

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

HELIA 1 (19) Outi Virkki Tietokantasuunnittelu 9.3.2001

HELIA 1 (19) Outi Virkki Tietokantasuunnittelu 9.3.2001 HELIA 1 (19) Luento 11 Eheyssäännöt (Integrity Constraints)... 2 Eheyden valvonta... 3 Yksilön eheyssääntö... 4 Arvojoukkoeheyssäännöt... 5 Null-arvoista... 6 Viite-eheyssäännöt... 7 Emorelaation päivitys...

Lisätiedot

HELIA TIKO-05 1 (22) ICT03D Tieto ja tiedon varastointi E.Räty, O.Virkki 9.3.2010

HELIA TIKO-05 1 (22) ICT03D Tieto ja tiedon varastointi E.Räty, O.Virkki 9.3.2010 HELIA TIKO-05 1 (22) SQL SQL... 2 Historiaa... 2 Standardit... 3 Käyttö... 4 Sql-komentojen kirjoittaminen... 5 DDL... 7 Tietokantaobjektien määrittely... 7 SQL:n tietotyypit... 8 Eheyssääntöjen määrittely...

Lisätiedot

TIETOKANTOJEN PERUSTEET OSIO 11 MARKKU SUNI

TIETOKANTOJEN PERUSTEET OSIO 11 MARKKU SUNI TIETOKANTOJEN PERUSTEET OSIO 11 MARKKU SUNI Tarkastellaan Tietokannan fyysistä suunnittelua Menetelmän vaihetta 4 Looginen suunoitelma muutetaan toimiviksi tauluiksi Id enimi snimi muuta 1 Aki Joki xxx

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

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

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

D B. Transaktionhallinta

D B. Transaktionhallinta (transaction management) on keskeinen tekijä tietokannan samanaikaisen käytön ja virheistä toipumisen kannalta. Useat prosessit voivat käsitellä tietokantaa samanaikaisesti Jos tietokoneessa on vain yksi

Lisätiedot

CSE-A1200 Tietokannat

CSE-A1200 Tietokannat CSE-A1200 Tietokannat 12.4.2016 CSE-A1200 Tietokannat 12.4.2016 1 / 42 Oppimistavoitteet: tämän luennon jälkeen Tiedät, mitä tarkoitetaan hakemistolla ja mitä hyötyä hakemistosta on. Tiedät, miten voidaan

Lisätiedot

Tietohakemisto ja Transaktionkäsittely

Tietohakemisto ja Transaktionkäsittely HELIA TIKO-05 1 (18) Tietohakemisto ja Transaktionkäsittely Tietohakemisto...2 Oraclen tietohakemistonäkymät (osa)...3 Yleiset...3 Taulut...3 Säännöt...3 Näkymät...3 Synonyymit...4 Indeksit...4 Sekvenssit...4

Lisätiedot

HSMT Tietokannoista. Ville Leppänen. HSMT, c Ville Leppänen, IT, Turun yliopisto, 2008 p.1/32

HSMT Tietokannoista. Ville Leppänen. HSMT, c Ville Leppänen, IT, Turun yliopisto, 2008 p.1/32 HSMT Tietokannoista Ville Leppänen HSMT, c Ville Leppänen, IT, Turun yliopisto, 2008 p.1/32 Missä mennään... 1. Johdanto (1h) 2. Säikeet (2h) 3. Samanaikaisuudesta (2h) 4. Hajautetuista sovelluksista (1h)

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

Helsingin yliopisto/tktl Tietokantojen perusteet, s 2007 SQL:n perusteet. Harri Laine 1. SQL tietokantakieli. SQL tietokantakieli

Helsingin yliopisto/tktl Tietokantojen perusteet, s 2007 SQL:n perusteet. Harri Laine 1. SQL tietokantakieli. SQL tietokantakieli SQL tietokantakieli Relaatiomalliin pohjautuvat tietokannat Perustana relaatiomallin mukainen näkemys tietojen rakenteesta ja käsittelystä Tietokantojen rakenteen määrittelyssä ja käsittelymahdollisuuksissa

Lisätiedot

select tulostietomäärittely from taulukkeet [where valintaehdot] [group by ryhmitystekijät] [having ryhmärajoitteet] [order by järjestysperusta]

select tulostietomäärittely from taulukkeet [where valintaehdot] [group by ryhmitystekijät] [having ryhmärajoitteet] [order by järjestysperusta] 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

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

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

Tietomallit. Näkökulmat tietoon. Näkökulmat tietoon. Näkökulmat tietoon. Abstraktiotasot tiedon käsittelyssä

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

Lisätiedot

Denormalisointia turvallisesti. Ougf syysseminaari 4.11.2010 Pörssitalo Helsinki Timo Raitalaakso

Denormalisointia turvallisesti. Ougf syysseminaari 4.11.2010 Pörssitalo Helsinki Timo Raitalaakso Denormalisointia turvallisesti Ougf syysseminaari 4.11.2010 Pörssitalo Helsinki Timo Raitalaakso Timo Raitalaakso Senior Database Specialist Solita Oy 2001- - 2001 Tampereen Teknillinen korkeakoulu Tietokannat

Lisätiedot

Transaktionhallinta. R & G Chapter Tietokannan hallinta, kevät 2006, J. Li 1

Transaktionhallinta. R & G Chapter Tietokannan hallinta, kevät 2006, J. Li 1 Transaktionhallinta R & G Chapter 17 16.02.06 Tietokannan hallinta, kevät 2006, J. Li 1 Transaktionhallinta ~ samanaikaisuus Tietokannalla on tyypillisesti useita samanaikaisia käyttäjiä (prosesseja).

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

määritellä ja muokata tietokantaa ja sen käyttöoikeuksia virittää tietokannan talletusrakenteita hakea tietoa tietokannasta

määritellä ja muokata tietokantaa ja sen käyttöoikeuksia virittää tietokannan talletusrakenteita hakea tietoa tietokannasta SQL tietokantakieli SQL:llä voidaan... määritellä ja muokata tietokantaa ja sen käyttöoikeuksia virittää tietokannan talletusrakenteita hakea tietoa tietokannasta näytölle tai tiedostoon sovellusohjelman

Lisätiedot

CS-A1150 Tietokannat CS-A1150 Tietokannat / 47

CS-A1150 Tietokannat CS-A1150 Tietokannat / 47 CS-A1150 Tietokannat 10.4.2018 CS-A1150 Tietokannat 10.4.2018 1 / 47 Oppimistavoitteet: tämän luennon jälkeen Tiedät, mitä tarkoitetaan hakemistolla ja mitä hyötyä hakemistosta on. Tiedät, miten voidaan

Lisätiedot

Sivupalvelin- ja yhteislevyjärjestelmät

Sivupalvelin- ja yhteislevyjärjestelmät Sivupalvelin- ja yhteislevyjärjestelmät C. Mohan & I. Narang 1994: ARIES/CSA: a method for database recovery in client-server architectures. Proc. of the 1994 ACM SIG- MOD Internat. Conf. on Management

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

HELIA TIKO-05 SQL-TRANSAKTIOT 1 ( 12) ICT03D Tieto ja tiedon varastointi

HELIA TIKO-05 SQL-TRANSAKTIOT 1 ( 12) ICT03D Tieto ja tiedon varastointi HELIA TIKO-05 SQL-TRANSAKTIOT 1 ( 12) SQL-transaktiot Lähes kaikissa tietojärjestelmissä tietojen talletus on toteutettu tietokannoissa, joita käytetään tietokannanhallintajärjestelmien (DBMS) palvelujen

Lisätiedot

Harjoitustehtävä 1. Harjoitustehtävän 1 ratkaisu. Harjoitustehtävä 1. Relaatioalgebra -liitokset (join) Liitos

Harjoitustehtävä 1. Harjoitustehtävän 1 ratkaisu. Harjoitustehtävä 1. Relaatioalgebra -liitokset (join) Liitos Harjoitustehtävän 1 ratkaisu Tonttu( tonttutunnus, nimi) Puutarha( puutarhatunnus, omistaja, sijainti ) Vastuualue ( puutarhatunnus->puutarha, aluenumero, maaperä, kosteus, valaistus, sijainti, vastuutonttu

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

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

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

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

Lisätiedot

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

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

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

SQL-kielen perusteet. Tietokantojen perusteet 4.4.2008

SQL-kielen perusteet. Tietokantojen perusteet 4.4.2008 SQL-kielen perusteet Tietokantojen perusteet 4.4.2008 Sisällys Tietokannan käsittely ja ylläpito SQL tiedonmäärittelykielenä Tietokantataulun ja sen osien määrittely SQL tiedonkäsittelykielenä SQL-kysely

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

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

TIETOKANTOJEN PERUSTEET MARKKU SUNI

TIETOKANTOJEN PERUSTEET MARKKU SUNI TIETOKANTOJEN PERUSTEET MARKKU SUNI Tarkastellaan tietokantojen perusominaisuuksia taulujen suhteita toisiinsa tietokantojen suunnittelun alkeita Id enimi snimi muuta 1 Aki Joki xxx 2 Esa Elo yyy Id katuos

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 9.3.2010 Kandidaatin tutkielma, aine HELSINGIN YLIOPISTO Tietojenkäsittelytieteen

Lisätiedot

CS-A1150 Tietokannat CS-A1150 Tietokannat / 39

CS-A1150 Tietokannat CS-A1150 Tietokannat / 39 CS-A1150 Tietokannat 20.2.2018 CS-A1150 Tietokannat 20.2.2018 1 / 39 Oppimistavoitteet: tämän luennon jälkeen Tunnet SQL:n perusteet ja osaat tehdä yksinkertaisia SQL-kyselyitä, esimerkiksi hakea relaatiosta

Lisätiedot

Tietokantojen perusteet k2004helsingin yliopisto/tktl Tietokantojen perusteet, s 2005 SQL-perusteet. Harri Laine 1. SQL tietokantakieli

Tietokantojen perusteet k2004helsingin yliopisto/tktl Tietokantojen perusteet, s 2005 SQL-perusteet. Harri Laine 1. SQL tietokantakieli tietokantakieli :llä voidaan... määritellä ja muokata tietokantaa ja sen käyttöoikeuksia virittää tietokannan talletusrakenteita hakea tietoa tietokannasta näytölle tai tiedostoon sovellusohjelman käyttöön

Lisätiedot

Sisältö. Tosiaikajärjestelmät Luento 11: Tosiaikatietokannat. Abstrakti tietokantamalli. Tietoalkio ACID. Transaktion tilat. Abstrakti tietokantamalli

Sisältö. Tosiaikajärjestelmät Luento 11: Tosiaikatietokannat. Abstrakti tietokantamalli. Tietoalkio ACID. Transaktion tilat. Abstrakti tietokantamalli Tosiaikajärjestelmät Luento 11: Tosiaikatietokannat Tiina Niklander Perustuu Jan Lindströmin materiaalin S2002 ja artikkeliin: Ramamritham, Son & DiPippo: Real-Time Databases and Data Services. Real-Time

Lisätiedot

Tosiaikajärjestelmät Luento 11: Tosiaikatietokannat

Tosiaikajärjestelmät Luento 11: Tosiaikatietokannat Tosiaikajärjestelmät Luento 11: Tosiaikatietokannat Tiina Niklander Perustuu Jan Lindströmin materiaalin S2002 ja artikkeliin: Ramamritham, Son & DiPippo: Real-Time Databases and Data Services. Real-Time

Lisätiedot

3. Taulujen määrittely ja muuttaminen

3. Taulujen määrittely ja muuttaminen 3. Taulujen määrittely ja muuttaminen DDL: Taulujen luonti, muutos ja poisto DML: taulujen tietojen ylläpito Tapahtumien (transaktioiden) hallinta Näkymät, synonyymit ja muut tietokantaobjektit Taulujen

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

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

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) JOHDANTO Tietokannanhoitaja

Lisätiedot

HELIA 1 (21) Outi Virkki Tietokantasuunnittelu 20.9.2005

HELIA 1 (21) Outi Virkki Tietokantasuunnittelu 20.9.2005 HELIA 1 (21) Luento 7 Relaatiomallin kertausta... 2 Peruskäsitteet... 2 Relaatio... 4 Määritelmä... 4 Relaatiokaava (Relation schema)... 4 Relaatioinstanssi (Relation instance)... 4 Attribuutti ja arvojoukko...

Lisätiedot

Tietokantojen perusteet, syksy 1999 SQL- osa Harri Laine 1. SQL-yhteenvetofunktiot. SQL-yhteenvetofunktiot

Tietokantojen perusteet, syksy 1999 SQL- osa Harri Laine 1. SQL-yhteenvetofunktiot. SQL-yhteenvetofunktiot DO NOT PRINT THIS DOCUMENT SQL:ssä joukko yhteenvetofunktioita (aggregate function, koostefunktio) AVG keskiarvo MIN pienin arvo (minimi) MAX suurin arvo (maksimi) SUM summa COUNT lukumäärä Yhteenvetofunktioita

Lisätiedot