Contenu connexe Similaire à 12292 Bf8d01 (19) 12292 Bf8d012. Suorittamistavat
Tapa 1 (study group) Tapa 2 (essee) Tapa 3 (tentti)
✰ 2-3 opiskelijaa ✰ 1 opiskelija ✰ Luennot
✰ Luennot ✰ Luennot ✰ Loppukuulustelu
✰ Study group työt ✦ osa study group ✦ arvosana tämän
✦ luentoihin liittyvät tehtävistä perusteella
kotitehtävät ✰ Essee ja sen esittely ✰ Harjoitukset
✦ viikkopalaverit ✦ arvosana tämän ja
✰ Harjoitustyö
✦ arvosana study group
työskentelyn tehtävien perusteella ✦ oliotietokanta tai
ja raportin ✦ XML kanta
✰ Harjoitukset
© IlkkaTervonen
perusteella
✰ Harjoitustyö
✰ Harjoitukset
✦ oliotietokanta tai
✰ Harjoitustyö ✦ XML kanta
✦ oliotietokanta tai
✦ XML kanta 2
3. Tavoite
✰Opintojakson suoritettuaan opiskelija
ymmärtää
✦Transaktioiden käsittelyn ja samanaikaisuuden
hallinnan periaatteet sekä elpymistekniikat
tietokantajärjestelmissä
✦Indeksoinnin merkityksen kyselyjen tehostamisessa
✦Tietokantajärjestelmien kehityssuunnat
✦Johdon päätöksentekoa tukevan tietovaraston
© IlkkaTervonen
ominaispiirteet
✦Tiedon louhinnan periaatteet
3
4. Sisältö
15.2 Tietokantojen kehityshistoria
16.2 Indeksit ja indeksointi
22.2 Kyselyjen käsittely ja optimointi
23.2 Transaktioiden käsittely
1.3 Samanaikaisuuden hallinta ja
elpymistekniikat
2.3 Oliotietokannat
© IlkkaTervonen
4
5. Sisältö...
8.3 Tietokannan varmuus ja käyttöoikeudet
9.3 Hajautetut tietokannat
15.3 Muita kehityssuuntia
XML tietokannat
Monitietokannat
Deduktiiviset tietokannat
Aktiiviset tietokannat
© IlkkaTervonen
16.3 Tietovarastot
22.3 Tiedon louhinta ja semanttiset verkot
5
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ä
© IlkkaTervonen
✰ Turvalliset tietokannat
7
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
© IlkkaTervonen
8
9. Alkuluennon sisältö
✰10 FAQ (Frequently Asked Questions)
✦mitä tietokannat ovat, historiaa
✦tietokantojen toteutuksista, tietokantatyypeistä
✦tietovarastoista
✦transaktioista
✦tietokannan hallintajärjestelmästä
© IlkkaTervonen
9
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 toisiinsa
liitettyjä tietueita (Kroenke 2002)
Tietokannan hallintajärjestelmä (DBMS)
Tietokannan hallintajärjestelmä koostuu ohjelmista,
jotka mahdollistavat tietokannan luonnin ja ylläpidon
© IlkkaTervonen
Tietokantajärjestelmä
Tietokantajärjestelmä = Tietokanta + Tietokannan
hallintajärjestelmä
10
11. FAQ...
2. Mihin tietokantoja käytetään?
Kerättyä tietoa käytetään päätöksenteon tukena ja
perusteluna.
- informaatio-käsitteen tulkinnat S & A. Halme 1986
pragmaattinen informaatio
“tiedon hyväksikäyttö”
perustelu
Tietämys Päätös
© IlkkaTervonen
syntaktinen informaatio tulkinta
pyyntö
“paljas tieto sinänsä”
muunnos
Data Informaatio semanttinen informaatio
“ihmisen tapa
ymmärtää tieto”
11
12. FAQ...
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 Access
Method) ohjelmiston (hierarkkinen rakenne)
✦ 1960 luvun puolivälissä IBM yhdessä NAA:n kanssa
kehitti GUAMin seuraajan IMS (Information
© IlkkaTervonen
Management System) järjestelmän - hierarkkinen
tietokantajärjestelmä
12
13. FAQ...
✦ General Electric kehitti Charles Bachmanin johdolla
toista tietokantajärjestelmää, IDS (Integrated Data Store)
- verkkotietokantajärjestelmää
✦ Vuonna 1967 CODASYL (Conference on Data Systems
Languages) konferenssi perusti DBTG (DataBase Task
Group) 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 tehokkaasti
käyttöön (indeksit/hakemistot)
© IlkkaTervonen
• 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 13
14. FAQ...
✦ Vuonna 1970 E.F. Codd IBM:n tutkimuslaboratoriosta esitti
relaatiomallin, jonka teoreettiselle pohjalle rakennettiin 1970
luvun lopulla ja 1980 luvun alussa ensimmäiset
relaatiotietokannat
✦ Chen esitti 1976 tiedon yleiseen mallintamiseen tarkoitetun
ER (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
© IlkkaTervonen
relaatioalgebran ominaisuuksiin)
✦ Suurin osa nykyisistä tietokantaratkaisuista perustuu
relaatiotietokantojen käyttöön
• DB2, Oracle, SQL Server, Ingres, Informix, MySQL, Solid...
14
15. FAQ...
4. Millaisia tietokantatoteutuksia on
olemassa?
✦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 viimeisen
© IlkkaTervonen
viikon aikana?
15
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än
todennäköisestiostaa?
✦Paikallisia tietovarastoja (data mart)
© IlkkaTervonen
• Palvelevat osaston päätöksentekoa
16
17. Edelleen
summattua
Tieto- dataa ad-hoc
varasto kyselyihin ja tiedon
louhintaan
Paikalliset
tietovarastot
Summattua dataa
räätälöityihin täsmäraportteihin
Raakadata
tuotantoraportointiin
Tiedon puhdistus
Toiminnalliset tietokannat
18. FAQ...
✰Toiminnalliset tietokannat voivat perustua
erityyppisten tietomallien mukaisiin toteutuksiin
✦ Hierarkkinen malli -> Hierarkkinen tietokanta
✦ Verkkomalli -> Verkkotietokanta
✦ Relaatiomalli -> Relaatiotietokanta
✦ Oliomalli -> Oliotietokanta
✦ XML kuvaus -> XML tietokanta
© IlkkaTervonen
18
19. Matkustaja (Tunnus, Nimi,Osoite, Puhelin)
Lippu (Tunnus, Pvm, MatkTunnus, Tyyppi)
<!DOCTYPE asiakas [
<!ELEMENT asiakas (nimi, osoite)>
<!ELEMENT nimi (etunimi,sukunimi)>
<!ELEMENT etunimi (#PCDATA)>
Matkustaja Lippu <!ELEMENT sukunimi (#PCDATA)>
<!ELEMENT osoite (katu, postinro, kaupunki)>
Tunnus <!ELEMENT katu (#PCDATA)>
Tunnus
Nimi <!ELEMENT postinro (#PCDATA)>
Pvm
Osoite <!ELEMENT kaupunki (#PCDATA)>
MatkTunnus
Puhelin ]>
Tyyppi <asiakas>
<nimi>
TulostaTarra LaskeHinta <etunimi>Eetu</etunimi>
KeraaTiedot TulostaLippu <sukunimi>Kallio</sukunimi>
EtsiMatkustaja </nimi>
<osoite>
<katu>Kirkkokatu 23</katu>
<postinro>90100</postinro>
<kaupunki>Oulu</kaupunki>
</osoite>
</asiakas>
20. XML tietokanta
Olio & hybriditietokanta
Relaatiotietokanta
Verkkotietokanta
Hierarkkinen tietokanta
Tiedostot
1950 1960 1970 1980 1990 2000
Tietokantatekniikoiden kehitys
21. FAQ...
✰Näihin tekniikoihin perustuen on lisäksi
olemassa
✦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 useita
komponenttitietokantoja, jotka puolestaan voivat olla
© IlkkaTervonen
tyypiltään esim. relaatio-, olio- tai XML tietokantoja
21
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 ominaisuuksilla
© IlkkaTervonen
laajennettuja relaatiotietokantoja) tulevat ilmeisesti
relaatiotietokantojen korvaajaksi (esim. Oracle 8i ->)
✦ Hajautettujen tietokantojen suosio on kasvussa
paikallisten tietovarastojen (data mart) ja
mobiilisovellusten myötä 22
23. FAQ...
6. Miksi tietovarastoja tarvitaan?
✦Eräät liiketoiminnan alat, kuten
vakuutuslaitokset, liikeketjut ja
puhelinoperaattorit, haluavat seurata
asiakkaiden käyttäytymistrendejä
-> talletettavaa tietoa on todella paljon
✦tietovarastojen käyttäjät haluvat myös erilaisia
yhteenvetoraportteja helposti ja nopeasti
© IlkkaTervonen
-> tietovarastoon talletetaan valmiiksi laskettuja
viikko-, kuukausi- ja vuosisummia
23
24. Tietovaraston karkeisuus (rakeisuus)
sekuntitarkkuuden tietoa = 31.500.000 tietuetta / vuosi
minuuttitarkkuuden tietoa = 525.000 tietuetta / vuosi
tuntitarkkuuden tietoa = 8.500 tietuetta / vuosi
viikkotarkkuuden tietoa = 52 tietuetta / vuosi
kuukausitarkkuuden tietoa = 12 tietuetta / vuosi
vuositarkkuuden tietoa = 1 tietue / vuosi
© IlkkaTervonen
24
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
© IlkkaTervonen
• 2009: 1.5 PB
✰ Dell
• 2009: 1 PB
25
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
© IlkkaTervonen
✦ Siirtyminen uusiin ratkaisuihin (esim. oliotietokanta)
vaatii koulutusta ja uusia ohjelmistohankintoja
26
27. FAQ...
9. Miten tietokannan saa tehokkaaseen käyttöön?
✦ Tehokkuuteen on erilaisia keinoja erikokoisissa
sovelluksissa ja erilaisissa tietokantaratkaisuissa
✦ Tietokantaa käytetään esim. SQL (Structured Query
Language) tai OQL (Object Query Language) kielten
avulla
✦ 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 Application
© IlkkaTervonen
Programming Interface) tai ASP (Active Server Pages)
& ASP.NET tekniikoiden avulla
✦ Asiakas/palvelin-sovelluksia, joissa on useita käyttäjiä,
voidaan tehostaa TP-monitoreiden avulla
27
28. FAQ...
10. Mikä on transaktio?
✦ Yhden käyttäjän suorittamia peräkkäisiä hakuja ja
päivityksiä sanotaan tietokantatapahtumaksi eli
transaktioksi (transaction)
• haku = luku, päivitys = luku & kirjoitus
✦ Kun useilla käyttäjillä on samanaikaisesti transaktioita
tiettyyn tietoalkioon, tarvitaan samanaikaisuuden
hallintaa
© IlkkaTervonen
28
29. Samanaikaiset
käyttäjät
Käytännöt
(protokollat) Lukitus ongelmana lukkiu(tu)mat
(esim. 2PL) Lukkiumat pyritään estämään
(ei odotusta, varovainen odotus;
pessimistinen
aikaleimat, Wait-die, Wound-wait)
tai havaitsemaan (wait-for verkko)
Lukkiumat voidaan purkaa
keskeyttämällä syylliseksi valittu
transaktio tai käyttämällä aikarajoja
Aikaleimat
ei lukkoja -> ei lukkiutumia
(esim. TO)
Konfliktit ratkaistaan
optimistinen
järjestysalgoritmien avulla
soveltuu käyttöön, jos transaktiot
eivät käytä samoja tietoalkioita
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)
© IlkkaTervonen
• Suoritetun transaktion aiheuttamat muutokset ovat pysyviä
30
31. FAQ...
11. Miten tietokantoja hallitaan?
✦Tietokannan hallintajärjestelmä (DBMS,
Database Management System) on ohjelmisto,
joka huolehtii tietokannan luomiseen ja
käyttämiseen liittyvistä
• Muunnostoimenpiteistä
• Tulkinta - ” -
• Varmistus - ” -
✦Transaktion suhteen varmistetaan, että
© IlkkaTervonen
• kaikki transaktiot päätetään onnistuneesti
(vahvistetaan) ja vaikutus talletetaan tietokantaan
• transaktio ei tee mitään ylimääräistä
31
32. Ohjelmoijat Satunnaiset käyttäjät TK-hoitaja
Sovellus- Vuorovaikutteinen Järjestelmä-
ohjelmat kysely komennot DDL lauseet
DDL =
(Data Definition Language)
Isäntäkielen Kyselyn Kääntäjä muuntaa DDL lauseet
Esikääntäjä esim. uutta tietoa esitteleviksi
kääntäjä kääntäjä
tauluiksi, jotka talletetaan
tietohakemistoon
Käännetyt DML Kyselyn DDL
transaktiot kääntäjä optimoija kääntäjä
Ei tarpeettomia tietoja
taulujen yhdistelyssä
DML = (Data TK-hoitajan komennot,
Kevyet liitosoperaatiot
Manipulation Language) kyselyt ja
Indeksien hyödyntäminen
transaktiot
Talletetun tiedon Tietokanta-
valvoja suoritin
Tietohakemisto
Samanaikaisuuden hallinta
Varmistuksen/Elpymisen
Tietokanta hallinta
Kyselyjen ja
transaktioiden suoritus