Esittely latautuu. Ole hyvä ja odota

Esittely latautuu. Ole hyvä ja odota

Samankaltaiset esitykset


Esitys aiheesta: ""— Esityksen transkriptio:

51 Relaatiomalli 5. Relaatiomalli Käsitteet Säännöt
07/04/2017 Relaatiomalli 5. Relaatiomalli Käsitteet Säännöt Käyttö 6. Relaatioalgebra (EI TENTTIIN!) Select, Project, Union, Difference, Join 7. (E)ER-mallin muuntaminen relaatioiksi Kaava

52 Mikä on tietomalli? Malli, jolla tietokannan rakenne ja sisältö kuvataan Mallinnuksen abstraktiotasot: Käsitetaso, esim. (E)ER-malli Rakenteellinen käsitetaso, esim. relaatiomalli Sisäinen taso, järjestelmäkohtainen Vrt. Kolmikaava-arkkitehtuuri! 2004 © Antti Tuomisto, 2001 © Jukka Teuhola muokattu 2005 (Tommi Tapanainen) Tietojenkäsittelytieteet, Turun yliopisto

53 Relaatiomallin taustaa
Codd, 1970 (IBM Research) Matemaattinen perusta Yksinkertainen käsitteistö Vähän ’rakennuspalikoita’ Helppo ja havainnollinen taulukkoesitys Perustana suosituimmissa tietokantajärjes- telmissä (Oracle, Informix, DB2, Sybase, SQLServer,… myös Accessissä) Relaatiomalli sopii ohjelmoijille ja SQL-käyttäjille 2004 © Antti Tuomisto, 2001 © Jukka Teuhola muokattu 2005 (Tommi Tapanainen) Tietojenkäsittelytieteet, Turun yliopisto

54 Relaatiomallin käsitteitä 1/2 (kuva 5.1)
Relaatio = Taulu Tupla (monikko) = Rivi Edustaa reaalimaailman ’kohdetta’ tai ’faktaa’ (relaatioon kootaan joukko samantyyppisiä kohteita / faktoja) Järjestetty lista arvoja (esityksen yksinkertaistamiseksi, loogisesti arvojen järjestyksellä ei väliä) Attribuutti = Sarake Samannimisiä relaation kohteiden ominaisuuksia Arvot atomisia Komponenttiattribuutit erillisinä Moniarvoinen attribuutti omana relaationa Arvojoukko = Attribuutin tietotyyppi (null?) 2004 © Antti Tuomisto, 2001 © Jukka Teuhola muokattu 2005 (Tommi Tapanainen) Tietojenkäsittelytieteet, Turun yliopisto

55 Relaatiomallin käsitteitä 2/2 (kuva 5.1)
Relaation aste = Attribuuttien lukumäärä Relaatiokaava = Relaation nimi + attribuuttien joukko Tulkitaan predikaattina (väite, tosiasia) Relaation tila (instanssi*) = Tuplien joukko Tuplien järjestyksellä ei merkitystä (kuvat ) 2004 © Antti Tuomisto, 2001 © Jukka Teuhola muokattu 2005 (Tommi Tapanainen) Tietojenkäsittelytieteet, Turun yliopisto

56 Merkinnät Relaatiokaava: RELNIMI(Attrnimi1,..., Attrnimin)
Tupla t = <arvo1,...,arvon> t [Attri] = tietyn attribuutin i arvo tuplassa t Q, R, S,... = Relaatio q, r, s,... = Relaation tila/instanssi t, u, v,… = Tupla Pelkkä relaation nimi viittaa kyseisen relaation sen hetkiseen instanssiin RELNIMI.Attrnimi ilmoittaa yksiselitteisesti attribuutin johon viitataan EMPLOYEE.Age 2004 © Antti Tuomisto, 2001 © Jukka Teuhola muokattu 2005 (Tommi Tapanainen) Tietojenkäsittelytieteet, Turun yliopisto

57 Relaatiomallin säännöt 1/2
1. Arvojoukkorajoite Attribuutin arvo on atominen ja kuuluu sille määriteltyyn arvojoukkoon Tyhjä arvo (NULL) sisältyy aina arvojoukkoon 2. Avainrajoite Relaatiossa ei saa olla tuplia, joiden kaikkien attribuuttien arvot samat; relaatio on matemaattinen joukko 2004 © Antti Tuomisto, 2001 © Jukka Teuhola muokattu 2005 (Tommi Tapanainen) Tietojenkäsittelytieteet, Turun yliopisto

58 Avaimiin liittyviä käsitteitä
Superavain = Attribuuttien joukko, jonka arvot eivät ole samat kahdella eri tuplalla Avain = Minimaalinen superavain Ei voida poistaa yhtään attribuuttia siten, että jäljelle jäisi superavain Ehdokasavain = Attribuutti(ryhmä), joka on avain Pääavain = Valitaan yksi ehdokasavaimista Pääavain yleensä alleviivataan relaatio-kaavassa 2004 © Antti Tuomisto, 2001 © Jukka Teuhola muokattu 2005 (Tommi Tapanainen) Tietojenkäsittelytieteet, Turun yliopisto

59 07/04/2017 Lisää avaimista Avainominaisuus on relaation semantiikkaan liittyvä asia, joka edellyttää sovelluksen tuntemusta Attribuutin tai attribuuttiryhmän satunnainen yksikäsitteisyys jossakin relaatioinstanssissa ei tee siitä avainta Esim. HLÖ=[Nimi, Ikä] taulun 4 instanssia: (Elina, 26), (Jussi, 23), (Mikko, 21), (Anne, 23) ”Nimi” tuskin avain, mutta riippuu semantiikasta 2004 © Antti Tuomisto, 2001 © Jukka Teuhola muokattu 2005 (Tommi Tapanainen) Tietojenkäsittelytieteet, Turun yliopisto

60 Relaatiomallin säännöt 2/2
3. Olioeheys Pääavaimen minkään komponentin arvo ei voi olla NULL 4. Viite-eheys Toiseen relaatioon viittaavan tuplan tulee viitata olemassa olevaan tuplaan Attribuutti(joukko) FK relaatiossa R1 on relaatioon R2 osoittava viiteavain, jos FK:lla sama arvojoukko kuin R2:n pääavaimella FK:n arvo relaation R1 tuplassa t1 esiintyy jonkin R2:n tuplan t2 pääavaimena tai = NULL 2004 © Antti Tuomisto, 2001 © Jukka Teuhola muokattu 2005 (Tommi Tapanainen) Tietojenkäsittelytieteet, Turun yliopisto

61 Viiteavain (kuva 7.7) Kutsutaan myös ’vierasavaimeksi’
Mahdollistaa relaatioiden väliset kytkökset Relaatiomalli ei tunne varsinaisia osoittimia Kaikki liittymät esitetään data-arvojen kautta Esim. Kurssi(knimi, lukukausi, opettajanimi) Opettaja(opettajanimi, virka-asema) Viiteavain määrittelee M:1 –suhteen viittaavan relaation ja kohderelaation välille Viittauksen kohteeseen voi olla useita viittauksia samasta tai eri relaatiosta Viiteavain voi viitata myös saman relaation pääavaimeen Kyseessä on eräänlainen rekursiivinen suhde 2004 © Antti Tuomisto, 2001 © Jukka Teuhola muokattu 2005 (Tommi Tapanainen) Tietojenkäsittelytieteet, Turun yliopisto

62 Lisää viiteavaimista Viiteavaimen merkintä
Yhden attribuutin käsittävä viiteavain: Kurssi(kurssino, kurssinimi, ope  Opettaja) Opettaja(hetu, nimi, laitos) Attribuuttiyhdelmä viiteavaimena: Osallistuu(opno, nimi, (kurssino, vuosi)Kurssi) Kurssi(kurssino, vuosi, kurssinimi, opettaja) 2004 © Antti Tuomisto, 2001 © Jukka Teuhola muokattu 2005 (Tommi Tapanainen) Tietojenkäsittelytieteet, Turun yliopisto

63 Semanttisia rajoitteita
Miten valvoa ja rajoittaa tietueiden arvojen sisältöä? Tilarajoitukset ”Työntekijän palkan tulee olla pienempi kuin pomolla” ”Yläraja työntekijän projektien työtunneille viikossa on 56” Muutosrajoitukset ”Työntekijän palkka voi vain nousta, ei laskea” Toteutetaan Kannassa ns. constraint specification language Triggers and assertions Sovellusohjelmassa (ohjelmointikielellä) 2004 © Antti Tuomisto, 2001 © Jukka Teuhola muokattu 2005 (Tommi Tapanainen) Tietojenkäsittelytieteet, Turun yliopisto

64 Relaatiotietokannan kaava (kuva 5.5,5.6)
Nyt kohteena relaatioiden joukko Relaatiotietokannan kaava koostuu Relaatiokaavoista ja Eheyssäännöistä Relaatiotietokannan tilan/instanssin on koostuttava relaatiokaavojen mukaisista relaation tiloista/instansseista jotka toteuttavat em. eheyssäännöt 2004 © Antti Tuomisto, 2001 © Jukka Teuhola muokattu 2005 (Tommi Tapanainen) Tietojenkäsittelytieteet, Turun yliopisto

65 Relaatiotietokannan määrittely
Lyhyesti tietokannan määrittelyn vaiheet Tietokannan nimeäminen Relaatioiden määrittely Relaation nimi Attribuutit Avaimet Eheyssäännöt Arvojoukkojen määrittely attribuuteille 2004 © Antti Tuomisto, 2001 © Jukka Teuhola muokattu 2005 (Tommi Tapanainen) Tietojenkäsittelytieteet, Turun yliopisto

66 Päivitysoperaatiot ja –ongelmat
07/04/2017 Päivitysoperaatiot ja –ongelmat Lisäys voi rikkoa: Arvojoukkorajoitetta, avainrajoitetta, olioeheyttä, tai viite-eheyttä Poisto voi rikkoa: Vain viite-eheyttä Muutos voi rikkoa: Ei-avainattribuutti: Arvojoukkorajoitetta (Pää)avainattribuutti = ”poisto + lisäys” Voi rikkoa kaikkia rajoitteita Viiteavainattribuutti: Viite-eheyttä 2004 © Antti Tuomisto, 2001 © Jukka Teuhola muokattu 2005 (Tommi Tapanainen) Tietojenkäsittelytieteet, Turun yliopisto

67 Päivitysongelmien korjaaminen
Operaation estäminen Operaation muuttaminen Vyörytys: Päivitysoperaatio kohdistetaan myös viittaaviin (tai viittauksen kohteena oleviin) tupliin Harjoituksia: Mieti seuraavan sivun päivityksiä, niistä mahdollisesti aiheutuvia ongelmia ja tarvittavia korjaustoimenpiteitä Ks. myös esimerkki s.143 2004 © Antti Tuomisto, 2001 © Jukka Teuhola muokattu 2005 (Tommi Tapanainen) Tietojenkäsittelytieteet, Turun yliopisto

68 Esimerkkejä (kuvat 5.6, 5.7) Insert < ‘Sales’, Null, ‘ ’, ‘02-FEB-91’> into DEPARTMENT Insert < ‘Test’, 3, ’Houston’, 5 > into PROJECT Insert < ‘ ’, ‘Sue’, ‘Y’, ‘32-MAY-79’, ‘SON’ > into DEPENDENT Insert < ‘Modelling’, 7, ‘Memphis’, 3 > into PROJECT Delete EMPLOYEE tuple with SSN=' ' Delete WORKS_ON tuple with ESSN=' ’ and PNO=20 Delete PROJECT tuple with PNUMBER=3 Modify the DNO of the EMPLOYEE tuple with SSN=' ' to 2 Modify PNUMBER of the PROJECT tuple with PNUMBER=3 to 4 Modify the SSN of the EMPLOYEE tuple with SSN=' ' to ' ' 2004 © Antti Tuomisto, 2001 © Jukka Teuhola muokattu 2005 (Tommi Tapanainen) Tietojenkäsittelytieteet, Turun yliopisto

69 6. Relaatioalgebra EI TENTTIIN! Operaatiot relaatioiden käsittelyyn
Joukko-opin operaatiot Erityisoperaatiot relaatiotietokannoille Operaation tulos on relaatio Unaariset: Valinta, projektio, aggregaattifunktiot Binääriset: Unioni, leikkaus, erotus, karteesinen tulo, liitos 2004 © Antti Tuomisto, 2001 © Jukka Teuhola muokattu 2005 (Tommi Tapanainen) Tietojenkäsittelytieteet, Turun yliopisto

70 7.1-7.2 (E)ER-to-relational (1/14)
Tiivistelmä kirjan sivuista Ks. myös taulu 7.1 Vaihe 1: Tavalliset entiteettityypit Luo oma relaatio ja liitä siihen yksinkertaiset attribuutit Liitä yhdistetyt attribuutit komponentteinaan Valitse yksi avainattribuutti(joukko) pääavaimeksi Viiteavaimia ei vielä tässä vaiheessa 2004 © Antti Tuomisto, 2001 © Jukka Teuhola muokattu 2005 (Tommi Tapanainen) Tietojenkäsittelytieteet, Turun yliopisto

71 ... (E)ER-to-relational (2/14)
Vaihe 2: Heikot entiteettityypit Käsittele viimeiseksi ne heikot entiteetit, joiden omistajana on toinen heikko entiteetti Luo oma relaatio ja liitä yksinkertaiset attribuutit Hajoita yhdistetyt attribuutit erillisiksi Liitä omistajaentiteetin pääavain viiteavaimeksi Relaation pääavain on omistajan pääavain + heikon entiteetin osittainen avain 2004 © Antti Tuomisto, 2001 © Jukka Teuhola muokattu 2005 (Tommi Tapanainen) Tietojenkäsittelytieteet, Turun yliopisto

72 ... (E)ER-to-relational (3/14)
Vaihe 3: Binaariset 1:1 –liittymät Valitse toinen entiteeteistä ja liitä toisen osapuolen pääavain sen relaatioon viiteavaimeksi Viiteavain on parempi liittää osapuoleen, jolla on täydellinen riippuvuussuhde (ei esiinny NULL-arvoja) Esim. [EMP] <manages> [DEPT]; viiteavain DEPT-relaatioon Liitä liittymän yksinkertaiset attribuutit samaan relaatioon kuin viiteavain Toinen vaihtoehto: Molemmat entiteetit ja liittymä yhdeksi relaatioksi Erityisen sopiva, jos molempien riippuvuussuhteet täydellisiä ja entiteeteillä ei muita liittymiä Kolmas vaihtoehto: Kuten M:N -liittymät 2004 © Antti Tuomisto, 2001 © Jukka Teuhola muokattu 2005 (Tommi Tapanainen) Tietojenkäsittelytieteet, Turun yliopisto

73 ... (E)ER-to-relational (4/14)
Vaihe 4: Binaariset 1:N –liittymät (ei heikko) Liitä ”N”-puoleisen entiteetin relaation viiteavaimeksi ”1”-puolen pääavain Liitä liittymän yksinkertaiset attribuutit myös ”N”-puoleiseen relaatioon Toinen vaihtoehto: Kuten M:N –liittymät 2004 © Antti Tuomisto, 2001 © Jukka Teuhola muokattu 2005 (Tommi Tapanainen) Tietojenkäsittelytieteet, Turun yliopisto

74 ... (E)ER-to-relational (5/14)
Vaihe 5: Binaariset M:N –liittymät Luo oma relaatio Liitä liittymään osallistuvien entiteettien pääavaimet relaation viiteavaimiksi Ovat yhdessä uuden relaation pääavain Liitä myös liittymän yksinkertaiset attribuutit relaatioon Aiemmat 1:1 ja 1:N –liittymät voidaan myös kuvata tällä tavalla Jos liittymällä vähän instansseja, vältetään NULL-arvot Relaation pääavain on yhden osallistuvan entiteetin viiteavain (1:N):n tapauksessa ”N”-puoleinen (1:1):n tapauksessa se jolla täydellinen riippuvuus (jos on) 2004 © Antti Tuomisto, 2001 © Jukka Teuhola muokattu 2005 (Tommi Tapanainen) Tietojenkäsittelytieteet, Turun yliopisto

75 ... (E)ER-to-relational (6/14)
Vaihe 6: Moniarvoiset attribuutit Luo oma relaatio, jossa Attribuutti joka vastaa moniarvoista attribuuttia Entiteetin pääavain Relaation pääavain on edellisten yhdistelmä Jos moniarvoinen attribuutti on yhdistetty, se liitetään komponentteinaan Huom! Tapauskohtaisesti avain sisältää kaikki komponentit tai osan komponenteista, kunhan avainominaisuus on olemassa 2004 © Antti Tuomisto, 2001 © Jukka Teuhola muokattu 2005 (Tommi Tapanainen) Tietojenkäsittelytieteet, Turun yliopisto

76 ... (E)ER-to-relational (7/14) (kuva 7.3)
Vaihe 7: Liittymät joiden aste > 2 Luo oma relaatio Liitä osallistuvien entiteettien pääavaimet attribuuteiksi Liitä myös liittymän tavalliset attribuutit Pääavain on kaikkien viiteavaimien yhdistelmä Jos jonkun entiteetin osallistumisessa max=1  ei pääavaimeen; muiden avainten yhdistelmä riittää Huom! ”>2”-liittymät kannattaa muuttaa kaksiasteisiksi, jos vain mahdollista (esim. kuva 4.11) 2004 © Antti Tuomisto, 2001 © Jukka Teuhola muokattu 2005 (Tommi Tapanainen) Tietojenkäsittelytieteet, Turun yliopisto

77 ... EER-to-relational (8/14) (kuva 7.4)
Em. on tärkeää omaksua! Jotta (E)ER-rakenteiden mallinnus olisi luontevaa, on hallittava rakenteiden toteuttaminen Vaihe 8: Luokkahierarkioiden esittäminen Merkitään PK(R) = relaation R pääavain (primary key) Muunna erikoistamishierarkia, jossa m aliluokkaa {S1 , S2 , ..., Sm} (yleistetty) yliluokka C{k, a1 , a2 , ..., an} PK(C) = k ... relaatiokaavoiksi käyttäen yhtä seuraavista optioista A, B, C, tai D 2004 © Antti Tuomisto, 2001 © Jukka Teuhola muokattu 2005 (Tommi Tapanainen) Tietojenkäsittelytieteet, Turun yliopisto

78 ... (E)ER-to-relational (9/14)
Luo C:lle relaatio L, jolla attribuutit {k, a1,..., an}, missä PK(L)=k Luo jokaiselle aliluokalle Si oma relaatio Li , jolla attribuutit {k}  {Si :n attribuutit}; missä PK(Li)=k Liitos jollekin Li :lle ja L:lle pääavaimen suhteen tuottaa kaikki periytyvät ja Li :lle spesifiset attribuutit Toimii sekä erillisillä, päällekkäisillä, täydellisillä että osittaisilla optioilla 2004 © Antti Tuomisto, 2001 © Jukka Teuhola muokattu 2005 (Tommi Tapanainen) Tietojenkäsittelytieteet, Turun yliopisto

79 ... EER-to-relational (10/14)
8B Luo relaatio Li jokaiselle aliluokalle Si, jolla attribuutit {Si :n attribuutit }  {k, a1 , a2 , ..., an} ja PK(Li)=k Toimii hyvin vain täydellisillä ja erilisillä optioilla Ongelmatapaukset Osittainen hierarkia & entiteetti ei kuulu mihinkään aliluokkaan  entiteetti menetetään Päällekkäinen hierarkia entiteetti kuuluu moneen aliluokkaan  perityt attribuutit toistetaan alirelaatioissa Li  redundanssia Yliluokan entiteetit eivät esiinny suoraan missään relaatiossa OUTER UNION kaikille tuottaa yliluokan entiteetit Tietyn instanssin C haku vaatii kaikkien Li :den haun 2004 © Antti Tuomisto, 2001 © Jukka Teuhola muokattu 2005 (Tommi Tapanainen) Tietojenkäsittelytieteet, Turun yliopisto

80 ... EER-to-relational (11/14)
8C Luo yksi relaatio L, jolla attribuutit {k, a1 , a2 , ..., an}  {Si :n attribuutit} ... {Sm:n attribuutit}  {t}; ja PK(L)=k t = tyyppiattribuutti, joka ilmoittaa aliluokan johon tupla kuuluu Aliluokkien oltava erilliset 2004 © Antti Tuomisto, 2001 © Jukka Teuhola muokattu 2005 (Tommi Tapanainen) Tietojenkäsittelytieteet, Turun yliopisto

81 ... EER-to-relational (12/14)
8D Luo yksi relaatio L, jolla attribuutit {k, a1 , a2 , ..., an}  {Si :n attribuutit} ... {Sm :n attribuutit}  {t1 , t2 , ..., tm}; ja PK(L)=k ti = Boolen-attribuutti, joka ilmoittaa kuuluuko tupla aliluokkaan Si Päällekkäisille aliluokille 2004 © Antti Tuomisto, 2001 © Jukka Teuhola muokattu 2005 (Tommi Tapanainen) Tietojenkäsittelytieteet, Turun yliopisto

82 ... EER-to-relational (13/14) (kuva 7.5)
Ratkaisuista 8A-8D C- ja D-kohtia ei suositella, jos aliluokilla on paljon spesifisiä attribuutteja  paljon NULL-arvoja Jaettujen aliluokkien kuvaaminen relaatioiksi Luokilla oltava sama avain, muuten mallinnetaan kategoriana Hierarkian ja hilan kuvauksessa voidaan käyttää eri osissa eri optioita, yleensä vaihtoehto 8A Katso kuva 7.5, jossa työntekijähila (kuva 4.7) on toteutettu usealla tavalla Esim. ENGINEER_MANAGER 2004 © Antti Tuomisto, 2001 © Jukka Teuhola muokattu 2005 (Tommi Tapanainen) Tietojenkäsittelytieteet, Turun yliopisto

83 ...EER-to-relational (14/14) (kuva 7.6)
Vaihe 9: Kategorioiden kuvaaminen relaatioiksi Voi olla useita avaimia yliluokilla (OWNER-esim; kuva 4.8) Jos eri avaimia: määritellään uusi (sijais)avain joka esiintyy vierasavaimena yläluokkien relaatioissa Jos sama avain: ei tarvita ylimääräistä avainta 2004 © Antti Tuomisto, 2001 © Jukka Teuhola muokattu 2005 (Tommi Tapanainen) Tietojenkäsittelytieteet, Turun yliopisto


Lataa ppt ""

Samankaltaiset esitykset


Iklan oleh Google