12292 Bf8d01

1,177 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,177
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

12292 Bf8d01

  1. 1. Tietokantajärjestelmät kevät 2010 luento 1 Ilkka Tervonen
  2. 2. 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. 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. 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. 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
  6. 6. Sisältö... 26.4, 27.4 Esseiden esittelyä © IlkkaTervonen 6
  7. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 20. XML tietokanta Olio & hybriditietokanta Relaatiotietokanta Verkkotietokanta Hierarkkinen tietokanta Tiedostot 1950 1960 1970 1980 1990 2000 Tietokantatekniikoiden kehitys
  21. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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

×