1 / 30

Relaatiomallin perusteet

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.

tyrone-leon
Download Presentation

Relaatiomallin perusteet

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. 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. 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. 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). tMyn

  4. kaveri Relaation kardinaalisuus Relaation attribuutit Relaation aste Kuva 1. Relaatiomallin käsitteitä. 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. 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) 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ä. 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 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. 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) tMyn

  11. kaveri Kuva 2. Parannettu versio kuvan 1 relaatiosta. 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 on osasto(oNro, oNimi, budjetti). • tyontekija-relaation oNro-attribuutin arvo on sama kuin osasto-relaation perusavaimen oNro arvo. tMyn

  13. osasto tyontekija Kuva 3. Kahden relaation välinen riippuvuus. 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. 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. 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. 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. 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. 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. 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; 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 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. 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. 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. 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. 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. 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. 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. 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. 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. tMyn

More Related