SlideShare ist ein Scribd-Unternehmen logo
1 von 32
Downloaden Sie, um offline zu lesen
Tietokantajärjestelmät
      kevät 2010

       luento 1

   Ilkka Tervonen
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
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
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
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
Sisältö...

26.4, 27.4   Esseiden esittelyä




                                  © IlkkaTervonen
                                      6
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
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
Alkuluennon sisältö

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




                                                      © IlkkaTervonen
                                                          9
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
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
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
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
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
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
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
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
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
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>
XML tietokanta


                                                        Olio & hybriditietokanta


                                             Relaatiotietokanta


                       Verkkotietokanta


              Hierarkkinen tietokanta


                                 Tiedostot


1950   1960   1970            1980               1990               2000

                Tietokantatekniikoiden kehitys
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
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
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
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
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
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
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
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
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
✰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
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
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

Weitere ähnliche Inhalte

Andere mochten auch

Liiketoimintaprosessien kehittäminen - Moduulien Esittely
Liiketoimintaprosessien kehittäminen - Moduulien EsittelyLiiketoimintaprosessien kehittäminen - Moduulien Esittely
Liiketoimintaprosessien kehittäminen - Moduulien EsittelyJarmo Talvivaara
 
Millä tasolla organisaationne suorituskyvyn johtaminen on?
Millä tasolla organisaationne suorituskyvyn johtaminen on?Millä tasolla organisaationne suorituskyvyn johtaminen on?
Millä tasolla organisaationne suorituskyvyn johtaminen on?Mika Aho
 
Etäopetus päätoimisena etätyönä. Miten varmistaa koulutuspalveluiden saavutet...
Etäopetus päätoimisena etätyönä. Miten varmistaa koulutuspalveluiden saavutet...Etäopetus päätoimisena etätyönä. Miten varmistaa koulutuspalveluiden saavutet...
Etäopetus päätoimisena etätyönä. Miten varmistaa koulutuspalveluiden saavutet...Jarmo Talvivaara
 
My Day as a Business Intelligence Consultant
My Day as a Business Intelligence ConsultantMy Day as a Business Intelligence Consultant
My Day as a Business Intelligence ConsultantMika Aho
 
Component Object Model (COM, DCOM, COM+)
Component Object Model (COM, DCOM, COM+)Component Object Model (COM, DCOM, COM+)
Component Object Model (COM, DCOM, COM+)Peter R. Egli
 
Enterprise Application Integration
Enterprise Application IntegrationEnterprise Application Integration
Enterprise Application IntegrationTomas Dermisek
 
Enterprise application integration
Enterprise application integrationEnterprise application integration
Enterprise application integrationGoa App
 
Enterprise Application Integration Technologies
Enterprise Application Integration TechnologiesEnterprise Application Integration Technologies
Enterprise Application Integration TechnologiesPeter R. Egli
 

Andere mochten auch (8)

Liiketoimintaprosessien kehittäminen - Moduulien Esittely
Liiketoimintaprosessien kehittäminen - Moduulien EsittelyLiiketoimintaprosessien kehittäminen - Moduulien Esittely
Liiketoimintaprosessien kehittäminen - Moduulien Esittely
 
Millä tasolla organisaationne suorituskyvyn johtaminen on?
Millä tasolla organisaationne suorituskyvyn johtaminen on?Millä tasolla organisaationne suorituskyvyn johtaminen on?
Millä tasolla organisaationne suorituskyvyn johtaminen on?
 
Etäopetus päätoimisena etätyönä. Miten varmistaa koulutuspalveluiden saavutet...
Etäopetus päätoimisena etätyönä. Miten varmistaa koulutuspalveluiden saavutet...Etäopetus päätoimisena etätyönä. Miten varmistaa koulutuspalveluiden saavutet...
Etäopetus päätoimisena etätyönä. Miten varmistaa koulutuspalveluiden saavutet...
 
My Day as a Business Intelligence Consultant
My Day as a Business Intelligence ConsultantMy Day as a Business Intelligence Consultant
My Day as a Business Intelligence Consultant
 
Component Object Model (COM, DCOM, COM+)
Component Object Model (COM, DCOM, COM+)Component Object Model (COM, DCOM, COM+)
Component Object Model (COM, DCOM, COM+)
 
Enterprise Application Integration
Enterprise Application IntegrationEnterprise Application Integration
Enterprise Application Integration
 
Enterprise application integration
Enterprise application integrationEnterprise application integration
Enterprise application integration
 
Enterprise Application Integration Technologies
Enterprise Application Integration TechnologiesEnterprise Application Integration Technologies
Enterprise Application Integration Technologies
 

Ähnlich wie 12292 Bf8d01

Tiedolla johtamisen atomit ja tietoaltaan toteuttamisen tilanne
Tiedolla johtamisen atomit ja tietoaltaan toteuttamisen tilanneTiedolla johtamisen atomit ja tietoaltaan toteuttamisen tilanne
Tiedolla johtamisen atomit ja tietoaltaan toteuttamisen tilanneTHL
 
Datanhallinnan suunnittelu - Koulutus kouluttajille, osa II
Datanhallinnan suunnittelu - Koulutus kouluttajille, osa IIDatanhallinnan suunnittelu - Koulutus kouluttajille, osa II
Datanhallinnan suunnittelu - Koulutus kouluttajille, osa IIMari Elisa Kuusniemi
 
Sote-tiedon toissijaisen käytön kokonaisarkkitehtuuri
Sote-tiedon toissijaisen käytön kokonaisarkkitehtuuriSote-tiedon toissijaisen käytön kokonaisarkkitehtuuri
Sote-tiedon toissijaisen käytön kokonaisarkkitehtuuriSitra / Hyvinvointi
 
Avoimet rajapinnat liiketoiminnan mahdollistajina
Avoimet rajapinnat liiketoiminnan mahdollistajinaAvoimet rajapinnat liiketoiminnan mahdollistajina
Avoimet rajapinnat liiketoiminnan mahdollistajinaCySec Ice Wall Oy (Ltd.)
 
Tutkijoiden käyttämät datarepositoriot: MILDRED-projektin kyselytutkimus Hels...
Tutkijoiden käyttämät datarepositoriot: MILDRED-projektin kyselytutkimus Hels...Tutkijoiden käyttämät datarepositoriot: MILDRED-projektin kyselytutkimus Hels...
Tutkijoiden käyttämät datarepositoriot: MILDRED-projektin kyselytutkimus Hels...Anna Salmi
 
Yliopistojen Projekti SIG 2015
Yliopistojen Projekti SIG 2015 Yliopistojen Projekti SIG 2015
Yliopistojen Projekti SIG 2015 Tomppa Järvinen
 
Data-suomi, selittävä sanakirja
Data-suomi, selittävä sanakirjaData-suomi, selittävä sanakirja
Data-suomi, selittävä sanakirjaKalle Niemi
 
Datajalostamo-seminaari 5.6.2014: Sovelluskehittäjät ja data – kehittäjäyhtei...
Datajalostamo-seminaari 5.6.2014: Sovelluskehittäjät ja data – kehittäjäyhtei...Datajalostamo-seminaari 5.6.2014: Sovelluskehittäjät ja data – kehittäjäyhtei...
Datajalostamo-seminaari 5.6.2014: Sovelluskehittäjät ja data – kehittäjäyhtei...Digitalmikkeli
 
Datan avaamisen perusteet -koulutus 1.6.2021
Datan avaamisen perusteet -koulutus 1.6.2021Datan avaamisen perusteet -koulutus 1.6.2021
Datan avaamisen perusteet -koulutus 1.6.2021Helsinki Region Infoshare
 
Mitä on big data, Aamiaistilaisuus 13.03.2012
Mitä on big data, Aamiaistilaisuus 13.03.2012Mitä on big data, Aamiaistilaisuus 13.03.2012
Mitä on big data, Aamiaistilaisuus 13.03.2012Immo Salo
 
Jari porrasmaa-Sote-tietopaketit & IT-arkkitehtuuri
Jari porrasmaa-Sote-tietopaketit & IT-arkkitehtuuri Jari porrasmaa-Sote-tietopaketit & IT-arkkitehtuuri
Jari porrasmaa-Sote-tietopaketit & IT-arkkitehtuuri Sitra / Hyvinvointi
 
Sucksdorff, Anttila ja Harju, SYKE - Ympäristö- ja luonnonvaratieto avoimeen ...
Sucksdorff, Anttila ja Harju, SYKE - Ympäristö- ja luonnonvaratieto avoimeen ...Sucksdorff, Anttila ja Harju, SYKE - Ympäristö- ja luonnonvaratieto avoimeen ...
Sucksdorff, Anttila ja Harju, SYKE - Ympäristö- ja luonnonvaratieto avoimeen ...Maa- ja metsätalousministeriö
 

Ähnlich wie 12292 Bf8d01 (19)

Hri vantaa-avoin tieto-joulu2012-valmis
Hri vantaa-avoin tieto-joulu2012-valmisHri vantaa-avoin tieto-joulu2012-valmis
Hri vantaa-avoin tieto-joulu2012-valmis
 
Tiedolla johtamisen atomit ja tietoaltaan toteuttamisen tilanne
Tiedolla johtamisen atomit ja tietoaltaan toteuttamisen tilanneTiedolla johtamisen atomit ja tietoaltaan toteuttamisen tilanne
Tiedolla johtamisen atomit ja tietoaltaan toteuttamisen tilanne
 
Tiekery eb-hri-esitys-20102011-final
Tiekery eb-hri-esitys-20102011-finalTiekery eb-hri-esitys-20102011-final
Tiekery eb-hri-esitys-20102011-final
 
Datanhallinnan suunnittelu - Koulutus kouluttajille, osa II
Datanhallinnan suunnittelu - Koulutus kouluttajille, osa IIDatanhallinnan suunnittelu - Koulutus kouluttajille, osa II
Datanhallinnan suunnittelu - Koulutus kouluttajille, osa II
 
Sote-tiedon toissijaisen käytön kokonaisarkkitehtuuri
Sote-tiedon toissijaisen käytön kokonaisarkkitehtuuriSote-tiedon toissijaisen käytön kokonaisarkkitehtuuri
Sote-tiedon toissijaisen käytön kokonaisarkkitehtuuri
 
Avoimet rajapinnat liiketoiminnan mahdollistajina
Avoimet rajapinnat liiketoiminnan mahdollistajinaAvoimet rajapinnat liiketoiminnan mahdollistajina
Avoimet rajapinnat liiketoiminnan mahdollistajina
 
Tutkijoiden käyttämät datarepositoriot: MILDRED-projektin kyselytutkimus Hels...
Tutkijoiden käyttämät datarepositoriot: MILDRED-projektin kyselytutkimus Hels...Tutkijoiden käyttämät datarepositoriot: MILDRED-projektin kyselytutkimus Hels...
Tutkijoiden käyttämät datarepositoriot: MILDRED-projektin kyselytutkimus Hels...
 
Yliopistojen Projekti SIG 2015
Yliopistojen Projekti SIG 2015 Yliopistojen Projekti SIG 2015
Yliopistojen Projekti SIG 2015
 
Data-suomi, selittävä sanakirja
Data-suomi, selittävä sanakirjaData-suomi, selittävä sanakirja
Data-suomi, selittävä sanakirja
 
Sitra hri-ekosysrak-16112011-final
Sitra hri-ekosysrak-16112011-finalSitra hri-ekosysrak-16112011-final
Sitra hri-ekosysrak-16112011-final
 
Datajalostamo-seminaari 5.6.2014: Sovelluskehittäjät ja data – kehittäjäyhtei...
Datajalostamo-seminaari 5.6.2014: Sovelluskehittäjät ja data – kehittäjäyhtei...Datajalostamo-seminaari 5.6.2014: Sovelluskehittäjät ja data – kehittäjäyhtei...
Datajalostamo-seminaari 5.6.2014: Sovelluskehittäjät ja data – kehittäjäyhtei...
 
Mikko Eräkaski: Hallinnon tietoympäristön muuttuminen
Mikko Eräkaski: Hallinnon tietoympäristön muuttuminenMikko Eräkaski: Hallinnon tietoympäristön muuttuminen
Mikko Eräkaski: Hallinnon tietoympäristön muuttuminen
 
Datan avaamisen perusteet -koulutus 1.6.2021
Datan avaamisen perusteet -koulutus 1.6.2021Datan avaamisen perusteet -koulutus 1.6.2021
Datan avaamisen perusteet -koulutus 1.6.2021
 
Mitä on big data, Aamiaistilaisuus 13.03.2012
Mitä on big data, Aamiaistilaisuus 13.03.2012Mitä on big data, Aamiaistilaisuus 13.03.2012
Mitä on big data, Aamiaistilaisuus 13.03.2012
 
Jari porrasmaa-Sote-tietopaketit & IT-arkkitehtuuri
Jari porrasmaa-Sote-tietopaketit & IT-arkkitehtuuri Jari porrasmaa-Sote-tietopaketit & IT-arkkitehtuuri
Jari porrasmaa-Sote-tietopaketit & IT-arkkitehtuuri
 
Sucksdorff, Anttila ja Harju, SYKE - Ympäristö- ja luonnonvaratieto avoimeen ...
Sucksdorff, Anttila ja Harju, SYKE - Ympäristö- ja luonnonvaratieto avoimeen ...Sucksdorff, Anttila ja Harju, SYKE - Ympäristö- ja luonnonvaratieto avoimeen ...
Sucksdorff, Anttila ja Harju, SYKE - Ympäristö- ja luonnonvaratieto avoimeen ...
 
Maakuntien tietojohtamisen ratkaisukokonaisuus MATI-hanke
Maakuntien tietojohtamisen ratkaisukokonaisuus MATI-hankeMaakuntien tietojohtamisen ratkaisukokonaisuus MATI-hanke
Maakuntien tietojohtamisen ratkaisukokonaisuus MATI-hanke
 
Tutkimusotteita verkosta
Tutkimusotteita verkostaTutkimusotteita verkosta
Tutkimusotteita verkosta
 
Opasnet esite
Opasnet esiteOpasnet esite
Opasnet esite
 

12292 Bf8d01

  • 1. Tietokantajärjestelmät kevät 2010 luento 1 Ilkka Tervonen
  • 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. 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
  • 6. Sisältö... 26.4, 27.4 Esseiden esittelyä © IlkkaTervonen 6
  • 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