HELIA 1 (19) Outi Virkki Tietokantasuunnittelu 9.3.2001



Samankaltaiset tiedostot
HELIA 1 (12) Outi Virkki Tiedonhallinta

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

Tietokannan suunnittelu

HELIA 1 (20) Outi Virkki Tiedonhallinta

HELIA 1 (17) Outi Virkki Tiedonhallinta

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

Tietokannan suunnittelu

HELIA 1 (8) Outi Virkki Tietokantasuunnittelu

HELIA 1 (15) Outi Virkki Tietokantasuunnittelu

TIETOKANTOJEN PERUSTEET OSIO 11 MARKKU SUNI

Luento 3 Tietokannan tietosisällön suunnittelu

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

Tietokantojen suunnittelu, relaatiokantojen perusteita

3. Käsiteanalyysi ja käsitekaavio

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

TIEDONHALLINNAN PERUSTEET - SYKSY 2013

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

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

HELIA 1 (21) Outi Virkki Tietokantasuunnittelu

2. Käsiteanalyysi ja relaatiomalli

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

3. Taulujen määrittely ja muuttaminen

Tietokannan rakenteen suunnittelu

CSE-A1200 Tietokannat

Tietokannat II -kurssin harjoitustyö

3. TAULUJEN MÄÄRITTELY JA MUUTTAMINEN

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

Relaatiomalli ja -tietokanta

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

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

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

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

Tietokantakurssit / TKTL

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

HELIA 1 (14) Outi Virkki Tiedonhallinta

SQL - STRUCTURED QUERY LANGUAGE

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

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

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

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

HAAGA-HELIA Heti-09 1 (12) ICT05 Tiedonhallinta ja Tietokannat O.Virkki Näkymät

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

Denormalisointia turvallisesti. Ougf syysseminaari Pörssitalo Helsinki Timo Raitalaakso

HARJOITUS 2. Kasvattamot ja mittaukset

TIETOKANTOJEN PERUSTEET OSIO 8 MARKKU SUNI

HELIA 1 (15) Outi Virkki Tietokantasuunnittelu

CS-A1150 Tietokannat CS-A1150 Tietokannat / 43

Tieto ohjelmassa ja tietokoneella

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

HELIA 1 (14) Outi Virkki Tiedonhallinta

CS-A1150 Tietokannat CS-A1150 Tietokannat / 44

Oppijan palvelukokonaisuus. Tietomallinnuksen laaja katselmointi

Helsingin yliopisto/tktl Tietokantojen perusteet, s 2007 SQL:n perusteet. Harri Laine 1. SQL tietokantakieli. SQL tietokantakieli

Tietokannan hallintajärjestelmän (DBMS) palvelut ja rakenne

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

TIETOKANTOJEN PERUSTEET MARKKU SUNI

Opettajana Mika Sorsa, HAMK:n ammatillisen opettajakoulutuksen opetusharjoittelija

Haaga-Helia / TIKO-05 1 (12) Tietokannan suunnittelu ja Toteutus Outi Virkki

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

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

Ohjelmistojen mallintaminen, olioja relaatiomallinnuksen suhteesta

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

2. Haet työntekijöiden tiedot etunimen mukaan nousevasti järjestettyinä. (ORDER BY) SELECT * FROM employees ORDER BY firstname ASC;

HELIA 1 (14) Outi Virkki Käyttöliittymät ja ohjlmiston suunnittelu

HELIA 1 (11) Outi Virkki Tiedonhallinta

Relaatioista TIETOJENKÄSITTELYTIETEIDEN LAITOS, JUHA IISAKKA 11-14

HELIA 1 (14) Outi Virkki Tiedonhallinta

POLKU LUOKKAKAAVIOISTA TAULUJEN TOTEUTUKSEEN

HELIA 1 (15) Outi Virkki Tiedonhallinta

Tietokantojen perusteet k2004helsingin yliopisto/tktl Tietokantojen perusteet, s 2005 SQL-perusteet. Harri Laine 1. SQL tietokantakieli

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

määritellä ja muokata tietokantaa ja sen käyttöoikeuksia virittää tietokannan talletusrakenteita hakea tietoa tietokannasta

Tiedonhallinnan perusteet. Viikko 1 Jukka Lähetkangas

HELIA 1 (21) Outi Virkki Tietokantasuunnittelu

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

NORMALISOINTI TIETOJEN MALLINNUS JOUNI HUOTARI & ARI HOVI

Tietokannanhallintajärjestelmä (DBMS)

Toad Data Modeler Lari Hoppula Annika Koppelomäki Johanna Pietilä Esko-Pekka Tähti

Tietokannat II -kurssin harjoitustyö

HELIA 1 (13) Outi Virkki Tietokantasuunnittelu

Tiedonhallintajärjestelmän rakenne ja Suorituskyky

Tietotekniikan laitos Käki-projekti TIETOKANTASUUNNITELMA. 1. Johdanto

Proseduurit, funktiot ja herättimet - esimerkkeinä Oracle, SQL Server, MySQL ja OCELOT. Jouni Huotari S2008

PROSEDUURIT, FUNKTIOT JA HERÄTTIMET - ESIMERKKEINÄ ORACLE, SQL SERVER, MYSQL JA OCELOT JOUNI HUOTARI K2009

TIETOKANNAN SUUNNITTELU

TIETOKANNAT kevät 2002 Itseopiskeluosio osa 2/3

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

HELIA 1 (11) Outi Virkki Tiedonhallinta

HAAGA-HELIA Heti-09 1 (14) ICT05: Tiedonhallinta ja Tietokannnat O.Virkki Transaktionkäsittely

Relaatioalgebra. Kyselyt:

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

määritellä ja muokata tietokantaa ja sen käyttöoikeuksia virittää tietokannan talletusrakenteita hakea tietoa tietokannasta

SQL-kielen perusteet. Tietokantojen perusteet

HELIA 1 (17) Outi Virkki Tiedonhallinta

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

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

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

SELECT-lauseen perusmuoto

Tietokantasovelluksen määrittelydokumentti

Korkeakoulujen yhteentoimivuusmalli

Transkriptio:

HELIA 1 (19) Luento 11 Eheyssäännöt (Integrity Constraints)... 2 Eheyden valvonta... 3 Yksilön eheyssääntö... 4 Arvojoukkoeheyssäännöt... 5 Null-arvoista... 6 Viite-eheyssäännöt... 7 Emorelaation päivitys... 9 Lisäys... 9 Poisto / Pääavaimen muutos... 9 Lapsirelaation päivitys... 11 Lisäys / Viiteavaimen muutos... 11 Poisto... 11 Sovellusaluekohtaiset säännöt... 13 Yhteenveto... 14 Tietokannan suunnittelun abstraktiotasot... 14 3-tasomalli... 14 TIHA-standardi (SFS-106) 1988... 15 Kuvaustasot toinen näkökulma... 16 Käsite- ja loogisen tason suunnittelun kulku... 17 Satunnaisia suosituksia... 18 Kysymyksiä käsite- ja loogisen tason tietokantasuunnittelusta? 19

HELIA 2 (19) Eheyssäännöt (Integrity Constraints) Osa relaatiotietomallia 1. Yksilön eheyssääntö (entity integrity constraints) 2. Viite-eheyssääntö (referential integrity constr.) 3. Arvojoukko-eheyssääntö (domain constraints) 4. Käyttäjän määrittelemät sovelluskohtaiset eheyssäännöt Eheys Yksittäisen tai useamman tietovaraston tietojen sisäinen ristiriidattomuus

HELIA 3 (19) Eheyden valvonta a) Tiedonhallintajärjestelmä b) Sovellusohjelma c) Käyttäjä Yksilön eheyssäännöstä tiedonhallintajärjestelmät ovat huolehtineet jo pitkään Viite-eheydestä ja arvojoukkoeheydestä on perinteisesti huolehdittu sovellusohjelmassa Virhealtis, epäluotettava Tiedonhallintajärjestelmät tukevat eheyden valvontaa vaihtelevasti Vain osa määriteltävissä Rajoituksia Syntaksit erilaisia, heikko siirrettävyys Luotettavin tapa

HELIA 4 (19) Yksilön eheyssääntö Entity Integrity Relaatiossa ei saa olla kahta tai useampaa täysin samanlaista riviä Pääavain on pienin joukko attribuutteja, jotka riittävät yksilöimään kunkin relaation rivin Esim. KOIRA Rekno Nimi Rotu S-vuosi 105 Anki Seka 1995 110 Turkka Suom.pk 1993 120 Turkka Suom.pk 1993 150 Saara Labr. 2000... Tietokannan hallintajärjestelmä huolehtii yksilön eheyssäännön valvonnasta, mikäli eheyssääntö on määritelty tietokantaan (Primary Key Constraint)

HELIA 5 (19) Arvojoukkoeheyssäännöt Domain Constraints Tulkinta ja määrittely vaihtelee! a) Attribuutin arvot kuuluvat samaan arvojoukkoon. b) Kaikki arvojoukkoon liittyvät rajoitukset: tietotyyppi, pituus, oletusarvo, sallitut arvot, välttämättömyys/pakollisuus, erilaisuus, ) Tietokannan hallintajärjestelmä huolehtii viite-eheyssäännön valvonnasta useamman mekanismin avulla: tietotyyppitarkistus oletusarvomääritykset (Default value) eheyssääntömäärittelyt (Check Constraint) (myös pakollisuus / not null -määrittelyt) erilaisuusmäärittelyt (Unique Constraint) herättimet (Trigger) Esim. Asiakkaan_tyyppi Char(10) Not null Default( yritys ) Check(value in yritys, yksityinen ),

HELIA 6 (19) Null-arvoista Puuttuva arvo Tuntematon arvo 0 Ä esitystavat ja käyttäytyminen eri operaatioissa vaihtelevat eri tiedonhallintajärjestelmissä lajittelu vertailut funktiot liitokset... Å toiminta testattava, jos haluaa välttää ennalta arvaamattomia tuloksia / seurauksia Ä vältä mahdollisuuksien mukaan! Ä jos et voi välttää, varaudu mahdollisuuksien mukaan

HELIA 7 (19) Viite-eheyssäännöt Referential Integrity Ä Viiteavaimet ainoa keino määritellä yhteyksiä relaatioiden välille (Foreign Key Constraint) Viite-eheyden ylläpito Mitä toimenpiteitä tehdään kun äiti- tai lapsirelaatioon kohdistuu lisäys, muutos tai poisto Ä Määritellään käsitekaavion (ja käyttäjien haastattelun) perusteella Perustana kohdealueen toimintasäännöt Terminologia Teoria Intuitiivinen Englanti Viittaava relaatio Lapsi-relaatio Referencing relation Viitattu relaatio Emo-relaatio Referenced relation Target relation

HELIA 8 (19) Esim. esimies <-o---- ->> työntekijä Kullakin esimiehellä on välttämättä työntekijä, mahdollisesti useampia; Kullakin työntekijällä on mahdollisesti esimies, mutta vain 1 Eheyssäännöt 1.1 Esimies poistetaan -> työntekijöiden esimiestieto tyhjäksi 1.2 Uusi esimies -> kirjattava vähintään 1 alainen 1.3 Esimiehen tunniste muuttuu -> alaisten esimies-viiteavaimet muuttuvat 2.1 Uusi alainen -> ei vaatimuksia / vaikutuksia 2.2 Alainen poistuu -> jos ko. viimeinen alainen, esimies tiedot poistetaan 2.3 Alaisen tiedot muuttuvat -> ei vaatimuksia / vaikutuksia

HELIA 9 (19) Emorelaation päivitys Lisäys - Poisto / Pääavaimen muutos Rajoitettu / Restrict / No Action Poisto / pääavaimen muutos sallitaan joss lapsirelaatiossa ei esiinny viittauksia poistettavaan Vyörytys / Cascade Poisto / pääavaimen muutos sallitaan aina. Jos lapsirelaatioita on, nekin poistetaan / niiden viiteavaimen arvo päivitetään vastaavasti Tyhjä arvo / Set null Poisto / pääavaimen muutos sallitaan aina. Jos lapsirelaatioita on, niiden viiteavaimen arvoksi asetetaan null (huom. null arvojen oltava sallittuja ko. viiteavaimelle!) Oletusarvo / Set default Poisto / pääavaimen muutos sallitaan aina. Jos lapsirelaatioita on, niiden viiteavaimen arvoksi asetetaan oletusarvo (huom. oletusarvo oltava määritelty ko. viiteavaimelle!)

HELIA 10 (19) Esim. TILAUS TOIMITTAJA Ä Huom: pakollisuutta / ehdollisuutta ei määritelty 1. Rajoitettu Käyttäjä ei voi poistaa toimittajaa, jos tilauksia on kirjattu. 2. Vyörytys Käyttäjä poistaa toimittajan ja kaikki ko. toimittajaan liitetyt tilaukset poistetaan myös (peruutetaan.) 3. Tyhjä arvo Käyttäjä poistaa toimittajan ja tilausten toimittajatieto muutetaan tyhjäksi (...) 4. Oletusarvo Käyttäjä poistaa toimittajan ja tilausten toimittajatiedoksi muuttuu vakiotoimittaja, Laatutoimitus Oy Ä Ota huomioon mahdollinen ketjuvaikutus!!

HELIA 11 (19) Lapsirelaation päivitys Lisäys / Viiteavaimen muutos Riippuvainen / Dependent Lisäys / muutos viiteavaimeen sallitaan joss emorelaatiossa on ko. viiteavainta vastaava pääavain Automaattinen / Automatic Lisäys / muutos viiteavaimeen sallitaan aina. Jos emotaulussa ei ole vastinriviä, se luodaan. (<- miten??) Tyhjä / Set null Lisäys / muutos viiteavaimeen sallitaan aina. Jos emotaulussa ei ole vastinriviä, viiteavaimen arvoksi asetetaan null. Oletusarvo / Set default Lisäys / muutos viiteavaimeen sallitaan aina. Jos emotaulussa ei ole vastinriviä, viiteavaimen arvoksi asetetaan oletusarvo. Poisto -

HELIA 12 (19) Esim. TILAUS TOIMITTAJA 5. Rajoitettu Käyttäjä liittää tilauksen johonkin olemassa olevista toimittajista 6. Automaattinen Käyttäjä liittää tilauksen olemassa olevaan tai uuteen toimittajaan, tarvittaessa uusi toimittajatieto luodaan 7. Tyhjä arvo Käyttäjä liittää tilauksen olemassa olevaan toimittajaan tai toimittajatieto jätetään tyhjäksi, 8. Oletusarvo Käyttäjä liittää tilauksen olemassa olevaan toimittajaan tai toimittajaksi kirjataan vakiotoimittaja, Laatutoimitus Oy

HELIA 13 (19) Sovellusaluekohtaiset säännöt Lisäysten, muutosten ja poistojen mielekkyyden valvonta ko. sovellusympäristössä Esim. Elokuvatehtävä: Anekdootin liityttävä vähintään yhteen seuraavista: yritys, henkilö, elokuva Esim. Fleming Ä Tiedonhallintajärjestelmät tukevat vaihtelevasti SQL-92: Assertions / yleiset säännöt / Vahvistussäännöt Liipasimet / Triggerit Å Hyödyntäminen toistaiseksi vähäistä

HELIA 14 (19) Yhteenveto Tietokannan suunnittelun abstraktiotasot 3-tasomalli Käsitetaso Ohjelmataso Fyysinen taso Tiedon nimi, merkitys ja arvot Tiedon esitys valitulla tietomallilla Tiedon esitys fyysisellä tallennusvälineellä riippumaton toteutusratkaisuista sidottu käytettävään tietomalliin ja kieleen sidottu käytettävään toteutusympäristöön ehkä yleisimmin on käytössä Ä Eri tasojen kuvaukset yhdessä kuvaavat tiedot kokonaisuudessaan Samaa asiaa ei kuvata monella tasolla. Ä Kullakin tasolla on oma peruskäsitteistönsä ja esitystekniikka Piirrokset / piirroskielet Formaalit tekstimuotoiset kuvauskielet Tietohakemistot

HELIA 15 (19) TIHA-standardi (SFS-106) 1988 Taso Keskeinen sisältö Suunnittelun tulos Käsitetaso Looginen taso Tekninen taso Fyysinen taso Kohdealueen käyttämien käsitteiden rakenne Tietomallin mukainen (looginen) tietorakenne Tietyn DBMS:n mukainen (tekninen) tietorakenne Tietyn tiedostonhallintaohjelmiston mukainen (fyysinen) talletusrakenne Käsitekaavio Normalisoidut relaatiokaavat Eheysmäärittelyt Tietokannan luontilauseet SQL:llä Tietokannan talletusmääritykset

HELIA 16 (19) Kuvaustasot toinen näkökulma Käyttäjäryhmän / Sovelluksen alikaavio Yhteisön käsitekaavio Sisäinen kaavio (Toteutusrakenne) Käsitekaavio Tietokannan käsitteellisen sisällön kuvaus Sisäinen kaavio Tietokannan toteutusrakenteen kuvaus Alikaavio Tietokannan toteutusrakenne jonkun sovellusohjelman / käyttäjäryhmän näkökulmasta Ä Teknisen tason toteutus piilotetaan kaikilta sovelluksilta Ä Joustavammin muokattavissa Ä Käsitekaavio piilotetaan siltä osin kuin ko. sovellusohjelma / käyttäjäryhmä ei sitä tarvitse Ä Ei turhaa monimutkaisuutta

HELIA 17 (19) Käsite- ja loogisen tason suunnittelun kulku 1. Tietotarpeiden kartoitus 2. Keskeisten käsitteiden / olioiden / yksilötyyppien poiminta 3. Olioiden välisten suhteiden määrittely 4. Olioiden määrittely 5. Pääavainten määrittely 6. Muiden ominaisuuksien määrittely 7. Normalisointi 8. Viite-eheysmäärittely 9. Mielekkyysmäärittely Tietokantatoteutuksen suunnittelu

HELIA 18 (19) Satunnaisia suosituksia J Tietokeskeinen suunnittelu turvaa parhaiten relevantin, johdonmukaisen ja joustavan tietokannan. Tietotarpeiden kartoitusvaiheessa voi apuna käyttää myös muita lähestymistapoja J Seurustele aktiivisesti käyttäjien kanssa Vain keskustelemalla kohdealueen käsitteellinen rakenne aukenee. Kysele. J Pitäydy johonkin metodologiaan Etenemistapa Nimeämiskäytäntö Dokumentointikäytäntö Kuvaustekniikat Työkalut J Muodolliset vaatimukset / tekniikat ovat työkaluja, käytä niitä, normalisoi relaatiot ja määrittele käsitteet J Hyödynnä kaavioita Kaavio on yksiselitteinen, parempi kun n sanaa J Ylläpidä tietohakemistoa Muuten on enemmän kuin todennäköistä, että käsitteiden tarkka merkitys on epäselvä suunnitteluun osallistuville J Määrittele olioiden lisäksi myös eheyssäännöt

HELIA 19 (19) Kysymyksiä käsite- ja loogisen tason tietokantasuunnittelusta?