Mikä on tietomalli? Relaatiomallin käsitteitä 1/2 (kuva 5.1) Relaatiomallin taustaa



Samankaltaiset tiedostot
HELIA 1 (17) Outi Virkki Tiedonhallinta

HAAGA-HELIA TIKO-05 1 (19) ICT23a Tietokannan suunnittelu ja toteutus O.Virkki

Relaatiomalli ja -tietokanta

Helsingin yliopisto/tktl DO Tietokantojen perusteet, s 2000 Relaatiomallin peruskäsitteet Harri Laine 1. Relaatiotietokannat DONOTP

Tietomallit. Näkökulmat tietoon. Näkökulmat tietoon. Mitä malleja olisi tarjolla? Abstraktiotasot tiedon käsittelyssä

HELIA 1 (12) Outi Virkki Tiedonhallinta

HAAGA-HELIA heti09 1 (27) ICT05 Tiedonhallinta ja tietokannat O.Virkki Relaatiomalli

On autoja, henkilöitä, Henkilöllä on nimi Autolla on omistaja, joka on henkilö. Taulu AUTO(rekno, malli) Taulu HENKILO(nimi, )

Tietokantojen perusteet k2004helsingin yliopisto/tktl Tietokantojen perusteet, s 2005 relaatiomalli Harri Laine 1.

HELIA 1 (21) Outi Virkki Tietokantasuunnittelu

Kyselyt: Lähtökohtana joukko lukuja Laskukaava kertoo miten luvuista lasketaan tulos soveltamalla laskentaoperaatioita

Relaatioalgebra. Relaatioalgebra. Relaatioalgebra. Relaatioalgebra - erotus (set difference) Kyselyt:

Relaatioalgebra. Kyselyt:

Tietomallit. Näkökulmat tietoon. Näkökulmat tietoon. Näkökulmat tietoon. Abstraktiotasot tiedon käsittelyssä

7. ER- ja EER-mallin kuvaaminen relaatiotietokannaksi

Opettajana Mika Sorsa, HAMK:n ammatillisen opettajakoulutuksen opetusharjoittelija

HELIA 1 (19) Outi Virkki Tietokantasuunnittelu

TIETOKANNAT kevät 2002 Itseopiskeluosio osa 2/3

Helsingin yliopisto/tktl Tietokantojen perusteet, k 2003 Relaatiomallin peruskäsitteet Harri Laine 1. Tietomallit. Näkökulmat tietoon

TIEDONHALLINTA - SYKSY Luento 2. Pasi Ranne /8/17 Helsinki Metropolia University of Applied Sciences

2. Käsiteanalyysi ja relaatiomalli

millainen on se kohde, jota tiedoilla pitäisi kuvata asiat, joita pitäisi esittää Mitä tietoelementtien arvot tarkoittavat

Helsingin yliopisto/ tktl DO Tietokantojen perusteet, s 2000 Relaatioalgebra Harri Laine 1. Relaatioalgebra

CSE-A1200 Tietokannat

Tietokantojen suunnittelu, relaatiokantojen perusteita

TIETOKANTOJEN PERUSTEET OSIO 8 MARKKU SUNI

Tietokantakurssit / TKTL

Tietokannan suunnittelu

HELIA TIKO-05 1 (28) ICT03D Tieto ja tiedon varastointi O.Virkki

Relaatiotietokantojen perusteista. Harri Laine Helsingin yliopisto

Helsingin yliopisto, Tietojenkäsittelytieteen laitos Tietokantojen perusteet, , H.Laine

TIETOKANTOJEN PERUSTEET OSIO 11 MARKKU SUNI

Relaatioista TIETOJENKÄSITTELYTIETEIDEN LAITOS, JUHA IISAKKA 11-14

HELIA 1 (17) Outi Virkki Tiedonhallinta

TIEDONHALLINNAN PERUSTEET - SYKSY 2013

Helsingin yliopisto/ tktl D Tietokantojen perusteet, s 2000 Relaatioalgebra. Harri Laine 1. Relaatioalgebra.

TIETOKANNAT JOHDANTO

TIEDONHALLINTA - SYKSY Luento 10. Hannu Markkanen /10/12 Helsinki Metropolia University of Applied Sciences

HELIA 1 (14) Outi Virkki Tiedonhallinta

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

joukko operaatioita, joilla relaatioista voidaan muodostaa uusia relaatioita joukko opin perusoperaatiot yhdiste, erotus, ristitulo, leikkaus

Tietokannat I. c 2007 Olli Luoma olli.luoma@it.utu.fi

Tietokannan eheysrajoitteet ja niiden määrittäminen SQL-kielellä

HELIA 1 (15) Outi Virkki Tietokantasuunnittelu

Helsingin yliopisto Tietojenkäsittelytieteen laitos (H.Laine) Tietokantojen perusteet. Liitteenä: Tiivistelmä SQL-syntaksista

TIEDONHALLINTA - SYKSY Luento 11. Hannu Markkanen /10/12 Helsinki Metropolia University of Applied Sciences

Tietokannan eheysrajoitteet ja niiden määrittäminen SQL-kielellä

HELIA TIKO-05 1 (20) ICT03D Tieto ja tiedon varastointi O.Virkki

SQL - STRUCTURED QUERY LANGUAGE

Tietokantasuunnittelun pääperiaatteena on tiedon toiston välttäminen. Tiedon toistumiseen liittyy monenlaisia ongelmia.

Kirjoita jokaiseen erilliseen vastauspaperiin kurssin nimi, tenttipäivä, oma nimesi (selkeästi), opiskelijanumerosi ja nimikirjoituksesi

Tiedonhallinnan perusteet. Viikko 1 Jukka Lähetkangas

Tietokannat. CREATE TABLE table(col1,col2,... ); Luo uuden taulun. CREATE TABLE opiskelijat(opnumero,etunimi,sukunimi);

SQL-perusteet, SELECT-, INSERT-, CREATE-lauseet

Tietokannat II -kurssin harjoitustyö

HELIA 1 (11) Outi Virkki Tiedonhallinta

HELIA TIKO-05 1 (22) ICT03D Tieto ja tiedon varastointi E.Räty, O.Virkki

Harjoitustehtävä 1. Harjoitustehtävän 1 ratkaisu. Harjoitustehtävä 1. Relaatioalgebra -liitokset (join) Liitos

HELIA 1 (19) Outi Virkki Tietokantasuunnittelu

HELIA TIKO-05 1 (17) ICT03D Tieto ja tiedon varastointi Räty, Virkki

TIEDONHALLINNAN PERUSTEET - SYKSY 2013

Tietokantasuunnittelun pääperiaatteena on tiedon toiston välttäminen. Tiedon toistumiseen liittyy monenlaisia ongelmia.

Tietokannan suunnittelu

Insert lauseella on kaksi muotoa: insert into taulu [(sarakenimet)] values (arvot)

3. Käsiteanalyysi ja käsitekaavio

Tietokannat II -kurssin harjoitustyö

HELIA 1 (20) Outi Virkki Tiedonhallinta

Tietokannan hallinta. Kevät 2004 Jan Lindström R&G Chapter 1

3. Taulujen määrittely ja muuttaminen

HELIA 1 (21) Outi Virkki Tietokantasuunnittelu

Tietokantasuunnittelun pääperiaatteena on tiedon toiston välttäminen. Tiedon toistumiseen liittyy monenlaisia ongelmia

3. TAULUJEN MÄÄRITTELY JA MUUTTAMINEN

NORMALISOINTI TIETOJEN MALLINNUS JOUNI HUOTARI & ARI HOVI

POLKU LUOKKAKAAVIOISTA TAULUJEN TOTEUTUKSEEN

3. Tietokannan hakemistorakenteet

3. Tietokannan hakemistorakenteet

TIEDONHALLINTA - SYKSY Luento 7. Pasi Ranne /10/17 Helsinki Metropolia University of Applied Sciences

Laajennettu relaatiomalli ERDM ja suoraviittauksinen kyselykieli NSQL. Mika Niemelä

Jouni Huotari & Ari Hovi. Käsitemallinnuksesta relaatiokantaan KÄSITEMALLI. LOOGINEN MALLI: tietomalli valittu. FYYSINEN MALLI: DBMS valittu

Helsingin yliopisto, TKTL Tietokantojen perusteet, k 2000 Tietokannan suunnittelusta Harri Laine 1

CSE-A1200 Tietokannat

Tietokantojen perusteet

Relaatioalgebra. Luku Joukko-opilliset operaatiot Yhdiste eli unioni Leikkaus

FROM-lausekkeessa voidaan määritellä useampi kuin yksi taulu, josta tietoja haetaan: Tuloksena on taululistassa lueteltujen taulujen rivien

Algoritmit 2. Luento 3 Ti Timo Männikkö

HARJOITUS 2. Kasvattamot ja mittaukset

TIETOKANNAT JOHDANTO JOUNI HUOTARI & ARI HOVI

Tietokannan rakenteen suunnittelu

TIETOKANNAN NORMALISOINTI JA NORMAALIMUODOT

Esimerkki. pankkien talletus- ja lainatietokanta: Yhdiste, leikkaus, erotus ym. Leikkaus (intersect) Yhdiste (Union) Erotus (except/minus) Leikkaus

Tiedonhallinnan perusteet. H11 Ovien ja kulun valvontajärjestelmän tietokanta

Kirjoita kuhunkin erilliseen vastauspaperiin kurssin nimi, tentin päiväys, oma nimesi, syntymäaikasi ja nimikirjoituksesi.

Tietokantojen perusteet, osa 1

MS-A0402 Diskreetin matematiikan perusteet

CS-A1150 Tietokannat CS-A1150 Tietokannat / 43

CS-A1150 Tietokannat CS-A1150 Tietokannat / 35

Helsingin yliopisto/tktl Kyselykielet, s 2006 Optimointi Harri Laine 1. Kyselyn optimointi. Kyselyn optimointi

811120P Diskreetit rakenteet

Tietokantojen perusteet, syksy 1999 SQL- osa Harri Laine 1. SQL-valintaehto. SQL-valintaehto. Opettajien nimet: Opiskelijoiden pääaineet

Yhdiste, leikkaus, erotus ym.

Transkriptio:

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 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! 2001 Jukka Teuhola 2004 Antti Tuomisto Tietojenkäsittelytieteet Turun yliopisto 52 Relaatiomallin taustaa Codd, 1970 (IBM Research) Matemaattinen perusta Yksinkertainen käsitteistö Vähän rakennuspalikoita Helppo ja havainnollinen taulukkoesitys Perustana suosituimmissa tietokantajärjestelmissä (Oracle, Informix, DB2, Sybase, SQLServer, myös Accessissä) Relaatiomalli sopii ohjelmoijille ja SQL-käyttäjille 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?) 53 54 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 5.1-5.3) 55 Merkinnät Relaatiokaava: RELNIMI(Attrnimi 1,..., Attrnimi n ) Tupla t = <arvo 1,...,arvo n > t [Attr i ] = 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 56 1

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 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 57 58 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 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 R 1 tuplassa t 1 esiintyy jonkin R 2 :n tuplan t 2 pääavaimena tai = NULL 59 60 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 61 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) 62 2

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ä) 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 63 64 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 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ä 65 66 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 Esimerkkejä (kuvat 5.6, 5.7) Insert < Sales, Null, 987987987, 02-FEB-91 > into DEPARTMENT Insert < Test, 3, Houston, 5 > into PROJECT Insert < 123456789, Sue, Y, 32-MAY-79, SON > into DEPENDENT Insert < Modelling, 7, Memphis, 3 > into PROJECT Delete EMPLOYEE tuple with SSN='987654321' Delete WORKS_ON tuple with ESSN='999887777 and PNO=20 Delete PROJECT tuple with PNUMBER=3 Modify the DNO of the EMPLOYEE tuple with SSN='999887777' to 2 Modify PNUMBER of the PROJECT tuple with PNUMBER=3 to 4 Modify the SSN of the EMPLOYEE tuple with SSN='999887777' to '987654321' 67 68 3

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 7.1-7.2 (E)ER-to-relational (1/14) Tiivistelmä kirjan sivuista 192-203 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 69 70... (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... (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 71 72... (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... (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) 73 74 4

... (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... (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) 75 76... 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 {S 1, S 2,..., S m } (yleistetty) yliluokka C{k, a 1, a 2,..., a n } PK(C) = k... relaatiokaavoiksi käyttäen yhtä seuraavista optioista A, B, C, tai D... (E)ER-to-relational (9/14) 8A Luo C:lle relaatio L, jolla attribuutit {k, a 1,..., a n }, missä PK(L)=k Luo jokaiselle aliluokalle S i oma relaatio L i, jolla attribuutit {k} {S i :n attribuutit}; missä PK(L i )=k Liitos jollekin L i :lle ja L:lle pääavaimen suhteen tuottaa kaikki periytyvät ja L i :lle spesifiset attribuutit Toimii sekä erillisillä, päällekkäisillä, täydellisillä että osittaisilla optioilla 77 78... EER-to-relational (10/14) 8B Luo relaatio L i jokaiselle aliluokalle S i, jolla attribuutit {S i :n attribuutit } {k, a 1, a 2,..., a n } ja PK(L i )=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 L i redundanssia Yliluokan entiteetit eivät esiinny suoraan missään relaatiossa OUTER UNION kaikille tuottaa yliluokan entiteetit Tietyn instanssin C haku vaatii kaikkien L i :den haun... EER-to-relational (11/14) 8C Luo yksi relaatio L, jolla attribuutit {k, a 1, a 2,..., a n } {S i :n attribuutit}... {S m :n attribuutit} {t}; ja PK(L)=k t = tyyppiattribuutti, joka ilmoittaa aliluokan johon tupla kuuluu Aliluokkien oltava erilliset 79 80 5

... EER-to-relational (12/14) 8D Luo yksi relaatio L, jolla attribuutit {k, a 1, a 2,..., a n } {S i :n attribuutit}... {S m :n attribuutit} {t 1, t 2,..., t m }; ja PK(L)=k t i = Boolen-attribuutti, joka ilmoittaa kuuluuko tupla aliluokkaan S i Päällekkäisille aliluokille... 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 81 82...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 83 6