Esittely latautuu. Ole hyvä ja odota

Esittely latautuu. Ole hyvä ja odota

Looginen suunnittelutMyn1 Looginen suunnittelu •Tässä lähdetään liikkeelle käsitemallista. •Laaditaan sisällöstä ja rakenteesta loogisen tason kuvaus,

Samankaltaiset esitykset


Esitys aiheesta: "Looginen suunnittelutMyn1 Looginen suunnittelu •Tässä lähdetään liikkeelle käsitemallista. •Laaditaan sisällöstä ja rakenteesta loogisen tason kuvaus,"— Esityksen transkriptio:

1 Looginen suunnittelutMyn1 Looginen suunnittelu •Tässä lähdetään liikkeelle käsitemallista. •Laaditaan sisällöstä ja rakenteesta loogisen tason kuvaus, esim. relaatiokuvaus, jos tavoitteena on relaatiotietokanta. •Tässä vaiheessa ei pitäisi olla mitään riippuvuutta mihinkään tiettyyn DBMS:ään vaikkakin tiedossa siis on, että tietokantajärjestelmään tullaan valitsemaan relaatiotietokanta, hierarkkinen tietokanta, oliotietokanta tms. •Normalisointitekniikkaa käytetään testaamaan loogisen tietokantamallin oikeellisuutta.

2 Looginen suunnittelutMyn2 •Loogisen mallin rakentamisen vaiheisiin kuuluu ainakin –Poistetaan käsitemallista ne piirteet, jotka eivät sovellu relaatiotietokantajärjestelmään (jos siis on päädytty relaatiotietokantaratkaisuun periaatetasolla) –Muodostetaan loogisen tason taulut –Validoidaan relaatiot normalisointitekniikalla –Määritellään eheysvaatimukset –Tarkistetaan, että saatu ratkaisu täyttää vaatimusmäärittelyn asettamat vaatimukset

3 Looginen suunnittelutMyn3 •Tarkastellaan erikseen eheysvaatimusten täyttämistä. •Eheys hoidetaan perus- ja viiteavainten avulla. •Otetaan esimerkkinä isätauluksi Henkilokunta ja lapsitauluksi Vuokrattavat. Olkoot ne tässä muotoa: Henkilokunta(hloNro, nimi, asema) Perusavain hloNro Vuokrattavat(tilaNro, osoite, hloNro) Perusavain tilaNro Viiteavain hloNro, joka viittaa Henkilokunta(hloNro)- sarakkeeseen

4 Looginen suunnittelutMyn4 •Tapaus 1: Lisätään rivi (INSERT) lapsitauluun Eheysvaatimus: viiteavaimen arvoksi on annettava NULL tai sitten jokin isätaulun perusavaimen arvo •Tapaus 2: Poistetaan (DELETE) rivi lapsitaulusta Eheysvaatimus: ei edellytä toimenpiteitä •Tapaus 3: Muutetaan (UPDATE) viiteavaimen arvo lapsitaulussa Eheysvaatimus: sama kuin kohdassa 1

5 Looginen suunnittelutMyn5 •Tapaus 4: Lisätään uusi rivi (INSERT) isätauluun Eheysvaatimus: ei edellytä toimenpiteitä •Tapaus 5: Poistetaan rivi (DELETE) isätaulusta. Eheysvaatimus: Eheys menetetään, jos lapsitaulussa on rivi, joka viittaa tähän poistettavaan riviin. Nyt on useampi tapa reagoida asiaan:

6 Looginen suunnittelutMyn6 •NO ACTION, RESTRICT Tämä tarkoittaa, että isätaulun rivin poistaminen estetään, jos lapsitaulussa on rivi, joka viittaa tähän poistettavaan riviin. Esim. ei voida poistaa Henkilokunta- taulusta riviä, jos kyseinen henkilö hoitaa jotakin vuokrattavaa kohdetta (taulu Vuokrattavat). •CASCADE Tämä valinta tarkoittaa, että jos isätaulusta poistetaan rivi, niin sitten poistetaan myös se rivi lapsitaulusta, joka viittaa tähän poistettavaan riviin isätaulussa. Tämä menee tarvittaessa eteenpäin: jos lapsitaulu on edelleen isätauluna toiselle lapsitaululle…

7 Looginen suunnittelutMyn7 •Henkilokunta – Vuokrattavat –esimerkissä: Jos isätaulusta poistetaan rivi (yksi henkilökunnan jäsen), niin sitten poistetaan myös kaikki ne kohteet (Vuokrattavat) joita hän mahdollisesti hallinnoi. Ei ole järkevä strategia tässä tapauksessa… •SET NULL Jos isätaulusta poistetaan rivi (yksi henkilökunnan jäsen), niin sitten lapsitaulussa kaikki vastaavat viiteavaimet saavat arvon NULL. Tulkinta: Jos henkilö jättää yrityksen, niin sitten hänen hallinnoimansa kohteet eivät ole enää kenenkään hoidettavana. Tämä valinta on mahdollinen, jos viiteavaimen arvoalueen yhtenä attribuuttina on NULL.

8 Looginen suunnittelutMyn8 •SET DEFAULT Kun isätaulun rivi poistetaan, niin sitten lapsitaulun vastaavien rivien viiteavaimet asetetaan oletusarvoikseen. Henkilokunta – Vuokrattavat –esimerkissä: Jos isätaulusta poistetaan rivi (yksi henkilökunnan jäsen), niin sitten tämän henkilön hallinnoimat kohteet annetaan jollekin toiselle henkilölle (konttoripäällikkö tms.) hoidettavaksi. Tämä valinta on mahdollinen, jos viiteavaimen arvoalueen yhtenä attribuuttina on määritelty jokin DEFAULT-arvo.

9 Looginen suunnittelutMyn9 •Tapaus 6: Muutetaan (UPDATE) isätaulun perusavaimen arvo. Eheysvaatimus: Jos mitään ei tehdä lapsitaulun sen rivin viiteavaimelle, joka viittaa tähän poistettavaan perusavaimeen isätaulussa, niin eheys menetetään. Yllä esitetyistä vaihtoehdoista (NO ACTION, CASCADE, SET NULL, SET DEFAULT) luontevin lienee CASCADE.

10 Looginen suunnittelutMyn10 •Valmis looginen suunnitelma voisi näyttää seuraavanlaiselta. Mukana on relaatiokuvaukset avaimineen ja UML-kaavio relaatioista.

11 Looginen suunnittelutMyn11 Toimipiste (tpNro, katuOs, kaupunki, postiNro, joHloNro) Primary Key tpNro Foreign Key joHloNro references Johtaja(hloNro) ON UPDATE CASCADE ON DELETE RESTRICT Henkilokunta(hloNro, eNimi, sNimi, asema, sPuoli, sAika, palkka, ryhmaPaallHloNro, tpNro) Primary Key hloNro Foreign Key ryhmaPaallHloNro references Henkilokunta(hloNro) ON UPDATE CASCADE ON DELETE RESTRICT Foreign Key tpNro references Toimipiste(tpNro) ON UPDATE CASCADE ON DELETE RESTRICT yksityisOmistaja(omistajaNro, eNimi, sNimi, osoite, puhNro) Primary Key omistajaNro

12 Looginen suunnittelutMyn12 Vuokrattavat(tilaNro, katuOs, kaupunki, postiNro, tyyppi, huoneLkm, vuokra, omistajaNro, hloNro, tpNro) Primary Key tilaNro Foreign Key omistajaNro references yksityisOmistaja(omistajaNro) AND yritysOmistaja(omistajaNro) ON UPDATE CASCADE ON DELETE RESTRICT Foreign Key hloNro references Henkilokunta(hloNro) ON UPDATE CASCADE ON DELETE RESTRICT Foreign Key tpNro references Toimipiste(tpNro) ON UPDATE CASCADE ON DELETE RESTRICT Puhelin(puhNro, tpNro) Primary Key puhNro Foreign Key tpNro references Toimipiste(tpNro) ON UPDATE CASCADE ON DELETE RESTRICT Johtaja(hloNro, johtAloitPva, bonus) Primary Key hloNro Foreign Key hloNro references Henkilokunta(hloNro) ON UPDATE CASCADE ON DELETE RESTRICT

13 Looginen suunnittelutMyn13 yritysOmistaja(omistajaNro, yrNimi, yrTyyppi, yhteysHlo, osoite, puhNro) Primary Key omistajaNro Esittely(asiakasNro, tilaNro, esPaiva, komm) Primary Key asiakasNro, tilaNro Foreign Key asiakasNro references Asiakas(asiakasNro) ON UPDATE CASCADE ON DELETE RESTRICT Foreign Key tilaNro references Vuokrattavat(tilaNro) ON UPDATE CASCADE ON DELETE RESTRICT Asiakas(asiakasNro, eNimi, sNimi, puhNro, paremm, maxV) Primary Key asiakasNro

14 Looginen suunnittelutMyn14 Vuokrasopimus(sopimusNro, maksutapa, takuusumma, alkPaiva, lopPaiva, asiakasNro, tilaNro) Primary Key sopimusNro Foreign Key asiakasNro references Asiakas(asiakasNro) ON UPDATE CASCADE ON DELETE RESTRICT Foreign Key tilaNro references Vuokrattavat(tilaNro) ON UPDATE CASCADE ON DELETE RESTRICT Mainos(tilaNro, slehdenNimi, pvm, kustannus) Primary Key tilaNro, slehdenNimi, pvm Foreign Key tilaNro references Vuokrattavat(tilaNro) ON UPDATE CASCADE ON DELETE RESTRICT Foreign Key slehdenNimi references Sanomalehti(slehdenNimi ) ON UPDATE CASCADE ON DELETE RESTRICT Sanomalehti(slehdenNimi, osoite, puhNro, yhteysHlo) Primary Key slehdenNimi

15 Looginen suunnittelutMyn15 Rekisterointi(asiakasNro, tpNro, hloNro, pvm) Primary Key asiakasNro Foreign Key asiakasNro references Asiakas(asiakasNro) ON UPDATE CASCADE ON DELETE RESTRICT Foreign Key tpNro references Toimipiste(tpNro) ON UPDATE CASCADE ON DELETE RESTRICT Foreign Key hloNro references Henkilokunta(hloNro) ON UPDATE CASCADE ON DELETE RESTRICT

16 Looginen suunnittelutMyn16 hloNro {PK} ryhmaPaallHloNro {FK} tpNro {FK} Henkilokunta tpNro {PK} joHloNro {FK} Toimipiste puhNro {PK} tpNro {FK} Puhelin Johtaja hloNro {PK, FK} asiakasNro {PK, FK} tpNro {FK} hloNro {FK} Rekisterointi Vuokrattavat tarjoaa 1..1 1..* rekisteröi 1..* 1..1 1..* toimipisteessä on 0..* 1..1 hoitaa valvoo 0..1 1..10 1..1 IS A 1..1 johtaa 1..1 1..* toimipisteellä on hallinnoi Vuokrattavat 0..100 0..1 Asiakas 1..1 sopii

17 Looginen suunnittelutMyn17 Asiakas asiakasNro {PK} sopimusNro, {PK} asiakasNro {FK} tilaNro {FK} Vuokrasopimus asiakasNro {PK, FK} tilaNro {PK, FK} Esittely Vuokrattavat tilaNro {PK} omistajaNro {FK} hloNro {FK} tpNro {FK} yksityisOmistaja omistajaNro {PK} yritysOmistaja omistajaNro {PK} tilaNro, {PK, FK} slehdenNimi {PK, FK} pvm {PK} Mainos Sanomalehti slehdenNimi {PK} mainostaa 1..1 1..* 1..10..* laitetaan mukaan 1..* 0..1 1..* 0..1 omistaa 1..1 0..* otetaan mukaan Toimipiste tarjoaa 1..* 0..* 1..1 vuokrattu Henkilokunta hallinnoi0..100 pyytää 1..1 0..* on voimassa 1..1 0..* Rekisterointi 1..1 0..1 1..1 sopii


Lataa ppt "Looginen suunnittelutMyn1 Looginen suunnittelu •Tässä lähdetään liikkeelle käsitemallista. •Laaditaan sisällöstä ja rakenteesta loogisen tason kuvaus,"

Samankaltaiset esitykset


Iklan oleh Google