relaatiomallin perusteet

30
Relaatiomallin p erusteet tMyn 1 Relaatiomallin perusteet Edgar Frank Coddin (1923-2003) esittämä relaatiomalli on tunnetuin ns. loogisen tason tietomalli. Se on vakiintunut yleisimmäksi tietomalliksi lähinnä yksinkertaisuutensa ja matemaattisen perustansa ansiosta. Vastaavan kielen, SQL, ensimmäinen standardi on hyväksytty 1986. Relaatiomallin pohjana on joukko-oppi ja matematiikan relaatiokäsite.

Upload: ivi

Post on 12-Jan-2016

40 views

Category:

Documents


0 download

DESCRIPTION

Relaatiomallin perusteet. Edgar Frank Coddin (1923-2003) esittämä relaatiomalli on tunnetuin ns. loogisen tason tietomalli. Se on vakiintunut yleisimmäksi tietomalliksi lähinnä yksinkertaisuutensa ja matemaattisen perustansa ansiosta. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Relaatiomallin perusteet

Relaatiomallin perusteet

tMyn 1

Relaatiomallin perusteet

• Edgar Frank Coddin (1923-2003) esittämä relaatiomalli on tunnetuin ns. loogisen tason tietomalli.

• Se on vakiintunut yleisimmäksi tietomalliksi lähinnä yksinkertaisuutensa ja matemaattisen perustansa ansiosta.

• Vastaavan kielen, SQL, ensimmäinen standardi on hyväksytty 1986.

• Relaatiomallin pohjana on joukko-oppi ja matematiikan relaatiokäsite.

Page 2: Relaatiomallin perusteet

Relaatiomallin perusteet

tMyn 2

• Näiden peruskäsitteiden pohjalta on määritelty operaatiot tietokannan käsittelyyn sekä kehitetty teorioita tietokannan suunnitteluun.

• Relaatiomalli määrittelee tietokannan rakenteen, käsittelyn sekä rakennetta ja käsittelyä säätelevät rajoitukset.

Page 3: Relaatiomallin perusteet

Relaatiomallin perusteet

tMyn 3

Relaatio

• Yleiskielellä relaatio on kaksiulotteinen taulu (table), joka koostuu riveistä eli tietueista (rows, records) ja sarakkeista eli kentistä (columns, fields).

• Taulun sarakkeisiin talletettava tieto voi olla merkkitietoa (char, varchar, …), numerotietoa (integer, float, …), binaaridataa (binaarista dataa, kuvia, ääntä, tiedostoja, …), päiväystietoa (date, time, …) tai se voi ilmaista loogista tilaa (true/false).

Page 4: Relaatiomallin perusteet

Relaatiomallin perusteet

tMyn 4

eNimi sNimi tLATunnus pLNumero kOsoite kaupunki pNumeroOlli Kupiainen 015 336657 Kotkankatu 5 Mikkeli 50190Ossi Laaksonen 019 6603169 Kydöntie 13 Porvoo 07510Jouni Rissanen 09 5579854 Ketotie 7 Espoo 32100Mikko Talsi 03 178922 Jalaskatu 17 Tampere 89055

Kuva 1. Relaatiomallin käsitteitä.

Relaation kardinaalisuus

Relaation aste

Relaation attribuutit

kaveri

Page 5: Relaatiomallin perusteet

Relaatiomallin perusteet

tMyn 5

• Relaation nimi on siis taulun nimi.• Kullakin taulun sarakkeella on niminään vastaavat

attribuutit (ominaisuudet).• Nimen tulee kuvata sarakkeen tai paikan sisältävää

tietoa.• Arvoalue (arvojoukko, domain) on tiettyyn attribuuttiin

liittyvien mahdollisten arvojen joukko.• Tavallisesti arvoalueen määritys tehdään osaksi

tietotyypin (data type) määritystä.• Esim. eNimi-arvoalue voidaan määritellä

merkkijonoksi, jonka pituus on max. 15 merkkivakiota.

Page 6: Relaatiomallin perusteet

Relaatiomallin perusteet

tMyn 6

• Relaation asteella (degree) ilmaistaan relaation attribuuttien (tauluesityksen sarakkeiden) lukumäärää.

• Relaation monikoiden lukumäärää (tauluesityksen rivien lukumäärää) kutsutaan relaation kooksi, relaation kardinaalisuudeksi (cardinality).

• Relaatiokaavio (relation schema) määrittelee relaation rakenteen: attribuuttien luettelo, arvoalueiden määrittelyt, sekä perus- ja viiteavainten määrittelyt.

• Yksinkertaisimmillaan se voidaan esittää kaavion nimeen liitettynä attribuuttiluettelona:

kaveri(eNimi, sNimi, tLATunnus, pLNumero, kOsoite, kaupunki, pNumero)

Page 7: Relaatiomallin perusteet

Relaatiomallin perusteet

tMyn 7

• Attribuuttien järjestyksellä luettelossa ei ole merkitystä.

• Kaavassa on syytä yleensä näkyä myös relaation perusavain sekä viiteavaimet.

• Matemaattisessa joukossa tietty alkio esiintyy vain kerran.

• Koska relaatio on määritelmänsä mukaisesti matemaattinen joukko, tarkoittaa tämä sitä, että jokainen relaation monikko (taulun rivi, tuple) on erilainen.

• Matemaattisessa joukossa ei alkioiden järjestyksellä ole väliä, ei myöskään relaation monikkojen järjestyksellä.

Page 8: Relaatiomallin perusteet

Relaatiomallin perusteet

tMyn 8

• Coddin relaatioteorian mukaan relaation ominaisuuksia ovat:

– relaation monikkojen (rivien) tulee olla arvoltaan erilaisia– relaation jokaisella rivillä on oltava yhtä monta attribuuttia eli

rivien asteluku on oltava sama– kukin attribuutti (sarake) on homogeeninen eli sisältää

arvoja vain yhdestä arvojoukosta– relaation monikkojen järjestyksellä ei ole merkitystä– arvojen järjestyksellä monikossa ei ole merkitystä– kukin arvo monikossa on atominen tai tyhjäarvo

Page 9: Relaatiomallin perusteet

Relaatiomallin perusteet

tMyn 9

• Relaation monikoiden erilaistamiseen riittää, että jokin tai jotkin attribuuttien arvot ovat eri monikoissa erilaisia.

• Tällaista relaation attribuuttia tai attribuuttien joukkoa, joka erottelee monikot toisistaan kutsutaan avaimeksi.

• Avaimen on oltava:– uniikki, eli missään relaatiokannan ilmentymässä

(monikossa) ei ole kahta tai useampaa riviä, joilla avainattribuuttien arvot ovat samat

– minimaalinen, eli avain muodostuu mahdollisimman pienestä joukosta attribuutteja, ts. avainattribuuttien mikään osajoukko ei ole avain.

Page 10: Relaatiomallin perusteet

Relaatiomallin perusteet

tMyn 10

• Relaatiolla voi olla useita avainehdot täyttäviä attribuutteja tai yhdistelmiä.

• Kuvan 1 esimerkissä mikään attribuutti ei ole kelvollinen, lisätään siis yksi attribuutti lisää, kuva 2.

• Relaatioon on valittava perusavain (pääavain, primary key) avainehdokkaiden joukosta.

• Perusavain voidaan merkitä relaatiokaavioon alleviivaamalla attribuutti:

kaveri(kNro, eNimi, sNimi, tLATunnus, pLNumero, kOsoite, kaupunki, pNumero)

Page 11: Relaatiomallin perusteet

Relaatiomallin perusteet

tMyn 11

Kuva 2. Parannettu versio kuvan 1 relaatiosta.

kaveri

kNro eNimi sNimi tLATunnus pLNumero kOsoite kaupunki pNumerok01 Olli Kupiainen 015 336657 Kotkankatu 5 Mikkeli 50190k02 Ossi Laaksonen 019 6603169 Kydöntie 13 Porvoo 07510k03 Jouni Rissanen 09 5579854 Ketotie 7 Espoo 32100k04 Mikko Talsi 03 178922 Jalaskatu 17 Tampere 89055

Page 12: Relaatiomallin perusteet

Relaatiomallin perusteet

tMyn 12

• Relaatiotietokanta muodostuu yhdestä tai useammasta relaatiosta.

• Relaatioilla voi olla avaimiin perustuvia riippuvuuksia (riippuvuus=yhteys).

• Viiteavain (foreign key, referential key) on sarake tai sarakeyhdistelmä, joka viittaa toisen taulun perusavaimeen.

• Kuvassa 3 relaation osasto relaatiokaavio onosasto(oNro, oNimi, budjetti).

• tyontekija-relaation oNro-attribuutin arvo on sama kuin osasto-relaation perusavaimen oNro arvo.

Page 13: Relaatiomallin perusteet

Relaatiomallin perusteet

tMyn 13

oNro oNimi budjettio1 Markkinointi 10000o2 Kehitys 25000o3 Tutkimus 15000

tTNro tTSNimi oNro palkkatt1 Loikkanen o1 2370tt2 Savela o1 4650tt3 Hautakangas o3 3155

Kuva 3. Kahden relaation välinen riippuvuus.

osasto

tyontekija

Page 14: Relaatiomallin perusteet

Relaatiomallin perusteet

tMyn 14

• Attribuuttia tai attribuuttien yhdistelmää, jonka kaikki arvot ovat jonkin relaation avainattribuuttien arvoja kutsutaan viiteavaimeksi.

• Viiteavain merkitään relaatiokaavaan ilmoittamalla kaavassa sen relaation nimi, johon viittaus tapahtuu:

tyontekija(tTNro, tTSNimi, palkka, oNro->osasto)• Viiteavaimen määrittelyyn liittyy vaatimus viite-

eheydestä (referential integrity).• Tämä tarkoittaa sitä, että jokaisen viiteavain-

attribuutin arvon on esiinnyttävä viitattavan relaation avainattribuutin arvona.

Page 15: Relaatiomallin perusteet

Relaatiomallin perusteet

tMyn 15

• Joissakin tapauksissa sallitaan viiteavaimella myös tyhjäarvo (null value).

• Jos viiteavaimella on tyhjäarvo tarkoittaa se sitä, että monikkoa ei ole kytketty mihinkään toiseen monikkoon.

• Tietokannan hallintajärjestelmän edellytetään valvovan viite-eheyttä ja hylkäävän tai automaattisesti korjaavan tilanteet, joissa sitä yritetään rikkoa.

Page 16: Relaatiomallin perusteet

Relaatiomallin perusteet

tMyn 16

• Kohteen eheysrajoite (integrity) tarkoittaa, että perusavain ei voi koskaan saada tyhjäarvoa.

• Viite-eheysrajoitteen pitäminen edellyttää, että on määritelty, miten menetellään viittauksen kohteena olevan tiedon poistoon tai perusavaimen arvon päivittämiseen.

Page 17: Relaatiomallin perusteet

Relaatiomallin perusteet

tMyn 17

• Tässä on kolme mahdollisuutta:

– estäminen: viiteavaimen viittaaman monikon poistaminen tai sen perusavaimen arvon muuttaminen estetään.

– tyhjääminen: viiteavaimelle annetaan tyhjäarvo, jos sen viittaama monikko poistetaan.

– vyöryttäminen: viiteavaimen arvoa muutetaan vastaavasti, jos viitattavan monikon perusavaimen arvo muuttuu, ja jos viitattu monikko poistetaan, myös kaikki siihen viittaavat monikot poistetaan.

Page 18: Relaatiomallin perusteet

Relaatiomallin perusteet

tMyn 18

Perustaulut ja johdetut taulut

• Tietokannan alkuperäiset taulut ovat ns. perustauluja (base tables).

• Aiemmassa esimerkissä osasto ja tyontekija ovat perustauluja.

• Perustaulut ovat olemassa itsenäisesti, muista tauluista riippumatta.

• Johdetut taulut (derived tables) muodostetaan perustauluista jonkin relaatiomäärittelyn (relational expression) avulla.

Page 19: Relaatiomallin perusteet

Relaatiomallin perusteet

tMyn 19

• Johdetuilla tauluilla ei ole itsenäistä olemassaoloa, vaan ne ovat riippuvaisia perustauluista.

• SQL-kielessä perustaulut luodaan CREATE TABLE –lauseella.

• Perustaulut ovat nimettyjä kun taas suurin osa johdetuista tauluista ei saa omaa nimeä.

• Näkymä (view) on johdetun taulun eräs tyyppi.• Näkymä muodostetaan CREATE VIEW –lauseella ja

näkymä on aina nimetty.• Vaikka näkymä on nimetty, ei sillä ole itsenäistä

olemassaoloa vaan muiden johdettujen taulujen tapaan se on riippuvainen perustauluista.

Page 20: Relaatiomallin perusteet

Relaatiomallin perusteet

tMyn 20

• Esimerkkinä näkymästä vaikkapa osastojenTyontekijat, joka muodostetaan SQL-lauseella

CREATE VIEW osastojenTyontekijat

AS SELECT oNimi, tTSNimi

FROM osasto, tyontekija

WHERE osasto.oNro= tyontekija.oNro;

Page 21: Relaatiomallin perusteet

Relaatiomallin perusteet

tMyn 21

• Olennaista tietokannan tiedoille on niiden tarpeellisuus, sidokset toisiinsa ja yhteiskäyttöisyys.

• Useasti

– tietokanta on laaja– tiedot muuttuvat päivittäin– samaa tietoa ei ole esitetty useammassa paikassa– tiedot ovat elektronisessa muodossa– tietokannan käsittely tapahtuu tietokannan

hallintajärjestelmän avulla

Page 22: Relaatiomallin perusteet

Relaatiomallin perusteet

tMyn 22

Tiedon riippumattomuus

• Samoja tietoja voidaan käyttää moneen tarkoitukseen.

• Kutakin tarkoitusta varten saattaa olla laadittuna myös eri ohjelma, esim. pankkiautomaatissa pankkitilejä käsitellään eri ohjelmalla kuin mitä pankkitoimihenkilöt käyttävät työasemiltaan.

• Nämä ohjelmat saattavat olla laadittu jopa eri ohjelmointikielellä.

• Ohjelmointikielessä tiedostoa käyttävä ohjelma määrittelee tarvitsemansa tiedostot.

Page 23: Relaatiomallin perusteet

Relaatiomallin perusteet

tMyn 23

• Ohjelmointikielten näkemykset talletetusta tiedosta poikkeavat.

• Jotta useiden ohjelmointikielten käyttö saman aineiston käsittelyyn olisi mahdollista, pitäisi tiedot kyetä määrittelemään riippumattomasti ohjelmista ja ohjelmointikielistä.

• Tietokannoissa riippumattomuus saadaan aikaan siten, että tietokanta määritellään erityisen tietokantakaavion (database scema) avulla.

• Määrittely on ohjelmariippumaton (ei sisälly mihinkään sovellusohjelmaan) ja joidenkin tietokantakielien kohdalla myös ohjelmointikieliriippumaton.

Page 24: Relaatiomallin perusteet

Relaatiomallin perusteet

tMyn 24

• Tietokantakaavio sisältää taulujen, eheysehtojen ja käyttöoikeuksien määrittelyn.

• Ohjelmien tietoriippumattomuudella tarkoitetaan sitä, että ohjelmaa ei tarvitse muuttaa, ellei sen itse käyttämien tietojen rakenteissa tapahdu muutoksia.

Page 25: Relaatiomallin perusteet

Relaatiomallin perusteet

tMyn 25

Tietojen samanaikainen käyttö

• Suuriin tietokantoihin täytyy yleensä päästä käsiksi yhtä aikaa useita käyttäjiä.

• Tietovaraston käyttöoikeutta ei voida luovuttaa pelkästään yhdelle käyttäjälle kerrallaan.

• Käyttöjärjestelmät tarjoavat tuen samanaikaiselle käytölle, mutta se rajoittuu yleensä koko tiedoston varaamiseen yksinoikeutettuun käyttöön (lukitseminen).

• Tietokannat tarjoavat huomattavasti edistyneemmän samanaikaisuuden hallinnan.

Page 26: Relaatiomallin perusteet

Relaatiomallin perusteet

tMyn 26

Tietojen haku

• Perinteisten ohjelmointikielten tarjoamat mahdollisuudet tiedon osoittamiseen perustuvat siihen, että ohjelma käy peräkkäin läpi jotain tiedostoa tai hakee tietoa jostakin tietystä kohdasta tiedostoa.

• Tietokannat tarjoavat mahdollisuuden tiedon sisällön perusteella tapahtuvaan kohteiden valintaan ja käsittelyyn.

• Käsittelyyn voidaan esim. valita suoraan tietyn asiakkaan pankkitilit ilman, että ohjelmaan täytyy rakentaa silmukka, jossa nämä tilit käydään yksitellen poimimassa kaikkien pankin tilien joukosta.

Page 27: Relaatiomallin perusteet

Relaatiomallin perusteet

tMyn 27

Tiedon suojaus

• Useimmat käyttöjärjestelmät suojaavat tietoja tiedosto- ja hakemistotasolla.

• Tällainen karkea suojaus ei aina riitä.• Esim. pankin asiakas näkee vain omien tiliensä

saldot ja opiskelija näkee vain omien suoritustensa arvosanat.

• Tietokannat mahdollistavat tällaiset käyttörajoitukset ja vievät suojauksen huomattavasti käyttöjärjestelmiä tarkemmalle tasolle.

Page 28: Relaatiomallin perusteet

Relaatiomallin perusteet

tMyn 28

Automaattinen varmistus ja elpyminen

• Varmuuskopion tekeminen tiedostosta varmistaa sen, että tehty työ ei mene hukkaan esim. levyhäiriön sattuessa.

• Yleensä varmistuskopion tekeminen estää tiedoston käytön kunnes kopio on valmis.

• Jos tiedostolla on useita käyttäjiä ja/tai tiedosto on suuri, voi olla vaikea löytää ajankohtaa varmistuskopion tekemiselle.

• Tietokantojen kohdalla järjestelmät pyrkivät takaamaan sen, että käyttäjän suorittama onnistuneesti loppuunviety (vahvistettu/committed) operaatio jättää pysyvän jälkensä tietokantaan ilman, että käyttäjän täytyy kantaa tästä huolta.

Page 29: Relaatiomallin perusteet

Relaatiomallin perusteet

tMyn 29

Suuret tietomäärät

• Tietomäärät voivat olla suuria (luokkaa gigatavuja) tai tietosisältö voi olla jatkuvasti kasvava tai muutenkin dynaamisesti muuttuva.

• Tallennusrakenteiden täytyy joustavasti mukautua muutoksiin.

• Tallennusrakennetta pitää esim. pystyä virittämään paremman tehon aikaansaamiseksi eikä virittämisen pitäisi vaatia mitään muutoksia näitä rakenteita käyttäviin ohjelmiin.

Page 30: Relaatiomallin perusteet

Relaatiomallin perusteet

tMyn 30

Mutkikkaat riippuvuudet tietojen välillä

• Tietojen välillä on usein erilaisia kytkentöjä ja riippuvuuksia.

• Nämä heijastavat niitä sääntöjä ja lainalaisuuksia, jotka ovat voimassa tietojen kuvaamalla kohdealueella.

• Tietojen oikeellisuuden kannalta on välttämätöntä, että näitä riippuvuuksia valvotaan.

• Riippuvuuksien valvontaa ei voi jättää yksittäisten tietoja käsittelevien sovellusohjelmien vastuulle.