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

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

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

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

Tietokantojen perusteet k2004helsingin yliopisto/tktl Tietokantojen perusteet, k 2006 relaatioalgebra. Harri Laine 1

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

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

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

HELIA 1 (17) Outi Virkki Tiedonhallinta

Tietokannan suunnittelu

TIEDONHALLINNAN PERUSTEET - SYKSY 2013

Luokkakaavion laatiminen

Tietokantojen suunnittelu, relaatiokantojen perusteita

3. Käsiteanalyysi ja käsitekaavio

POLKU LUOKKAKAAVIOISTA TAULUJEN TOTEUTUKSEEN

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

Ohjelmistojen mallintaminen Luokkakaaviot Harri Laine 1

Nimi: Henkilötunnus: {id} {+id}

Ohjelmistotekniikan menetelmät, luokkamallin laatiminen

Ohjelmistojen mallintaminen luokkamallin lisäpiirteitä

1. Tarkastellaan seuraavaa kaaviota

Relaatiotietokantojen perusteista. Harri Laine Helsingin yliopisto

Johdatus sovellussuunnitteluun, s 2001, osa 4b Helsingin yliopisto / TKTL Harri Laine / Inkeri Verkamo 1. Luokkakaavion tarkoitus

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

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

Yhteydelle voi antaa nimen kumpaankin suuntaan Sille ei tarvise antaa lainkaan nimeä Yhteysnimen asemasta tai lisäksi voidaan käyttää roolinimiä

2. Käsiteanalyysi ja relaatiomalli

Johdatus sovellussuunnitteluun, s99, osa3 Helsingin yliopisto;/tktl Harri Laine 1. Olioiden väliset yhteydet. Olioiden väliset yhteydet

YHTEYSSUHDE (assosiation)

Analyysi, staattinen mallintaminen, kohdealueen malli ja luokkakaavio

HELIA 1 (12) Outi Virkki Tiedonhallinta

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

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

Johdatus sovellussuunnitteluun, s99, osa3 Helsingin yliopisto;/tktl Harri Laine 1. Olioiden väliset yhteydet. Olioiden väliset yhteydet

NORMALISOINTI TIETOJEN MALLINNUS JOUNI HUOTARI & ARI HOVI

HELIA 1 (11) Outi Virkki Tiedonhallinta

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

Tietokantakurssit / TKTL

Luento 3 Tietokannan tietosisällön suunnittelu

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

UML - unified modeling language

HELIA 1 (20) Outi Virkki Tiedonhallinta

Oliotietokannat. Nääsvillen Oliopäivät Pekka Kähkipuro Kehitysjohtaja, FT

Ohjelmistotekniikan menetelmät Luokkamallit ohjelmiston mallintamisessa Harri Laine 1

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

HELIA 1 (8) Outi Virkki Tietokantasuunnittelu

HOJ Haja-aiheita. Ville Leppänen. HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.1/10

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

Johdatus sovellussuunnitteluun, s2000, osa5 Helsingin yliopisto;/tktl. Harri Laine 1. Luokkakaavion tarkoitus. Luokkakaavion tarkoitus

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

Olio-ohjelmoinnissa luokat voidaan järjestää siten, että ne pystyvät jakamaan yhteisiä tietoja ja aliohjelmia.

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

Tenttikysymykset. + UML-kaavioiden mallintamistehtävät

HARJOITUS 2. Kasvattamot ja mittaukset

Relaatiomalli ja -tietokanta

UML -mallinnus LUOKKAKAAVIO EERO NOUSIAINEN

Tietokantojen perusteet k2004helsingin yliopisto/tktl Tietokantojen perusteet, s 2007 ER-mallin peruskäsitteet.

Tietokannan suunnittelu

Ohjelmistojen mallintaminen, kesä 2009

Analyysi, staattinen mallintaminen, kohdealueen malli ja luokkakaavio

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

TIETOKANNAN NORMALISOINTI JA NORMAALIMUODOT

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

Ohjelmistojen mallintaminen, olioja relaatiomallinnuksen suhteesta

UML ja luokkien väliset suhteet

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

Ohjelmistojen mallintaminen luokkamallin lisäpiirteitä

Ohjelmistotekniikan menetelmät, luokkamallin laatiminen

Ohjelmistotekniikan menetelmät

Written by Administrator Monday, 05 September :14 - Last Updated Thursday, 23 February :36

Ohjelmistojen mallintaminen kertausta Harri Laine 1

Ohjelmistojen suunnittelu

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

Ohjelmistotekniikan menetelmät, kevät 2008

Tietokannat II -kurssin harjoitustyö

KOHDELUOKAN MÄÄRITTELY

Antti-Jussi Lakanen Ohjelmointi 1, C# / kevät 2011

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

Luokka- ja oliokaaviot

Ohjelmistojen mallintaminen, kesä 2010

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

Ohjelmistotekniikan menetelmät, kesä 2008

Tiedonhallinnan perusteet. Viikko 1 Jukka Lähetkangas

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

Ohjelmistotekniikan menetelmät

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

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

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

Relaatioalgebra. Kyselyt:

opiskelun suunnittelujärjestelmä, kurki ja ilmo käyttävät kaikki samaa tietokantaa, ja uusi järjestelmä tulee osaksi tätä.

HELIA 1 (15) Outi Virkki Tiedonhallinta

HELIA 1 (21) Outi Virkki Tietokantasuunnittelu

HELIA 1 (19) Outi Virkki Tietokantasuunnittelu

Analyysi on tulkkaamista

Ohjelmistojen mallintaminen, kurssikoe esimerkkivastauksia

Normalisointi. Jouni Huotari & Ari Hovi. kirjan Hovi, Huotari, Lahdenmäki: Tietokantojen suunnittelu & indeksointi, Docendo (2003, 2005) luku 5

TIETOKANNAT: MYSQL & POSTGRESQL Seminaarityö

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

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

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

AVL-puut. eräs tapa tasapainottaa binäärihakupuu siten, että korkeus on O(log n) kun puussa on n avainta

Transkriptio:

Tietokantasuunnittelusta Tietokantasuunnittelun pääperiaatteena on tiedon toiston välttäminen. Tiedon toistumiseen liittyy monenlaisia ongelmia toistuva tieto vie tilaa ylläpito muodostuu hankalaksi ylläpito-operaatioilla voi olla odottamattomia sivuvaikutuksia. Tietokantasuunnittelusta Esimerkki taulusta, joka ei käyttäydy hyvin: EMP_DEPT: E_no E_name E_bdate D_no D_name D_location M.Seppä.3.59 3 Myynti Helsinki 2 D.Leivo 4.0.40 3 Myynti Helsinki 3 K.Koivu 30..66 4 Hallinto Lahti 4 B.Oja 2.5.65 4 Hallinto Lahti 5 O.Itä 0.2.55 6 Tuotanto Helsinki Avain: E_no Jos O.Itä poistetaan, häviää tieto tuotantoosastosta Toistettava jokaisen osaston tt:n kohdalla Jos Hallinto muuttaa Espooseen om muutettava useita rivejä Tietokantasuunnittelusta Tietokannan suunnittelun vaiheita ovat tietosisällön kartoitus luokkakaaviona (Johdatus sovellussuunnitteluun) kartoittamalla attribuutit ja niiden väliset riippuvuudet loogisten rakenteiden suunnittelu ja teknisten rakenteiden suunnittelu. Loogisen rakenteen suunnittelun tavoite on sijoittaa yhteenkuuluvat tiedot samaan tauluun Järjestelmän määrittelyn yhteydessä järjestelmän tietosisältö voidaan määrittellä luokkakaavion avulla Luokkakaavio kuvaa tällöin kuvaa järjestelmän pysyväisluonteisia (persistent) tietoja - tietojen on säilyttävä ohjelman suorituskertojen välillä Luonteva paikka säilyttää olioiden tila on tietokanta: oliorakenteinen tietokanta (oliotietokanta) relaatiotietokanta relaatiotietokanta standardoitu SQL ja liittymät perinteisiin ohjelmointikieliin ei suoraa tukea olioiden välisille yhteyksille ei luokkahierarkiaa e periytymistä vain data ei toimintoja uusimmissa tkhj:ssä mukana oliopiirteitä edellyyttää muunnosta oliorakenteista relaatiorakenteiksi Lähtökohtana normalisoitu luokkakaavio = tiettyjä sääntöjä noudattava kaavio Yhteydet näkyviä, ei attribuuteiksi piilotettuja Kukin asia esitetään vain kertaalleen Ei johdettavissa / pääteltävissä olevaa tietoja Yhteydet määritelty oikeiden osapuolten välillä

Yhteydet piilotettu Olioiden välinen kytkentä esitetään aina yhteytenä, sitä ei piiloteta ominaisuudeksi (attribuutiksi) Yhteyden piilotus Olioiden välinen kytkentä esitetään aina yhteytenä, sitä ei piiloteta ominaisuudeksi (attribuutiksi) Opettajan_ Opettaja Opettajan_ Opettaja Kytkentä on piilotettuna kurssin attribuuttiin opettajan_ opetus Asiat esitetään vain kertaalleen Samaa asiaa ei pidä esittää sekä yhteytenä että ominaisuutena Tilaus Tilaajan_ tilaaja Asiakas Ei esitetä johdettavissa olevaa tietoa tulisi selvittää mitkä tiedot ovat perustietoja ja mitkä voidaan päätellä (laskea) muiden tietojen perusteella attribuutin tai yhteyden olemassaolo voi olla pääteltävissä ilmoittautunut ilmoittautuneiden_lkm Opiskelija. laskettavissa Ei esitetä johdettavissa olevaa tietoa kurssilla Harjoitusryhmä Opiskelija ryhmässä lla-yhteys on pääteltävissä, jos jokaisen kursillaolijan on oltava jossain ryhmässä Muunnoksen perussäännöt: Luokat Kutakin olioluokkaa vastaa samannen taulu Kullakin luokan yksiisella attribuutilla on samannen vastinsarake luokkaa vastaavassa taulussa Luokan tunnistavia attribuutteja vastaavat sarakkeet kuuluvat luokkaa vastaavan taulun avaimeen

Luokkakaavio: Vippi oy Relaatiorakenteen ydin - jokaista luokkaa vastaa taulu {id} {id} kuitti{id}..* pvm {id}..* hyväksyjä {id} {id}..* {+id} {id}..* kuitti pvm Muunnoksen perussäännöt: Kokoelma-attribuutit Kokoelma-attribuutit Kutakin kokoelma-attribuuttia (moniista) vastaa taulu, jonka sarakkeina ovat viiteavain kokoelmasen attribuutin sisältävää luokkaa vastaavaan tauluun, sarake attribuutin a varten. Taulun kaikki sarakkeet kuuluvat avaimeen Vippi oy:n esimerkissä ei ole kokoelmaattribuutteja esim: (id) oppi [ ] moniinen viiteavain oppi oppi Muunnoksen perussäännöt:monen suhde moneen yhteydet Monen suhde moneen yhteydet Kutakin monen suhde moneen yhteyttä vastaa taulu Taulun = yhteyden Taulun sarakkeina ovat yhteyden osapuoliin osoittavat viiteavaimet. Taulun kaikki sarakkeet kuuluvat taulun pääavaimeen monen suhde moneen yhteys on yhteys, jossa kummankin osapuolen maksimiosallistumisrajoite on suurempi kuin. (id) kuitti (id)..*

Monen suhde moneen yhteydet Muunnoksen perussäännöt:yhden suhde moneen yhteydet kuitti kuitti _ pvm Vaihtoehto : Lisää yhteyskumppaniin osoittava viiteavain sitä osapuolta vastaavaan tauluun, jolla on korkeintaan yksi kumppani Jos kookoonpanoyhteydessä kokoonpanon osien tunnistamiseen tarvitaan tieto kokonaisuudesta, niin lisätty viiteavain kuuluu taulun avaimeen. Tällaisessa tilanteessa ei ole muita vaihtoehtoja. Yhden suhde moneen yhteydet Yhden suhde moneen yhteydet Vaihtoehto 2: Toimi kuten monen suhde moneen yhteyksien kohdalla ja tee yhteyttä varten erillinen taulu Taulujen määrän minimoimiseksi vaihtoehtoa tulisi suosia, ellei siitä seuraa epäedullisia viittaussyklejä taulujen välille. (id) (id) kuitti (id) hyväksyjä pvm (id*) (id) (id*) Yhden suhde yhteen yhteydet kuitti kuitti _ hyväksyjä pvm Vaihtoehtoja: Lisää yhteyskumppaniin osoittava viiteavain yhteyden toista osapuolta vastaavaan tauluun ensisijaisesti sille, jolle yhteys on pakollinen jos yhteys on pakollinen molemmille, valitse kumpi tahansa Tee erillinen taulu, kuten monen suhde moneen tapauksessa. jos yhteys on molemmille osapuolille valinnainen

Yhden suhde yhteen yhteydet (id) naimisissa vaimo aviomies 0.. vaimo 0.. naimisissa 0.. aviomies ajokortti ajokortti (id)... ajokortti ajokortti... Vaihtoehto : Taulu sekä ala- että yläluokalle. Alaluokan tauluun sijoitetaan yläluokan tauluun osoittava viiteavain. Jos yläluokalla on käyttäjän määrittelemiä tunnistavia attribuutteja otetaan viiteavain alaluokan taulun avaimeksi. Jos yläluokan taululla ei ole käyttäjän määrittämää tunnistavaa attribuuttia, joudutaan sille luomaan keinotekoinen avain. Tätä ei oteta alaluokan taulun avaimeksi, jos alaluokalle on määritelty tunnistavia attribuutteja. käytetty keinotekoista avainta oik_ omist. osake nippu (id) oik_ oh_ omist. osake nippu (id) yritys (id) oh_ yritys oh_ pienyritys upotettu yläluokan avain pienyritys Vaihtoehto 2: Alaluokalle ei tehdä omaa taulua, vaan alaluokan tauluun loogisti kuuluvat sarakkeet upotetaan yläluokan tauluun. työntekijä (id) työntekijä alaisten_lukumäärä johtaja alaisten lukumäärä