12292 bf8d01
DESCRIPTION
TRANSCRIPT
Tietokantajärjestelmätkevät 2010
luento 1
Ilkka Tervonen
© 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
© 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
© 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
© 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
© I
lkka
Terv
onen
6
Sisältö...
26.4, 27.4 Esseiden esittelyä
© 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
© 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
© 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ä
© 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ä
© 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ö”
© 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...
© 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...
© 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...
© 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?
© 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
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
© 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
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>
1950 19901960 1970 1980 2000
Tiedostot
Hierarkkinen tietokanta
Verkkotietokanta
Relaatiotietokanta
Olio & hybriditietokanta
XML tietokanta
Tietokantatekniikoiden kehitys
© 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
© 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ä
© 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
© 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)
© 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
© 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
© 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
© 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
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
© 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ä
© 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ä
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)