1 / 228

Tietokannat

Tietokannat. Kevät 2014. Kurssin järjestelyt. Luennot, Erja Mustonen-Ollila Harjoitukset, Antti Herala Harjoitustyön ohjaus, Antti Herala SQLViope verkkokurssi, Erja Mustonen-Ollila Luentomateriaali, (original Lasse Lehtimäki) Kurssimoniste, Erja Mustonen-Ollila.

Télécharger la présentation

Tietokannat

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Tietokannat Kevät 2014

  2. Kurssin järjestelyt • Luennot, Erja Mustonen-Ollila • Harjoitukset, Antti Herala • Harjoitustyön ohjaus, Antti Herala • SQLViope verkkokurssi, Erja Mustonen-Ollila • Luentomateriaali, (original Lasse Lehtimäki) • Kurssimoniste, Erja Mustonen-Ollila

  3. Aikataulu 3. ja 4. periodilla • Johdatus tiedonhallintajärjestelmiin ja tietokantojen suunnitteluun • Tietokannan suunnittelu jatkuu • SQL –kielen perusteita • Tietokannan suunnittelun vaiheita • Vaativampia SQL –komentoja

  4. Aikataulu 3. ja 4. periodilla • SQL ja QBE (Query By Example) • Tietokannan suojaaminen • Tapahtumakäsittely • Varmuuskopiointi ja palautus, hakujen käsittely • Tietokantojen hajauttaminen • Katsaus oliotietokantoihin • Tietojen varastointi

  5. Kurssin kirjallisuus • Luennot • Kurssimoniste saatavana Nopasta • Kirjoja • Connolly, Thomas and Begg, Carolyn : Database Systems, A Practical Approach to Design, Implementation, and Management, 2nd Edition • Date, C.J. : An Introduction to Database Systems, 7th Edition • Elmasri, R. and Navathe, S.B. : Fundamentals of Database Systems, 3rd Edition

  6. Tietokantojen historiaa • Juuret juontuvat 1950-luvun lopulle ja 1960-luvun alkuun. • Ensimmäiset "tietokannat" olivat yksinkertaisia tiedostojärjestelmiä, joista puuttui keskitetty hallinta. • Ensimmäiset varsinaiset tietokannat olivat hierarkisia tietokantasysteemejä, kuten esim. IMS ja System 2000. • 1960 -luvun lopulla ja 1970 -luvun alussa tulivat verkkotietokannat, kuten esim. Codasyl. • Näissä oli vielä paljon puutteita, esim. tiedon etsiminen vaati monimutkaisten puumaisten rakenteiden läpikäyntiä. • Suuri mullistus oli E.F. Codd:in julkistama relaatiomalli 1972. • Käyttäjän kannalta relaatiomallin edut ovat sen yksinkertaisuus ja helppokäyttöisyys. • Relaatiotietokannoissa on käytössä hakukieli, jolla ilmaistaan mitä tietoa halutaan, eikä miten tiedon löytää. • 1970-luvun jälkeen on syntynyt monia kaupallisia relaatiotietokantoja, esim. Oracle, Sybase ja DB2.

  7. Historiasta tähän päivään • Viime vuosikymmeninä on perinteisten kaupallisten sovellusalueiden lisäksi tietokantojen hallintajärjestelmät vallanneet alaa uusilta sovellusalueilta, kuten esim. • CAD/CAM • CASE • Paikkatietojärjestelmät (GIS, Geographical Information Systems) • Lääketieteen informaatiojärjestelmät • Multimedia • Näille sovelluksille tyypillisiä piirteitä ovat esim. tiedon monimutkaisuus ja monimuotoisuus, tiedon suuri määrä sekä tietokantaoperaatioiden monimuotoisuus. • Sisältävät kuvaa, ääntä ja tekstimuotoista tietoa. • Näille uusille sovellusalueille uusia tietomalleja ovat semanttiset tietomallit ja oliotietokannat. • Relaatiotietokantojen jälkeen on alkanut kiinnostus siirtyä seuraaviin: • Oliotietokannat • Älykkäät tietokannat

  8. Johdatus tiedonhallintaan • Esimerkki yksinkertaisesta tietokannasta

  9. Yksinkertainen tietokanta • Yksinkertaisimmillaan tietokanta on automatisoitu kortisto. • Tietokantaan kohdennettavat toiminnot ovat: • Uuden tietueen lisäys • INSERT INTO VARASTO (ID, MERKKI, MALLI, KORI, MOOTTORI, VM, ML, HINTA) VALUES (31, "Volvo", "740 GL 2.3 A", "S4", 2.3, 1990, 287000, 79500); • Tietueiden haku tietokannasta • SELECT MERKKI, MALLI, VM, HINTA FROM VARASTO WHERE VM < 1993 AND HINTA < 100000; • Tietueiden päivitys • UPDATE VARASTO SET MITTARILUKEMA = 288000, HINTA = 78500 WHERE ID = 31; • Tietueiden poisto • DELETE FROM VARASTOWHERE ID = 31;

  10. Mikä on tiedonhallintajärjestelmä? • Tietokanta on paikka, johon talletetaan käyttökelpoista tietoa. • Tiedonhallintajärjestelmä (THJ, DBMS, Database Management System) on joukko ohjelmia, jotka mahdollistavat tietokannan keskitetyn luonnin ja ylläpidon. • Tietokannan määrittelyprosessissa määritellään, minkä tyyppistä tietoa tietokantaan talletetaan. • Tietokannan rakentamisprosessissa tehdään varsinainen tietokanta. • Tietokannan käsittelyprosessissa tietoa päivitetään ja haetaan. • Esimerkki edellä autoliikkeestä, jossa erilaisia vaihtoautoja. Operaatiot, joita tarvitaan tietokantaan: • uusien tiedostojen lisäys • uusien automerkkien lisäys • olemassa olevan tiedon päivitys: muutos, lisäys ja poisto • erilaisten kriteerien mukaisen tiedon haku tiedostosta

  11. Mitä tiedonhallintajärjestelmässä on? • Tiedonhallintajärjestelmä voi olla yksi- tai monikäyttöjärjestelmä. • Tieto tietokannassa voi olla sekä integroitua että jaettua. • Integroitu tieto: tietokanta koostuu erillisistä tiedostoista, joissa päällekkäisyys (redundancy) on osittain tai kokonaan eliminoitu. • Jaettu tieto: usea käyttäjä voi käyttää samoja tietoja eri tarkoituksiin, käyttö voi olla samanaikaista (concurrency). • Käyttäjät näkevät tietokannan eri tavoin käyttötarpeesta riippuen (näkymät, views). • Tiedonhallintajärjestelmä koostuu: • tiedosta (integroitu, jaettu) • ohjelmista (DBMS) • raudasta (levyt) • käyttäjistä (sovellusohjelmoija, loppukäyttäjä, tietokannan hoitaja)

  12. Kuka tarvitsee tiedonhallintaa? • Tyypillisiä käyttäjiä • Tuotantoyritys, pankki, sairaala, yliopisto ja valtion virasto • Tyypillistä tietoa: • Tuotteisiin liittyvä tieto, tilitiedot, potilastiedot, opiskelijatiedot ja suunnittelua tukevat tiedot • Tiedon muoto ja erilaiset tietotyypit: • "Perinteinen" tieto on merkkityyppistä tietoa. • Se koostuu perustietotyypeistä, kuten luvuista ja merkeistä. • Uusia sovellusalueita, jotka sisältävät lisäksi esim. • kuvaa • ääntä • Uusia vaatimuksia tietomallille ja tiedonhallintajärjestelmälle

  13. Joitakin käsitteitä • Käsitemalli (entity-relationship model) on perustana tiedon käsitteistämisessä. • Käyttötieto koostuu olioista (entities) ja niiden välisistä suhteista (ralationships). • Olioita ovat esim. tuottajat ja työntekijät yrityksessä. • Olioiden ominaisuuksia ovat esim. työntekijän nimi ja ikä. • Käsitteiden väliset suhteita ovat: yksinkertaiset, binääriset ja ternääriset suhteet.

  14. Tietokantasysteemin etuja • Tiedon keskitetty hallinta. • Tietojen päällekkäisyys vähenee tai on hallittua. • Tiedon ristiriitaisuus (inconsistency) voidaan välttää. • Useampi käyttäjä voi käyttää tietoa, myös samanaikaisesti. • Standardointi on helpompaa. • Tietojen käyttöoikeudet voidaan varmistaa. • Tietojen luotettavuus ja oikeellisuus on parempi. • Järjestelmää rakennettaessa voidaan ottaa eri käyttötarpeet huomioon. • Uusien sovellusten käyttöönotto helpompaa. • Tarjoaa tiedon varmistukseen ja toipumiseen mekanismit.

  15. Tietokantojen haittoja • Kalleus lyhyellä tähtäimellä • THJ:t melko raskaita ja joskus jopa monimutkaisia • Toiminnan riippuvuus tietokannasta (esim. lehtiyhtiö)

  16. Käytä tiedostoratkaisua seuraavissa • Tietokanta ja sovellukset yksinkertaisia, hyvin määriteltyjä ja melko muuttumattomia. • Esimerkiksi hyvin yksinkertainen kortisto, jossa tietokantaan tulisi vain yksi taulu. • Aikavaatimus on suuri. • Järjestelmä yksinkertainen, jolloin tietokannan rakentaminen vie enemmän aikaa kuin tiedostoratkaisu. • Tietoon ei tarvita useamman käyttäjän pääsyä. • Ei tarvita monen käyttäjän ympäristöä. • Tietojen oltava kuitenkin yksinkertaisia, jotka eivät sisällä monimutkaisia relaatioita.

  17. Tiedonhallintajärjestelmän arkkitehtuuri • Suosituin tapa kuvata THJ-arkkitehtuuria on ns. ANSI/SPARC -ehdotus standardiksi (vuonna 1978). • ANSI = American National Standards Institute • SPARC = Standards Planning and Requirements Committee • Arkkitehtuuri jakautuu kolmeen tasoon: • Sisäinen taso (Internal level) • Käsitteellinen taso (Conceptual level) • Ulkoinen taso (External level)

  18. Ulkoinen taso • Yksittäisen käyttäjän taso • Sovellusohjelmoija: • käytössä kieli, jossa osana on ns. Tietoalikieli (Data sublanguage, DSL) • tietokantaan kohdistuvat käskyt • Data definition language (DDL) tiedon määrittelyyn ja kuvaukseen • Data manipulation language (DML) tiedon käsittelyyn • Loppukäyttäjä: • käyttöliittymä (valikot, kaavakkeet yms.)

  19. Käsitetaso • Kaikille käyttäjille yhteinen taso • Erillään fyysisestä talletuksesta • Erillään ulkoisesta tasosta

  20. Sisäinen taso • Kuvaa todellisia talletettuja tietueita • Kuvaa myös indeksit (B-puut, hajautus) • Ei kuitenkaan fyysinen taso, joka kuvaa sivut, lohkot, sylinterit, urat ja sektorit

  21. Kuvaukset tasojen välillä • Käsitetaso  Sisäinen taso • Esittää käsitetason ja sisäisen tason tietueiden vastaavuudet • Kertoo, kuinka käsitetason tietueet talletetaan sisäisellä tasolla • Jos sisäinen taso muuttuu, tulee kuvausta muuttaa • Ulkoinen taso  Käsitetaso • Eri käyttäjillä näkemyksiä -> erilaisia kuvauksia tasojen välillä • Tietojen esitystapojen muunnokset

  22. Päättää tietokannan sisällöstä Päättää talletustavasta ja käsittelystrategiasta Valtuuttaa käyttäjät Määrittää turvallisuusasiat Toipuminen ja palautus Suorituskyvyn tarkkailu ja tarvittavien muutosten tekeminen Työkaluja: tietokannan luonti dump/restore tiedon uudelleenjärjestely tietokannassa tilastolliset rutiinit esim. tiedostojen koko analyysirutiinit Tietohakemisto (Data Dictionary) "Data about data", "metadata" sisältää talletettuna kaaviot ja kuvaukset tiedon ohjelmista, käyttäjistä DBA (Database Administrator, tietokannan hoitaja)

  23. Johdatus tietokantoihin • Käyttäjän ei tarvitse tietää tiedon fyysisiä talletusrakenteita, vaan hänellä on ulkoinen näkemys (external view) talletettuun tietoon. • THJ:n on tuettava tätä näkemystä sovelluksesta toiseen (ns. tietoriippumattomuus, data independence) Tietomalleja • Hierarkinen malli • Verkkomalli • Relaatiomalli • Semattiset tietomallit: • ER-malli • Oliopohjainen tietomalli

  24. Hierarkinen tietomalli • Organisoi tiedon puurakenteeksi. • Tietokanta muodostuu tietueista, jotka ovat erillisten puiden muodostamassa metsässä. • Tietueiden väliset suhteet (1:N) kuvataan linkkien välillä. • Kullakin tietueella on täsmälleen yksi isätietue. • Seuraavassa esimerkki käsitekaaviosta: Asiakas -tunnus -nimi -osoite Osto -asiakas -tuote -määrä Tuote -numero -nimi -hinta

  25. Hierarkinen esitystapa edellisestä

  26. Tyypillisiä kyselyjä (query) • Q1: Etsi niiden asiakkaiden nimet, jotka ostavat tuotetta 08 • DO UNTIL ei enää asiakkaita tuotteella; ota seuraava asiakas tälle osalle; tulosta asiakasnumero;END; • Q2: Etsi niiden tuotteiden numerot, joita ostaa asiakas nimeltä Miettinen • DO UNTIL ei enää tuotteita; ota seuraava tuote; ota seuraava asiakas tämän tuotteen alla, jonka nimi on Miettinen; IF löytyy THEN tulosta tuote;END; • Huom! Algoritmien epäsymmetria.

  27. Verkkomalli • Kuten hierarkisessa mallissa, tietueet ovat solmuja ja niiden välisiä kytkentöjä. • Esimerkissä kolmenlaisia tietueita: asiakas, tuote ja yhdistäjät näiden välillä. • Yhdistäjät ketjuissa (silmukoissa). • Kaikki tiettyyn asiakkaaseen liittyvät tuotteet ovat silmukassa, joka alkaa asiakkaalta ja loppuu samaan asiakkaaseen.

  28. Tyypillisiä kyselyjä (query) • Q1: Ota seuraava tuote, jonka numero on 01; • DO UNTIL ei enää yhdistäjiä tämän tuotteen alla; • ota seuraava yhdistäjä tämän tuotteen alla; • ota asiakas tämän yhdistäjän yllä; • tulosta asiakas; • END; • Q2: Ota seuraava asiakas, jonka nimi on Miettinen; • DO UNTIL ei enää yhdistäjiä tämän asiakkaan alla; • ota seuraava yhdistäjä tämän asiakkaan alla; • ota tuote tämän yhdistäjän yllä; • tulosta tuote; • END; • Huom! Algoritmit ovat symmetriset.

  29. Relaatiomalli • Relaatiomalli koostuu vain tauluista eli relaatioista. • Tauluissa on rivejä (tuple) ja sarakkeita eli attribuutteja (ominaisuuksia). • Relaatio Asiakas

  30. Relaatio Tuote Relaatio Osto Relaatiomalli jatkuu

  31. Tyypillisiä kyselyjä (query) • Q1: Ota seuraava tuote, jonka numero on 01; • DO UNTIL ei enää ostoja ota seuraava osto, missä tuotteen numero on 01; tulosta asiakas taulusta tätä ostoa vastaava asiakasnimi;END • Q2: Etsi niiden tuotteiden numerot, joita ostaa asiakas nimeltä Miettinen • DO UNTIL ei enää ostoja ota seuraava osto, missä asiakas on Miettinen; tulosta tuote taulusta tätä ostoa vastaava tuotenimi; END;

  32. Sisäinen taso ja talletusrakenteet • Sisäisellä tasolla kuvataan, kuinka tieto on todellisuudessa tallennettu. • Yleensä tieto tallennetaan levylle, josta hakuaika suurempi kuin keskusmuistista. • Tavoitteena on levyhakujen lukumäärän minimointi. • Tiedon talletustapa vaikuttaa hakujen määrään. • Fyysisen tietokannan suunnittelu • Tiedon järjestystä levyllä kutsutaan tiedon fyysiseksi talletusrakenteeksi. • Talletusrakenteen valinta vaatii tietoa: • tietokannan käyttötavoista • sovelluksista • käytön määrästä

  33. Tietokantahaun periaate • THJ pyytää tiedostonhallintajärjestelmää hakemaan tietueen. • Tiedostonhallintajärjestelmä selvittää, millä sivulla haluttu tietue on. • Tiedostonhallintajärjestelmä pyytää ko. sivun levynhallintajärjestelmältä. • Sivu on I/O yksikkö - tiedon määrä, joka siirretään levyn ja muistin välillä yhdellä levyhaulla. Tyypillinen sivun koko on 1024, 2048 tai 4096 tavua. • Levynhallintajärjestelmä määrittää sivun sijainnin levyllä ja tekee tarvittavat I/O toiminnot.

  34. Levynhallintajärjestelmän tehtäviä • Osa käyttöjärjestelmää (Basic I/O System). • Tuntee fyysiset levyosoitteet (sylinteri, ura, sektori). • Levynhallintajärjestelmä ohjaa tiedostonhallintajärjestelmää, joka näkee levyn joukkona sivuja. • Jokaiselle joukolle sivuja on oma tunniste (page set ID). • Jokaisella sivulla on sivunumero. • Levynhallintajärjestelmä pitää yllä kuvausta: sivunumero  fyysinen levyosoite • Perusoperaatiot sivuille: • Hae sivu p joukosta s • Päivitä sivu p joukossa s • Lisää uusi sivu p joukkoon s • Poista sivu p joukosta s

  35. Tiedostonhallintajärjestelmän tehtäviä • Kuuluu joko käyttöjärjestelmään tai tiedonhallintajärjestelmään. • Tiedostonhallintajärjestelmän käyttäjä näkee levyn joukkona tiedostoja. • Tiedostoilla on tunniste (File ID), tietueilla numero (Record ID). • Tuntee tiedostojen ja tietueiden sivujoukot ja sivut. • Perusoperaatioita ovat: • Hae talletettu tietue r talletetusta tiedostosta f. • Päivitä talletettu tietue r talletetusta tiedostosta f. • Lisää tietue r tiedostoon f ja palauta uusi ID. • Poista tietue r talletetusta tiedostosta f. • Luo uusi tiedosto f. • Tuhoa tiedosto f.

  36. Relaatiomalli • Relaatiomalliin liittyviä termejä:

  37. Relaatiotietokannat • Tietokanta on loogisesti yhtenäinen kokoelma tietoa, jolla on jotain sille ominaisesti kuuluva tarkoitus. • Tietokanta on suunniteltu, rakennettu ja täytetty tiedoilla tiettyä tarkoitusta varten. • Käyttäjäryhmät ovat tiedossa, samoin sovellukset. • Esittää osaa reaalimaailmasta. • Tietokannalla on tietomalli, joka esittää miten tieto näkyy käyttäjälle (ANSI/SPARC arkkitehtuurin ulkoinen taso). • Relaatiotietokanta on tietokanta, joka näkyy käyttäjälle kokoelmana tauluja (ja ainoastaan tauluja). • Codd esitti relaatiomallin 1970 –luvulla.

  38. Relaatioiden välinen yhteys, tiedonkäsittely • Relaatio-operaatiot kohdistuvat tauluihin. • Relaatioalgebran operaatioita ovat: yhdiste, leikkaus, erotus, tulo, valinta, projektio, liitos ja jako. • Relaatiokalkkyyli määrittelee formalismin, jonka mukaan operaatiot suoritetaan (perustuu predikaattilogiikkaan). • Tiedon käsittelykieliä (query languages), jotka toteuttavat ralaatioalgebran ja relaatiokalkkyylin, ovat esim. • SQL - Structured Query Language • QUEL – Ingres • QBE - Query By Example, IBM DB2 • QBF - Query By Form • Focus - 4 GL • OLE - On-Line-English

  39. Tiedon eheys • Eheys tarkoittaa tiedon ristiriidattomuutta ja oikeellisuutta. • Tavoitteena on estää tietokannan tietojen sellainen käsittely, joka johtaa ristiriitaisuuksiin tietokannan tietosisällössä. • Eheyssäännöt määritellään tietokannan skeemassa. • On olemassa neljänlaisia eheyssääntöjä, joista kolme ensimmäistä liittyy pääavaimeen ja viiteavaimeen: • Avaineheys: avainehdokkaiden tulee olla yksikäsitteisiä jokaiselle riville. • Käsitteellinen eheys: pääavaimen arvo ei saa olla NULL. • Yhteyseheys: viittauksen toisesta relaatiosta toiseen relaatioon täytyy olla viittaus olemassaolevaan tietoon. • Semanttiset eheyssäännöt, esim. työntekijän palkka ei saa olla suurempi kuin hänen esimiehensä palkka. • THJ ylläpitää eheyssääntöjä.

  40. Arvoalue (Domain) • Lähellä ohjelmointikielten tietotyyppejä. • Esim. Pascal -kielessä • type month = (1..12);var palkkakausi: month; • ‘month’ on arvoalue, jolle ominaisuus ‘palkkakausi’ ts. ‘palkkakausi’ on tyyppiä ‘month’. Atomiset ja yhdistetyt arvoalueet • Jos tietyn ominaisuuden arvoja ei voida järkevästi jakaa, niin arvo on atominen ja ko. attribuutin arvoalue on atominen. • Esim. tuottaja -esimerkissä tuottajan sukunimi on atominen. • Atomisten arvoalueiden karteesinen tulo • (D1 x D2 x D3 x D4 x … x Dn) on yhdistetty arvoalue. • Esim. Asiakas - Tuote –esimerkissä Asiakkaan nimi on atomisten alueiden etunimini ja sukunimi karteesinen tulo.

  41. Relaatio (Relation) • Relaatio koostuu otsikosta ja sisällöstä. • Otsikko koostuu joukosta ominaisuuksia (attribuutteja) A1, A2, … An, siten, että ne vastaavat alueita D1, D2, … Dn. • Sisällössä on joukko (monikkoja) rivejä, jotka koostuvat ominaisuus-arvo -pareista (A1:v1), i = 1,…,n, missä vi<Di. • Relaation R ominaisuuksia ovat: • Samaa vaakariviä ei esiinny useaan kertaan. • Jokaisella rivillä on yksikäsitteinen pääavain. • Monikkojen (vaakarivien) järjestyksellä ei ole väliä. • Haettaessa rivejä voidaan tulos järjestää halutun sarakkeen mukaisesti. • Kaikki ominaisuusarvot ovat atomisia, tätä kutsutaan 1. normaalimuodoksi. • Esimerkiksi etunimi ja sukunimi täytyy erottaa omiksi sarakkeikseen. • Relaation ominaisuuksilla ei ole järjestystä. • Tietojen tallennus ei voi perustua sarakejärjestykseen.

  42. Perusavain (Primary key) • Relaation perusavain on yksikäsitteinen tunniste kyseiselle relaatiolle. • Perusavain voi olla yhdiste useammasta relaation ominaisuudesta (kuitenkin harvinainen). • Perusavainehdokkaita voi olla useampia, mutta lopulta tehtävä valinta, mistä tehdään perusavain ja muut ehdokkaat ovat nk. toissijaisia avaimia.

  43. Määritelmä avainehdokkaille • Relaation R ominaisuus K on avainehdokas, jos se toteuttaa seuraavat ajasta riippumattomat vaatimukset: • Yksikäsitteisyys (Uniqueness) • Relaatiosta R ei löydy minään ajanhetkenä arvoa ominaisuudelle K. • Minimaalisuus (Minimality) • Jos ominaisuus K on useamman ominaisuuden yhdistelmä, niin mitään osaa ominaisuudesta K ei voida poistaa rikkomatta yksikäsitteisyyden periaatetta. • Perusavain tuottaa tavan viitata relaation riveihin. • Viittaus on tyypiltään assosiatiivinen ei osoitteellinen. • Ainoa varma tapa etsiä joku tietty rivi on etsiä sitä perusavaimen perusteella. • Kaikilla relaatioilla on vähintään yksi avainehdokas. • Perusavain on oleellinen relaatiotietokannan toimimiseksi.

  44. Avainhakuesimerkki • Haku pääavaimen mukaan: • select *from Pwhere P# = ‘P3’; • Tämä haku antaa tulokseksi enintään yhden rivin, kun taas haku • select *from Pwhere city = ‘Paris’; • antaa tulokseksi mahdollisesti useampia rivejä.

  45. Viiteavain (Vierasavain, Foreign key) • Viiteavaimella kuvataan viittauksia toisesta relaatiosta toiseen eli relaatiotietokannan taulujen välisiä yhteyksiä (yhden suhde yhteen, yhden suhde moneen ja monen suhde moneen). • Viiteavain on taulun R2 ominaisuus tai ominaisuusyhdistelmä, jonka arvot ovat samat kuin pääavaimella relaatiossa R1. • R1 ja R2 voivat olla yksi ja sama taulu.

  46. Skeema (Schema) • Relaatiotietokannan skeema S on joukko relaatioita S = {R1, R2,…,Rm} ja joukko eheyssääntöjä IC. • Relaatiotietokantajoukon ilmentymä DB joukosta S on joukko relaation ilmentymiä DB = {r1, r2,…rm} siten, että ri on joukon Rj ilmentymä ja että ri:t noudattavat eheyssääntöjä, jotka on määritelty joukossa IC. • Kaikki tuotteet eivät välttämättä tue skeemojen käyttöä.

  47. Näkymä (View) • Sovellusohjelmilla ja käyttäjillä on tarve nähdä relaatio hieman erilaisena kuin se todellisuudessa on. • He voivat katsella relaatiota johdettujen (laskettujen) relaatioiden, eräänlaisten virtuaalirelaatioiden kautta. • Joku käyttäjä ei voi nähdä joitakin relaation ominaisuuksia esim. työntekijän palkkaa. • Käyttäjän tarve tietoon on vain osa-alue koko organisaation tarpeesta. • Näkymä ei ole pysyvästi talletettu tietokantaan, vaan THJ tallentaa kuvauksen, jolla näkymä on tehty. • Näkymien päivitys normaalirelaatioiden päivityksen yhteydessä ja toisinpäin ? • Ongelmaksi muodostuu tilanne, jolloin ko. ominaisuutta ei kaikista näkymistä löydykään. • Kaksi mahdollisuutta ratkaista ongelma: • Hylätään operaatiot ei määritellyille ominaisuuksille. • Korvataan null-arvot: kaikki vertailut, joiden tuloksena null –arvo katsotaan epätosiksi.

  48. Coddin säännötCodd E.F., 1985 “12 sääntöä tietokannoille” • Relaatiotietokannan THJ:n tulee pystyä hallitsemaan tietokanta käyttämällä vain relaatio-ominaisuuksia. • Relaatiotietokannan kaikki tieto esitetään loogisella tasolla ja arvoina tauluissa. • Kaikki atomiset arvot löytyvät taulun nimen, perusavaimen ja sarakkeen perusteella. • NULL -arvot esitetään kuvaamaan puuttuvia tietoja systemaattisesti, riippumatta tietotyypistä. • Tietokannan kuvaus tehdään samaan tapaan kuin muunkin tiedon kuvaus. • Tiedon määrittely, luonti ja haku (DDL, DML) on muodostettava yksi DSL, joka käsittää seuraavat toimet: • tiedon määritys • näkymien määritys • tiedon käsittely • eheyden käsittely • valtuutukset • tiedonsiirron rajoitukset (pysyvä tieto vai ei)

  49. Coddin säännötCodd E.F., 1985 “12 sääntöä tietokannoille” • Näkymien päivitys oltava mahdollista (Näkymien päivitys) • Haun lisäksi tulee tauluun voida kohdistaa toiminnot lisäys, päivitys ja poisto (Korkean tason tiedon lisäys, muutos ja poisto). • Päätetyöskentely tai sovellusohjelmat eivät muutu vaikka tiedon fyysinen esitystapa muuttuu (Fyysisen tiedon riippumattomuus). • Päätetyöskentely tai sovellusohjelmat eivät muutu vaikka tiedonsäilyttäviä muutoksia tehdään tietokannan tauluihin (Loogisen tiedon riippumattomuus). • Eheysrajoitteet määritetään DSL:ssä ja talletetaan tietokannan tauluihin (Eheys-riippumattomuus). • Tiedon käsittely on samanlaista olipa tieto keskitetty tai hajautettu (Hajautus-riippumattomuus). • Alemman tason tiedonkäsittely ei voi kiertää ylemmän tason määrityksiä.

  50. Relaatioalgebra • Relaatiomallin tiedonkäsittely koostuu kahdesta osasta: • Joukko operaatioita • Sijoituslause • Määritetään joukko operaatioita, joilla tehdään uusi haluttu relaatio olemassa olevasta relaatiosta • Esim. C := A È B, jossa A, B ja C ovat relaatioita ja È on unioni. • Syöttötietona on yksi tai kaksi relaatiota (tai useampia), tuloksena on yksi uusi relaatio. • Relaatioalgebra koostuu joukosta joukko-opillisia operaatioita, jotka käsittelevät relaatioita. • Perinteiset joukko-opilliset relaatiot: • Yhdiste (union) • Leikkaus (intersect) • Erotus (difference, minus) • Tulo, karteesinen tulo (cartesian product)

More Related