Tietokantojen suunnittelu, relaatiokantojen perusteita



Samankaltaiset tiedostot
TIETOKANNAN NORMALISOINTI JA NORMAALIMUODOT

HELIA 1 (17) Outi Virkki Tiedonhallinta

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

Relaatiomalli ja -tietokanta

TIEDONHALLINNAN PERUSTEET - SYKSY 2013

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

2. Käsiteanalyysi ja relaatiomalli

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

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

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

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

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

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

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

HELIA 1 (20) Outi Virkki Tiedonhallinta

HELIA 1 (21) Outi Virkki Tietokantasuunnittelu

A TIETOKANNAT, 3 op Syksy TI07. Teemu Saarelainen, lehtori Tietotekniikka teemu.saarelainen@kyamk.fi

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

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

Tietokannan suunnittelu

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

3. Käsiteanalyysi ja käsitekaavio

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

Relaatioista TIETOJENKÄSITTELYTIETEIDEN LAITOS, JUHA IISAKKA 11-14

TIETOKANTOJEN PERUSTEET OSIO 11 MARKKU SUNI

HELIA 1 (12) Outi Virkki Tiedonhallinta

NORMALISOINTI TIETOJEN MALLINNUS JOUNI HUOTARI & ARI HOVI

Tiedonhallinnan perusteet. Viikko 1 Jukka Lähetkangas

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

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

POLKU LUOKKAKAAVIOISTA TAULUJEN TOTEUTUKSEEN

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

A TIETOKANNAT, 4 op Kevät TI09

Tietokannan suunnittelu

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

TIETOKANNAN SUUNNITTELU

HELIA 1 (17) Outi Virkki Tiedonhallinta

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

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

Ohjelmistojen mallintaminen, olioja relaatiomallinnuksen suhteesta

HELIA 1 (19) Outi Virkki Tietokantasuunnittelu

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

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

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

Tietokantakurssit / TKTL

Tieto/datamallit. Marttila-Kontio/Unicta Oy

HELIA 1 (8) Outi Virkki Tietokantasuunnittelu

HELIA 1 (11) Outi Virkki Tiedonhallinta

Luento 3 Tietokannan tietosisällön suunnittelu

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

Näkymät ja hakemistot

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

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

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

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

CSE-A1200 Tietokannat

SQL - STRUCTURED QUERY LANGUAGE

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

KÄSITEANALYYSI PROSESSINA JA TARVEANALYYSI

Käsiteanalyysi prosessina ja tarveanalyysi

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

Tietokannan suunnittelu

Opettajana Mika Sorsa, HAMK:n ammatillisen opettajakoulutuksen opetusharjoittelija

HARJOITUS 2. Kasvattamot ja mittaukset

3. Taulujen määrittely ja muuttaminen

3. TAULUJEN MÄÄRITTELY JA MUUTTAMINEN

Korkeakoulujen yhteentoimivuusmalli

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

TIETOKANTOJEN SUUNNITTELU

HELIA 1 (14) Outi Virkki Tiedonhallinta

Tietokannan rakenteen suunnittelu

Denormalisointia turvallisesti. Ougf syysseminaari Pörssitalo Helsinki Timo Raitalaakso

SYÖTTÖPOHJA LUKUJEN SYÖTTÖÖN ERI TARKOITUKSIIN

Visual Case 2. Miika Kasnio (C9767)

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

CS-A1150 Tietokannat CS-A1150 Tietokannat / 43

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

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

Tietokannat II -kurssin harjoitustyö

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

Opintopiiritehtävä 3: Verkkohuutokauppa

HELIA 1 (13) Outi Virkki Tietokantasuunnittelu

Helsingin yliopisto/tktl Kyselykielet, s 2006 Relaatiokalkyylit. Harri Laine 1

TIETOKANTOJEN PERUSTEET OSIO 8 MARKKU SUNI

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

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

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

CSE-A1200 Tietokannat

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

Relaatioalgebra. Kyselyt:

SELECT-lauseen perusmuoto

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

IIO10200 TIETOKANTAOHJELMOINTI (4 OP) OPINTOJAKSON ESITTELY JOUNI HUOTARI

Kari Aalto Saariston IT

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

Relaatiotietokantojen perusteista. Harri Laine Helsingin yliopisto

OpenOffice.org Base 3.1.0

Ohjelmistojen mallintaminen, mallintaminen ja UML

Transkriptio:

Tietokantojen suunnittelu, relaatiokantojen perusteita A277, Tietokannat Teemu Saarelainen teemu.saarelainen@kyamk.fi Lähteet: Leon Atkinson: core MySQL Ari Hovi: SQL-opas TTY:n tietokantojen perusteet-kurssin opintomoniste Eri web-lähteet Suunnittelun periaate Mallintaminen kommunikoinnin apuväline kohtuullisen ymmärrettävä dokumentoi hyvin paljon erilaisia menetelmiä paljon ohjelmistotyökaluja tekniikasta riippumaton Normalisointi teorialähtöinen poistaa redundanssin varmistaa laadun tehdään edelleen liian vähän Tietokannat 2

Arkkitehtuuri Tietokantajärjestelmien yleisarkkitehtuuri (ANSI-SPARC) Ei virallinen standardi, mutta tietokannan hallintajärjestelmät toteuttavat Kolmitasoinen arkkitehtuuri ulkoinen taso käsitteellinen taso Näkymä Näkymä 2 Näkymä X Käsitteellinen kuvaus sisäinen taso Sisäinen kuvaus fyysiset tietorakenteet Tietokanta Tietokannat 3 Suunnitteluprosessin kulku Vaatimusten keruu alustavat vaatimukset Käsitteellinen suunnittelu luokka- tai käsitekaavio, ei riipu tietokannan hallintajärjestelmästä Tietokannan hallintajärjestelmän valinta Looginen suunnittelu tietokannasta riippuvainen looginen kaavio Fyysinen suunnittelu tietokannasta riippuvainen fyysinen kaavio Toteutus Tietokannat 4 2

Luokka- eli käsitekaavio Tärkein väline tietokannan suunnittelussa! Ominaisuudet, jotka kaavion tulisi täyttää täydellisyys oikeellisuus luettavuus minimaalisuus riittävyys normaalisuus Tietokannat 5 Käsitekaavio UML-luokkakaavio Voidaan käyttää ohjelmiston tietosisällön kuvaamiseen (ohjelmistotuotannon esitutkimus- ja määrittelyvaihe) Kommunikaatioväline ohjelmistoasiantuntijoiden ja asiakkaan välillä Käytetään myös tietokannan rakenteen tarkempaan suunnitteluun (ohjelmistotuotannon suunnitteluvaihe) Toimii relaatiotietokannan graafisena esityksenä Riippumaton tietokannan hallintajärjestelmästä Tietokannat 6 3

Esimerkkikaavio Matkanjärjestäjä nimi osoite järjestää Matka alkupvm loppupvm hinta sisältää Hotelli nimi huoneiden lkm luokitus.. suuntautuu.. on oikeuttaa Kohde paikka keskilämpötila Matkustaja nimi osoite.. omistaa Lippuvihko numero sijaitsee nimi Maa Kooste Lippu numero tyyppi Tietokannat 7 Käsitekaavio Käsite on samanlaiset ominaisuudet omaavien asioiden joukko (vrt. luokka) Käsitteen ilmentymä on yksittäinen tietyillä em. ominaisuuksien arvoilla varustettu tietoalkio (vrt. olio) Assosiaatiot kuvaavat käsitteiden välisiä yhteyksiä Käsitteille annetaan vain kaikki tarvittavat ominaisuudet ei enempää eikä vähempää Vältä redundanssia! Redundanssi = sama asia kahdella (tai useammalla) eri tavalla Tuhlaa tilaa ja tekee järjestelmän virhealttiiksi Tietokannat 8 4

Käsitekaavio Kaaviota voi testata esittämällä sopivia kysymyksiä ja hakemalla tulokset kaaviosta (navigointi) Käsitteiden väliset yhteydet kertovat tarvittavat viiteavaimet Käsitteiden ominaisuuksiin ei siis laiteta viiteavaimia Perusavaimia (esim. henkilö_id) ei myöskään kannata laittaa alustavaa tietosisältöä kuvaaviin malleihin Globaalisti näkyvistä (kaikkien käyttämistä) käsitteistä ei yleensä piirretä yhteyksiä Tietokannat 9 Miettimistauko: verkkokaupan käsitteitä? Tietokannat 0 5

Relaatio (taulu, table) Relaatiotietokannan tallennusrakenne on kaksiulotteinen taulu Koostuu kentistä (attribuutit, sarakkeet) ja tietueista (monikot, rivit) Relaation nimi on yksilöllinen Relaatiot perustetaan SQL-lauseella (CREATE TABLE) Esimerkki: Opiskelija taulu: Opiskelija_ID Etunimi Sukunimi Osoite Puhelinnro 00023 Olli Opiskelija Opiskelijankatu A 2 045 6789 02 00024 Outi Opiskelija Opiskelijankatu 2 A 044 5678 90 Tietokannat Relaation ominaisuuksia Jokainen relaation solu sisältää tasan yhden atomisen arvon Jokaisella attribuutilla on erillinen nimi Kaikilla attribuutin arvoilla on sama arvoalue Attribuuttien järjestyksellä ei ole väliä Jokainen monikko on erillinen Relaatio ei sisällä kahta samaa monikkoa Monikoiden järjestyksellä ei ole merkitystä Tietokannat 2 6

Ominaisuus, attribuutti (Attribute) Otsikko (nimetty sarake), joka ilmaisee arvon (sarakkeen) merkityksen relaatiossa Edustaa käsitteen ominaisuutta Monikko (Tuple) Järjestetty arvojen lista, jossa on yksi arvo kutakin relaatiokaaviossa nimettyä attribuuttia kohden (relaation rivi) Edustaa tiettyä yksikäsitteistä käsitteen ilmentymää Arvojoukko, arvoalue (Domain) Arvojen joukko, johon sarakkeen (attribuutin) arvot kuuluvat Esim. kokonaisluku, teksti, arvoluettelo Tietokannat 3 Avaimet Taulun rivit tunnistetaan avaimen avulla Jokaisella rivillä täytyy olla yksilöllinen avain Avainehdokas (candidate key) Yhdestä tai useammasta kentästä koostuvaa kokonaisuus, joka identifioi yksikäsitteisesti kunkin taulun riveistä Perusavain (primary key) Yksi avainehdokkaista valitaan taulun perusavaimeksi (pääavaimeksi) Perusavaimeksi ei kannata valita kenttää, jonka arvo tulee muuttumaan Tietokannat 4 7

Vierasavain, viiteavain (foreign key) Attribuutti tai attribuuttiyhdistelmä (sarakenimien yhdistelmä), jonka avulla voidaan osoittaa jokin tietokannan relaation yksittäinen monikko (rivi) käyttäen tämän perusavainta Viiteavaimen arvot viittaavat johonkin saman tai toisen taulun perusavainten arvoihin Vaihtoehtoinen avain, toissijainen avain (alternate key, secondary key) Avainehdokas, jota ei käytetä perusavaimena. Perusavaimen lisäksi taululle määritelty tai määriteltävissä oleva toissijainen avain (SQL:ssä unique-määre). Tietokannat 5 8