HELIA Tiedonhallinta 1(31) TIETOKANTAYMPÄRISTÖ Ι KOLMITASOINEN ANSI-SPARCH ARKKITEHTUURI (The Three-Level ANSI-SPARCH Architecture) Vuonna 1971 julkaistiin DBTG:n (Data Base Task Group) toimesta kaksitasoinen systeeminäkemys: Kaava (Schema) Alikaavat (Subschemas) Vuonna 1975 esiteltiin terminologialtaan ja akkitehtuuriltaan samantapainen ANSI:n (American National Standards Institute) Standards Planning and Requirement Committee:n (SPARC) toimesta kolmitasoinen malli, joka sisälsi hakemiston (Data Dictionary) Aiemmin IBM oli kehitellyt vastaavanlaisia Keskeisiä ajatuksia oli tietokannan ja ohjelmien eriyttäminen ANSI-SPARC-mallista ei tullut standardia On kuitenkin edelleen perusta DBMS:n toimintojen ymmärtämisessä
HELIA Tiedonhallinta 2(31) ARKKITEHTUURITASOT Erotetaan kolmitasoinen arkkitehtuuri: a) Ulkoinen taso (External level) b) Käsitteellinen taso (Conceptual level) c) Sisäinen taso (Internal level) käyttäjä1 käyttäjä1 käyttäjä1 Ulkoinen taso Näkemys 1 Näkemys 2... Näkemys 3 Käsitemalli Käsitteellinen taso Sisäinen taso Sisäinen malli Fyysinen tietorakenne Tietokanta
HELIA Tiedonhallinta 3(31) MIKSI KOLMITASOINEN ARKKITEHTUURI? Tavoite on erottaa kunkin tietokannan käyttäjän näkemys fyysisestä esityksestä/määrittelystä seuraavista syitä: Kunkin käyttäjän päästävä samaan dataan, vaikka omaakin erilaisen näkemyksen siihen. ==> Käyttäjän on voitava muuttaa näkemystään vaikuttamatta muihin käyttäjiin. Käyttäjän vuorovaikutus tietokannan kanssa on oltava tietokannan fyysisestä talletuksesta ja organisaatiosta riippumatonta Tietokannan rakennetta on voitava muuttaa (Database Administrator, DBA) vaikuttamatta käyttäjän näkemyksiin Tietokannan sisäisen rakenteen on säilyttävä muuttumattona, vaikka muutetaan kannan fyysistä talletusta esim. vaihdetaan muistilevyä On voitava muuttaa tietokannan käsitteellistä tai globaalista rakennetta ilman, että vaikutetaan kaikkiin käyttäjiin (DBA)
HELIA Tiedonhallinta 4(31) a) ULKOINEN TASO (External Level) Käyttäjän näkemys tietokannasta. Kuvaa tietokannasta sen osan, joka on relevantti yksittäiselle käyttäjälle Koostuu useista tietokannan ulkoisista näkemyksistä/näkymistä (views) Kullakin käyttäjällä on oma tuttu näkemyksensä todellisesta maailmasta Näkemys sisältää objekteja/käsitteitä (entities), attribuutteja/ominaisuuksia (attributes) ja objektien välisiä suhteita (relationships) Muiden käyttäjien näkemykset ovat myös tietokannassa, mutta käyttäjä ei välttämättä ole niistä edes tietoinen Esimerkkinä erilaisista näkymistä: Yksi käyttäjä saattaa nähdä päivämäärän muodossa vuosi-kuukausi-päivä Toinen saattaa nähdä muodossa päiväkuukausi-vuosi
HELIA Tiedonhallinta 5(31) b) KÄSITTEELLINEN TASO (Conceptual Level) Kokonaisvaltainen/yhteinen näkemys tietokannasta Kuvaa mitä tietoa talletetaan tietokannassa ja tiedon väliset suhteet Sisältää koko tietokannan loogisen rakenteen DBA:n näkökulmasta katsottuna Tämä on täydellinen näkemys organisaation tietovaatimuksista, EIKÄ ole kytketty tietokannan fyysiseen talletukseen Käsitteellinen taso esittää: Kaikki käsitteet (entities), niiden attribuutit ja suhteet Tiedon rajoitukset Semanttinen informaatio datasta Turvallisuus- ja eheysinformaatio
HELIA Tiedonhallinta 6(31) c) SISÄINEN TASO (Internal Level) Tietokoneessa olevan tietokannan fyysinen esitys. Kuvaa miten tieto talletetaan tietokannassa Kiinnittää huomiota optimaaliseen läpimenoaikaan ja muistitilan käyttöön Sisältää tietorakenteet ja tiedosto-organisaatiot On yhteistyössä käyttöjärjestelmän saantimenetelmien kanssa Sijoittaa datan muistilaitteille Rakentaa hakemistot Näyttää tiedon jne Sisäinen taso keskittyy mm. seuraavanlaisiin asioihin: Muistitilan allokointi tietokannan tiedolle ja indekseille Tietueiden kuvaus Tietueiden sijoitus Tiedon pakkaus ja salakirjoitustekniikat Sisäisen tason alla on fyysinen taso Toimii käyttöjärjestelmän valvonnassa ja DBMS:n ohjauksessa DBMS:n ja käyttöjärjestelmän toiminnot fyysisellä tasolla eivät ole selkeäjakoisia ja ne vaihtelevat systeemeittäin
HELIA Tiedonhallinta 7(31) ESIM. ERI TASOJEN EROT ULKOINEN TASO Ulkonen näkemys 1 Staff_No FName LName Age Salary Ulkoinen näkemys 2 Staff_No LName Branch_No KÄSITTEELLINEN TASO Staff_No FName LName DateOfBirth Salary Branch_No SISÄINEN TASO struct STAFF { int Staff_No; char Fname[15]; char Lname[15]; struct date DateOfBirth; float Salary; int Branch_No; }; index Staff_No; index Branch_No; // hakemistojen määrittely Harjoitus: Mikä on tilauksentekijän ja varaston näkemykset tuotteesta. Kuvaa tuotteesta kaikki tasot.
HELIA Tiedonhallinta 8(31) TIEDON RIIPPUMATTOMUUS (Data Independence) Kolmitasoisen arkkitehtuurin päätavoite on saavuttaa tiedon riippumattomuus Alempien tasojen muutokset eivät vaikuta ylempiin tasoihin Erotetaan kahdenlaista tiedon riippumattomuutta: Looginen Käsitteellisen tason muutokset eivät vaikuta ulkoiseen tason näkemyksiin Sovellusohjelmia ei tarvitse kirjoittaa uudestaan Fyysinen Muutokset sisäisen tason mallissa (kuten eri tiedosto-organisaatio, uusi muistilaite) eivät vaikuta käsittetason malliin tai ulkoisen tason näkemyksiin
HELIA Tiedonhallinta 9(31) Tiedon riippumattomuus ja ANSI-SPARC-arkkitehtuuri: ulkoinen malli ulkoinen malli ulkoinen malli ulkoinen/käsitteellinen kartoitus looginen tietoriippumattomuus käsitteellinen/sisäinen kartoitus käsitemalli sisäinen malli fyysinen tietoriippumattomuus
HELIA Tiedonhallinta 10(31) ΙΙ TIETOKANTAKIELET (Database Languages) DDL (Data definition Language) DML (Data Manipulation Language) Edellisiä kutsutaan nimellä ALIKIELET (SUBLANGUAGES) Eivät anna samoja mahdollisuuksia kuin korkean tason ohjelmointikielet Monissa tietokantajärjestelmissä on mahdollisuus upottaa alikieliä korkean tason ohjelmointikieliin (esim. COBOL, Fortran, Pascal...) Näissä tapauksissa korkean tason kieltä pidetään isäntäkielenä (Host Language) Myös ei-upotettu ratkaisu on mahdollinen
HELIA Tiedonhallinta 11(31) TIETOKANNAN MÄÄRITYSKIELI, DDL (The Data Definition Language) Kuvaava kieli, jonka avulla DBA tai käyttäjä kuvaa ja nimeää tiedot jotka tarvitaan sovelluksessa ja näiden tietojen väliset suhteet DDL-määritysten käännös (Compilation) koostuu tauluista, jotka talletetaan tietohakemistoon (Data Dictionary) Tietohakemisto yhdistää metadatan (tietokannan objektien kuvaukset)
HELIA Tiedonhallinta 12(31) TIEDON MUOKKAUSKIELI, DML (The Data Manipulation Language = DML) Kieli, joka sisältää joukon perustoimintoja, jotka tukevat tietokannassa pidettävän tiedon muokkausoperaatioita Tiedon muokkaustoiminnot sisältävät tavallisesti seuraavaa: Uuden tiedon lisääminen tietokantaan Tietokannassa olevan tiedon muokkaus Tietokannan tiedon esille saanti Tietokannassa olevan tiedon poistaminen Erotetaan kaksi tyyppiä DML:ä: Proseduraalinen Tietueita käsitellään yksilöllisesti Määrittää, miten tietoa muokataan Ei-proseduraalinen Tietueita käsitellään joukkona Määrittää, mitä tietoa tarvitaan
HELIA Tiedonhallinta 13(31) 4GL (Fourth-Generation Language) Lyhenteellä 4GL tarkoitetaan Neljännen sukupolven kieltä Yksimielisyyttä termin sisällöstä ei ole Tähän joukkoon kuuluu mm. seuraavaa: Lomakkeen kehittimet (Forms Generators) Raporttigeneraattorit (Report Generators) Grafiikkageneraattorit (Graphics Generators) Sovelluskehittimet (Application Generators)
HELIA Tiedonhallinta 14(31) ΙΙΙ TIETOMALLIT JA KÄSITTEELLINEN MALLITTAMINEN (Data Models and Conceptual Modelling) Tietomalli (Data Model): Integroitu joukko organisaation tietoa ja tietojenvälisiä suhteita kuvaavia käsitteitä Tietomalli koostuu kolmesta komponentista: Rakenteellinen osa, jossa ovat säännöt jonka mukaan tietokanta rakennetaan Manipuloiva osa, jossa määritellään tiedolle hyväksyttävät operaatiot Eheyssäännöt Tietomallin tarkoitus on esittää data ja tehdä siitä ymmärrettävä Edellä kuvattuun ANSI-SPARC -arkkitehtuuriin viitaten voidaan erottaa kolme tietomallia: Ulkoinen tietomalli (external data model), jossa on organisaation kunkin käyttäjän näkemys Käsitteellinen tietomalli (conceptual data model), joka esittää loogisen tai kokonaisvaltaisen näkemyksen, on DBMS:stä riippumaton Sisäinen tietomalli (internal data model), joka esittää käsitteellisen rakenteen (Schema) sellaisella tavalla, että DBMS sen ymmärtää
HELIA Tiedonhallinta 15(31) Kirjallisuudessa esitetyt tietomallit voidaan luokitella seuraaviin ryhmiin: 1. OBJEKTIPERUSTEISET (OBJECT-BASED) Kuvaa dataa käsitteellisellä ja ulkoisella tasolla Käyttää käsitteitä Tieto, käsite, objekti (Entity) esim. henkilö, yritys Attribuutti (Attribute) esim. henkilön nimi Sude (Relationship) esim. henkilön ja yrityksen välinen suhde 2. TIETUEPERUSTEISET (RECORD-BASED) Kuvaa dataa käsitteellisellä ja ulkoisella tasolla Näitä erotetaan seuraavat: Relationaalinen tietomalli (Relational Data Model) Verkkotietomalli (Network Data Model) Hierarkinen tietomalli (Hierarchical Data Model) 3. FYYSISET (PHYSICAL) Kuvaa dataa sisäisellä tasolla eli sitä, kuinka data varastoidaan tietokoneessa Kuvattavia ovat mm.: Tietuerakenteet Tietuejärjestykset Saantipolut
HELIA Tiedonhallinta 16(31) KÄSITTEELLINEN MALLINTAMINEN (Conceptual Modelling) Käsitteellinen kaava on keskeisintä tietokantaajattelussa Käsitteellinen tietomalli kuvaa informaation käytön yrityksessä Se on riippumaton yksityiskohdista, DBMS:stä, sovellusohjelmista, ohjelmointikielistä tai fyysisistä asioista Käsitteellisestä tietomallista käytetään myös nimitystä looginen malli
HELIA Tiedonhallinta 17(31) ΙV DBMS:N TEHTÄVÄT (Functions of a DBMS) Codd luettelee täysimittaisen DBMS:n omaavan kahdeksan toimintoa: 1. Tiedon varastointi, saanti ja päivitys (Data storage, retrieval and update) 2. Käyttäjän saantioikeudet omaava katalogi (A useraccessible catalog) 3. Tapahtumatuki (Transaction support) 4. Kontrollipalvelut (Concurrency control services) monikäyttäjäympäristössä 5. Pelastamispalvelut (Recovery Services) 6. Käyttöoikeuspalvelut (Authorization services) 7. Kommunikointituki (Support for data communication) 8. Eheyspalvelut (Integrity services) 9. Tiedon riippumuutta edistävät palvelut (Services to promote data independence) 10. Hyötykäyttö-palvelut (Utility services)
HELIA Tiedonhallinta 18(31) V DBMS:N KOMPONENTIT (Components of a DBMS) ohjelmoijat käyttäjät kyselyt DBA DBMS ohjelman objektikoodi tietokannan valvoja (database manager) hakemiston valvoja sovellusohjelmat tietokantakuvaus DMLesikääntäjä kyselyprosessori DDLkääntäjä saantimetodit tiedoston valvoja (File manager) järjestelmän puskurit tietokanta & tietohakemisto
HELIA Tiedonhallinta 19(31) Tietokannan valvojan (Database Manager) tehtävät: ohjelman objektikoodi pelastuksenhallinta kyselyprosessori hakemiston valvoja Tietokannan valvoja eheyden tarkastaja kyselyn optimoija ajoitin saantimetodit käyttöoikeuskontrolli komentoprosessori tapahtumanhallinta Tiedon valvoja puskurinhallinta tiedoston valvoja järjestelmän puskurit
HELIA Tiedonhallinta 20(31) VΙ tietokanta & tietohakemisto MONEN KÄYTTÄJÄN DBMS:N ARKKITEHTUURIT (Multi-User DBMS Architectures) arkkitehtuureja, joita käytetään toteutettaessa monen käyttäjän tietokantajärjestelmiä: 1. TELEPROSESSOINTI (TELEPROCESSING) Yksi keskuskone, CPU Joukko terminaaleja Kaikki toiminto tapahtuu saman fyysisen tietokoneen piirissä Käyttäjäterminaalit (päätteet) ovat pääosin tyhmiä Terminaalit lähettävät sanomia käyttöjärjestelmän kommunikointikontrollin (Communication Control) kautta käyttäjäsovelluksille, jotka puolestaan käyttävät DBMS:n palveluja Vastaavasti sanomat hoidetaan takaisin käyttäjäterminaaleille Viime vuosien kehitys on johtanut käsitteeseen Downsizing (keskustietokoneet korvataan mikrotietokoneilla ja näiden välisillä verkoilla)
HELIA Tiedonhallinta 21(31) ==> File-server ja Client-server
HELIA Tiedonhallinta 22(31) 2. TIEDOSTOPALVELIN (FILE-SERVER) työasema 2 Prosessointi jakautunut verkkoon, tyypillisesti LAN työasema 1 työasema 3 Tiedostopalvelin pitää sovellusohjelmien ja DBMS:n edellyttämät tiedostot Fileserver Tietokanta Sovellukset ja DBMS pyörivät jokaisessa työasemassa Kunkin työaseman DBMS lähettää kaikkeen tarvitsemaansa dataan liittyviä, levylle tallennettuja tietoja koskevia pyyntöjä tiedostopalvelimelle ==>Tässä saattaa tietoliikenne muodostua pullonkaulaksi Tiedostopalvelinratkaisulla ovat seuraavat heikkoudet: Paljon verkkoliikennettä Kullakin työasemalla oltava täydellinen kopio järjestelmästä DBMS Samanaikaisuuden, pelastaminen ja eheyden kontrollointi ovat monimutkaisempia, koska usea DBMS tekee hakuja jaettuihin tiedostoihin
HELIA Tiedonhallinta 23(31) 3. CLIENT-SERVER Client 2 Client1 Client 3 Palvelin (server), joka sisältää DBMS:n Tietokanta Client pyytää resursseja Palvelin tuottaa/tarjoaa resursseja Orjan ja Palvelimen ei tarvitse olla samassa koneessa vaan käytännössä usein ovat verkon osia
HELIA Tiedonhallinta 24(31) Client-server topologiaa:
HELIA Tiedonhallinta 25(31) CLIENT-SERVER -ARKKITEHTUURIN ETUJA Mahdollistaa laajan pääsyn oleviin tietokantoihin Suuri suorituskyky Eri koneissa voi olla samanaikaista toimintaa HW-kustannukset saattavat muodostua alhaiseksi Vain palvelin (server) vaatii enemmän muistia ja prosessointivoimaa Kommunikointikustannukset alhaiset Sovellukset tekevät osan operaatioista clientissä ja lähettävät vain kyselyjä tietokantaan verkon kautta ==> Tiedonsiirron määrä on näin vähäisempää Sopii luonnostaan avoimeen systeemiarkkitehtuuriin
HELIA Tiedonhallinta 26(31) CLIENT-SERVER -TOIMINNOT CLIENT SERVER Valvoo käyttäjäliittymää Prosessoi tietokantaa Hoitaa käyttäjän syntaksin Huolehtii käyttöoikeuksista Prosessoi sovellusta Valvoo eheyttä Generoi tietokantakyselyt ja välittää ne palvelimelle Suorittaa kysely/päivitysprosessit ja välittää vastaukset clientille Hoitaa vastauksen takaisin käyttäjälle Ylläpitää tietohakemistoa (Data Dictionary) Huolehtii kilpailevista tietokantakyselyistä Huolehtii pelastusoperaatioista
HELIA Tiedonhallinta 27(31) VΙΙ TIETOHAKEMISTOT (Data Dictionaries) DBMS:ssä on tietohakemisto Tietohakemisto: Kuvaa tietokannan tiedot, ts. metadatan, ts. tietoa tiedosta Esim. 1 Käyttöoikeuskontrolli tarkastaa tietohakemistosta käyttäjän oikeudet hänen tekemäänsä toimintoon Å Tätä varten hakemistossa talletetaan mm.: Järjestelmää DBMS käyttämään oikeutettujen henkilöiden nimet Tietokannassa olevien tietoyksiköiden nimet Tietoyksiköt joihin käyttäjällä on oikeus ja oikeuden tyyppi, esim. lisäys, päivitys, poisto tai luku Esim. 2 Eheyden tarkastus Å Tässä tarvitaan hakemistossa seuraavia tietoja: Tietokannassa olevien tietoyksikköjen nimet Tietoyksikköjen tyypit ja koot Kunkin tietoyksikön rajoitukset Tietohakemisto voi olla Aktiivi Passiivi ==> tietokannan eheyskontrolli käyttäjille Standalone Data Dictionary sisältää oman DBMS:n
HELIA Tiedonhallinta 28(31) INFORMATION RESOURCE DICTIONARY SYSTEM (IRDS) väline, jonka avulla voidaan hallita ja dokumentoida organisaation eri tietojen lähteitä huolehtii : tietohakemiston taulukoiden määrittely taulukoiden käsittelytoiminnot Esim. IRDS:ään mukautettu DB2:n tietohakemisto voidaan siirtää IRDS:ään mukautettuun INGRES:n tietohakemistoon tai sitä voidaan käyttää INGRES- sovelluksesta IRDS:n kautta standardoitu v. 1990, 1993, ISO kolme päämäärää: 1. tiedon laajennettavuus 2. tiedon eheys 3. tieton kontrolloitu käyttö
HELIA Tiedonhallinta 29(31) IRDS:n palveluiden käyttöliittymät Panel Interface sisältää näyttöjä, joiden avulla voidaan käyttää palveluita Data Dictionary, DD esim. tietohakemiston muuttaminen Command Language Interface (CLI) sisältää joukon komentoja, joiden avulla voidaan suorittaa tietohakemistoon liittyviä toimintoja Export/import Interface generoi tiedoston, jota voidaan liikuttaa IRDS:ään mukautetussa järjestelmässä IRDS Services Interfase SQLtietokanta Ei-SQLtietokanta Käyttäjän sovellusohjelmat DD
HELIA Tiedonhallinta 30(31) YHTEENVETO Ι Komitasoinen ANSI SPARC arkitehtuuri ULKOINEN TASO eri käyttäjien näkemykset tietokannasta LOOGINEN TIEDON RIIPPUMATTOMUUS KÄSITTEELINEN TASO kokonaiskuvaus tietokannasta FYYSINEN TIEDON RIIPPUMATTOMUUS SISÄINEN TASO tietokoneen näkemys tietokannasta ΙΙ Tietokanta kielet DATA DEFINITION LANGUAGE (DDL) DATA MANIPULATION LANGUAGE (DML) ΙΙΙ Tietomallit OBJEKTIPERUSTEISET TIETOMALLIT TIETUEPERUSTEISET TIETOMALLIT - relationaalinen tietomalli - verkkotietomalli - hierarkinen tietomalli
HELIA Tiedonhallinta 31(31) Käsitteellinen mallittaminen FYYSISET TIETOMALLIT KÄSITEMALLI ΙV DBMS:n toiminnot V DBMS:n komponentit VΙ Monen käyttäjän DBMS-arkitehtuurit TELEPROSESSOINTI TIEDOSTOPALVELIN CLIENT SERVER VΙΙ Tietohakemistot TIETOKANNAN KUVAUS mm. käyttäjäoikeudet ja eheysmääritykset IRDS-JÄRJESTELMÄ huolehtii organisaation tiedon lähteistä