Tietokannat I. c 2007 Olli Luoma

Koko: px
Aloita esitys sivulta:

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

Transkriptio

1 Tietokannat I c 2007 Olli Luoma Kevät 2007

2 Tiivistelmä Tämän luentomonisteen tarkoituksena on toimia pääasiallisena oppimateriaalina Turun yliopiston Informaatioteknologian laitoksen kurssilla Tietokannat I. Kurssilla käytettiin aiemmin Ramez Elmasrin ja Shamkant B. Navathen sinänsä erinomaista kirjaa Fundamentals of Database Systems, joka kuitenkin todettiin turhan raskaslukuiseksi kurssin ohjeellisen suoritusajankohdan siirryttyä ensimmäiseen opiskeluvuoteen. Luentomoniste onkin pyritty kirjoitettamaan siten, että asiat olisi mahdollista omaksua ennen esimerkiksi kurssin Tietorakenteet ja algoritmit suorittamista. Tämän takia useita asioita on jouduttu huomattavasti yksinkertaistamaan. Lukijan on myös syytä muistaa, että kyseessä on luentomonisteen ensimmäinen versio, joten korjauksia ja kommentteja otetaan vastaan ilolla ja mielihyvällä.

3 Luku 1 Johdanto Sanan tietokanta ajatellaan tavallisesti tarkoittavan kokoelmaa yhteenkuuluvaa ja jonkin käyttötarkoituksen kannalta oleellista tietoa. Esimerkiksi puhelinluettelon, johon on koottu tietoa henkilöiden ja yritysten nimistä, osoitteista ja puhelinnumeroista, voidaan siten ajatella olevan eräänlainen tietokanta. Kaupan tietokannassa taas voisi olla tietoa vaikkapa asiakkaiden nimistä, osoitteista, tuotteista, tilauksista, tuotteiden toimittajista, toimittajien yhteystiedoista jne. Tällä kurssilla perehdymme ennen kaikkea digitaalisiin tietokantoihin, eli sellaisiin tietokokoelmiin, jotka on tallennettu tietokoneen kiintolevylle. Emme kuitenkaan pidä mitä tahansa kiintolevylle tallennettua tiedostoa tietokantana, vaan asetamme tietokannalle edellämainittujen ehtojen lisäksi myös seuraavat lisävaatimukset: 1. Tietokannan on oltava itsekuvaileva eli sen on sisällettävä tallennetun tiedon lisäksi myös tieto siitä, mikä on kunkin tietoalkion merkitys. Varsinaista tietoa kutsutaan dataksi ja tiedon rakennetta kuvailevaa tietoa metadataksi. Tämän määritelmän mukaan esimerkiksi henkilöiden nimiä, syntymäaikoja, osoitteita, mieliruokia ja puhelinnumeroita tiedostoon tallentavan Java-ohjelman käyttämää tiedostoa ei voida pitää tietokantana, sillä yksittäisten tietoalkioiden merkitys selviää vain tarkastelemalla tiedostoa käyttävää ohjelmaa. 2. Tietokannan on tuettava useita yhtäaikaisia käyttäjiä. Tämä on oikeastaan hyvin luonnollista, sillä esimerkiksi verkkokaupan tai pankin tietokannalla on usein voitava olla useita käyttäjiä. Yhtäaikaisesta käytöstä seuraa kuitenkin muutamia ongelmia. Esimerkiksi edellä mainitussa verkkokaupassa kaksi asiakasta saattaa samanaikaisesti yrittää tilata tuotteen, jota on varastossa vain yksi kappale. Myöhemmin perehdytään tällaisten ongelmien ratkaisemiseen. 3. Tietokannan on tarjottava useita erilaisia näkymiä tietoon. Esimerkiksi tieto tuotteiden tukkuhinnoista voidaan piilottaa verkkokaupan asiakkailta, vaikka kaupan työntekijät tämän tiedon näkisivätkin. Samalla tavoin tietokannan on tarjottava pankkitoimihenkilöille mahdollisuus käsitellä ja tutkia tietoja, joihin tavalliset asiakkaat eivät pääse käsiksi. 4. Tietokannan ja sitä käyttävien ohjelmien on oltava erillisiä. Käytännössä tämä tarkoittaa sitä, että tietokantaa on käsiteltävä selkeän 1

4 rajapinnan avulla siten, että käyttäjiltä ja tietokantaa käyttäviltä sovelluksilta piilotetaan esimerkiksi tietojen tallennustapa. Nimensä mukaisesti tietokanta sisältää siis ainoastaan tietoa eli dataa ja tietoa kuvailevaa tietoa eli metadataa eikä ota kantaa siihen, millä tavalla tai millaisissa ohjelmissa tietoja käytetään. Periaatteessa voisimme siis muuttaa vaikkapa tietojen tallennustapaa kajoamatta tietokantaa käyttäviin sovelluksiin. Tietokantoja luodaan ja hallitaan useimmiten tähän tarkoitukseen varta vasten luodulla ohjelmistolla, jota kutsutaan tietokannanhallintajärjestelmäksi. Tietokannanhallintajärjestelmän avulla käyttäjien on mahdollista: 1. Luoda uusia tietokantoja. Koska tietokantojen on edellä oppimamme mukaan oltava itsekuvailevia, on tietokannanhallintajärjestemän tarjottava työkalut tietokantaan tallennettavan tiedon rakenteen eli metadatan määrittelyyn. Tietokannanhallintajärjestelmän avulla voidaan tietokantoja tietysti myös tuhota. 2. Kohdistaa tietokantoihin monipuolisia operaatioita eli lisätä, poistaa ja hakea tietoa tietokannasta. Tämä ominaisuus antaa erilaisille käyttäjäryhmille mahdollisuuden tarkastella tietokannan tietoja eri näkökulmista, mikä oli eräs tietokannalle edellä asetetuista vaatimuksista. 3. Hallita suuria tietomääriä tehokkaasti. Tietokantaoperaatioiden on toimittava tehokkaasti, vaikka tietokannassa olisi gigatavuja tai jopa teratavuja dataa. Tehokkaiden hakuoperaatioiden mahdollistamiseksi tietokannanhallintajärjestelmä pitää yllä ns. hakemistoja eli indeksejä. 4. Kohdistaa tietokantaan useita yhtäaikaisia operaatioita. Tämä on tietysti seurausta siitä, että yhdellä tietokannalla on voitava olla useita yhtäaikaisia käyttäjiä. Tietokannanhallintajärjestelmä pyrkii estämään ongelmat lukitusten avulla esimerkiksi siten, että kun joku käyttäjistä muuttaa jonkin tietoalkion sisältöä, eivät muut käyttäjät voi kyseistä tietoalkiota käsitellä. 5. Toteuttaa sovelluksia tietokannanhallintajärjestelmän tarjoaman rajapinnan avulla. Näiden rajapintojen avulla yhtä ja samaa tietokantaa voidaan käyttää eri ohjelmointikielillä toteutetuissa sovelluksissa. Esimerkiksi pankkiautomaattisovellus, verkkopankkisovellus ja pankkitoimihenkilön käyttämä sovellus voivat käyttää samaa tietokantaa, vaikka ne olisikin toteutettu eri ohjelmointikielillä. Käytännössä tietokannanhallintajärjestelmät siis tallentavat tietoja tiedostoihin siinä missä muutkin ohjelmat, mutta tarjoavat korkean abstraktiotason rajapinnan tietojen käsittelyyn. Tietokannanhallintajärjestelmää käyttäen voidaan esimerkiksi pankin tietokannasta helposti hakea kaikkien pankin asiakkaiden nimet, jonkin tietyn asiakkaan tilitiedot tai vaikkapa tilien keskisaldo. Suosituin kaupallinen tietokannanhallintajärjestelmä on pitkään ollut Oracle, jonka markkinaosuutta IBM:n DB2 ja Microsoftin SQL Server ovat 2

5 viime vuosina kuitenkin onnistuneet kaventamaan 1. Ilmaisista tietokannanhallintajärjestelmistä MySQL lienee edelleen suosituin, vaikka PostgreSQL ja Firebird ovatkin huomattavasti kypsempiä. Yhteistä kaikille edellä mainituille ohjelmistoille on se, että ne perustuvat 1970 esiteltyyn relaatiomalliin [1]. Relaatiomalli on toisaalta helposti omaksuttavissa ja toisaalta tehokkaasti toteutettavissa, minkä vuoksi relaatiomalliin perustuva tietokannat ovat käytännössä syrjäyttäneet muihin tietomalleihin perustuvat tietokannat, kuten esimerkiksi verkkotietokannat ja hierarkkiset tietokannat. Liioittelematta voidaankin sanoa, että käytännössä jokaisen organisaation tiedonhallinnan ytimessä on relaatiotietokanta, sillä valtaosa tietojärjestelmistä rakentuu juuri relaatiotietokantojen varaan. Tietokantaosaamista vaaditaankin paitsi tietokannan ylläpitäjiltä, myös systeemisuunnittelijoilta, sovellussuunnittelijoilta, ohjelmistosuunnittelijoilta, ohjelmoijilta ja vaikkapa teknisiltä arkkitehdeilta. 1 Tilanne vuoden 2005 markkinatutkimuksen mukaan (International Data Corporation). 3

6 Luku 2 Relaatiomalli Relaatiomallin ideana on käsitellä tietokantaa kokoelmana matemaattisia relaatioita. Mallin matemaattisesta taustasta johtuen joukko-opin perusteiden hallinta helpottaa mallin ymmärtämistä huomattavasti. Suosittelemmekin joukko-opin perusteiden kertaamista ennen perehtymistä relaatiomallin saloihin. 2.1 Relaatiot Relaatio ja relaatiokaava Sanalla relaatio tarkoitetaan asioiden välistä yhteyttä, suhdetta. Voimme esimerkiksi sanoa, että Aku tykkää Iineksestä tai Mikki tykkää Minnistä [2]. Koska näin sanoessamme tarkoitamme toisaalta Akun ja Iineksen ja toisaalta Mikin ja Minnin välillä vallitsevan jonkilaisen suhteen, on tykkäämisessä selvästikin kyse relaatiosta. Samalla tavoin voimme sanoa, että Masa tilaa Tuulilasia ja Lissu tilaa Eevaa. Lehden tilaamista kuvaavalla relaatiolla on siten kaksi ominaisuutta, tilaaja ja lehti. Relaation ominaisuuksia kutsutaan attribuuteiksi. Voimme kuvata tilaamisrelaatiota seuraavan relaatiokaavan avulla: Tilaus(Tilaaja,Lehti) Kaavan perusteella relaatio Tilaus siis liittää toisiinsa tiedon tilaajasta ja lehdestä. Yksittäistä tilaajan ja lehden muodostamaa paria nimitetään monikoksi tai tuplaksi. Toisinaan monikkoa kutsutaan myös tietueeksi. Monikkoja voidaan esittää luettelemalla attribuuttien arvot merkkien < ja > sisällä, joten Tilaus-relaatiossamme on kaksi monikkoa: <Masa,Tuulilasi> ja <Lissu,Eeva>. Havainnollisimmin relaatiot voidaan esittää tauluina, joissa sarakkeet vastaavat attribuutteja ja rivit monikkoja. Kuvassa 2.1 on esitetty relaatiota Tilaus vastaava taulu. Yleisesti relaatiokaava on muotoa Relaatio(Attribuutti 1, Attribuutti 2,..., Attribuutti n ), missä Relaatio on relaation nimi ja Attribuutti 1, Attribuutti 2,..., Attribuutti n relaation attribuuttien nimet. Relaation attribuuttien määrää kutsutaan relaation asteeksi ja monikkojen määrää kardinaliteetiksi tai kooksi. Siten esi- 4

7 Tilaus Tilaaja Lehti Masa Lissu Tuulilasi Eeva Kuva 2.1: Esimerkki relaation tauluesityksestä. Tilaus Tilaaja Lehti Kestotilaus Lissu Eeva Ei Lissu Cosmopolitan Kyllä Hessu Tuulilasi Kyllä Hessu Eeva Kyllä Kuva 2.2: Kuvan 2.1 relaatio monikkojen ja attribuutin lisäämisen jälkeen. merkiksi kuvan 2.1 relaation Tilaus aste on 2 ja koko 2. Relaatioita ja attribuutteja voi nimetä vapaasti edellyttäen, että jokaisen attribuutin nimi on yksikäsitteinen, eli kahdella relaation attribuutilla ei ole samaa nimeä. Selvyyden vuoksi on kuitenkin syytä valita mahdollisimman kuvaavat nimet 1. Koska relaatio on monikkojen muodostama joukko, voimme esittää kuvan 2.1 relaation myös joukkona {<Masa,Tuulilasi>,<Lissu,Eeva>}. Siten monikoiden keskinäisellä järjestyksellä ei ole merkitystä, mutta yksittäisen monikon arvojen järjestyksellä on. Niinpä esimerkiksi {<Lissu,Eeva>,<Masa,Tuulilasi>} ja {<Masa,Tuulilasi>,<Lissu,Eeva>} ovat identtiset, mutta <Masa,Tuulilasi> ja <Tuulilasi,Masa> eivät, mikä on oikeastaan varsin ilmeistä, sillä Masa tilaa Tuulilasia, ei Tuulilasi Masaa. Relaation kaava on yleensä pysyvämpi kuin relaation sisältö. Jos Lissu tilaa Eevan lisäksi vielä vaikkapa Cosmopolitanin, lisäämme relaatioon Tilaus monikon <Lissu,Cosmopolitan>. Jos taas Masa peruuttaa oman tilauksensa, poistamme monikon <Masa,Tuulilasi>. Ja jos uusi ystävämme Hessu tilaa Tuulilasin ja Eevan, lisäämme tietysti monikot <Hessu,Tuulilasi> ja <Hessu,Eeva>. Jokaisessa tapauksessa relaation kaava siis säilyy, mutta sisältö muuttuu. Joissakin tapauksissa voimme tietysti joutua muuttamaan myös relaatiokaavaa. Jos esimerkiksi tieto siitä, onko kyseessä kestotilaus vai määräaikainen tilaus, muuttuu jostain syystä oleelliseksi, on meidän lisättävä relaation Tilaus kaavaan tätä tietoa kuvaava attribuutti. Edellä mainittujen päivitysoperaatioiden ja attribuutin lisäämisen jälkeen relaatio Tilaus voisi olla vaikkapa kuvassa 2.2 esitetyn kaltainen Pääavain ja vierasavain Relaation pääavain tai yksinkertaisemmin vain avain on yksinkertaisesti sellainen attribuuttijoukko, jonka perusteella monikot voidaan tunnistaa relaation sisällöstä riippumatta. Toisin sanoen joukon attribuuttien arvojen yhdistelmän on oltava erilainen relaation jokaisessa monikossa. Attribuutit Tilaaja ja Lehti eivät siten yksinään kelpaa relaation Tilaus avaimiksi, sillä yksi 1 Esimerkiksi Tyyppi ja Arvo ovat yleensä huonoja nimiä, sillä ne eivät juurikaan kerro attribuutin roolista relaatiossa. Kukapa osaisi kertoa, millaista tietoa esimerkiksi kaavan Taulu(Arvo1,Arvo2,Arvo3) mukainen relaatio sisältää? 5

8 ja sama tilaaja voi tilata montaa eri lehteä ja yhdellä lehdellä voi olla monta tilaajaa. Näiden attribuuttien yhdistelmä sen sijaan kelpaa avaimeksi, sillä niiden perusteella voidaan yksikäsitteisesti tunnistaa jokainen relaation rivi. Tämä pätee sekä kuvassa 2.1 että kuvassa 2.2 esitettyyn Tilausrelaatioon. Attribuutteja, jotka kuuluvat avaimeen kutsutaan yksikertaisesti avainattribuuteiksi. Relaatiokaavassa avainattribuutit erotetaan muista attribuuteista alleviivaamalla. Siten voimme tarkentaa kuvassa 2.2 esitetyttyä relaatiota seuraavasti: Tilaus(Tilaaja,Lehti,Kestotilaus) Tarkasti ottaen avaimen muodostavan attribuuttijoukon on yksikäsitteisyyden lisäksi täytettävä myös minimaalisuuden ehto. Avain on minimaalinen silloin, jos siitä ei voida poistaa yhtään attribuuttia ilman, että sen yksikäsitteisyys katoaa. Esimerkiksi kuvan 2.2 relaation avaimeksi ei kelpaa attribuuttien Tilaaja, Lehti ja Kestotilaus yhdistelmä, sillä Kestotilaus voidaan poistaa yksikäsitteisyyden kärsimättä. Avaimesta puhutaan usein myös id:nä, minkä takia myös relaation avainattribuutti - kuten esimerkiksi asiakasnumero, tilinumero tai tuotenumero - nimetään usein lyhyemmin Id:ksi. Mitä tahansa attribuuttijoukkoa, joka sisältää pääavaimen attribuutit, kutsutaan superavaimeksi. Vierasavain eli viiteavain puolestaan on sellainen attribuuttijoukko, joka viittaa jonkin relaation pääavaimeen. Vierasavaimen käsite on erittäin keskeinen, sillä juuri vierasavainten käyttö mahdollistaa tiedon hajauttamisen useisiin tauluihin. Vierasavainten käyttöä valotetaan tarkemmin seuraavassa osassa. 2.2 Relaatiotietokannat Relaatiotietokanta Relaatiotietokannan voidaan ajatella olevan kokoelma edellä esitellyn kaltaisia relaatioita. Koska relaatioita voidaan yksinkertaisimmin käsitellä tauluina, voidaan relaatiotietokantaa käsitellä kokoelmana tauluja. Tietokannan relaatiokaava tai lyhyemmin tietokantakaava voidaan esittää tietokantaan kuuluvien relaatioiden kaavojen avulla. Siten voimme määritellä esimerkiksi seuraavanlaisen relaatiotietokannan 2. Asiakas(Id,Etunimi,Sukunimi) Tilaus(AsiakasId,TuoteId) Tuote(Id,Nimi,Kuvaus,ToimittajaId) Toimittaja(Id,Nimi) Kuvassa 2.3 on esitetty edellisen tietokantakaavan mukainen relaatiotietokanta. Vaikka tietokannan taulut on nimettävä yksikäsitteisesti, voi useassa relaatiossa olla samannimisiä attribuutteja. Edellisessä tietokantakaavassa esimerkiksi attribuutti Id esiintyy relaatioissa Asiakas, Tuote ja Toimittaja. Sekaannusten välttämiseksi voimmekin tarkentaa attribuuttien nimiä relaatioiden 2 Tilan säästämiseksi on esimerkkitietokannastamme jätetty pois hyvinkin oleellisia attribuutteja, kuten esimerkiksi asikkaitten ja toimittajien yhteystiedot, tuotteiden varastotilanne sekä tieto siitä, onko tilaus jo toimitettu. 6

9 Asiakas Id Etunimi Sukunimi 1 Orimatti Teuras 2 Laupias Psaltari 3 Hanhikki Hillosilmä Tilaus AsiakasId TuoteId Tuote Id Nimi Kuvaus Hinta ToimittajaId 1 Hilavitkutin Laatuisa vitkutin Vimpain Vimmattu vimpaaja Masiina Tuotantoväline lisäarvon tuottamiseen Jiirisaha Komea sähkötyökalu Id Toimittaja Nimi 1 Jaskan vimpain 2 Orimattilan kone Kuva 2.3: Esimerkki yksinkertaisesta relaatiotietokannasta. nimillä eli kirjoittamalla esimerkiksi Asiakas.Id, Tuote.Id ja Toimittaja.Id. Näin voimme esimerkiksi luetella tietokantamme vierasavaimet sekä avaimet, joihin vierasavaimet viittaavat 3. AsiakasId Asiakas.Id TuoteId Tuote.Id ToimittajaId Toimittaja.Id Kuvassa 2.4 on esitetty edellä mainittujen viiteavainten kohteet monikko monikolta. Esimerkiksi Tilaus-taulun rivin <1,1> ensimmäisen attribuutin arvo viittaa Asiakas-taulun riviin <1,Orimatti,Teuras> ja toisen attribuutin arvo Tuote-taulun riviin <1,Hilavitkutin,...>. Voimme siis yksinkertaisemmin sanoa, että Tilaus-taulun monikko <1,1> viittaa Asiakas-taulun monikkoon <1,Orimatti,Teuras> ja Tuote-taulun monikkoon <1,Hilavitkutin,...>. On syytä huomauttaa, että vaikka esimerkissämme kaikki vierasavaimet koostuvat vain yhdestä attribuutista, voi vierasavain hyvin koostua useammastakin attribuutista. Kannattaa myös huomata, että monikko saattaa viitata myös saman relaation monikkoon. Voisimme esimerkiksi määritellä relaation Työntekijä seuraavaa relaatiokaavaa käyttäen: Työntekijä(Id, Etunimi, Sukunimi, EsimiesId) Tässä relaatiossa EsimiesId on vierasavain, joka viittaa Työntekijärelaation avaimeen Id. Tietokantaan voidaan kohdistaa kahdenlaisia operaatioita: kyselyitä eli tietokantaoperaatioita, joiden avulla haetaan tietoa tietokannasta sekä päivityksiä, jotka muuttavat tietokannan sisältöä 4. Kyselyiden avulla 3 Koska relaatiolla voi olla vain yksi pääavain, myös pelkkien relaatioiden luetteleminen riittäisi. 4 Myös tietokannan relaatiokaavaa voidaan muuttaa esimerkiksi attribuutteja ja tauluja lisäämällä tai poistamalla, mutta tällaisia operaatioita ei yleensä lasketa varsinaisiksi tietokantaoperaatioiksi. 7

10 Asiakas Id Etunimi Sukunimi 1 Orimatti Teuras 2 Laupias Psaltari 3 Hanhikki Hillosilmä Tilaus AsiakasId TuoteId Tuote Id Nimi Kuvaus Hinta ToimittajaId 1 Hilavitkutin Laatuisa vitkutin Vimpain Vimmattu vimpaaja Masiina Tuotantoväline lisäarvon tuottamiseen Jiirisaha Komea sähkötyökalu Id Toimittaja Nimi 1 Jaskan vimpain 2 Orimattilan kone Kuva 2.4: Kuvan 2.3 tietokannan viittausten kohteet. Tuote Id Nimi Kuvaus Hinta Toimittaja 1 Hilavitkutin Laatuisa vitkutin Orimattilan kone 2 Vimpain Vimmattu vimpaaja Jaskain vimpain 3 Masiina Tuotantoväline lisäarvon tuottamiseen Jaskan vimpain 4 Jiirisaha Komea sähkötyökalu 0.99 Orimattilan kone Kuva 2.5: Esimerkki huonosta suunnittelusta. Ei näin. voimme esimerkiksi hakea kuvan 2.3 tietokannasta kaikki Orimatti Teuraan tilaamat tuotteet tai Laupias Psaltarin tilaamien tuotteiden yhteishinnan. Päivitysten avulla taas voidaan lisätä ja poistaa rivejä sekä muuttaa rivien sisältöä. Kyselyiden ja päivitysten esittämiseen SQL-kielen avulla perehdytään myöhemmin. Kuva 2.4 antaa myös aavistuksen siitä, että viiteavaimet ja avaimet näyttelevät keskeistä osaa tiedon jäsentämisessä useampaan tauluun. Tiedon hajauttamisella saavutetaan useita etuja, kuten esimerkiksi pieni tallennustilan tarve. Voisimme esimerkiksi poistaa Toimittaja-taulun ja korvata Tuote-taulun attribuutin ToimittajaId toimittajan nimellä. Tällöin tilanne olisi kuvassa 2.5 esitetyn kaltainen. Olettaen, että kokonaisluvun tallentamiseen tarvitaan 4 tavua ja merkkijonon merkin tallentamiseen 1 tavu, tarvittaisiin kuvan 2.5 Tuote-taulun tietojen tallentamiseen 222 tavua. Kuvassa 2.3 esitettyjen taulujen Tuote ja Toimittaja tietojen tallentamiseen taas tarvitaan vain 205 tavua, vaikka molemmat versiot sisältävät yhtä paljon tietoa. Ero olisi tietysti paljon dramaattisempi, jos tuotteita olisi enemmän tai toimittajista pidettäisiin yllä esimerkiksi yhteystietoja. Redundanssin eli toiston eliminointi vaatii sekä suunnittelumenetelmien että normalisoinnin hyvää hallintaa. Tietokannan suunnitteluun ja normalisointiin perehdytään luvuissa 4 ja 7. 8

11 2.2.2 Eheyssäännöt Jotta viiteavainten merkitys säilyisi, on meidän asetettava pää- ja vierasavainattribuuttien arvoille joitakin lisäehtoja eli ns. eheyssääntöjä. Ensimmäinen ja helpommin täytettävä ehto on entiteettieheys, joka vaatii, että yhdessäkään monikossa ei yhdenkään avainattribuutin arvo saa olla ns. määrittelemätön arvo eli NULL. Toinen ehto on viite-eheys eli se, että jokaisen monikon viiteavainattribuuttien arvot viittaavat olemassolevien monikkojen avainattribuuttien arvoihin. Yksinkertaisemmin tämä voidaan ilmaista niin, että kaikkien viittausten on kohdistuttava olemassaoleviin monikkoihin. Jos tietokanta täyttää nämä säännöt, sen sanotaan olevan eheä. Esimerkiksi kuvan 2.3 tietokanta on eheä, sillä se täyttää nämä ehdot. Esimerkiksi se, ettei Hanhikki Hillosilmään liity yhtään tilausta, ei riko viite-eheyttä, koska viite-eheys vaatii jokaisen vierasavaimen arvoa vastaavan pääavaimen arvon olemassaoloa, ei päinvastoin. Eheyssäännöt luonnollisesti rajoittavat tietokantaan kohdistettavia päivityksiä. Tarkastellaan esimerkiksi seuraavia operaatioita: 1. Asiakkaittemme sankka joukko kasvaa, joten lisäämme Asiakas-relaatioon monikon <NULL,Marsipaani,Räikkönen>. Operaatio estetään, sillä se rikkoisi entiteettieheyden. 2. Meiltä tilataan jiirisaha, joten lisäämme Tilaus-tauluun rivin <4,4>. Lisäys rikkoisi viite-eheyden, sillä Asiakas-taulussa ei ole riviä, jossa attribuutin Id arvo olisi 4. Operaatio siis estetään. 3. Hanhikki Hillosilmä tilaa vimpaimen. Lisäämme Tilaus-tauluun rivin <3,2>. Operaatio ei riko eheyssääntöjä, sillä kumpikaan monikon avainattribuuttien arvoista ei ole NULL ja ne viittaavat olemassaoleviin monikkoihin eli monikkoihin <3,Hanhikki,Hillosilmä> ja <2,Vimpain,Vimmattu vimpaaja,99.99,1>. 4. Orimatti Teuraan tilaama vitkutin on toimitettu. Poistamme Tilausrelaatiosta monikon <1,1>. Operaatio ei riko eheyssääntöjä. 5. Orimattilan kone osoittautuu epäluotettavaksi toimittajaksi. Poistamme Toimittaja-taulusta rivin <2,Orimattilan kone>. Operaatio estetään, sillä se rikkoisi viite-eheyden, koska relaatiossa Tuote on poistettavaan monikkoon viittaavia rivejä. 6. Muutamme pahuuttamme jiirisahan, tuon jykevähampaisen nakertajan, avainattribuutin Id arvoksi 5. Operaatio ei riko viite-eheyttä, sillä yksikään asiakkaistamme ei ole tilannut jiirisahaa eikä mikään Tilaustaulun riveistä siten viittaa Tuote-taulun riviin <4,Jiirisaha,...>. 7. Hanhikki Hillosilmä ottaa miehensä Orimatin sukunimen. Päivitämme rivin <3,Hanhikki,Hillosilmä> muotoon <3,Hanhikki,Teuras> ilman eheyden rikkoutumista. Miten viides päivityoperaatio eli Orimattilan koneen poistaminen sitten pitäisi tehdä? Jotta operaatio ei rikkoisi viite-eheyttä, pitäisi meidän ensin poistaa ne Tuote-taulun rivit, jotka viittaavat poistettavaan monikkoon, eli rivit <1,Hilavitkutin,...,2> ja <4,Jiirisaha,...,2>. Jotta nämä rivit 9

12 puolestaan voitaisiin poistaa, pitäisi meidän ensin poistaa ne Tilaus-taulun rivit, jotka viittaavat näihin riveihin. Käytännössä tietokannanhallintajärjestemät poistavat viittaavat monikot automaattisesti tai estävät viite-eheyden rikkovat operaatiot. Tähän perehdytään tarkemmin SQL-kielen yhteydessä luvussa 5. 10

Tietokannat II -kurssin harjoitustyö

Tietokannat II -kurssin harjoitustyö Tietokannat II -kurssin harjoitustyö Olli Opiskelija (123), olli.opiskelija@foo.fi Maija Mallioppilas (321), maija.mallioppilas@foo.fi 13.3. 2007 1 Sisältö 1 Tietokannan kuvaus 3 1.1 Tietokannan rakenne..................................

Lisätiedot

Relaatioalgebra. Luku 3. 3.1 Joukko-opilliset operaatiot. 3.1.1 Yhdiste eli unioni. 3.1.2 Leikkaus

Relaatioalgebra. Luku 3. 3.1 Joukko-opilliset operaatiot. 3.1.1 Yhdiste eli unioni. 3.1.2 Leikkaus Luku 3 Relaatioalgebra Relaatioalgebra on yksinkertaisesti joukko relaatioiden käsittelyyn tarkoitettuja operaatioita. Vaikka yksittäiset operaatiot ovat varsin yksinkertaisia, voidaan niitä yhdistelemällä

Lisätiedot

HELIA 1 (17) Outi Virkki Tiedonhallinta

HELIA 1 (17) Outi Virkki Tiedonhallinta HELIA 1 (17) Luento 4.1 Looginen suunnittelu... 2 Relaatiomalli... 3 Peruskäsitteet... 4 Relaatio... 6 Relaatiokaava (Relation schema)... 6 Attribuutti ja arvojoukko... 7 Monikko... 8 Avaimet... 10 Avain

Lisätiedot

Tietokantojen suunnittelu, relaatiokantojen perusteita

Tietokantojen suunnittelu, relaatiokantojen perusteita 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

Lisätiedot

HELIA 1 (11) Outi Virkki Tiedonhallinta 4.11.2000

HELIA 1 (11) Outi Virkki Tiedonhallinta 4.11.2000 HELIA 1 (11) Access 1 ACCESS...2 Yleistä...2 Access-tietokanta...3 Perusobjektit...3 Taulu...5 Kysely...7 Lomake...9 Raportti...10 Makro...11 Moduli...11 HELIA 2 (11) ACCESS Yleistä Relaatiotietokantatyyppinen

Lisätiedot

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

Helsingin yliopisto/tktl DO Tietokantojen perusteet, s 2000 Relaatiomallin peruskäsitteet Harri Laine 1. Relaatiotietokannat DONOTP RINT THIS DOCUM ENT Relaatiotietokannat DONOTP Relaatiomalli Perustana rakennetason tietomalli relaatiomalli (the relational model of data) perusteoria: Codd 1970 ensimmäiset kaupalliset toteutukset 70-luvun

Lisätiedot

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

HAAGA-HELIA heti09 1 (27) ICT05 Tiedonhallinta ja tietokannat O.Virkki 19.1.2010. Relaatiomalli HAAGA-HELIA heti09 1 (27) Relaatiomalli Relaatiomalli... 2 Peruskäsitteet... 3 Relaatio... 5 Attribuutti ja arvojoukko... 6 Monikko... 7 Säännöt... 8 Arvojoukkoeheyssääntö... 8 Pääavain ja yksilön eheyssääntö...

Lisätiedot

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys Tällä kurssilla on tutustuttu ohjelmistojen mallintamiseen oliomenetelmiä ja UML:ää käyttäen Samaan aikaan järjestetyllä kurssilla on käsitelty

Lisätiedot

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

Tietomallit. Näkökulmat tietoon. Näkökulmat tietoon. Mitä malleja olisi tarjolla? Abstraktiotasot tiedon käsittelyssä Tietomallit Tietomallilla (data model) tarkoitetaan tiedon rakenteen ja tiedolle suoritettavan käsittelyn määrittelevää kehikkoa - käsitteistöä Tietoa voidaan tarkastella eri näkökulmista - eri abstraktiotasoilla

Lisätiedot

Tiedonhallinnan perusteet. Viikko 1 Jukka Lähetkangas

Tiedonhallinnan perusteet. Viikko 1 Jukka Lähetkangas Tiedonhallinnan perusteet Viikko 1 Jukka Lähetkangas Kurssilla käytävät asiat Tietokantojen toimintafilosofian ja -tekniikan perusteet Tiedonsäilönnän vaihtoehdot Tietokantojen suunnitteleminen internetiä

Lisätiedot

2. Käsiteanalyysi ja relaatiomalli

2. Käsiteanalyysi ja relaatiomalli 2. Käsiteanalyysi ja relaatiomalli lehtori Pasi Ranne Metropolia ammattikorkeakoulu E-mail: pasi.ranne@metropolia.fi sivu 1 Tietokannan suunnitteluprosessin osat sivu 2 Käsiteanalyysi ER-mallinnus, tietomallinnus

Lisätiedot

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

SQL-perusteet, SELECT-, INSERT-, CREATE-lauseet SQL-perusteet, SELECT-, INSERT-, CREATE-lauseet A271117, Tietokannat Teemu Saarelainen teemu.saarelainen@kyamk.fi Lähteet: Leon Atkinson: core MySQL Ari Hovi: SQL-opas TTY:n tietokantojen perusteet-kurssin

Lisätiedot

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

HAAGA-HELIA TIKO-05 1 (19) ICT23a Tietokannan suunnittelu ja toteutus O.Virkki 4.9.2008 HAAGA-HELIA TIKO-05 1 (19) Relaatiomalli Relaatiomalli... 2 Peruskäsitteet... 3 Relaatio... 5 Attribuutti ja arvojoukko... 6 Monikko... 7 Säännöt... 8 Yksilön eheyssääntö ja Pääavain... 9 Viite-eheyssääntö

Lisätiedot

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

On autoja, henkilöitä, Henkilöllä on nimi Autolla on omistaja, joka on henkilö. Taulu AUTO(rekno, malli) Taulu HENKILO(nimi, ) Tietomallit Tietomallilla (data model) tarkoitetaan tiedon rakenteen ja tiedolle suoritettavan käsittelyn määrittelevää kehikkoa - käsitteistöä Tietoa voidaan tarkastella eri näkökulmista - eri abstraktiotasoilla

Lisätiedot

Opettajana Mika Sorsa, mika.sorsa@koudata.fi, HAMK:n ammatillisen opettajakoulutuksen opetusharjoittelija

Opettajana Mika Sorsa, mika.sorsa@koudata.fi, HAMK:n ammatillisen opettajakoulutuksen opetusharjoittelija Opettajana Mika Sorsa, mika.sorsa@koudata.fi, HAMK:n ammatillisen opettajakoulutuksen opetusharjoittelija Opintojaksolla: keskitytään relaatiotietokantojen teoriaan ja toimintaan SQL-kieli kyselykielenä

Lisätiedot

Relaatiomalli ja -tietokanta

Relaatiomalli ja -tietokanta Relaatiomalli ja -tietokanta > Edgar. F. (Ted) Codd, IBM, 1969 < A Relational Model of Data for Large Shared Data Banks Communications of the ACM, Vol. 13, No. 6, June 1970, pp. 377-387. > 70-luvun lopulla

Lisätiedot

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

Mikä on tietomalli? Relaatiomallin käsitteitä 1/2 (kuva 5.1) Relaatiomallin taustaa Relaatiomalli 5. Relaatiomalli Käsitteet Säännöt Käyttö 6. Relaatioalgebra (EI TENTTIIN!) Select, Project, Union, Difference, Join 7. (E)ER-mallin muuntaminen relaatioiksi Kaava Mikä on tietomalli? Malli,

Lisätiedot

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

Tietokantojen perusteet k2004helsingin yliopisto/tktl Tietokantojen perusteet, s 2005 relaatiomalli Harri Laine 1. Relaatiotietokannat Relaatiomalli Perustana rakennetason tietomalli (the relational model of data) perusteoria: E.F.Codd 1970 ensimmäiset kaupalliset toteutukset 70-luvun lopulla yleistynyt 80-luvun lopulla

Lisätiedot

Tietokannat II -kurssin harjoitustyö

Tietokannat II -kurssin harjoitustyö Tietokannat II -kurssin harjoitustyö Jyri Lehtonen (72039), jkoleh@utu.fi Azad Hajipour (72187), azhaji@utu.fi 10.6.2007 Sisältö 1. Tietokannan kuvaus... 1 1.1 Tietokannan rakenne... 1 1.2 Relaatiokaava

Lisätiedot

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

Tietokannan hallinta. Kevät 2004 Jan Lindström R&G Chapter 1 Tietokannan hallinta Kevät 2004 Jan Lindström R&G Chapter 1 Tietokannan hallinta 1. Johdanto (käsitteitä) 2. Tietokannan talletusrakenteet 3. Tietokannan hakemistorakenteet 4. Kyselyiden käsittely ja optimointi

Lisätiedot

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

HELIA TIKO-05 1 (28) ICT03D Tieto ja tiedon varastointi O.Virkki HELIA TIKO-05 1 (28) Relaatiomalli Relaatiomalli...2 Peruskäsitteet...3 Relaatio...5 Attribuutti ja arvojoukko...6 Monikko...7 Säännöt...8 Arvojoukkoeheyssääntö...8 Pääavain ja yksilön eheyssääntö...9

Lisätiedot

HARJOITUS 2. Kasvattamot ja mittaukset

HARJOITUS 2. Kasvattamot ja mittaukset HARJOITUS 2. Tehtävä 1 Alla on esitetty relaatiotietokannan taulujen rakenne. Mitä ongelmia tähän tietokantaan liittyy jos se yritettäisiin ottaa käyttöön sellaisenaan? Korjaa puutteet ja esitä toimiva

Lisätiedot

TIETOKANNAT JOHDANTO

TIETOKANNAT JOHDANTO TIETOKANNAT JOHDANTO JOUNI HUOTARI & ARI HOVI 2000-2011 Tieto TAUSTAA Yritykselle tiedot ovat tärkeä resurssi päätöksenteon tukena (JIT) varastointi ja käyttö vaativat investointeja vrt. energia (lähde,

Lisätiedot

TIETOKANTOJEN PERUSTEET OSIO 8 MARKKU SUNI

TIETOKANTOJEN PERUSTEET OSIO 8 MARKKU SUNI TIETOKANTOJEN PERUSTEET OSIO 8 MARKKU SUNI Tarkastellaan Loogista tietokannan suunnittelua vaihe 2 Taulujen määrittely loogisen tietomallin perusteella 2 Suunnittele ja tarkista taulut joka loogisesta

Lisätiedot

Tietojärjestelmä tuotantoympäristössä. Sovellusohjelmat Helsingin ammattikorkeakoulu Stadia / Tekniikka ja liikenne Vesa Ollikainen

Tietojärjestelmä tuotantoympäristössä. Sovellusohjelmat Helsingin ammattikorkeakoulu Stadia / Tekniikka ja liikenne Vesa Ollikainen Tietojärjestelmä tuotantoympäristössä Tausta ja tavoitteet Tausta Kurssilla on opiskeltu suunnittelemaan ja toteuttamaan tietokanta, joka on pieni perustuu selkeisiin vaatimuksiin on (yleensä) yhden samanaikaisen

Lisätiedot

TIETOKANTOJEN PERUSTEET MARKKU SUNI

TIETOKANTOJEN PERUSTEET MARKKU SUNI TIETOKANTOJEN PERUSTEET MARKKU SUNI OSIO 01 Peruskäsitteitä Kurssin tavoite: antaa osallistujille valmiudet ymmärtää tietokantojen periaatteet ymmärtää tietokantojen suunnittelunäkökohtia osallistua tietokantojen

Lisätiedot

HELIA 1 (12) Outi Virkki Tiedonhallinta 4.11.2000

HELIA 1 (12) Outi Virkki Tiedonhallinta 4.11.2000 HELIA 1 (12) Luento 4.3 Eheyssäännöt (Integrity Constraints)... 2 Eheyden valvonta... 3 Yksilön eheyssääntö... 4 Viite-eheyssäännöt... 5 Arvojoukkoeheyssäännöt... 8 Null-arvoista... 10 Sovelluskohtaiset

Lisätiedot

Relaatiotietokantojen perusteista. Harri Laine Helsingin yliopisto

Relaatiotietokantojen perusteista. Harri Laine Helsingin yliopisto Harri Laine Helsingin yliopisto Suosion syy? Yksinkertaisuus vähän käsitteitä helppo hahmottaa Selkeä matemaattinen perusta ei tulkintaongelmia kuten esim. UML:ssä teoria käytäntö kaavio: R(A 1 :D 1, A

Lisätiedot

CSE-A1200 Tietokannat

CSE-A1200 Tietokannat CSE-A1200 Tietokannat 29.3.2016 CSE-A1200 Tietokannat 29.3.2016 1 / 40 Oppimistavoitteet: tämän luennon jälkeen Tiedät, miten tietokannan relaatioiden (taulujen) määrittelyt kirjoitetaan SQL:llä. Osaat

Lisätiedot

HELIA 1 (21) Outi Virkki Tietokantasuunnittelu 20.9.2005

HELIA 1 (21) Outi Virkki Tietokantasuunnittelu 20.9.2005 HELIA 1 (21) Luento 7 Relaatiomallin kertausta... 2 Peruskäsitteet... 2 Relaatio... 4 Määritelmä... 4 Relaatiokaava (Relation schema)... 4 Relaatioinstanssi (Relation instance)... 4 Attribuutti ja arvojoukko...

Lisätiedot

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

Tietomallit. Näkökulmat tietoon. Näkökulmat tietoon. Näkökulmat tietoon. Abstraktiotasot tiedon käsittelyssä Tietomallit Tietomallilla (data model) tarkoitetaan tiedon rakenteen ja tiedolle suoritettavan käsittelyn määrittelevää käsitteistöä Tietoa voidaan tarkastella eri näkökulmista - eri abstraktiotasoilla

Lisätiedot

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. 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

Lisätiedot

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

Insert lauseella on kaksi muotoa: insert into taulu [(sarakenimet)] values (arvot) SQL sisältää operaatiot tietokannan sisällön muodostamiseen ja ylläpitoon: insert - uusien rivien vienti tauluun delete - rivien poisto update - rivien muutos 1 Insert lauseella on kaksi muotoa: insert

Lisätiedot

TIETOKANTOJEN PERUSTEET OSIO 11 MARKKU SUNI

TIETOKANTOJEN PERUSTEET OSIO 11 MARKKU SUNI TIETOKANTOJEN PERUSTEET OSIO 11 MARKKU SUNI Tarkastellaan Tietokannan fyysistä suunnittelua Menetelmän vaihetta 4 Looginen suunoitelma muutetaan toimiviksi tauluiksi Id enimi snimi muuta 1 Aki Joki xxx

Lisätiedot

NORMALISOINTI TIETOJEN MALLINNUS JOUNI HUOTARI & ARI HOVI

NORMALISOINTI TIETOJEN MALLINNUS JOUNI HUOTARI & ARI HOVI TIETOJEN MALLINNUS NORMALISOINTI HOVI, HUOTARI, LAHDENMÄKI: TIETOKANTOJEN SUUNNITTELU & INDEKSOINTI DOCENDO (2003, 2005) LUKU 5 JOUNI HUOTARI & ARI HOVI SUUNNITTELUPUTKI Käyttäjien näkemykset Näytöt, ikkunat

Lisätiedot

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

Kirjoita jokaiseen erilliseen vastauspaperiin kurssin nimi, tenttipäivä, oma nimesi (selkeästi), opiskelijanumerosi ja nimikirjoituksesi Helsingin yliopisto, Tietojenkäsittelytieteen laitos Tietokantojen perusteet, kurssikoe 29.2.2012 (vastauksia) Liitteenä on tiivistelmä SQL-syntaksista Kirjoita jokaiseen erilliseen vastauspaperiin kurssin

Lisätiedot

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

Helsingin yliopisto, Tietojenkäsittelytieteen laitos Tietokantojen perusteet, , H.Laine Helsingin yliopisto, Tietojenkäsittelytieteen laitos Tietokantojen perusteet, 3.5.2007, H.Laine Kirjoita kuhunkin erilliseen vastauspaperiin kurssin nimi, oma nimesi, syntymäaikasi ja nimikirjoituksesi

Lisätiedot

HELIA 1 (19) Outi Virkki Tietokantasuunnittelu 9.3.2001

HELIA 1 (19) Outi Virkki Tietokantasuunnittelu 9.3.2001 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...

Lisätiedot

CSE-A1200 Tietokannat

CSE-A1200 Tietokannat CSE-A1200 Tietokannat 23.2.2016 CSE-A1200 Tietokannat 23.2.2016 1 / 36 Oppimistavoitteet: tämän luennon jälkeen Tunnet SQL:n perusteet ja osaat tehdä yksinkertaisia SQL-kyselyitä, esimerkiksi hakea relaatiosta

Lisätiedot

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

Jouni Huotari & Ari Hovi. Käsitemallinnuksesta relaatiokantaan KÄSITEMALLI. LOOGINEN MALLI: tietomalli valittu. FYYSINEN MALLI: DBMS valittu Informaatioteknologian instituutti IIO30100 Tietokantojen suunnittelu Polku luokkakaavioista taulujen toteutukseen kirjan Hovi, Huotari, Lahdenmäki: Tietokantojen suunnittelu & indeksointi, Docendo (2003,

Lisätiedot

MySQL ja PostgreSQL Seminaarityö

MySQL ja PostgreSQL Seminaarityö Jani Ahde (1401497, TI14SPeli) MySQL ja PostgreSQL Seminaarityö Essee Opintojakso 206101312_TP Marraskuu 2015 SISÄLLYS 1 JOHDANTO... 3 2 RELAATIO JA SQL... 3 2.1 Relaatiotietokanta... 3 2.2 SQL... 4 3

Lisätiedot

Tietokanta (database)

Tietokanta (database) Tietokanta Tietokanta (database) jotakin käyttötarkoitusta varten laadittu kokoelma toisiinsa liittyviä säilytettäviä tietoja 1 Tiedosto Ohjelmointikielissä apumuistiin tallennettuja tietoja käsitellään

Lisätiedot

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

millainen on se kohde, jota tiedoilla pitäisi kuvata asiat, joita pitäisi esittää Mitä tietoelementtien arvot tarkoittavat Tietomallit Tietomallilla (data model) tarkoitetaan tiedon rakenteen ja tiedolle suoritettavan käsittelyn määrittelevää käsitteistöä Tietoa voidaan tarkastella eri näkökulmista - eri abstraktiotasoilla

Lisätiedot

HELIA 1 (8) Outi Virkki Tietokantasuunnittelu

HELIA 1 (8) Outi Virkki Tietokantasuunnittelu HELIA 1 (8) Luento 1 Johdatusta tietokannan suunnitteluun... 2 Tietokantasuunnittelu?... 2 Tietokanta?... 2 Tieto?... 2 Tietokantasuunnittelun tavoite, v.1... 2 Luotettavuus?... 3 Tietokantasuunnittelun

Lisätiedot

jotakin käyttötarkoitusta varten laadittu kokoelma toisiinsa liittyviä säilytettäviä tietoja

jotakin käyttötarkoitusta varten laadittu kokoelma toisiinsa liittyviä säilytettäviä tietoja Tietokanta Tietokanta (database) jotakin käyttötarkoitusta varten laadittu kokoelma toisiinsa liittyviä säilytettäviä tietoja mikä tahansa tietokokoelma? --> erityispiirteitä Tietokanta vs. tiedosto 1

Lisätiedot

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. 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

Lisätiedot

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

Written by Administrator Monday, 05 September 2011 15:14 - Last Updated Thursday, 23 February 2012 13:36 !!!!! Relaatiotietokannat ovat vallanneet markkinat tietokantojen osalta. Flat file on jäänyt siinä kehityksessä jalkoihin. Mutta sillä on kuitenkin tiettyjä etuja, joten ei se ole täysin kuollut. Flat

Lisätiedot

Tietokantojen perusteet

Tietokantojen perusteet Tietokantojen perusteet Johdanto Jouni Huotari & Ari Hovi 2008 TAUSTAA Yritykselle tiedot ovat tärkeä resurssi päätöksenteon tukena (JIT) varastointi ja käyttö vaativat investointeja vrt. energia (lähde,

Lisätiedot

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

2. Haet työntekijöiden tiedot etunimen mukaan nousevasti järjestettyinä. (ORDER BY) SELECT * FROM employees ORDER BY firstname ASC; Tällä viikolla Kotitehtävien läpikäynti SQL-harjoituksia, osa 1 Jatketaan Pelifirman tietovaraston suunnittelua: tietotyyppien kertaus, taulun luonti ER-kaavioon, taulun luonti kaavion avulla tietokantaan,

Lisätiedot

TIETOKANNAT: MYSQL & POSTGRESQL Seminaarityö

TIETOKANNAT: MYSQL & POSTGRESQL Seminaarityö TIETOKANNAT: MYSQL & POSTGRESQL Seminaarityö Tekijät: Eemeli Honkonen Joni Metsälä Työ palautettu: SISÄLLYSLUETTELO: 1 SEMINAARITYÖN KUVAUS... 3 2 TIETOKANTA... 3 2.1 MITÄ TIETOKANNAT SITTEN OVAT?... 3

Lisätiedot

Tällä viikolla. Kotitehtävien tarkistus Upotettu SQL Indeksi-harjoitus täydennetään pelifirman tietokantamallia SQL-tehtäviä

Tällä viikolla. Kotitehtävien tarkistus Upotettu SQL Indeksi-harjoitus täydennetään pelifirman tietokantamallia SQL-tehtäviä Tällä viikolla Kotitehtävien tarkistus Upotettu SQL Indeksi-harjoitus täydennetään pelifirman tietokantamallia SQL-tehtäviä Seuraavissa harjoituksissa käytetään tukkukauppa-kantaa. 1. Hae kaikki toimittajat

Lisätiedot

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

Helsingin yliopisto Tietojenkäsittelytieteen laitos (H.Laine) Tietokantojen perusteet. Liitteenä: Tiivistelmä SQL-syntaksista Helsingin yliopisto Tietojenkäsittelytieteen laitos 26.2.2014 (H.Laine) Tietokantojen perusteet Liitteenä: Tiivistelmä SQL-syntaksista Kirjoita jokaiseen erilliseen vastausarkkiin kurssin nimi, tenttipäivä,

Lisätiedot

POLKU LUOKKAKAAVIOISTA TAULUJEN TOTEUTUKSEEN

POLKU LUOKKAKAAVIOISTA TAULUJEN TOTEUTUKSEEN POLKU LUOKKAKAAVIOISTA TAULUJEN TOTEUTUKSEEN KIRJAN HOVI, HUOTARI, LAHDENMÄKI: TIETOKANTOJEN SUUNNITTELU & INDEKSOINTI DOCENDO (2003, 2005) LUKU 7 JOUNI HUOTARI & ARI HOVI IIO30100 TIETOKANTOJEN SUUNNITTELU

Lisätiedot

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

HELIA TIKO-05 1 (20) ICT03D Tieto ja tiedon varastointi O.Virkki HELIA TIKO-05 1 (20) Normalisointi Normalisointi...2 Tavoitteet...2 Attribuuttien väliset riippuvuudet...4 Funktionaalinen / moniarvoinen riippuvuus...4 Täydellinen / osittainen riippuvuus...6 Suora /

Lisätiedot

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

Jokaisella tiedostolla on otsake (header), joka sisältää tiedostoon liittyvää hallintatietoa Tietojen tallennusrakenteet Jokaisella tiedostolla on otsake (header), joka sisältää tiedostoon liittyvää hallintatietoa tiedot tiedostoon kuuluvista lohkoista esim. taulukkona, joka voi muodostua ketjutetuista

Lisätiedot

Pipfrog AS www.pipfrog.com. Tilausten hallinta

Pipfrog AS www.pipfrog.com. Tilausten hallinta Tilausten hallinta Tilausten hallinta Tilausten hallinnassa on neljän tyyppisiä dokumentteja: Tilaukset, laskut, lähetykset ja hyvityslaskut, Tilaus on ensimmäinen dokumentti, jonka joko ostaja on luonnut

Lisätiedot

HELIA 1 (17) Outi Virkki Tiedonhallinta 4.11.2000

HELIA 1 (17) Outi Virkki Tiedonhallinta 4.11.2000 HELIA 1 (17) Luento 4.5 Normalisointi... 2 Tavoitteet... 2 Attribuuttien väliset riippuvuudet... 4 Funktionaalinen / moniarvoinen riippuvuus... 4 Transitiivinen / suora riippuvuus... 6 Täydellinen / osittainen

Lisätiedot

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

Relaatioalgebra. Relaatioalgebra. Relaatioalgebra. Relaatioalgebra - erotus (set difference) Kyselyt: Relaatiomalliin liittyy malli tietokannan käsittelystä Tietokannasta pitää pystyä hakemaan tietoa ja toisaalta tietokantaa on ylläpidettävä Tietokannan käsittelyn malli relaatioalgebra määrittelee operaatiot,

Lisätiedot

3. Käsiteanalyysi ja käsitekaavio

3. Käsiteanalyysi ja käsitekaavio 3. Käsiteanalyysi ja käsitekaavio lehtori Pasi Ranne Metropolia ammattikorkeakoulu E-mail: pasi.ranne@metropolia.fi sivu 1 Käsiteanalyysi Selvitetään mitä tietokantaan pitää tallentaa Lähtökohtana käyttäjien

Lisätiedot

D B. Tietokannan hallinta - kurssin tavoite. Kurssilla opitaan periaatteet. Edellytyksenä osallistumiselle on Tietokantojen perusteiden hallinta

D B. Tietokannan hallinta - kurssin tavoite. Kurssilla opitaan periaatteet. Edellytyksenä osallistumiselle on Tietokantojen perusteiden hallinta Tietokannan hallinta - kurssin tavoite Kurssilla opitaan periaatteet fyysisen tietokannan tallennuksesta ja käsittelystä tietokantakyselyiden muuntamisesta fyysisen tietokannan käsittelyoperaatioiksi kyselyn

Lisätiedot

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

A271117 TIETOKANNAT, 3 op Syksy 2008 - TI07. Teemu Saarelainen, lehtori Tietotekniikka teemu.saarelainen@kyamk.fi A271117 TIETOKANNAT, 3 op Syksy 2008 - TI07 Teemu Saarelainen, lehtori Tietotekniikka teemu.saarelainen@kyamk.fi A271117 TIETOKANNAT Tavoitteet Oppia tietokantojen suunnitteluperiaatteet Osata käyttää

Lisätiedot

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

Tietokannan hallintajärjestelmän (DBMS) palvelut ja rakenne HAAGA-HELIA Heti-09 1 (6) Tietokannan hallintajärjestelmän (DBMS) palvelut ja rakenne Tietovarastotekniikan kehittyminen... 2 Tiedostopohjaiset ratkaisut... 2 Tiedoston palvelut... 3 Tiedostopohjaisten

Lisätiedot

3. Taulujen määrittely ja muuttaminen

3. Taulujen määrittely ja muuttaminen 3. Taulujen määrittely ja muuttaminen DDL: Taulujen luonti, muutos ja poisto DML: taulujen tietojen ylläpito Tapahtumien (transaktioiden) hallinta Näkymät, synonyymit ja muut tietokantaobjektit Taulujen

Lisätiedot

Amazon Web Services (AWS) on varmaankin maailman suosituin IaaS-tarjoaja. Lisäksi se tarjoaa erilaisia PaaS-kategoriaan kuuluvia palveluita.

Amazon Web Services (AWS) on varmaankin maailman suosituin IaaS-tarjoaja. Lisäksi se tarjoaa erilaisia PaaS-kategoriaan kuuluvia palveluita. 1 2 Amazon Web Services (AWS) on varmaankin maailman suosituin IaaS-tarjoaja. Lisäksi se tarjoaa erilaisia PaaS-kategoriaan kuuluvia palveluita. 3 4 Region vastaa palvelun fyysistä sijaintipaikkaa (AWS

Lisätiedot

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

Tietokannat. CREATE TABLE table(col1,col2,... ); Luo uuden taulun. CREATE TABLE opiskelijat(opnumero,etunimi,sukunimi); Tietokannat SQL-peruskomentojen pikaopas CREATE TABLE table(col1,col2,... ); Luo uuden taulun. CREATE TABLE opiskelijat(opnumero,etunimi,sukunimi); INSERT INTO table VALUES(val1,val2,... ); Lisää tauluun

Lisätiedot

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 Tietokantasuunnittelun pääperiaatteena on tiedon toiston välttäminen. Tiedon toistumiseen liittyy monenlaisia ongelmia toistuva tieto vie turhaa tilaa ylläpito muodostuu hankalaksi kaikki kopiot päivitettävä

Lisätiedot

Basware Supplier Portal

Basware Supplier Portal Basware Supplier Portal Pikaohje Toimittajille (Toukokuu 2011) Prosessin yleiskatsaus Basware Supplier Portal on tarkoitettu toimittajaorganisaatioille (joita kutsutaan jäljempänä toimittajiksi). Järjestelmän

Lisätiedot

Rekursiolause. Laskennan teorian opintopiiri. Sebastian Björkqvist. 23. helmikuuta Tiivistelmä

Rekursiolause. Laskennan teorian opintopiiri. Sebastian Björkqvist. 23. helmikuuta Tiivistelmä Rekursiolause Laskennan teorian opintopiiri Sebastian Björkqvist 23. helmikuuta 2014 Tiivistelmä Työssä käydään läpi itsereplikoituvien ohjelmien toimintaa sekä esitetään ja todistetaan rekursiolause,

Lisätiedot

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

Kirjoita kuhunkin erilliseen vastauspaperiin kurssin nimi, tentin päiväys, oma nimesi, syntymäaikasi ja nimikirjoituksesi. Helsingin yliopisto, Tietojenkäsittelytieteen laitos Tietokantojen perusteet, kurssikoe 4.3.2015, H. Laine Tehtävien mukana jaetaan sql-syntaksin tiivistelmä. Kirjoita kuhunkin erilliseen vastauspaperiin

Lisätiedot

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

7.11.2006. Helsingin yliopisto/tktl Kyselykielet, s 2006 Relaatiokalkyylit. Harri Laine 1 perusteita - relaatiokalkyylit perusteita - relaatiokalkyylit Relaatioalgebra on luonteeltaan proseduraalinen tapa käsitellä tietoa. Tiedon haetaan sarjaksi järjestettyjen operaatioiden avulla. Edellä

Lisätiedot

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

Haaga-Helia / TIKO-05 1 (12) Tietokannan suunnittelu ja Toteutus Outi Virkki Haaga-Helia / TIKO-05 1 (12) Tietotarpeet Tietotarpeiden määrittely... 2 Tietotarveanalyysi... 3 Lähtökohtana tietojenkäsittelytehtävät... 3 Määrittelyn sisältö... 4 Vaiheistus... 5 Tietolähteet... 5 Lähestymistapa...

Lisätiedot

Tietokannanhallintajärjestelmä (DBMS)

Tietokannanhallintajärjestelmä (DBMS) HELIA TIKO-05 1 (8) Tietokannanhallintajärjestelmä (DBMS) Tietovarastotekniikan kehittyminen... 2 Tiedostopohjaiset ratkaisut... 2 Peräkkäistiedostot... 3 Suorasaantitiedostot... 4 Tiedoston palvelut...

Lisätiedot

Esimerkkiprojekti. Mallivastauksen löydät Wroxin www-sivuilta. Kenttä Tyyppi Max.pituus Rajoitukset/Kommentit

Esimerkkiprojekti. Mallivastauksen löydät Wroxin www-sivuilta. Kenttä Tyyppi Max.pituus Rajoitukset/Kommentit Liite E - Esimerkkiprojekti E Esimerkkiprojekti Olet lukenut koko kirjan. Olet sulattanut kaiken tekstin, Nyt on aika soveltaa oppimiasi uusia asioita pienen, mutta täydellisesti muotoiltuun, projektiin.

Lisätiedot

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

Helsingin yliopisto, TKTL Tietokantojen perusteet, k 2004 Tietokannan suunnittelusta. Harri Laine 1 Tietokantasuunnittelun pääperiaatteena on tiedon toiston välttäminen. Tiedon toistumiseen liittyy monenlaisia ongelmia toistuva tieto vie turhaa tilaa ylläpito muodostuu hankalaksi kaikki kopiot päivitettävä

Lisätiedot

Helsingin yliopisto/ tktl DO Tietokantojen perusteet, s 2000 Relaatioalgebra 14.9.2000. Harri Laine 1. Relaatioalgebra

Helsingin yliopisto/ tktl DO Tietokantojen perusteet, s 2000 Relaatioalgebra 14.9.2000. Harri Laine 1. Relaatioalgebra DO NOT PRINT THIS DOCUMENT operaatiot, joilla relaatioista voidaan muodostaa uusia relaatioita joukko opin perusoperaatiot yhdiste, erotus, ristitulo, leikkaus erityisiä relaatioalgebran operaatioita projektio,

Lisätiedot

TIETOKANNAT JOHDANTO JOUNI HUOTARI & ARI HOVI

TIETOKANNAT JOHDANTO JOUNI HUOTARI & ARI HOVI TIETOKANNAT JOHDANTO JOUNI HUOTARI & ARI HOVI 2000-2017 Tieto TAUSTAA Yritykselle tiedot ovat tärkeä resurssi päätöksenteon tukena (JIT) varastointi ja käyttö vaativat investointeja vrt. energia (lähde,

Lisätiedot

3. TAULUJEN MÄÄRITTELY JA MUUTTAMINEN

3. TAULUJEN MÄÄRITTELY JA MUUTTAMINEN 3. TAULUJEN MÄÄRITTELY JA MUUTTAMINEN DDL: TAULUJEN LUONTI, MUUTOS JA POISTO DML: TAULUJEN TIETOJEN YLLÄPITO TAPAHTUMIEN (TRANSAKTIOIDEN) HALLINTA NÄKYMÄT, SYNONYYMIT JA MUUT TIETOKANTAOBJEKTIT TAULUJEN

Lisätiedot

Action Request System

Action Request System Action Request System Manu Karjalainen Ohjelmistotuotantovälineet seminaari HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos 25.10.2000 Action Request System (ARS) Manu Karjalainen Ohjelmistotuotantovälineet

Lisätiedot

TIETOKANTOJEN PERUSTEET MARKKU SUNI

TIETOKANTOJEN PERUSTEET MARKKU SUNI TIETOKANTOJEN PERUSTEET MARKKU SUNI SQL - KIELI TIETOJEN MUOKKAUS MARKKU SUNI Tarkastellaan tauluissa olevien tietojen muokkausta muokkauskäskyjä: INSERT UPDATE DELETE Kysymys kuuluu: Voiko tietoja muokata

Lisätiedot

oheishakemistoja voi tiedostoon liittyä useita eri perustein muodostettuja

oheishakemistoja voi tiedostoon liittyä useita eri perustein muodostettuja Tietokantojen hakemistorakenteet Hakemistorakenteiden (indeksien) tarkoituksena on nopeuttaa tietojen hakua tietokannasta. Hakemisto voi olla ylimääräinen oheishakemisto (secondary index), esimerkiksi

Lisätiedot

GroupDesk Toiminnallinen määrittely

GroupDesk Toiminnallinen määrittely GroupDesk Toiminnallinen määrittely Tilanne: Paikallinen oppilaitos, kuvitteellinen WAMK, tarvitsee ryhmätyöhön soveltuvan sähköisen asioiden hallintajärjestelmän ja ryhmätyöohjelmiston, jonka ajatuksena

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 2.3.2009 T-106.1208 Ohjelmoinnin perusteet Y 2.3.2009 1 / 28 Puhelinluettelo, koodi def lue_puhelinnumerot(): print "Anna lisattavat nimet ja numerot." print

Lisätiedot

Ylläpitopalvelu. Tietuekuvaus. Tietuekuvaus 1 (8) Ylläpitopalvelu. Julkinen - Public

Ylläpitopalvelu. Tietuekuvaus. Tietuekuvaus 1 (8) Ylläpitopalvelu. Julkinen - Public Tietuekuvaus 1 (8) Tietuekuvaus Tietuekuvaus 2 (8) Sisällysluettelo 1 Johdanto... 2 2 Yleiset vaatimukset... 2 3 Uusien henkilöiden lisäys kohderyhmään... 2 3.1 Huollettavat tiedot (yritys => Posti)...

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 25.2.2009 T-106.1208 Ohjelmoinnin perusteet Y 25.2.2009 1 / 34 Syötteessä useita lukuja samalla rivillä Seuraavassa esimerkissä käyttäjä antaa useita lukuja samalla

Lisätiedot

HELIA 1 (14) Outi Virkki Tiedonhallinta

HELIA 1 (14) Outi Virkki Tiedonhallinta HELIA 1 (14) Luento Näkymät... 2 Relaatiotyypit... 2 Taulu - Tallennettu relaatio... 3 Näkymä - Virtuaalirelaatio... 3 Tulosrelaatio - Kyselyn tulos... 3 Otetaulut - Tauluun tallennettu kyselyn tulos...

Lisätiedot

Pikaopas. Ohjeiden etsiminen Hae ohjesisältöä napsauttamalla kysymysmerkkiä.

Pikaopas. Ohjeiden etsiminen Hae ohjesisältöä napsauttamalla kysymysmerkkiä. Pikaopas Microsoft Access 2013 näyttää erilaiselta kuin aiemmat versiot. Tämän oppaan avulla pääset alkuun nopeasti ja saat yleiskuvan uusista ominaisuuksista. Näyttökoon muuttaminen tai tietokannan sulkeminen

Lisätiedot

Helsingin yliopisto/tktl DO Tietokantojen perusteet, s 2000 Johdanto & yleistä Harri Laine 1. Tietokanta. Tiedosto

Helsingin yliopisto/tktl DO Tietokantojen perusteet, s 2000 Johdanto & yleistä Harri Laine 1. Tietokanta. Tiedosto Tietokanta Tiedosto Tietokanta (database) jotakin käyttötarkoitusta varten laadittu kokoelma toisiinsa liittyviä säilytettäviä tietoja Ohjelmointikielissä apumuistiin tallennettuja tietoja käsitellään

Lisätiedot

Tietokantojen perusteet k2004helsingin yliopisto/tktl Tietokantojen perusteet, k 2006 relaatioalgebra. 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 toistuva tieto vie turhaa tilaa ylläpito muodostuu hankalaksi kaikki kopiot päivitettävä

Lisätiedot

TIETOKANTOJEN PERUSTEET OSIO 14 MARKKU SUNI

TIETOKANTOJEN PERUSTEET OSIO 14 MARKKU SUNI TIETOKANTOJEN PERUSTEET OSIO 14 MARKKU SUNI Tavoite: Suunnitella käyttäjien tarvitsemat turvallisuusmekanismit ja säännöt. Toisin sanoen: tehdä tietokannasta turvallinen ja luotettava. Muistutus: Tietokanta

Lisätiedot

HELIA 1 (14) Outi Virkki Tiedonhallinta

HELIA 1 (14) Outi Virkki Tiedonhallinta HELIA 1 (14) Luento SQL... 2 Historiaa... 2 Standardit... 3 Käyttö... 4 DDL... 5 Tietokantaobjektien määrittely... 5 SQL:n tietotyypit... 6 Eheyssääntöjen määrittely... 9 Indeksin määrittely... 11 Syntaksikuvaukset...

Lisätiedot

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

Tiedonhallinnan perusteet. H11 Ovien ja kulun valvontajärjestelmän tietokanta Tiedonhallinnan perusteet H11 Ovien ja kulun valvontajärjestelmän tietokanta Nimi: Mikko Haapanen Opiskelijanumero: 0900568 Ryhmä: T09L Työ tehty: 15.3.2010 Mikko Haapanen 15.3.2010 1(7) 1. Asiakasvaatimukset

Lisätiedot

Käsiteanalyysi prosessina ja tarveanalyysi

Käsiteanalyysi prosessina ja tarveanalyysi Informaatioteknologian instituutti IIO30100 Tietokantojen suunnittelu Käsiteanalyysi prosessina ja tarveanalyysi kirjan Hovi, Huotari, Lahdenmäki: Tietokantojen suunnittelu & indeksointi, Docendo (2003,

Lisätiedot

17/20: Keittokirja IV

17/20: Keittokirja IV Ohjelmointi 1 / syksy 2007 17/20: Keittokirja IV Paavo Nieminen nieminen@jyu.fi Tietotekniikan laitos Informaatioteknologian tiedekunta Jyväskylän yliopisto Ohjelmointi 1 / syksy 2007 p.1/10 Tavoitteita

Lisätiedot

SELECT-lauseen perusmuoto

SELECT-lauseen perusmuoto SQL: Tiedonhaku SELECT-lauseen perusmuoto SELECT FROM WHERE ; määrittää ne sarakkeet, joiden halutaan näkyvän kyselyn vastauksessa sisältää

Lisätiedot

Tietokannan suunnittelu

Tietokannan suunnittelu HELIA TIKO-05 1 (12) ICT03D Tieto ja tiedon varastointi Tietokannan suunnittelu Tietokannan suunnitteluprosessi... 2 Tavoitteet...2 Tietojärjestelmän suunnitteluprosessi...3 Abstraktiotasot tietokannan

Lisätiedot

TIETOKANNAN NORMALISOINTI JA NORMAALIMUODOT

TIETOKANNAN NORMALISOINTI JA NORMAALIMUODOT TIETOKANNAN NORMALISOINTI JA NORMAALIMUODOT A271117, Tietokannat Teemu Saarelainen teemu.saarelainen@kyamk.fi Lähteet: Leon Atkinson: core MySQL Ari Hovi: SQL-opas TTY:n tietokantojen perusteet-kurssin

Lisätiedot

HELIA 1 (20) Outi Virkki Tiedonhallinta 4.11.2000

HELIA 1 (20) Outi Virkki Tiedonhallinta 4.11.2000 HELIA 1 (20) Luento 3.1 7LHWRNDQWDSRKMDLVHQVRYHOOXNVHQVXXQQLWWHOXSURVHVVL Tietokannan suunnittelun tavoitteet... 3 Abstraktiotasot tietokannan suunnittelussa... 4 3-taso -malli... 4 TIHA-standardi... 5

Lisätiedot

Tieto- ja tallennusrakenteet

Tieto- ja tallennusrakenteet Tieto- ja tallennusrakenteet Sisältö Tyyppi, abstrakti tietotyyppi, abstraktin tietotyypin toteutus Tallennusrakenteet Taulukko Linkitetty rakenne Abstraktit tietotyypit Lista (Puu) (Viimeisellä viikolla)

Lisätiedot

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

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

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 17.2.2010 T-106.1208 Ohjelmoinnin perusteet Y 17.2.2010 1 / 41 Sanakirja Monissa sovelluksissa on tallennettava rakenteeseen avain arvo-pareja. Myöhemmin rakenteesta

Lisätiedot