Tietokannan rakenteen suunnittelu



Samankaltaiset tiedostot
Tietokannan suunnittelu

Tietokannan suunnittelu

Luento 3 Tietokannan tietosisällön suunnittelu

HELIA 1 (17) Outi Virkki Tiedonhallinta

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

HELIA 1 (20) Outi Virkki Tiedonhallinta

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

HELIA 1 (14) Outi Virkki Tiedonhallinta

Käsitteellinen mallintaminen

TIEDONHALLINNAN PERUSTEET - SYKSY 2013

2. Käsiteanalyysi ja relaatiomalli

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

HELIA 1 (19) Outi Virkki Tietokantasuunnittelu

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

HELIA 1 (21) Outi Virkki Tietokantasuunnittelu

Tietokantojen suunnittelu, relaatiokantojen perusteita

HELIA 1 (12) Outi Virkki Tiedonhallinta

Luento 2: Tiedostot ja tiedon varastointi

TIEDONHALLINTA - SYKSY Luento 7. Pasi Ranne /10/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 TIKO-05 1 (20) ICT03D Tieto ja tiedon varastointi O.Virkki

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

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

3. Käsiteanalyysi ja käsitekaavio

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

HAAGA-HELIA TIKO - Heti09 1 (22) ICT05 Tiedonhallinta ja Tietokannat E.Räty, O.Virkki, M.Laiho

POLKU LUOKKAKAAVIOISTA TAULUJEN TOTEUTUKSEEN

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

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

CSE-A1200 Tietokannat

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

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

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

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

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

Tietokantakurssit / TKTL

HELIA 1 (8) Outi Virkki Tietokantasuunnittelu

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

Relaatioista TIETOJENKÄSITTELYTIETEIDEN LAITOS, JUHA IISAKKA 11-14

HELIA 1 (21) Outi Virkki Tietokantasuunnittelu

YHTEYSSUHDE (assosiation)

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

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

Ohjelmistojen mallintaminen luokkamallin lisäpiirteitä

Relaatiomalli ja -tietokanta

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

JHS 162 Paikkatietojen mallintaminen tiedonsiirtoa varten Liite 1 UML-mallinnus

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

Tieto ohjelmassa ja tietokoneella

on ohjelmoijan itse tekemä tietotyyppi, joka kuvaa käsitettä

HELIA 1 (17) Outi Virkki Tiedonhallinta

3. Taulujen määrittely ja muuttaminen

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

Ohjelmistojen mallintaminen, olioja relaatiomallinnuksen suhteesta

Discgolf scorekeeper - Fisbeegolf pistetilasto. Ville-Veikko Saari 12. tammikuuta 2016

3. TAULUJEN MÄÄRITTELY JA MUUTTAMINEN

OpenOffice.org Base 3.1.0

Paikkatiedon mallinnus Dokumentoinnin ymmärtäminen. Lassi Lehto

Tietokannat II -kurssin harjoitustyö

Kari Aalto Saariston IT

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

Tieto/datamallit. Marttila-Kontio/Unicta Oy

Induktio kaavan pituuden suhteen

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

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

Tietokannat II -kurssin harjoitustyö

FYYSINEN SUUNNITTELU

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

5 Olio-ohjelmointi 133

NORMALISOINTI TIETOJEN MALLINNUS JOUNI HUOTARI & ARI HOVI

Ohjelmistojen mallintaminen Luokkakaaviot Harri Laine 1

HELIA 1 (15) Outi Virkki Tiedonhallinta

TIETOKANTOJEN PERUSTEET OSIO 11 MARKKU SUNI

HARJOITUS 2. Kasvattamot ja mittaukset

CS-A1150 Tietokannat CS-A1150 Tietokannat / 43

Ohjelmistojen mallintaminen, kesä 2010

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

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

Näkymät ja tiedon suojaus

Relaatioalgebra. Kyselyt:

OHJ-1151 Ohjelmointi IIe

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

Java-kielen perusteet

811120P Diskreetit rakenteet

HELIA 1 (15) Outi Virkki Tietokantasuunnittelu

Ohjelmistotekniikan menetelmät, luokkamallin laatiminen

Luokkamalli LUOKKAKAAVIO. Tämän osan sisältö. Luokkamalli. Luokka ja olio. Luokkakaavio (class diagram)

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

Luonnollisten lukujen laskutoimitusten määrittely Peanon aksioomien pohjalta

Analyysi, staattinen mallintaminen, kohdealueen malli ja luokkakaavio

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

HELIA 1 (14) Outi Virkki Tiedonhallinta

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

Ohjelmoinnin perusteet Y Python

Opintopiiritehtävä 3: Verkkohuutokauppa

UML -mallinnus LUOKKAKAAVIO EERO NOUSIAINEN

Ohjelmoinnin perusteet Y Python

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

Jokaisella tiedostolla on otsake (header), joka sisältää tiedostoon liittyvää hallintatietoa

Transkriptio:

HAAGA-HELIA Heti-09 1 (12) ICT05 Tiedonhallinta ja tietokkanat Tietokannan rakenteen suunnittelu Tietokannan suunnitteluprosessi... 2 Lähtökohdat... 3 Looginen mallintaminen... 4 Muunnos luokkakaaviosta relaatiokaavioksi 1.vaihe... 5 Relaatiokaaviosta relaatiokaavoiksi 2.vaihe... 7 Käsitekaavion ja relaatiokaavion eroja... 9 Arvojoukkoeheys... 10 Tietotyyppi... 10 Null-arvot... 11 Tietohakemiston päivitys... 11 Käsitteitä... 12

HAAGA-HELIA Heti-09 2 (12) Tietokannan suunnitteluprosessi Vaihe Tavoite Päätehtävät Tuotokset Käsitteellinen mallintaminen (Conceptual Modeling) Ymmärtää kohdealueen toiminta ja terminologia Keskeiset käsitteet, niiden merkitys ja ominaisuudet sekä niiden väliset suhteet Luokkakaavion suunnittelu Tietohakemiston määrittely Luokkakaavio (class diagram) Tietohakemistokuvaukset Looginen mallintaminen (Logical Modeling) Esittää luokkakaavion tietosisältö relaatiotietomallin (relational model) mukaisesti Relaatiokaavion johtaminen Normalisointi Relaatiokaavio (Logical Schema) Eheysmäärittelyt (Integrity Constraints) Fyysinen mallintaminen (Physical Modeling) Fyysisen talletusratkaisun ja suojausten suunnittelu Suojausten suunnittelu Suorituskyvyn optimointi SQL-lauseet, joilla tietokannan objektit luodaan

HAAGA-HELIA Heti-09 3 (12) Lähtökohdat Tietokannan tietosisällön suunnittelu on valmistunut kun käsitteellinen suunnitteluaihe on päättynyt Lopputuloksina: 1. Luokkakaavio 2. Tietohakemistokuvaukset Käsitteen nimi: Nimilyhenne: Määritelmä: Ominaisuudet: Pääavain: Opettaja OPE Oppilaitoksessa ammatikseen opetustyötä tekevä henkilö, jonka työsuhde on voimassa tai päättynyt Opettajanumero, Sukunimi, Etunimi, Huone, Puhelinnumero Opettajanumero

HAAGA-HELIA Heti-09 4 (12) Looginen mallintaminen Tietokannan tietosisällön kuvaus sovitetaan käytettävän tietomallin mukaiseksi - tyypillisesti relaatiotietokannan mukaiseksi Looginen suunnittelu on riippumaton käytettävästä tietokantatuotteesta ja laitealustasta 1. Laadi luokkakaavion pohjalta relaatiokaavio 2. Lisää viiteavaimet 3. Normalisoi tarvittaessa (normalisointia opetellaan seuraavalla luennolla) 4. Tarkista relaatiot suhteessa tietotarpeisiin 5. Korjaa relaatiokaaviota tarvittaessa 6. Määrittele eheyssäännöt

HAAGA-HELIA Heti-09 5 (12) Muunnos luokkakaaviosta relaatiokaavioksi 1.vaihe Luokkakaavio vaatii tiettyjä muutoksia, jotta siitä saadaan relaatiotietomallin mukainen relaatiokaavio 1. Jokaista luokkaa vastaa yksi relaatio. Luokan attribuuteista tulee alustavasti relaation attribuutteja 2. Jokainen monen suhde moneen yhteys kuvataan omana relaationaan (ts. luodaan uusi ns. apurelaatio / välittävä relaatio) 3. Yhteys, johon liittyy attribuutteja, kuvataan omana relaationaan 4. Jokainen moniarvoinen ominaisuus kuvataan omana relaationaan 5. Mahdollinen ylemmän asteen yhteys (Yhteys jossa on useampi kuin 2 osapuolta) muutetaan binääriyhteyksiksi (kahden välisiksi yhteyksiksi), jonka toiseksi osanottajaksi luodaan välittävä relaatio 6. Pääluokan ja aliluokan välinen perintäsuhde muutetaan yhden suhde yhteen yhteydeksi. Mahdollisia koostumus- eli aggragaattiyhteyksiä käsitellään kuten tavallisia assosiaatioyhteyksiä Jos kirjoitat kaavioon myös attribuutit, lisää viiteavaimet vaihe2:n ohjeen mukaisesti

HAAGA-HELIA Heti-09 6 (12) Esim. Kurssihallinto Luokkakaavio Relaatiokaavio 1. Ei monen suhde moneen -yhteyksiä 2. Ei korkeamman asteen yhteyksiä (vain binääriyhteyksiä) 3. Ei yhteyksiä, joihin liittyy attribuutteja 4. Ei luokkia, joissa moniarvoisia attribuutteja 5. Ei aliluokkia

HAAGA-HELIA Heti-09 7 (12) Relaatiokaaviosta relaatiokaavoiksi 2.vaihe Luokkien attribuutteihin lisätään viiteavaimet kuvamaan relaatioiden välisiä yhteyksiä: 1. Jokainen 1:n yhteys kuvataan lisäämällä viiteavain yhteyden n-päässä olevaan relaatioon 2. Jokainen 1:1 yhteys kuvataan lisäämällä viiteavain toiseen osallistuvaan osapuoleen (siihen joka ei ole yhteydessä pakollinen). 3. Jokainen aliluokka kuvataan omana relaationaan se. pääavain on sama kuin pääluokan pääavain pääavain määritellään myös viiteavaimeksi viittaamaan pääluokkaa vastaavaan relaatioon. Ominaisuuksiksi määritellään vain sen omat emotyypistä poikkeavat ominaisuudet (ja mahd. viiteavaimet) Aliluokan relaatiototeutuksessa voidaan päätyä myös muunlaisiin ratkaisuihin

HAAGA-HELIA Heti-09 8 (12) Esim. Kurssihallinto viiteavainten lisääminen OPETTAJA(ope_id, ope_sukunimi, ope_etunimi, ope_huone, ope_puh) KURSSI(krs_id, krs_ope_id, krs_nimi, krs_laajuus, krs_alku_pvm, krs_loppu_pvm) OPISKELIJA(opi_id, opi_sukunimi, opi_etunimi, opi_katuosoite, opi_postino, opi_puh) OSALLISTUMINEN(krs_id, opi_id, opi_krs_arvosana)

HAAGA-HELIA Heti-09 9 (12) Käsitekaavion ja relaatiokaavion eroja Käsitekaavio tavoitteena ymmärtää ja kuvata kohdealueen käsitteistö ja rakenne kuvaa kohdealueen käsitteet = luokat (ja attribuutit) sekä luokkien väliset yhteydet pääavain jokaiselle luokalle viiteavainta ei tarvita (mutta saa olla) luokkahierarkia ja koostumussuhde OK monen suhde - moneen yhteydet sallittu tietotyyppejä ei tarvitse vielä määritellä Relaatiokaavio = looginen kaavio tavoitteena kuvata kohdealueen rakenne relaatiotietomallin mukaisesti kuvaa kohdealueen käsitteitä vastaavat relaatiot (ja attribuutit) sekä relaatioiden väliset yhteydet relaatiotietomallin mukaisesti pääavain jokaiselle relaatiolle viiteavain kuvaamaan yhteyttä relaatioiden välillä vain assosiaatiot sallittu monen suhde - moneen yhteydet ei sallittu tietotyypit mieluusti määritelty

HAAGA-HELIA Heti-09 10 (12) Arvojoukkoeheys Tietotyyppi Relaation attribuuteille määritellään tietotyyppi (ja pituus) Tietokoneessa kaikki tiedot esitetään bittijonoina ja koneen kannalta bittijono on vain bittijono. Ihmisen kannalta tietyt bittijonot esittävät kokonaislukuja / desimaalilukuja / merkkejä / päivämääriä; siis tiedoilla on jokin tyyppi (type). Tietotyyppi määrittää 1. millaisia arvoja tieto voi saada 2. millaisilla operaatioilla sitä voi käsitellä Eri tietokannan hallintajärjestelmät ja ohjelmointikielet tuntevat hieman erilaisia tietotyyppejä Järjestelmä pystyy tarjoamaan automaattisesti tiedon sisältöön ja siihen kohdistettuihin operaatioihin liittyviä tarkistuksia (esim. sukunimiä ei saa laskea yhteen) Tavallisimmat tietotyypit Teksti / merkkijono Luku Päivämäärä esim. char, varchar, text, esim. integer, decimal esim. date SQL:n tietotyyppejä käsitellään tarkemmin SQL-osassa Kunkin attribuutin tietotyyppi kirjataan joko relaatiokaavioon tai tietohakemistoon

HAAGA-HELIA Heti-09 11 (12) Null-arvot Kullekin attribuutille on määriteltävä, ovatko null-arvot sallittu vai ei esim. sukunimi varchar(30) not null Null ~ Arvo puuttuu, koska sitä ei tiedetä ~ Arvo puuttuu, koska sitä ei ole Tietohakemiston päivitys Käsitteen nimi: Opettaja Nimilyhenne: OPE Määritelmä: Oppilaitoksessa ammatikseen opetustyötä tekevä henkilö, jonka työsuhde on voimassa tai päättynyt Ominaisuudet: Opettajanumero integer not null, Sukunimi varchar(30) not null, Etunimi varchar(30) not null, Huone char(4), Puhelinnumero varchar(20) Yksikko_lyh varchar(10) Pääavain: Opettajanumero Viiteavain: Yksikko_lyh

HAAGA-HELIA Heti-09 12 (12) Käsitteitä Käsitekaavio (Conceptual Schema) Tietokannan tietosisällön kuvaus, jossa kohdetta kuvataan käsitteinä ja niiden välisinä suhteina. Kuvaus on riippumaton toteutusratkaisuista. Luokkakaavio (Class Diagramm) Kohdealueen kuvaus, jossa kohdetta kuvataan käsitteinä (=luokkina) ja niiden välisinä suhteina. Kuvaus on riippumaton toteutusratkaisuista mutta on keskeinen osa oliopohjaista suunnittelua. Relaatiokaavio Tietokannan tietosisällön kuvaus (piirros), jossa kohdetta kuvataan relaatioina ja niiden välisinä yhteyksinä relaatiotietomallin mukaisesti. Kuvaus on riippumaton toteutusratkaisusta. Relaatiokaava (Relation schema) Matemaattinen tapa kuvata relaation rakenne R(a1, a2, an) Tietohakemisto Tietokannan käsitteiden määrittely sanallisesti. Voi sisältää sekä käsitteellisen että loogisen vaiheen määrittelyjä Katso myös Sanasto-linkki kurssin sivuilta.