32
Tietokantajärjestelmät kevät 2010 luento 1 Ilkka Tervonen

12292 Bf8d01

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: 12292 Bf8d01

Tietokantajärjestelmätkevät 2010

luento 1

Ilkka Tervonen

Page 2: 12292 Bf8d01

© I

lkka

Terv

onen

2

Suorittamistavat

Tapa 3 (tentti)✰ Luennot✰ Loppukuulustelu

✦ arvosana tämänperusteella

✰ Harjoitukset✰ Harjoitustyö

✦ oliotietokanta tai✦ XML kanta

Tapa 2 (essee)✰ 1 opiskelija✰ Luennot

✦ osa study grouptehtävistä

✰ Essee ja sen esittely✦ arvosana tämän ja

study grouptehtävien perusteella

✰ Harjoitukset✰ Harjoitustyö

✦ oliotietokanta tai✦ XML kanta

Tapa 1 (study group)✰ 2-3 opiskelijaa✰ Luennot✰ Study group työt

✦ luentoihin liittyvätkotitehtävät

✦ viikkopalaverit✦ arvosana

työskentelynja raportinperusteella

✰ Harjoitukset✰ Harjoitustyö

✦ oliotietokanta tai✦ XML kanta

Page 3: 12292 Bf8d01

© I

lkka

Terv

onen

3

Tavoite✰Opintojakson suoritettuaan opiskelija

ymmärtää✦Transaktioiden käsittelyn ja samanaikaisuuden

hallinnan periaatteet sekä elpymistekniikattietokantajärjestelmissä

✦Indeksoinnin merkityksen kyselyjen tehostamisessa✦Tietokantajärjestelmien kehityssuunnat✦Johdon päätöksentekoa tukevan tietovaraston

ominaispiirteet✦Tiedon louhinnan periaatteet

Page 4: 12292 Bf8d01

© I

lkka

Terv

onen

4

Sisältö15.2 Tietokantojen kehityshistoria16.2 Indeksit ja indeksointi22.2 Kyselyjen käsittely ja optimointi23.2 Transaktioiden käsittely1.3 Samanaikaisuuden hallinta ja

elpymistekniikat2.3 Oliotietokannat

Page 5: 12292 Bf8d01

© I

lkka

Terv

onen

5

Sisältö...

8.3 Tietokannan varmuus ja käyttöoikeudet9.3 Hajautetut tietokannat15.3 Muita kehityssuuntia

XML tietokannatMonitietokannatDeduktiiviset tietokannatAktiiviset tietokannat

16.3 Tietovarastot22.3 Tiedon louhinta ja semanttiset verkot

Page 6: 12292 Bf8d01

© I

lkka

Terv

onen

6

Sisältö...

26.4, 27.4 Esseiden esittelyä

Page 7: 12292 Bf8d01

© I

lkka

Terv

onen

7

Essee-aiheita✰ Tietovarastot

✦ metadata✦ tietovaraston laatu

✰ Ketterät tietokantatekniikat✰ Tietokantojen indeksointi✰ XML tietokannat

✦ puhtaat (native) tietokannat✦ XML kuvausta tukevat tietokannat

✰ Mobiilit tietokannat ja synkronointi✰ GIS tekniikat & sovellukset (esim. PPGIS, PGIS)✰ Semanttiset verkot tietämyksen esittämisessä✰ Turvalliset tietokannat

Page 8: 12292 Bf8d01

© I

lkka

Terv

onen

8

Kurssikirjallisuus✰Elmasri R., and Navathe S.B., Fundamentals of

Database Systems, 5th edition (tai 4th edition),Addison-Wesley, 2007 (2003), luku 9 ja luvut 13- 30 (13 - 29)

✰Hovi A., Huotari J., Lahdenmäki T.,Tietokantojen suunnittelu & indeksointi,Docendo Finland Oy, 2003, luvut 9-16

Page 9: 12292 Bf8d01

© I

lkka

Terv

onen

9

Alkuluennon sisältö

✰10 FAQ (Frequently Asked Questions)✦mitä tietokannat ovat, historiaa✦tietokantojen toteutuksista, tietokantatyypeistä✦tietovarastoista✦transaktioista✦tietokannan hallintajärjestelmästä

Page 10: 12292 Bf8d01

© I

lkka

Terv

onen

10

FAQ (Frequently asked questions)1. Mitä ovat tietokanta, tietokannan

hallintajärjestelmä ja tietokantajärjestelmäTietokanta

Tietokanta on järjestetty kokoelma toisiinsa liitettyjätietoja, joita on helppo käyttää tehokkaasti.Tietokanta on itsensä kuvaava kokoelma toisiinsaliitettyjä tietueita (Kroenke 2002)

Tietokannan hallintajärjestelmä (DBMS)Tietokannan hallintajärjestelmä koostuu ohjelmista,jotka mahdollistavat tietokannan luonnin ja ylläpidon

TietokantajärjestelmäTietokantajärjestelmä = Tietokanta + Tietokannanhallintajärjestelmä

Page 11: 12292 Bf8d01

© I

lkka

Terv

onen

11

FAQ...

2. Mihin tietokantoja käytetään?Kerättyä tietoa käytetään päätöksenteon tukena japerusteluna.

- informaatio-käsitteen tulkinnat S & A. Halme 1986

Data Informaatio

Tietämys Päätös

muunnos

pyyntö tulkinta

perustelu

syntaktinen informaatio“paljas tieto sinänsä”

semanttinen informaatio“ihmisen tapa

ymmärtää tieto”

pragmaattinen informaatio“tiedon hyväksikäyttö”

Page 12: 12292 Bf8d01

© I

lkka

Terv

onen

12

3. Tietokantojen historiaa✰Miten tähän on tultu?

✦Aluksi toimittiin tiedostoperustaisilla järjestelmillä✦1960 luvun Apollo-projekti (kuuhun laskeutuminen) toimi

tietokantakehityksen käynnistäjänä✦North American Aviation (nykyisin Rockwell

International) kehitti GUAM (Generalized Update AccessMethod) ohjelmiston (hierarkkinen rakenne)

✦1960 luvun puolivälissä IBM yhdessä NAA:n kanssakehitti GUAMin seuraajan IMS (InformationManagement System) järjestelmän - hierarkkinentietokantajärjestelmä

FAQ...

Page 13: 12292 Bf8d01

© I

lkka

Terv

onen

13

✦General Electric kehitti Charles Bachmanin johdollatoista tietokantajärjestelmää, IDS (Integrated Data Store)- verkkotietokantajärjestelmää

✦Vuonna 1967 CODASYL (Conference on Data SystemsLanguages) konferenssi perusti DBTG (DataBase TaskGroup) ryhmän standardisoimaan tietokantaympäristöä

✦Vuoden 1971 DBTG ehdotus esitteli kolme komponenttia• Sisäinen kaavio (internal schema)

– kertoo, kuinka tieto on talletettu ja kuinka se saadaan tehokkaastikäyttöön (indeksit/hakemistot)

• Ulkoinen kaavio (external schema)– kuvaa tietylle käyttäjälle näkyvän osan

• Käsitekaavio (conceptual schema)– sijaitsee sisäisen ja ulkoisen kaavion välissä– kuvaa talletetun tiedon abstraktilla tasolla koko käyttäjäkunnalle

FAQ...

Page 14: 12292 Bf8d01

© I

lkka

Terv

onen

14

✦Vuonna 1970 E.F. Codd IBM:n tutkimuslaboratoriosta esittirelaatiomallin, jonka teoreettiselle pohjalle rakennettiin 1970luvun lopulla ja 1980 luvun alussa ensimmäisetrelaatiotietokannat

✦Chen esitti 1976 tiedon yleiseen mallintamiseen tarkoitetunER (Entity-Relationship/käsite-yhteys mallin)

✦Relaatiotietokantojen ominaispiirteenä on• Käsitteitä vastaavien taulujen käyttö• Yhteyksien toteuttaminen taulujen välille• SQL (Structured Query Language) kielen käyttö (perustuu

relaatioalgebran ominaisuuksiin)✦Suurin osa nykyisistä tietokantaratkaisuista perustuu

relaatiotietokantojen käyttöön• DB2, Oracle, SQL Server, Ingres, Informix, MySQL, Solid...

FAQ...

Page 15: 12292 Bf8d01

© I

lkka

Terv

onen

15

FAQ...

4. Millaisia tietokantatoteutuksia onolemassa?✦Toiminnallisia (operational) tietokantoja

• Jokapäiväistä toimintaa palvelevia• Sovelluskohtaisia• Jatkuvasti päivitettäviä• Kerätään ajankohtaista dataa• Tarkkoja kyselyjä

– Kuinka paljon asiakas x on ostanut kaupasta y viimeisenviikon aikana?

Page 16: 12292 Bf8d01

© I

lkka

Terv

onen

16

FAQ...

✦Tietovarastoja (data warehouse)• Palvelevat yrityksen päätöksentekoa• Integroituja• Iltaisin ja öisin päivitettäviä• Kerätään ajankohtaista dataa ja summauksia• ”Ad hoc” ja ”älykkäitä” kyselyjä

– Jos asiakas x on ostanut olutta, mitä muuta häntodennäköisestiostaa?

✦Paikallisia tietovarastoja (data mart)• Palvelevat osaston päätöksentekoa

Page 17: 12292 Bf8d01

Raakadatatuotantoraportointiin

Summattua dataa räätälöityihin täsmäraportteihin

Edelleen summattua

dataa ad-hockyselyihin ja tiedon

louhintaan

Toiminnalliset tietokannat

Tiedon puhdistus

Tieto-varasto

Paikallisettietovarastot

Page 18: 12292 Bf8d01

© I

lkka

Terv

onen

18

FAQ...

✰Toiminnalliset tietokannat voivat perustuaerityyppisten tietomallien mukaisiin toteutuksiin✦Hierarkkinen malli -> Hierarkkinen tietokanta✦Verkkomalli -> Verkkotietokanta✦Relaatiomalli -> Relaatiotietokanta✦Oliomalli -> Oliotietokanta✦XML kuvaus -> XML tietokanta

Page 19: 12292 Bf8d01

Matkustaja (Tunnus, Nimi,Osoite, Puhelin)

Lippu (Tunnus, Pvm, MatkTunnus, Tyyppi)

Matkustaja LippuTunnusNimiOsoitePuhelin

TunnusPvmMatkTunnusTyyppi

LaskeHintaTulostaLippuEtsiMatkustaja

TulostaTarraKeraaTiedot

<!DOCTYPE asiakas [ <!ELEMENT asiakas (nimi, osoite)> <!ELEMENT nimi (etunimi,sukunimi)>

<!ELEMENT etunimi (#PCDATA)><!ELEMENT sukunimi (#PCDATA)>

<!ELEMENT osoite (katu, postinro, kaupunki)> <!ELEMENT katu (#PCDATA)> <!ELEMENT postinro (#PCDATA)> <!ELEMENT kaupunki (#PCDATA)>

] > <asiakas> <nimi>

<etunimi>Eetu</etunimi> <sukunimi>Kallio</sukunimi>

</nimi> <osoite>

<katu>Kirkkokatu 23</katu><postinro>90100</postinro><kaupunki>Oulu</kaupunki>

</osoite> </asiakas>

Page 20: 12292 Bf8d01

1950 19901960 1970 1980 2000

Tiedostot

Hierarkkinen tietokanta

Verkkotietokanta

Relaatiotietokanta

Olio & hybriditietokanta

XML tietokanta

Tietokantatekniikoiden kehitys

Page 21: 12292 Bf8d01

© I

lkka

Terv

onen

21

FAQ...

✰Näihin tekniikoihin perustuen on lisäksiolemassa✦hajautettuja tietokantoja, jotka on yleensä

toteutettu relaatio- tai oliotietokantojen avulla✦hajautettujen tietokantojen erityistapauksia ovat

• mobiilit tietokannat, jotka voidaan toteuttaa esim.relaatio-, olio- tai XML tietokantojen avulla

• monitietokannat, jotka kytkevät yhteen useitakomponenttitietokantoja, jotka puolestaan voivat ollatyypiltään esim. relaatio-, olio- tai XML tietokantoja

Page 22: 12292 Bf8d01

© I

lkka

Terv

onen

22

FAQ...

5. Mitä tietokantatyyppiä käytetään eniten✦Relaatiotietokantojen käyttö yleisintä

• esim. DB2, Oracle 8i, 9i, 10g&11g, SQL Server✦Hierarkkinen ja verkkotietokanta ovat edellistä

sukupolvea✦Oliotietokannat ovat olleet tulossa markkinoille, mutta

niiden käyttö on jäänyt vähäiseksi• esim. GemStone, Jasmine, ObjectStore, ONTOS, Poet, db4o

✦XML tietokannat tarjoavat ratkaisuja erityissovelluksiin• esim. dbXML, eXist, Natix, Tamino

✦Hybriditietokannat (olio & XML ominaisuuksillalaajennettuja relaatiotietokantoja) tulevat ilmeisestirelaatiotietokantojen korvaajaksi (esim. Oracle 8i ->)

✦Hajautettujen tietokantojen suosio on kasvussapaikallisten tietovarastojen (data mart) jamobiilisovellusten myötä

Page 23: 12292 Bf8d01

© I

lkka

Terv

onen

23

FAQ...

6. Miksi tietovarastoja tarvitaan?✦Eräät liiketoiminnan alat, kuten

vakuutuslaitokset, liikeketjut japuhelinoperaattorit, haluavat seurataasiakkaiden käyttäytymistrendejä

-> talletettavaa tietoa on todella paljon✦tietovarastojen käyttäjät haluvat myös erilaisia

yhteenvetoraportteja helposti ja nopeasti-> tietovarastoon talletetaan valmiiksi laskettuja

viikko-, kuukausi- ja vuosisummia

Page 24: 12292 Bf8d01

© I

lkka

Terv

onen

24

sekuntitarkkuuden tietoa = 31.500.000 tietuetta / vuosiminuuttitarkkuuden tietoa = 525.000 tietuetta / vuosituntitarkkuuden tietoa = 8.500 tietuetta / vuosiviikkotarkkuuden tietoa = 52 tietuetta / vuosikuukausitarkkuuden tietoa = 12 tietuetta / vuosivuositarkkuuden tietoa = 1 tietue / vuosi

Tietovaraston karkeisuus (rakeisuus)

Page 25: 12292 Bf8d01

© I

lkka

Terv

onen

25

FAQ...7. Kuinka suureksi tietovarastot kasvavat?

✰ Ominaispiirteenä on tiedon jatkuva lisäys✰ Tietovarastojen toimittajia ovat esim. Oracle, IBM ja Teradata

✰ Google• 2009: satoja PB (petatavua)

Teradatan suuria asiakkaita✰ eBay

• 2009: 5 PB✰ Wal-Mart

• 1998: 2 TB, 2003: 200 TB, 2004: 460 TB• 2009: 2.5 PB

✰ Bank of America• 2009: 1.5 PB

✰ Dell• 2009: 1 PB

Page 26: 12292 Bf8d01

© I

lkka

Terv

onen

26

FAQ...8. Mitä tarvitsee tietää, jotta tietokannan osaa

perustaa?✰A: Mitä tietoja tietokantaan talletetaan?

✦Käytetään käsitteellistä mallintamista (ER, EER, UML)✰B: Mikä tietokantatyyppi sopii parhaiten ko.

tietojen talletukseen?✦ Ihannetapauksessa aloitetaan puhtaalta pöydältä✦Tavallisesti käytetään tuttua teknologiaa, esim.

relaatiotietokantaa ja vieläpä tietyn toimittajan✦Siirtyminen uusiin ratkaisuihin (esim. oliotietokanta)

vaatii koulutusta ja uusia ohjelmistohankintoja

Page 27: 12292 Bf8d01

© I

lkka

Terv

onen

27

FAQ...9. Miten tietokannan saa tehokkaaseen käyttöön?

✦Tehokkuuteen on erilaisia keinoja erikokoisissasovelluksissa ja erilaisissa tietokantaratkaisuissa

✦Tietokantaa käytetään esim. SQL (Structured QueryLanguage) tai OQL (Object Query Language) kieltenavulla

✦ Isäntäkieli voi olla esim. C, C++, Delphi tai Java✦Sopivan indeksoinnin käyttö tehostaa SQL kyselyjä

• 1.000.000 rivin taulun kyselyn kesto 100 sek -> 0.01 sek✦Dynaamisia web-sivuja voidaan tehdä CGI (Common

Gateway Interface), ISAPI (Internet Server ApplicationProgramming Interface) tai ASP (Active Server Pages)& ASP.NET tekniikoiden avulla

✦Asiakas/palvelin-sovelluksia, joissa on useita käyttäjiä,voidaan tehostaa TP-monitoreiden avulla

Page 28: 12292 Bf8d01

© I

lkka

Terv

onen

28

FAQ...

10. Mikä on transaktio?✦Yhden käyttäjän suorittamia peräkkäisiä hakuja ja

päivityksiä sanotaan tietokantatapahtumaksi elitransaktioksi (transaction)

• haku = luku, päivitys = luku & kirjoitus

✦Kun useilla käyttäjillä on samanaikaisesti transaktioitatiettyyn tietoalkioon, tarvitaan samanaikaisuudenhallintaa

Page 29: 12292 Bf8d01

Samanaikaisetkäyttäjät

Käytännöt(protokollat) Lukitus

(esim. 2PL)

Aikaleimat(esim. TO)

pess

imist

inen

optim

istin

en

ongelmana lukkiu(tu)matLukkiumat pyritään estämään

(ei odotusta, varovainen odotus;aikaleimat, Wait-die, Wound-wait)tai havaitsemaan (wait-for verkko)

Lukkiumat voidaan purkaakeskeyttämällä syylliseksi valittu

transaktio tai käyttämällä aikarajoja

ei lukkoja -> ei lukkiutumia

Konfliktit ratkaistaan järjestysalgoritmien avulla

soveltuu käyttöön, jos transaktioteivät käytä samoja tietoalkioita

Page 30: 12292 Bf8d01

© I

lkka

Terv

onen

30

✰Transaktio määritellään ACID ominaisuuksilla✦Atomicity (atomisuus)

• Transaktio suoritetaan kokonaisuudessaan✦Consistency preservation (yhdenmukaisuuden

säilyttäminen)• Transaktio siirtää tietokannan sallitusta tilasta toiseen

✦ Isolation (eristettävyys)• Muut yhtäaikaa suoritettavat tapahtumat eivät voi vaikuttaa

transaktion käyttäytymiseen• transaktion toimenpiteet eivät näy muille

✦Durability (säilyvyys)• Suoritetun transaktion aiheuttamat muutokset ovat pysyviä

Page 31: 12292 Bf8d01

© I

lkka

Terv

onen

31

FAQ...

11. Miten tietokantoja hallitaan?✦Tietokannan hallintajärjestelmä (DBMS,

Database Management System) on ohjelmisto,joka huolehtii tietokannan luomiseen jakäyttämiseen liittyvistä

• Muunnostoimenpiteistä• Tulkinta - ” -• Varmistus - ” -

✦Transaktion suhteen varmistetaan, että• kaikki transaktiot päätetään onnistuneesti

(vahvistetaan) ja vaikutus talletetaan tietokantaan• transaktio ei tee mitään ylimääräistä

Page 32: 12292 Bf8d01

Esikääntäjä Kyselynkääntäjä

DMLkääntäjä

Kyselynoptimoija

DDLkääntäjä

Tietokanta-suoritin

Tietokanta

Ohjelmoijat Satunnaiset käyttäjät TK-hoitaja

DDL = (Data Definition Language)

Kääntäjä muuntaa DDL lauseetesim. uutta tietoa esitteleviksi

tauluiksi, jotka talletetaantietohakemistoon

DDL lauseetJärjestelmä-komennot

Vuorovaikutteinenkysely

Sovellus-ohjelmat

Tietohakemisto

Kyselyjen ja transaktioiden suoritus

Isäntäkielenkääntäjä

Käännetyttransaktiot

TK-hoitajan komennot,kyselyt jatransaktiot

Samanaikaisuuden hallintaVarmistuksen/Elpymisen

hallinta

Talletetun tiedonvalvoja

Ei tarpeettomia tietojataulujen yhdistelyssä

Kevyet liitosoperaatiotIndeksien hyödyntäminen

DML = (Data Manipulation Language)