Tietohakemisto ja Transaktionkäsittely

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

HELIA 1 (14) Outi Virkki Tiedonhallinta

HELIA 1 (13) Outi Virkki Tietokantasuunnittelu

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

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

Tiedonhallintajärjestelmän rakenne ja Suorituskyky

HELIA 1 (15) Outi Virkki Tietokantasuunnittelu

HELIA 1 (15) Outi Virkki Tietokantasuunnittelu

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

HELIA 1 (15) Outi Virkki Tiedonhallinta

HELIA 1 (11) Outi Virkki Tiedonhallinta

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

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

HELIA 1 (21) Outi Virkki Tietokantasuunnittelu

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

Samanaikaisuuden hallinta. Optiot transaktionaalisissa työnkuluissa

Tietokantakurssit / TKTL

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

Tietokannanhoitaja DBA (Database Administrator) ja tietokannan hallinta

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

MUITA TIETOKANTAOBJEKTEJA NÄKYMÄT, SYNONYYMIT, INDEKSOINTI, VALTUUDET JA SYSTEEMIHAKEMISTO

Samanaikaisuuden hallinta. tietokantapalvelimessa. Tiedonhallintaa. Alkuper. versio: Jaakko Rantanen Pieniä korjauksia: Jouni Huotari 26.2.

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

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

CS-A1150 Tietokannat CS-A1150 Tietokannat / 43

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

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

Tietokannanhallintajärjestelmä (DBMS)

Näkymät ja tiedon suojaus

HELIA 1 (19) Outi Virkki Tietokantasuunnittelu

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

HELIA 1 (14) Outi Virkki Tiedonhallinta

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

HELIA 1 (16) Outi Virkki Tietokantasuunnittelu

Samanaikaisuuden hallinta MySQLtietokannanhallintajärjestelmässä. Vesa Tähkävuori

TIETOKANTOJEN PERUSTEET MARKKU SUNI

D B. Transaktionhallinta - samanaikaisuus. Transaktionhallinta - samanaikaisuus. Transaktionhallinta - samanaikaisuus

HELIA 1 (12) Outi Virkki Tiedonhallinta

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

HELIA 1 (21) Outi Virkki Tietokantasuunnittelu

TIETOKANTOJEN PERUSTEET OSIO 14 MARKKU SUNI

CSE-A1200 Tietokannat

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

HELIA 1 (14) Outi Virkki Tiedonhallinta

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

Seminaari: Keskusmuistitietokannat. Keskusmuistitietokantojen samanaikaisuuden hallinta Ilkka Pullinen

TIEDONHALLINNAN PERUSTEET - SYKSY 2013

TIETOKANTOJEN PERUSTEET MARKKU SUNI

Tietokanta (database)

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

D B. Transaktionhallinta

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

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

HELIA 1 (11) Outi Virkki Tiedonhallinta

5.2 Samanaikaisuuden hallinta

Joko tunnet nämän Oracle10g SQL:n piirteet? Kari Aalto Saariston IT

CS-A1150 Tietokannat CS-A1150 Tietokannat / 47

Java ja tietokannan käsittely (JDBC)

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

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

Tiedonhallinnan perusteet. Viikko 1 Jukka Lähetkangas

Tietokannat II -kurssin harjoitustyö

TIETOKANNANHOITAJA DBA (DATABASE ADMINISTRATOR) JA TIETOKANNAN HALLINTA

SQL - STRUCTURED QUERY LANGUAGE

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

Oraclen syvin ydin. Pertti Eiskonen Yleisradio Oy Tietokanta-asiantuntija. OUGF syysseminaari 2002 Sivu 1

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

Helsingin yliopisto, tktl DO Tietokantojen perusteet, kevät 2000 SQL- osa Harri Laine 1. SQL-yhteenvetofunktiot. SQL-yhteenvetofunktiot

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

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

Helsingin yliopisto, tktl DO Tietokantojen perusteet, kevät 2000 SQL- osa Harri Laine 1. SQL-yhteenvetofunktiot. SQL-yhteenvetofunktiot

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

3. Taulujen määrittely ja muuttaminen

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

D B. Tietokannan hallinta kertaus

TIETOKANTOJEN PERUSTEET OSIO 11 MARKKU SUNI

Maiju Mykkänen Susanna Sällinen

Opettajana Mika Sorsa, HAMK:n ammatillisen opettajakoulutuksen opetusharjoittelija

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

Oracle-tietokanta. Riku Nykänen 1/2010

Samanaikaisuuden hallinta Snapshot Isolationin avulla

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

CSE-A1200 Tietokannat

Transaktionhallinta. Transaktionhallinta. Transaktionhallinta. R & G Chapter 17

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

Tilannevedoseristyvyydessä esiintyvät eristyvyysanomaliat

D B. Transaktionhallinta - samanaikaisuus

HELIA 1 (8) Outi Virkki Tietokantasuunnittelu

HELIA 1 (19) Outi Virkki Tietokantasuunnittelu

3. TAULUJEN MÄÄRITTELY JA MUUTTAMINEN

TIETOKANNAT JOHDANTO

Samanaikaisuuden hallinta

Kari Aalto Saariston IT

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

Tosiaikajärjestelmät Luento 11: Tosiaikatietokannat

Tällä viikolla. Kotitehtävien läpikäynti Aloitetaan Pelifirman tietovaraston suunnittelu Jatketaan SQL-harjoituksia

Web-palveluiden transaktionaalinen koostaminen

DBTechNet. DBTech VET. SQL Transactions. Teoriaa ja käytännönharjoituksia. Suomeksi

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

CS-A1150 Tietokannat CS-A1150 Tietokannat / 43

Transkriptio:

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 Käyttöoikeudet...4 Tietohakemiston hyväksikäyttö...5 Transaktion / Tapahtuman hallinta...6 Taustaa...7 Tapahtuman käsite...9 ACID-ominaisuudet... 11 Samanaikaisuuden hallinta... 12 Lukitukset... 13 Toipuminen... 14 Loki-tiedosto... 15 Tapahtuman suunnittelu... 17

HELIA TIKO-05 2 (18) Tietohakemisto Tietokanta tietokannasta Tallentaa tietokannan objektien määrittelyt Tietokannan suunnittelijan / ohjelmoijan / ylläpitäjän tietolähde Metadataa SQL-92 määrittelee tietohakemiston taulut ja näkymät Tietokantatuotteissa oma rakenteensa Tietohakemistoista löytyvät kuvaukset Tauluista Pääavaimista Viiteavaimista Arvojoukkotarkistuksista Oletusarvoista Näkymistä Indekseistä...

HELIA TIKO-05 3 (18) Oraclen tietohakemistonäkymät (osa) USER_xxx käyttäjän omistamat ALL_xxx käyttäjällä käyttöoikeus DBA_xxx kaikki (vain DBA-roolilla käytettävissä) Yleiset USER_OBJECTS USER_CATALOG ALL_OBJECTS Kaikki omat Taulut, näkymät, synonyymit, sekvenssit Kaikki joihin käyttöoikeus Taulut USER_TABLES USER_TAB_COLUMNS Säännöt USER_CONSTRAINTS USER_CONS_COLUMNS Näkymät USER_VIEWS USER_UPDATABLE_ COLUMNS columns that are updatable in a join view.

HELIA TIKO-05 4 (18) Synonyymit USER_SYNONYMS Indeksit USER_INDEXES USER_IND_COLUMNS Sekvenssit USER_SEQUENCES Käyttöoikeudet USER_USERS USER_SYS_PRIVS USER_ROLE_PRIVS USER_TAB_PRIVS ROLE_SYS_PRIVS ROLE_ROLE_PRIVS ROLE_TAB_PRIVS

HELIA TIKO-05 5 (18) Tietohakemiston hyväksikäyttö a) Kuvauksien luku DESC komento Objektien määrittelyjen luku / tarkastus sql-kyselyinä tietohakemistonäkymistä b) DDL-lauseiden luonti DDL-lauseiden luonti tietohakemisto-kyselynä -- käyttäjätunnusten poisto select 'drop user ' name ';' from sys_users where name like atk72* ; drop user atk72; drop user atk72d; drop user atk72d2;...

HELIA TIKO-05 6 (18) Transaktion / Tapahtuman hallinta Transaction management 1. Estetään tietokannan samanaikaisesta käsittelystä aiheutuvat ongelmat 2. Varmistetaan tietokannan tietojen eheys mahdollisista virhetilanteista huolimatta SQL- liittymä Sovellusohjelma SQL- komentoja SQL- käsittelijä (SQL Processor) Tapahtuman käsittelijä (Transaction Manager) Tilan käsittelijä (Storage Manager) DATA & METADATA ict03d_dict_acid. doc 24.11. 2005 11:52:00

HELIA TIKO-05 7 (18) Taustaa 1. Katoavat päivitykset Lost Update problem Esim. Pankkitilin kartuttaminen samanaikaisesti A Tilino Saldo B 101 202 10 000 220 330 20 000 20 000 20 000 Tilino Saldo + 2 000 101 202 10 000 22 000 220 330 22 000 + 3 000 Tilino Saldo 23 000 101 202 10 000 220 330 23 000

HELIA TIKO-05 8 (18) 2. Holtiton luku / Likaiset luvut Dirty Read problem Esim. Pankkitilin kartuttaminen samanaikaisesti A Tilino Saldo B 101 202 10 000 220 330 20 000 20 000 Tilino Saldo + 2 000 101 202 10 000 22 000 220 330 22 000 22 000 rollback Tilino Saldo 101 202 10 000 220 330 20 000 + 3 000 Tilino Saldo 25 000 101 202 10 000 220 330 25 000

HELIA TIKO-05 9 (18) Tapahtuman käsite Joukko tietokannan käsittelytoimenpiteitä, (kyselyjä, lisäyksiä, muutoksia, poistoja) jotka muodostavat loogisen kokonaisuuden BEGIN TRANSACTION... COMMIT Esim... LENTO(lento_id, lahto, kohde, ) LAHTO(lento_id, pvm, paikkoja, vapaana, ) VARAUS(lento_id, pvm, asiakas, ) BEGIN TRANSACTION Update LAHTO Set VAPAANA = VAPAANA 1 Where LENTO_ID = $lento_id and PVM = $pvm; Insert into VARAUS Values($lento_id, $pvm, $asiakas); COMMIT;

HELIA TIKO-05 10 (18) Tapahtumaan kuuluvat toimenpiteet joko suoritetaan kokonaisuudessaan tai hylätään kokonaisuudessaan COMMIT TRANSACTION ROLLBACK TRANSACTION (vahvistus) (peruutus) aloita tapahtuma vahvistus ONNISTUNUT VAHVISTETTU päätä tapahtuma AKTIIVINEN virhe peruutus PÄÄTTYNYT luku kirjoitus EPÄ- ONNISTUNUT PERUUTETTU

HELIA TIKO-05 11 (18) ACID-ominaisuudet Atomicy Consistency Isolation Durability Jakamattomuus / Atomisuus Kaikki tai ei mitään Tapahtumaan kuuluvat toimenpiteet joko suoritetaan kokonaisuudessaan tai hylätään kokonaisuudessaan Eheys / Oikeellisuus Tietokanta säilyy tapahtumassa ehyenä Päivityksen yhteydessä tietokanta siirtyy eheästä tilasta uuteen eheään tilaan Erillisyys / Eristyvyys Tapahtuma suoritetaan ikään kuin se olisi ainoa tapahtuma ko. ajanhetkellä. Ts. muut tapahtumat eivät saa vaikuttaa sen suoritukseen Tapahtuman tekemät muutokset tietokantaan näkyvät muille tapahtumille vasta kun muutokset on vahvistettu (ei ns. likaisia tietoja) Pysyvyys Kun tapahtuma on vahvistettu, tietojen on säilyttävä tietokannassa kaikista mahdollisista virhetilanteista huolimatta.

HELIA TIKO-05 12 (18) Samanaikaisuuden hallinta Concurrency Control Estetään tietokannan samanaikaisesta käsittelystä aiheutuvat ongelmat Vastuu Eheys Erillisyys Tap. A Tap. B Luku Kirjoitus Luku Ei vaaraa Vaara (L) Kirjoitus Vaara (L) Vaara (K) Sarjallistuvuus (Serializable) Samanaikaisten tapahtumien aiheuttama tietokannan muutos on sellainen, että sama tulos saataisiin aikaan suorittamalla tapahtumat peräkkäin jossain järjestyksessä. Ainoa luotettava erillisyystaso (takaa transaktion ACID-ominaisuudet) Vahvistettujen luettavuus (Read Committed) samanaikaiset tapahtumat eivät saa lukea rivejä, joita jokin toinen tapahtuma on parhaillaan muuttamassa Oletusarvo Oraclessa!!!

HELIA TIKO-05 13 (18) Lukitukset Locking Samanaikaisen käytön rajoitus Tavallisin tapa huolehtia Eheydestä ja Erillisyydestä a) Luku-lukko - jaettu (shared) b) Kirjoitus-lukko eksklusiivinen (exclusive) Nykyisin tyypillisesti rivitasoisia (aiemmin taulutasoisia) Tap. A Luku Kirjoitus Tap. B (-lukko) (-lukko) Luku(-lukko) sallittu odottaa Kirjoitus(-lukko) odottaa odottaa Lukkiumat Deadlock Tilanne, jossa yhtäaikaa suorituksessa olevien ohjelmien lukot estävät ohjelmien etenemisen (ohjelmat odottavat toistensa lukkojen aukeamista) Tiedonhallintajärjestelmä havaitsee ja purkaa lukkiintumat määräajoin (perumalla yhden tai useamman tapahtuman)

HELIA TIKO-05 14 (18) Toipuminen Recovery Tietokannan palauttaminen eheään tilaan virhetilanteen jälkeen Vastuu Jakamattomuus Pysyvyys Esimerkkejä virhetilanteista Toiminnon peruutus Lukkiintumien purkaminen Käyttövirhe Ohjelmointivirhe Levyvirhe Järjestelmävirhe Fysikaaliset vaaratilanteet Tahallinen vahingoittaminen

HELIA TIKO-05 15 (18) Loki-tiedosto Log Käsittelytoimenpiteet kirjataan lokitiedostoon aloita tapahtuma VAHVISTETTU vahvistus AKTIIVINEN PÄÄTTYNYT peruutus luku kirjoitus PERUUTETTU i Trns Opera Object Before After Prev ID tion image image ptr 1 T1 Start 0 2 T1 Update Tili XX xxxxx yyyyy 1 3 T2 Start 0 4 T2 Insert Asiakas Y zzzzz 3 5 T1 Insert Tapaht z qqqqq 2 6 T2 Commit 4 7 T1 Commit 5

HELIA TIKO-05 16 (18) Lokitiedoston perusteella DBMS voi palauttaa tietokannan eheää tilaan virhetilanteen jälkeen a) Peruutus (Undo) b) Uudelleensuoritus (Redo) T1 T2 T3 T4 aika järjestelmävirhe

HELIA TIKO-05 17 (18) Tapahtuman suunnittelu Tapahtuman suunnittelu on tietokannan suunnittelijan ja ohjelmoijan vastuulla Sovellusalueen tuntemus tärkeää, jotta rakentuu loogisia toimenpidekokonaisuuksia Jos transaktiota ei aloiteta eksplisiittisesti (BEGIN TRANSACTION) sen alku riippuu tiedonhallintajärjestelmän käytännöstä: Oraclessa tapahtuma alkaa jokaisesta 1. sisäänkirjoittautumisesta, 2. edellisestä Commit/Rollback -toiminnosta 3. tietokannan rakenteen muutostoiminnosta (DDL) Oracle ei tue BEGIN TRANSACTION - komentoa Tietokantaan määritellyt eheyssäännöt vastaavat tietojen eheyden säilymisestä tapahtumissa

HELIA TIKO-05 18 (18) Suosituksia Pidä päivitystapahtumat (insert, update, delete) pieninä, ts. vahvista (commit) tai peru (rollback) usein Lukutapahtumat voivat olla pitkiä