CSE-A1200 Tietokannat

Koko: px
Aloita esitys sivulta:

Download "CSE-A1200 Tietokannat"

Transkriptio

1 CSE-A1200 Tietokannat CSE-A1200 Tietokannat / 49

2 Oppimistavoitteet: tämän luennon jälkeen Osaat muuttaa ER-kaavion relaatiomalliin. Toisin sanoen: jos sinulla on valmis ER-kaavio, niin tiedät, mitä relaatioita tietokantaan pitää määritellä ja mitä attribuutteja näillä relaatioilla pitää olla (tietokantakaavio). Osaat kertoa, miksi jokin tietokantakaavio on parempi kuin toinen samaa asiaa kuvaava tietokantakaavio. Ymmärrät joukon asioita, joita tarvitaan, kun huono tietokantakaavio muutetaan paremmaksi (tästä lisää ensi viikolla), esimerkiksi: funktionaalinen riippuvuus relaation avaimen suhde funktionaalisiin riippuvuuksiin attribuuttien sulkeuma. CSE-A1200 Tietokannat / 49

3 ER-kaavion muuttaminen relaatiokaavioiksi Mitä relaatioita määrittelisit tietokantaan tämän kaavion perusteella? name phone Manufacturers name number ID deliver Made by Belongs to Products description price Orders count name custno orderno status Ordered by Customers born bonus address CSE-A1200 Tietokannat / 49

4 ER-kaavion muuttaminen relaatiokaavioiksi, jatkoa Perusperiaatteet: Jokaisesta yksilöjoukosta tehdään relaatio, jolla on samat attribuutit kuin yksilöjoukolla. Jokaisesta suhteesta tehdään relaatio, jonka attribuutteina ovat suhteen yhdistämien yksilöjoukkojen avaimet sekä mahdolliset suhteen omat attribuutit. Erikoistapaukset (joita ei voida muuttaa suoraan em. perusperiaatteiden mukaan): Heikot yksilöjoukot pitää käsitellä eri tavalla. Aliluokat ja isa-suhteet pitää käsitellä eri tavalla. Joskus voidaan yhdistää kaksi perussääntöjen perusteella muodostuvaa relaatiota. CSE-A1200 Tietokannat / 49

5 Esimerkki perustapauksesta Kalvon 3 ER-kaaviossa on neljä yksilöjoukkoa: Customers, Products, Manufacturers ja Orders. Näistä kaikista muodostetaan relaatiot, joilla on samat attribuutit kuin yksilöjoukoilla: Customers(custNo, name, born, bonus, address, ) Products(number, name, description, price) Manufacturers(ID, name, phone) Orders(orderNo, deliver, status) CSE-A1200 Tietokannat / 49

6 Esimerkki perustapauksesta, jatkuu Kaaviossa on kolme suhdetta, Made-by, Belongs-to ja Ordered-by. Kaikista niistä tehdään oma relaatio. Kahdella suhteella ei ole omia attribuutteja, joten näiden relaatioiden attribuuteiksi tulevat suhteen yhdistämien yksilöjoukkojen avaimet. Suhteesta Belongs-to tehdylle relaatiolle tulee lisäksi suhteen oman attribuutti. Relaatiot: MadeBy(number, ID) BelongsTo(orderNo, number, count) OrderedBy(orderNo, custno) CSE-A1200 Tietokannat / 49

7 Toinen esimerkki Jos sama yksilöjoukko liittyy suhteeseen useammin kuin kerran, tulevat yksilöjoukon avaimet suhteesta muodostettavaan relaatioon uudelleen jokaista eri roolia kohti. Samannimiset attribuutit pitää nimetä uudelleen sekaannusten välttämiseksi. Tarkastellaan esimerkkinä seuraavaa ER-kaaviota: Artists Albums Contracts Regular company Producing company Companies CSE-A1200 Tietokannat / 49

8 Toinen esimerkki Jos sama yksilöjoukko liittyy suhteeseen useammin kuin kerran, tulevat yksilöjoukon avaimet suhteesta muodostettavaan relaatioon uudelleen jokaista eri roolia kohti. Samannimiset attribuutit pitää nimetä uudelleen sekaannusten välttämiseksi. Tarkastellaan esimerkkinä seuraavaa ER-kaaviota: Artists Albums Contracts Regular company Producing company Companies Suhteesta Contracts muodostettaisiin nyt relaatio Contracts(artistName, albumname, regularcompany producingcompany) Yksilöjoukon Companies avain siis esiintyy relaatiossa kahteen kertaan eri rooleissa. CSE-A1200 Tietokannat / 49

9 Relaatioden yhdistämisestä Tarkastellaan vielä ensimmäistä esimerkkiä. ER-kaavion pohjalta luotiin mm. relaatiot Products(number, name, description, price) Manufacturers(ID, name, phone) MadeBy(number, ID) Relaatio MadeBy on syntynyt monesta yhteen -suhteesta: yhteen tuotteeseen voi liittyä korkeintaan yksi valmistaja. Relaatiot Products ja MadeBy voidaan yhdistää yhdeksi relaatioksi lisäämällä relaatioon Products tieto valmistajan tunnuksesta. Products(number, name, description, price, ID) Relaatio Manufacturers jää entiselleen. CSE-A1200 Tietokannat / 49

10 Relaatioden yhdistämisestä, jatkoa Vastaavasti voidaan yhdistää relaatiot Orders ja OrderedBy. Sen sijaan relaatiota BelongsTo ei voida yhdistää toiseen relaatioon, koska se on syntynyt monesta moneen -suhteesta. Lopulliset relaatiot (joidenkin attribuuttien nimiä on muutettu selvyyden vuoksi): Customers(custNo, name, born, bonus, address, ) Products(number, prodname, description, price, manufid) Manufacturers(ID, manufname, phone) Orders(orderNo, deliver, status, custno) BelongsTo(orderNo, prodno, count) CSE-A1200 Tietokannat / 49

11 Relaatioden yhdistämisestä, jatkoa Olkoon ER-kaaviossa yksilöjoukko E, josta on monesta yhteen -suhde R toiseen yksilöjoukkoon F. Jos E:n ja R:n perusteella muodostetaan relaatiot E ja R, on E :n kaaviossa attribuutit E:n avaimen muodostavat attribuutit E:n loput attribuutit R :n kaaviossa on taas attribuutit E:n avaimen muodostavat attribuutit F :n avaimen muodostavat attribuutit R:n mahdolliset omat attribuutit Koska jokaiseen E:n yksilöön liittyy suhteen kautta korkeintaan yksi F :n yksilö, määräävät E:n avainattribuuttien arvot kaikki muut R :n attribuutit. Sen vuoksi E ja R voidaan yhdistää yhdeksi relaatioksi, jonka attribuutteina ovat Kaikki E:n attribuutit F :n avainattribuutit Mahdolliset R:n omat attribuutit CSE-A1200 Tietokannat / 49

12 Relaatioden yhdistämisestä, jatkoa Relaatiot voidaan yhdistää kuitenkin vain siinä tapauksessa, että suhde R on monesta yhteen. Jos R on monesta moneen, relaatioiden yhdistäminen johtaisi siihen, että sama tieto toistetaan moneen kertaan. Tarkastellaan esimerkkinä tapausta, jossa BelongsTo-relaatio yhdistettäisiin Orders-relaatioon. Tuloksena olisi relaatio Orders(orderNo, deliver, status, custno, prodno, count) Koska samaan tilaukseen voi kuulua useita tuotteita, johtaisi yhdistäminen tilanteeseen, jossa saman tilauksen toimitustapa, tila ja tilaajan asiakasnumero olisi tallennettu tietokantaan useaan kertaan. Yhdestä yhteen -suhde on monesta yhteen -suhteen erikoistapaus, joten myös yhdestä yhteen -suhteesta tehty relaatio voidaan yhdistää toiseen relaatioon. CSE-A1200 Tietokannat / 49

13 Koska relaatioiden yhdistäminen on järkevää? Monesta yhteen -suhteesta tehty relaatio voidaan siis yhdistää monesta-puolen relaatioon. Koska näin kannattaa tehdä? Relaatioiden yhdistäminen johtaa siihen, että tietokantakaaviossa on vähemmän relaatioita. Tämä yksinkertaistaa relaatiokaaviota, mikä on yleensä toivottavaa. Usein siis yhdistäminen on järkevää. Jos kuitenkin vain hyvin pieni osa yksilöjoukon yksilöistä liittyy suhteen kautta toisen yksilöjoukon yksilöön, johtaa yhdistämineen relaatioon, jossa on useimmilla monikoilla NULL-arvoja suhteen kautta tulevien attribuuttien paikalla. Tällöin yhdistäminen ei välttämättä kannata, koska: Suhteen kautta tulevien attribuuttien tallentaminen vie ylimääräistä tilaa, jos lähes kaikilla monikoilla ko. attribuuttien arvo on NULL. Jos suhteen tietoihin tehdään paljon kyselyitä, voi olla nopeampaa tehdä kyselyt pelkästään suhdetta kuvaavaan relaatioon, jos sen koko on selvästi pienempi kuin yksilöjoukkoa kuvaavan relaation koko. (Tämä riippuu kuitenkin siitä, mitä muita relaatioita kyselyssä tarvitaan.) CSE-A1200 Tietokannat / 49

14 Esimerkki 1 Verkkokauppaesimerkissä useimmilla tuotteilla on tieto siitä, mikä valmistaja ne on tuottanut. Tällöin kannattaa ilman muuta yhdistää MadeBy-suhteesta syntyneen relaation tiedot relaatioon Products, koska tietokantakaavio yksinkertaistuu ja lähes jokaisella Products-relaation monikolla on arvo tarvittavalle manufid-attribuutille. CSE-A1200 Tietokannat / 49

15 Esimerkki 2 Oletetaan, että työpaikalla on mentorointiohjelma, jossa osalla työntekijöistä on nimetty mentori työpaikan ulkopuolelta. Yhdellä työntekijällä voi olla korkeintaan yksi mentori, mutta yli 90 %:lla työntekijöistä ei ole lainkaan mentoria name number name firm Employees MentoredBy Mentors address occupation ID Koska vain pienellä osalla työntekijöistä on mentori, kannattaa suhteesta MentoredBy tehdä todennäköisesti oma relaationsa eikä yhdistää sitä relaatioon Employees. CSE-A1200 Tietokannat / 49

16 Heikon yksilöjoukon esittäminen relaationa Heikko yksilöjoukko muutetaan relaatioksi seuraavasti: 1. Heikon yksilöjoukon omien attribuuttien lisäksi otetaan relaatioon niiden yksilöjoukkojen avainattribuutit, joihin heikko yksilöjoukko on yhdistetty kaksinkertaisella vinonelilöllä kuvatulla suhteella. (Toisin sanoen mukaan otetaan ne heikon yksilöjoukon avainattribuutit, jotka kuuluvat toiseen yksilöjoukkoon.) 2. Jos heikko yksilöjoukko on osallisena jossakin suhteessa, niin kyseisestä suhteesta muodostetun avaimen täytyy sisältää kaikki heikon yksilöjoukon avainattribuutit. 3. Niistä suhteista, joiden kautta heikko yksilöjoukko saa osan avainattribuuteistaan (kaksinkertaisilla vinoneliöillä kuvatut suhteet) ei muodosteta lainkaan relaatioita. CSE-A1200 Tietokannat / 49

17 Heikot yksilöjoukot, esimerkki Tarkastellaan viime luennolla esitetyn ER-kaavion size color name number Versions Version of Products description price muuntamista relaatioiksi. CSE-A1200 Tietokannat / 49

18 Heikot yksilöjoukot, esimerkki Tarkastellaan viime luennolla esitetyn ER-kaavion size color name number Versions Version of Products description price muuntamista relaatioiksi. Yksilöjoukosta Products muodostetaan suoraviivaisesti relaatio Products(number, name, description, price) Kun heikosta yksilöjoukosta Versions muodostetaan relaatio, pitää siihen ottaa mukaan myös Products-joukon avainattribuutti, sillä se kuuluu heikon yksilöjoukon avainattribuutteihin. Nimetään kuitenkin attribuutti uudelleen sekaannusten välttämiseksi, joten saadaan relaatio Versions(prodNo, size, color) Suhteesta Version-of ei muodosteta lainkaan relaatiota, sillä suhteen tiedot käyvät ilmi jo Versions-relaatiosta. CSE-A1200 Tietokannat / 49

19 Heikosta yksilöjoukosta muodostetun relaation attribuutit Jos W on heikko yksilöjoukko, niin W :stä muodostetaan relaatio, jolla on seuraavat attribuutit: W :n kaikki attribuutit. Avainattribuutit kaikista niistä yksilöjoukoista, joihin W on yhdistetty kaksinkertaisilla vinonelilöillä kuvatuilla suhteilla. Kaikki attribuutit niistä kaksinkertaisilla vinoneliöillä kuvatuista suhteista, joihin W on yhdistetty. CSE-A1200 Tietokannat / 49

20 Aliluokkien esittäminen relaatioina Yksilöjoukko ja sen aliluokat muodostavat hierarkian. Yksilöjoukkoa, jolla ei ole yliluokkaa, kutsutaan hierarkian juuriyksilöjoukoksi. Juuriyksilöjoukolla on avain, joika avulla voidaan identifioida mikä tahansa hierarkiaan kuuluva yksilö (myös aliluokkien yksilö). Yksilöllä voi olla komponentteja, jotka kuuluvat mihin tahansa hierarkian alipuun yksilöjoukkoon niin kauan, kun alipuuhun kuuluu juuriyksilöjoukko. Äänikirja voi olla sekä kirja että CD. Tarkastellaan edellisen luennon esimerkkiä, johon on lisätty vielä tieto siitä, että verkkokauppa voi tarjota tietokoneen ostaville asiakkaille tietokoneen huoltosopimuksia eri yrityksiin. Samalla konemallilla voi olla useita sopimusvaihtoehtoja eri yritysten kanssa. Sopimus solmitaan määräajaksi, ja ajan pituus on suhteen attribuuttina. Yksilöjoukko Firms ei kuulu perintähierarkiaan, vaan se on mukana hierarkian ulkopuolisena joukkona, johon on suhde jostain perintähierarkian yksilöjoukosta. CSE-A1200 Tietokannat / 49

21 Aliluokkien esittäminen relaatioina, jatkoa number name description price Products isa isa isa ram length address CDs Books Computers Maintains Firms artist length author pages speed harddisk firmid CSE-A1200 Tietokannat / 49

22 Aliluokkien esittäminen relaatioina, jatkoa Aliluokkahierarkian muuttamiseksi relaatioiksi on kolme erilaista strategiaa (jotka siis johtavat erilaisiin relaatioihin). 1. Noudata ER-mallia. Muodosta hierarkian jokaisesta yksilöjoukosta E relaatio, joka sisältää juuriyksilöjoukon avainattribuutit ja lisäksi kaikki E:n omat attribuutit. 2. Kohtele yksilöitä olioina, jotka voivat kuulua vain yhteen luokkaan. Tee hierarkian jokaisesta mahdollisesta alipuusta, joka sisältää juuriyksilöjoukon, yksi relaatio, jonka kaavio sisältää kaikkien alipuuhun kuuluvien yksilöjoukkojen attribuutit. 3. Käytä null-arvoja. Tee yksi relaatio, joka sisältää kaikkien hierarkian yksilöjoukkojen attribuutit. Kutakin yksilöä esitetään yhdellä monikolla. Tällä monikolla on erityisarvo null niillä attribuuteilla, joita yksilöllä ei ole lainkaan. Seuraavaksi katsotaan tarkemmin näitä eri vaihtoehtoja. CSE-A1200 Tietokannat / 49

23 ER-mallia noudattava muunnos Hierarkian jokaista yksilöjoukkoa kohti tehdään oma relaatio. Jos yksilöjoukko E ei ole hierarkian juuriyksilöjoukko, sitä vastaavan relaation attribuutteihin tulee E:n omien attribuuttien lisäksi juuriyksilöjoukon avainattribuutit identifioimaan yksilö. Jos yksilöjoukko E kuuluu johonkin suhteeseen, tulee tätä suhdetta kuvaavaan relaatioon juuriyksilöjoukon avainattribuutit identifioimaan suhteeseen kuuluva yksilö. Huomaa kuitenkin, että isa-suhteista ei muodosteta relaatioita. Toisin kuin muut suhteet, isa-suhde ei yhdistä kahta eri yksilöä, vaan saman yksilön komponentteja. CSE-A1200 Tietokannat / 49

24 ER-mallia noudattava muunnos, esimerkki Tuotehierarkian yksilöjoukoista muodostetaan tällä tavalla neljä eri relaatiota: Products(number, name, description, price) CDs(number, artist, length) Books(number, author, pages) Computers(number, speed, ram, harddisk) Huomaa, että relaatiot CDs, Books ja Computers ovat saaneet yliluokan avainattribuutin. Lisäksi relaatioilla on niiden omat attribuutit. Lisäksi on tarvitaan relaatio kuvaamaan suhdetta Maintains. Maintains(number, firmid, length) Relaation attribuutteina ovat relaatioiden Computers ja Firms avaimet sekä lisäksi suhteen oma attribuutti. Jokainen tuoteyksilö kuuluu kaikkiin niihin relaatioihin, joihin se ominaisuuksiensa puolesta kuuluu. Esimerkiksi äänikirjalla on sitä vastaavat monikot sekä Products-, CDs- että Books-relaatioissa. CSE-A1200 Tietokannat / 49

25 Oliosuuntautunut lähestymistapa Tässä lähestymistavassa luetellaan kaikki mahdolliset perintähierarkian alipuut, jotka sisältävät juuriyksilöjoukon. Jokaista mahdollista alipuuta kohti tehdään oma relaatio. Relaation kaaviossa on attribuutteina kaikki sitä vastaavassa alipuussa esiintyvät komponentit. Edellisessä esimerkissä on kahdeksan mahdollista alipuuta: 1. Products yksinään. 2. Products ja CDs 3. Products ja Books 4. Products ja Computers 5. Products, CDs ja Books 6. Products, CDs ja Computers 7. Products, Books ja Computers 8. Products, CDs, Books ja Computers CSE-A1200 Tietokannat / 49

26 Oliosuuntautunut lähestymistapa, jatkoa Näistä tulee kahdeksan relaatioita, ja lisäksi yksi suhteesta Maintains: Products(number, name, description, price) ProductsCD(number, name, description, price, artist, length) ProductsB(number, name, description, price, author, pages) ProductsC(number, name, description, price, speed, ram, harddisk) ProductsCDB(number, name, description, price, artist, length, author, pages) ProductsCDC(number, name, description, price, price, artist, length, speed, ram, harddisk) ProductsBC(number, name, description, price, author, pages, speed, ram, harddisk) ProductsCDBC(number, name, description, price, artist, length, author, pages, speed, ram, harddisk) Maintains(number, firmid, length) Kutakin tuotetta vastaa monikko vain yhdessä kahdeksasta ensimmäisestä relaatiosta. CSE-A1200 Tietokannat / 49

27 NULL-arvojen käyttö Kolmannessa lähestymistavassa tehdään kaikista perimyshierarkian yksilöjoukoista vain yksi yhteinen relaatio. Sillä on attribuutteina kaikki mahdolliset hierarkiassa esiintyvät ominaisuudet. Jos jollain yksilöllä ei kyseistä ominaisuutta ole, annetaan vastaavalle attribuutille tätä yksilöä edustavassa monikossa arvoksi erikoisarvo NULL, joka kertoo, että attribuutille ei ole määritelty arvoa. Esimerkkitapauksessa tehtäisiin kaikkia tuotteita edustamaan yksi relaatio Products(number, name, description, price, artist, length, author, pages, speed, ram, harddisk) Esimerkiksi tuotteilla, jotka eivät ole kirjoja, attribuuttien author ja pages arvot ovat NULL. Lisäksi suhdetta Maintains varten tehdään oma relaatio samoin kuin edellä. CSE-A1200 Tietokannat / 49

28 Lähestymistapojen vertailua Kyselyissä, jotka koskevat kaikkia tuotteita, voi olla eduksi, että joudutaan käsittelemään mahdollisimman vähän eri relaatioita (yleensä kysely on hitaampi suorittaa, jos se koskee suurempaa joukkoa relaatioita). Toisaalta kyselyissä, jotka koskevat vain esimerkiksi kirjoja, on edullisempaa, jos kirjat ovat omassa relaatiossaan. Yleensä relaatioiden määrän ei haluta olevan kovin suuri, koska se tekee tietokannasta monimutkaisemman. ER-malliin perustuvan ja nolla-arvoja käyttävän lähestymistavan ero tässä ei ole kuitenkaan kovin suuri. Sen sijaan oliosuuntaunut lähestymistapa voi aiheuttaa relaatioiden määrän kasvamisen nopeasti: jos perimyshierarkiassa on n + 1 yksilöjoukkoa, on mahdollisten alipuiden määrä 2 n. CSE-A1200 Tietokannat / 49

29 Lähestymistapojen vertailua, jatkuu On toivottavaa minimoida tilan käyttö ja välttää saman tiedon toistaminen. Tässä suhteessa oliosuuntautunut lähestymistapa on hyvä: kutakin yksilöä kohti on vain yksi monikko ja sillä on vain tarvittavat attribuutit. Myös nolla-arvoja käyttävässä tavassa on vain yksi monikko yksilöä kohti, mutta monikolla voi olla tarpeettomia attribuutteja. ER-malliin perustuvassa lähestymistavassa saman yksilön tiedot voivat olla useassa monikossa, mutta vain avainarvot on toistettu eri monikoissa. CSE-A1200 Tietokannat / 49

30 Funktionaaliset riippuvuudet ja tietokannan normalisointi Ongelma edelleen: Mitä relaatioita tietokantaan pitäisi määritellä ja mitä attribuutteja näillä pitäisi olla? Samat tiedot voidaan esittää useilla eri tietokantakaavioilla (= tietokantaan kuuluvien relaatiokaavioiden sekä eheysehtojen yhdistelmä). Jotkin niistä ovat parempia kuin toiset. ER-kaavion tai jonkin toisen korkeamman tason suunnittelumenetelmän tuottaman tuloksen suoraviivainen muuntaminen relaatiomalliin ei aina johda parhaaseen mahdolliseen lopputulokseen. Relaatiokaaviot voidaan muuttaa parempaan muotoon normalisoimalla. Tällä tarkoitetaan relaatioiden jakamista uusiksi relaatioiksi niin, että kokonaisuus on parempi. Normalisoinnissa tarvitaan tietoa relaatioiden attribuuttien funktionaalisista riippuvuuksista. CSE-A1200 Tietokannat / 49

31 Esimerkki Tarkastellaan kahta eri tapaa esittää tuotteita ja niiden valmistajia. Ensimmäisessä tavassa tiedot on tallennettu relaatioon Products1(number, prodname, description, price, manufid, manufname, phone) Toisessa tavassa tiedot on jaettu kahteen relaatioon Products(number, prodname, description, price, manufid) Manufacturers(ID, manufname, phone) CSE-A1200 Tietokannat / 49

32 Esimerkki jatkuu Relaatioiden instanssit voisivat olla esim. seuraavat: Relaatio Products1 number prodname description price manufid manufname phone T Galaxy A5 cellphone S123 Samsung S Brasserie 24 pan F542 Fiskars T NX 300 Smart camera S123 Samsung T Cyber-shot camera L711 Sony R Samsung LT 24 TV S123 Samsung R Sony 32 KDL TV L711 Sony CSE-A1200 Tietokannat / 49

33 Esimerkki jatkuu Relation Products number prodname description price manufid T Galaxy A5 cellphone S123 S Brasserie 24 pan F542 T NX 300 Smart camera S123 T Cyber-shot camera L711 R Samsung LT 24 TV S123 R Sony 32 KDL TV L711 Relation Manufactures ID manufname phone S123 Samsung L711 Sony F542 Fiskars CSE-A1200 Tietokannat / 49

34 Esimerkki: tietokantakaavioiden eroja Ensimmäisessä tietokantakaaviossa tiedot valmistajien nimistä ja puhelinnumeroista esiintyvät useaan kertaan, toisessa tietokantakaaviossa vain yhteen kertaan. Jos esim. valmistajan puhelinnumeroa muutetaan, pitää päivitys ensimmäisessä kaaviossa tehdä useaan monikkoon, toisessa vain yhteen. Jos ensimmäisessä kaaviossa halutaan poistaa tieto tuotteesta S-65221, häviävät samalla kaikki tiedot valmistajasta Fiskars. Toisessa kaaviossa valmistajan tiedot säilyvät, vaikka tieto tuotteesta poistetaan. Toinen tietokantakaavio on siis selvästi parempi kuin ensimmäinen. CSE-A1200 Tietokannat / 49

35 Huonon suunnittelun aiheuttamia ongelmia Tietokannan huonosta rakenteesta johtuvia tietokannan käyttäytymisen poikkeavuuksia kutsutaan anomalioiksi (anomaly). Keskeiset anomaliat: Tiedon toisteisuus (redundancy) Päivitysanomaliat (update anomalies): jos sama tieto on esitetty useaan kertaan, täytyy muutokset tehdä jokaiseen esityskohtaan. Poistoanomaliat (deletion anomalies): monikoiden poistolla voi olla sivuvaikutuksia. Jos esimerkiksi tuotteiden ja niiden valmistajien tiedot on yhdistetty samaan relaatioon, voi tuotteen poistaminen poistaa myös informaation valmistajan nimestä ja puhelinnumerosta. CSE-A1200 Tietokannat / 49

36 Funktionaalisen riippuvuuden määritelmä Olkoon relaatiolla R attribuutit A 1, A 2,..., A n, B, C 1, C 2,..., C k. Attribuutit A 1, A 2,..., A n määräävät funktionaalisesti attribuutin B, jos seuraava ehto on voimassa: Jos kahdella relaation R monikolla on samat arvot kaikilla attribuuteilla A 1, A 2,..., A n, niin silloin niillä on samat arvot myös attribuutilla B. Attribuutit A 1, A 2,..., A n määräävät funktionaalisesti attribuutin B merkitään A 1 A 2... A n B Jos kahdella relaation R monikolla on samat arvot kaikilla attribuuteilla A 1, A 2..., A n, niin niillä on siis samat arvot myös attribuutilla B. Huomaa kuitenkin, että R:llä voi olla myös muita attribuutteja C 1, C 2,..., C k, joiden arvot voivat poiketa toisistaan. Funktionaalisen riippuvuuden ehdon pitää päteä kaikille mahdollisille R:n monikoille, ei vain kaikille tällä hetkellä R:n instanssissa oleville monikoille. CSE-A1200 Tietokannat / 49

37 Funktionaalinen riippuvuus, määritelmä yleisemmin Olkoon relaatiolla R attribuutit A 1, A 2,..., A n, B 1, B 2,..., B m, C 1, C 2,..., C k. Attribuutit A 1, A 2,..., A n määräävät funktionaalisesti attribuutit B 1, B 2,..., B m, jos seuraava ehto on voimassa: Jos kahdella relaation R monikolla on samat arvot kaikilla attribuuteilla A 1, A 2,..., A n, niin silloin niillä on samat arvot myös kaikilla attribuuteilla B 1, B 2,..., B m. Merkitään A 1 A 2... A n B 1 B 2... B m CSE-A1200 Tietokannat / 49

38 Funktionaalinen riippuvuus, esimerkki Olkoon määritelty relaatio Products1(number, prodname, description, price, manufid, manufname, phone) Tässä siis kunkin tuotteen tietojen yhteyteen on tallennettu myös tuotteen valmistajan kaikki tiedot. Mitä funktionaalisia riippuvuuksia relaatiolla on? CSE-A1200 Tietokannat / 49

39 Funktionaalinen riippuvuus, esimerkki jatkuu Koska tuotteen numero yksilöi, mistä tuotteesta on kysymys, määrää se tuotteen nimen, kuvauksen, hinnan, valmistajan tunnuksen, valmistajan nimen ja valmistajan puhelinnumeron. Tämä esitetään number prodname description price manufid manufname phone Valmistajan tunnus yksiöi valmistajan, joten se määrää valmistajan nimen ja puhelinnumeron. Merkitään Sen sijaan esim. riippuvuus manufid manufname phone manufid number prodname ei ole voimassa, koska samalla valmistajalla voi olla useita eri tuotteita. CSE-A1200 Tietokannat / 49

40 Relaatioiden avaimet Yksi tai useampi attribuutti {A 1,..., A n } on relaation R avain, jos 1. nämä attribuutit funktionaalisesti määräävät kaikki muut relaation R attribuutit. 2. mikään tämän attribuuttijoukon aito osajoukko ei funktionaalisesti määrää kaikkia muita relaation R attribuutteja. Edellisen kalvon esimerkissä attribuutti number on relaation Products1 avain. Sen sijaan esim. attribuutti manufid ei kelpaa tämän relaation avaimeksi, koska se ei funktionaalisesti määrää kaikkia relaation attribuutteja. CSE-A1200 Tietokannat / 49

41 Relaatioiden avaimet, jatkoa Tarkastellaan relaatiota Orders1(orderNo, deliver, status, custno, productno, count). Mikä on tämän relaation avain? CSE-A1200 Tietokannat / 49

42 Relaatioiden avaimet, jatkoa Tarkastellaan relaatiota Orders1(orderNo, deliver, status, custno, productno, count). Mikä on tämän relaation avain? Attribuutit {orderno, prodno} muodostavat relaation Orders1 avaimen, koska 1. jos kaksi monikkoa yhtyvät avainattribuuttien osalta, niin niillä on samat arvot myös lopuille attribuuteille deliver, status, custno ja count 2. aidot osajoukot {orderno} ja {prodno} eivät määrää relaation kaikkia muita attribuutteja. Huom: Relaatiolla voi olla myös useampi kuin yksi mahdollinen avain. Tällöin yksi avain valitaan ensisijaiseksi avaimeksi (primary key). Yliavain (superkey) on attribuuttijoukko, joka sisältää avaimen (mutta voi sen lisäksi sisältää muitakin attribuutteja). Myös avain itse on yliavain. CSE-A1200 Tietokannat / 49

43 Funktionaalisten riippuvuuksien päättelystä Funktionaaliset riippuvuudet voidaan usein esittää monella eri tavalla. Hyvien relaatiokaavioiden etsimisessä on usein olennaista tietää, mitkä riippuvuudet seuraavat toisistaan. Olkoon S ja T kaksi funktionaalisten riippuvuuksien joukkoa. Riippuvuuksien joukko S seuraa (follows) riippuvuuksista T, jos jokainen relaatioinstanssi, joka täyttää kaikki T :n riippuvuudet, täyttää myös kaikki S:n riippuvuudet. Riippuvuuksien joukot S ja T ovat ekvivalentit, jos S seuraa T :stä ja T seuraa S:stä. CSE-A1200 Tietokannat / 49

44 Ositus/yhdistämissääntö Olkoon voimassa funktionaalinen riippuvuus A 1 A 2... A n B 1 B 2... B m Tämä riippuvuus on ekvivalentti seuraavan funktionaalisten riippuvuuksien joukon kanssa: A 1 A 2... A n B 1 A 1 A 2... A n B 2... A 1 A 2... A n B m Funktionaalinen riippuvuus A 1 A 2... A n B 1 B 2... B m voidaan siis korvata joukolla funktionaalisia riippuvuuksia A 1 A 2... A n B i, i = 1, 2,..., m. (Ositussääntö, splitting rule) Vastaavasti joukko funktionaalisia riippuvuuksia A 1 A 2... A n B i, i = 1, 2,..., m voidaan korvata yhdellä funktonaalisella riippuvuudella A 1 A 2... A n B 1 B 2... B m (yhdistämissääntö, combining rule). CSE-A1200 Tietokannat / 49

45 Riippuvuuksien luokittelua Tarkastellaan riippuvuutta A 1 A 2... A n B 1 B 2... B m Riippuvuus on triviaali (trivial), jos kaikki B:t ovat A:iden osajoukko Riippuvuus on epätriviaali (nontrivial), jos vähintään yksi B ei sisälly A:iden joukkoon. Riippuvuus on täysin epätriviaali (completely nontrivial), jos mikään B ei sisälly A:iden joukkoon. Esimerkiksi riippuvuus orderno prodno prodno count on epätriviaali, mutta ei täysin epätriviaali. Riippuvuuden oikealta puolelta voidaan aina poistaa sellaiset attribuutit, jotka esiintyvät myös sen vasemmalla puolella. CSE-A1200 Tietokannat / 49

46 Transitiivisuussääntö Tarkastellaan relaatiota R(A, B, C, D). Jos on voimassa funktionaaliset riippuvuudet A B ja B C, niin silloin on voimassa myös riippuvuus A C. CSE-A1200 Tietokannat / 49

47 Transitiivisuussääntö Tarkastellaan relaatiota R(A, B, C, D). Jos on voimassa funktionaaliset riippuvuudet A B ja B C, niin silloin on voimassa myös riippuvuus A C. Todistus: Olkoon R:n instanssissa kaksi monikkoa, joilla on samat arvot attribuutille A: (a, b 1, c 1, d 1 ) ja (a, b 2, c 2, d 2 ). Koska R:lle pätee A B, täytyy tällöin olla b1 = b 2. Koska nyt molemmilla monikoilla on sama arvo attribuutille B ja B C, täytyy myös monikoiden C arvot olla samat: c 1 = c 2. On siis todistettu, että jos kahdella monikolla on sama arvo attribuutille A, niillä on myös sama arvo attribuutille C eli funktionaalinen riippuvuus A C pätee. CSE-A1200 Tietokannat / 49

48 Attribuuttien sulkeuma Olkoon annettu attribuuttijoukko {A 1, A 2,..., A n } ja joukko funktionaalisia riippuvuuksia S. Haluamme tietää kaikki ne attribuutit, jotka jotka riippuvat funktionaalisesti joukosta {A 1, A 2,..., A n }. Näiden attribuuttien joukkoa sanotaan joukon {A 1, A 2,..., A n } sulkeumaksi riippuvuusjoukon S suhteen. Täsmällisemmin: joukon {A 1, A 2,..., A n } sulkeuma riippuvuusjoukon S suhteen on maksimaalinen attribuuttijoukko B siten että A 1 A 2... A n B Attribuuttijoukon {A 1, A 2,..., A n } sulkeumaa merkitään seuraavasti: {A 1, A 2,..., A n } + CSE-A1200 Tietokannat / 49

49 Attribuuttien sulkeuman laskeminen, algoritmi Algoritmin syötteenä on attribuuttien joukko {A 1, A 2,..., A n } ja funktionaalisten riippuvuuksien joukko S. Sulkeuman voi laskea seuraavasti: 1. Jaa tarvittaessa funktionaaliset riippuvuudet käyttämällä ositussääntöä niin, että jokaisen riippuvuuden oikealla puolella esiintyy vain yksi attribuutti. 2. Olkoon X joukko, joka lopulta sisältää sulkeuman. Aseta X aluksi joukko {A 1, A 2,..., A n }. 3. Etsi jokin funktionaalinen riippuvuus B 1 B 2... B m C siten, että kaikki B 1, B 2,..., B m sisältyvät joukkoon X, mutta C ei sisälly. Lisää C joukkoon X. 4. Toista kohtaa kolme, kunnes X :ää ei enää voi kasvattaa. 5. Joukko X on nyt {A 1, A 2,..., A n } +. CSE-A1200 Tietokannat / 49

50 Attribuuttien sulkeuman laskeminen, esimerkki Tarkastellaan relaatiota R(A, B, C, D, E, F ), jolla on riippuvuudet A B C, B C A D, D E ja C F B. Mikä on {A, B} +? CSE-A1200 Tietokannat / 49

51 Attribuuttien sulkeuman laskeminen, esimerkki Tarkastellaan relaatiota R(A, B, C, D, E, F ), jolla on riippuvuudet A B C, B C A D, D E ja C F B. Mikä on {A, B} +? Ratkaisu: Jaetaan ensin toinen riippuvuus kahdeksi riippuvuudeksi. Saadaan siis riippuvuudet: A B C B C A B C D D E C F B (jatkuu seuraavalla kalvolla) CSE-A1200 Tietokannat / 49

52 Attribuuttien sulkeuman laskeminen, ratkaisu jatkuu Aloitetaan asettamalla X = {A, B}. Ensimmäisen riippuvuuden perusteella voidaan lisätä X :ään C, siis X = {A, B, C}. Kolmannen riippuvuuden perusteella lisätään D, jolloin X = {A, B, C, D}. Nyt neljännen riippuvuuden perusteella voidaan lisätä E, joten X = {A, B, C, D, E}. Tämän jälkeen X :n kasvattaminen ei enää onnistu minkään riippuvuuden avulla. {A, B} + on siis {A, B, C, D, E} CSE-A1200 Tietokannat / 49

53 Miksi laskea attribuuttien sulkeuma? Attribuuttien sulkeuman perusteella voidaan päätellä, seuraako jokin riippuvuus A 1 A 2... A n B annetusta funktionaalisten riippuvuksien joukosta S: Lasketaan ensin {A 1, A 2,..., A n } +. Jos B kuuluu sulkeumaan, niin A1 A 2... A n B seuraa S:stä, jos B ei kuulu sulkeumaan, niin tarkasteltu riippuvuus ei seuraa joukosta S. Näin voidaan päätellä, seuraako jokin riippuvuuksien joukko toisesta riippuvuuksien joukosta, tai ovatko annetut kaksi riippuvuuksien joukkoa ekvivalentteja. Sulkeuman avulla voidaan myös päätellä, onko annettu attribuuttijoukko relaation yliavain. Lasketaan attribuuttijoukon sulkeuma. Jos relaation kaikki attribuutit kuuluvat sulkeumaan, attribuuttijoukko on relaation yliavain. CSE-A1200 Tietokannat / 49

54 Minimaaliset riippuvuusjoukot Joukosta riippuvuuksia voidaan johtaa uusia riippuvuuksia. Yleensä relaation osittamista varten haluaisimme mahdollisimman pienen joukon riippuvuuksia, jotka kuitenkin riittävät kuvaamaan kaiken olennaisen relaation riippuvuuksista. Riippuvuusjoukkoa, josta voidaan johtaa kaikki relaation riippuvuudet, kutsutaan relaation kannaksi (basis). Kanta B on minimaalinen kanta, jos seuraavat ehdot pätevät: 1. Kaikissa B:n riippuvuuksissa on oikealla puolella vain yksi attribuutti. 2. Jos mikä tahansa B:n riippuvuus poistetaan, B ei ole enää kanta. 3. Jos mistä tahansa B:n riippuvuuksista poistetaan vasemmalta puolelta yksi tai useampi attribuutti, B ei ole enää kanta. CSE-A1200 Tietokannat / 49

CS-A1150 Tietokannat CS-A1150 Tietokannat / 51

CS-A1150 Tietokannat CS-A1150 Tietokannat / 51 CS-A1150 Tietokannat 7.3.2017 CS-A1150 Tietokannat 7.3.2017 1 / 51 Oppimistavoitteet: tämän luennon jälkeen Osaat muuttaa ER-kaavion relaatiomalliin. Toisin sanoen: jos sinulla on valmis ER-kaavio, niin

Lisätiedot

CS-A1150 Tietokannat CS-A1150 Tietokannat / 54

CS-A1150 Tietokannat CS-A1150 Tietokannat / 54 CS-A1150 Tietokannat 6.3.2018 CS-A1150 Tietokannat 6.3.2018 1 / 54 Oppimistavoitteet: tämän luennon jälkeen Osaat muuttaa ER-kaavion relaatiomalliin. Toisin sanoen: jos sinulla on valmis ER-kaavio, niin

Lisätiedot

CS-A1150 Tietokannat CS-A1150 Tietokannat / 44

CS-A1150 Tietokannat CS-A1150 Tietokannat / 44 CS-A1150 Tietokannat 12.3.2019 CS-A1150 Tietokannat 12.3.2019 1 / 44 Oppimistavoitteet: tämän luennon jälkeen Osaat muuttaa UML-kaavion relaatiomalliin. Toisin sanoen: jos sinulla on valmis UML-kaavio,

Lisätiedot

CS-A1150 Tietokannat CS-A1150 Tietokannat / 51

CS-A1150 Tietokannat CS-A1150 Tietokannat / 51 CS-A1150 Tietokannat 19.3.2019 CS-A1150 Tietokannat 19.3.2019 1 / 51 Oppimistavoitteet: tämän luennon jälkeen Osaat muuttaa huonon tietokantakaavion paremmaksi: Tiedät mitä tarkoitetaan sillä, että relaatio

Lisätiedot

CSE-A1200 Tietokannat

CSE-A1200 Tietokannat CSE-A1200 Tietokannat 15.3.2016 CSE-A1200 Tietokannat 15.3.2016 1 / 45 Oppimistavoitteet: tämän luennon jälkeen Osaat muuttaa huonon tietokantakaavion paremmaksi: Tiedät mitä tarkoitetaan sillä, että relaatio

Lisätiedot

CSE-A1200 Tietokannat

CSE-A1200 Tietokannat CSE-A1200 Tietokannat 1.3.2016 CSE-A1200 Tietokannat 1.3.2016 1 / 41 Oppimistavoitteet: tämän luennon jälkeen Osaat tehdä tietokantaa kuvaavan mallin ER-kaavion avulla. Tunnet esimerkiksi seuraavat ER-mallinnuksen

Lisätiedot

CS-A1150 Tietokannat CS-A1150 Tietokannat / 43

CS-A1150 Tietokannat CS-A1150 Tietokannat / 43 CS-A1150 Tietokannat 14.3.2017 CS-A1150 Tietokannat 14.3.2017 1 / 43 Oppimistavoitteet: tämän luennon jälkeen Osaat muuttaa huonon tietokantakaavion paremmaksi: Tiedät mitä tarkoitetaan sillä, että relaatio

Lisätiedot

CS-A1150 Tietokannat CS-A1150 Tietokannat / 43

CS-A1150 Tietokannat CS-A1150 Tietokannat / 43 CS-A1150 Tietokannat 13.3.2018 CS-A1150 Tietokannat 13.3.2018 1 / 43 Oppimistavoitteet: tämän luennon jälkeen Osaat muuttaa huonon tietokantakaavion paremmaksi: Tiedät mitä tarkoitetaan sillä, että relaatio

Lisätiedot

CS-A1150 Tietokannat CS-A1150 Tietokannat / 43

CS-A1150 Tietokannat CS-A1150 Tietokannat / 43 CS-A1150 Tietokannat 27.2.2018 CS-A1150 Tietokannat 27.2.2018 1 / 43 Oppimistavoitteet: tämän luennon jälkeen Osaat tehdä tietokantaa kuvaavan mallin ER-kaavion avulla. Tunnet esimerkiksi seuraavat ER-mallinnuksen

Lisätiedot

CSE-A1200 Tietokannat

CSE-A1200 Tietokannat CSE-A1200 Tietokannat 22.3.2016 CSE-A1200 Tietokannat 22.3.2016 1 / 35 Oppimistavoitteet: tämän luennon jälkeen Osaat tehdä SQL:llä kyselyitä, jotka käyttävät hyväkseen toisen kyselyn tuloksia (alikyselyt).

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

CS-A1150 Tietokannat CSE-A1150 Tietokannat / 29

CS-A1150 Tietokannat CSE-A1150 Tietokannat / 29 CS-A1150 Tietokannat 20.5.2019 CSE-A1150 Tietokannat 20.5.2019 1 / 29 Kertausluento Tällä luennolla kerrataan lyhyesti tenttivaatimuksissa esitettyjä asioita ja samalla tarkastellaan sitä, mitä niistä

Lisätiedot

CS-A1150 Tietokannat CS-A1150 Tietokannat / 35

CS-A1150 Tietokannat CS-A1150 Tietokannat / 35 CS-A1150 Tietokannat 5.3.2019 CS-A1150 Tietokannat 5.3.2019 1 / 35 Oppimistavoitteet: tämän luennon jälkeen Osaat tehdä tietokantaa kuvaavan mallin UML-kaavion avulla. Tunnet esimerkiksi seuraavat UML-mallinnuksen

Lisätiedot

CS-A1150 Tietokannat CSE-A1150 Tietokannat / 32

CS-A1150 Tietokannat CSE-A1150 Tietokannat / 32 CS-A1150 Tietokannat 15.5.2018 CSE-A1150 Tietokannat 15.5.2018 1 / 32 Kertausluento Tällä luennolla kerrataan lyhyesti tenttivaatimuksissa esitettyjä asioita ja samalla tarkastellaan sitä, mitä niistä

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

CS-A1150 Tietokannat CS-A1150 Tietokannat / 39

CS-A1150 Tietokannat CS-A1150 Tietokannat / 39 CS-A1150 Tietokannat 20.2.2018 CS-A1150 Tietokannat 20.2.2018 1 / 39 Oppimistavoitteet: tämän luennon jälkeen Tunnet SQL:n perusteet ja osaat tehdä yksinkertaisia SQL-kyselyitä, esimerkiksi hakea relaatiosta

Lisätiedot

CS-A1150 Tietokannat CSE-A1150 Tietokannat / 39

CS-A1150 Tietokannat CSE-A1150 Tietokannat / 39 CS-A1150 Tietokannat 9.5.2017 CSE-A1150 Tietokannat 9.5.2017 1 / 39 Kertausluento Tällä luennolla kerrataan lyhyesti tenttivaatimuksissa esitettyjä asioita ja samalla tarkastellaan sitä, mitä niistä voidaan

Lisätiedot

CS-A1150 Tietokannat CS-A1150 Tietokannat / 43

CS-A1150 Tietokannat CS-A1150 Tietokannat / 43 CS-A1150 Tietokannat 27.3.2018 CS-A1150 Tietokannat 27.3.2018 1 / 43 Oppimistavoitteet: tämän luennon jälkeen Tiedät, miten tietokannan relaatioiden (taulujen) määrittelyt kirjoitetaan SQL:llä. Osaat päivittää

Lisätiedot

CS-A1150 Tietokannat CS-A1150 Tietokannat / 44

CS-A1150 Tietokannat CS-A1150 Tietokannat / 44 CS-A1150 Tietokannat 2.4.2019 CS-A1150 Tietokannat 2.4.2019 1 / 44 Oppimistavoitteet: tämän luennon jälkeen Tiedät, miten tietokannan taulujen (relaatioiden) määrittelyt kirjoitetaan SQL:llä. Osaat päivittää

Lisätiedot

CSE-A1200 Tietokannat

CSE-A1200 Tietokannat CSE-A1200 Tietokannat 10.5.2016 CSE-A1200 Tietokannat 10.5.2016 1 / 50 Kertausluento Tällä luennolla kerrataan lyhyesti tenttivaatimuksissa esitettyjä asioita ja samalla tarkastellaan sitä, mitä niistä

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

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

Harjoitustyö. CSE-A1200 Tietokannat! Jasse Lahdenperä! 345396! killedwhale@kapsi.fi! Henri Nurmi! 345545! henri.nurmi@kapsi.fi!

Harjoitustyö. CSE-A1200 Tietokannat! Jasse Lahdenperä! 345396! killedwhale@kapsi.fi! Henri Nurmi! 345545! henri.nurmi@kapsi.fi! Harjoitustyö CSE-A1200 Tietokannat Jasse Lahdenperä 345396 killedwhale@kapsi.fi Henri Nurmi 345545 henri.nurmi@kapsi.fi 1 Ensimmäisen vaiheen ratkaisu ER-Kaavio 2 Relaatiomalli: Loanable(Id, MaximumLoanTime)

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

TIEDONHALLINNAN PERUSTEET - SYKSY 2013

TIEDONHALLINNAN PERUSTEET - SYKSY 2013 TIEDONHALLINNAN PERUSTEET - SYKSY 2013 Kurssikoodi: Saapumisryhmä: Luento 4 XX00AA79-3013 TU12S2 Pasi Ranne 11.9.2013 11/9/13 Helsinki Metropolia University of Applied Sciences 1 Relaatiotietokannan suunnitteluprosessin

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

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

CSE-A1200 Tietokannat

CSE-A1200 Tietokannat CSE-A1200 Tietokannat 12.4.2016 CSE-A1200 Tietokannat 12.4.2016 1 / 42 Oppimistavoitteet: tämän luennon jälkeen Tiedät, mitä tarkoitetaan hakemistolla ja mitä hyötyä hakemistosta on. Tiedät, miten voidaan

Lisätiedot

CS-A1150 Tietokannat CS-A1150 Tietokannat / 43

CS-A1150 Tietokannat CS-A1150 Tietokannat / 43 CS-A1150 Tietokannat 15.4.2019 CS-A1150 Tietokannat 15.4.2019 1 / 43 Oppimistavoitteet: tämän luennon jälkeen Tiedät, mitä tarkoitetaan hakemistolla ja mitä hyötyä hakemistosta on. Tiedät, miten voidaan

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

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

CS-A1150 Tietokannat CS-A1150 Tietokannat / 47

CS-A1150 Tietokannat CS-A1150 Tietokannat / 47 CS-A1150 Tietokannat 10.4.2018 CS-A1150 Tietokannat 10.4.2018 1 / 47 Oppimistavoitteet: tämän luennon jälkeen Tiedät, mitä tarkoitetaan hakemistolla ja mitä hyötyä hakemistosta on. Tiedät, miten voidaan

Lisätiedot

CS-A1150 Tietokannat CS-A1150 Tietokannat / 34

CS-A1150 Tietokannat CS-A1150 Tietokannat / 34 CS-A1150 Tietokannat 7.2.2017 CS-A1150 Tietokannat 7.2.2017 1 / 34 Oppimistavoitteet: tämän luennon jälkeen Tiedät, mitä tarkoitetaan relaatioalgebralla. Osaat tehdä erilaisia kyselyitä relaatioalgebran

Lisätiedot

CS-A1150 Tietokannat CS-A1150 Tietokannat / 34

CS-A1150 Tietokannat CS-A1150 Tietokannat / 34 CS-A1150 Tietokannat 6.2.2018 CS-A1150 Tietokannat 6.2.2018 1 / 34 Oppimistavoitteet: tämän luennon jälkeen Tiedät, mitä tarkoitetaan relaatioalgebralla. Osaat tehdä erilaisia kyselyitä relaatioalgebran

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

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

Kyselyt: Lähtökohtana joukko lukuja Laskukaava kertoo miten luvuista lasketaan tulos soveltamalla laskentaoperaatioita Relaatioalgebra Relaatiomalliin liittyy malli tietokannan käsittelystä Tietokannasta pitää pystyä hakemaan tietoa ja toisaalta tietokantaa on ylläpidettävä Tietokannan käsittelyn malli relaatioalgebra

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

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

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

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 toistuva tieto vie tilaa ylläpito muodostuu hankalaksi ylläpito-operaatioilla voi

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

CS-A1150 Tietokannat

CS-A1150 Tietokannat CS-A1150 Tietokannat Osa kalvoista perustuu Juha Puustjärven luentokalvoihin aikaisemmalta kurssikerralta sekä kurssin oppikirjaan 4.2.2019 CS-A1150 Tietokannat 4.2.2019 1 / 29 Aloitusluento: tämän luennon

Lisätiedot

Ohjelmistojen mallintaminen luokkamallin lisäpiirteitä

Ohjelmistojen mallintaminen luokkamallin lisäpiirteitä 582104 Ohjelmistojen mallintaminen luokkamallin lisäpiirteitä 1 Luokkamallin lisäpiirteitä Erilaiset yhteystyypit kooste kompositio Muita luokkien välisiä suhteita riippuvuudet periytyminen eli luokkahierarkia

Lisätiedot

Karteesinen tulo. Olkoot A = {1, 2, 3, 5} ja B = {a, b, c}. Näiden karteesista tuloa A B voidaan havainnollistaa kuvalla 1 / 21

Karteesinen tulo. Olkoot A = {1, 2, 3, 5} ja B = {a, b, c}. Näiden karteesista tuloa A B voidaan havainnollistaa kuvalla 1 / 21 säilyy Olkoot A = {1, 2, 3, 5} ja B = {a, b, c}. Näiden karteesista tuloa A B voidaan havainnollistaa kuvalla c b a 1 2 3 5 1 / 21 säilyy Esimerkkirelaatio R = {(1, b), (3, a), (5, a), (5, c)} c b a 1

Lisätiedot

Relaatioalgebra. Kyselyt:

Relaatioalgebra. Kyselyt: Relaatioalgebra Relaatiomalliin liittyy malli tietokannan käsittelystä Tietokannasta pitää pystyä hakemaan tietoa ja toisaalta tietokantaa on ylläpidettävä Tietokannan käsittelyn malli relaatioalgebra

Lisätiedot

MS-A0402 Diskreetin matematiikan perusteet

MS-A0402 Diskreetin matematiikan perusteet MS-A040 Diskreetin matematiikan perusteet Osa : Relaatiot ja funktiot Riikka Kangaslampi 017 Matematiikan ja systeemianalyysin laitos Aalto-yliopisto Relaatiot Relaatio Määritelmä 1 Relaatio joukosta A

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

Diskreetin Matematiikan Paja Tehtäviä viikolle 2. ( ) Jeremias Berg

Diskreetin Matematiikan Paja Tehtäviä viikolle 2. ( ) Jeremias Berg Diskreetin Matematiikan Paja Tehtäviä viikolle 2. (24.3-25.3) Jeremias Berg Tämän viikon tehtävien teemoina on tulojoukot, relaatiot sekä kuvaukset. Näistä varsinkin relaatiot ja kuvaukset ovat tärkeitä

Lisätiedot

Approbatur 3, demo 1, ratkaisut A sanoo: Vähintään yksi meistä on retku. Tehtävänä on päätellä, mitä tyyppiä A ja B ovat.

Approbatur 3, demo 1, ratkaisut A sanoo: Vähintään yksi meistä on retku. Tehtävänä on päätellä, mitä tyyppiä A ja B ovat. Approbatur 3, demo 1, ratkaisut 1.1. A sanoo: Vähintään yksi meistä on retku. Tehtävänä on päätellä, mitä tyyppiä A ja B ovat. Käydään kaikki vaihtoehdot läpi. Jos A on rehti, niin B on retku, koska muuten

Lisätiedot

Joukossa X määritelty relaatio R on. (ir) irrefleksiivinen, jos x Rx kaikilla x X,

Joukossa X määritelty relaatio R on. (ir) irrefleksiivinen, jos x Rx kaikilla x X, Relaation Joukossa X määritelty relaatio R on (r) refleksiivinen, jos xrx kaikilla x X, (ir) irrefleksiivinen, jos x Rx kaikilla x X, (s) symmetrinen, jos xry yrx, (as) antisymmetrinen, jos xry yrx x =

Lisätiedot

Relaation ominaisuuksia. Ominaisuuksia koskevia lauseita Sulkeumat. Joukossa X määritelty relaatio R on. (ir) irrefleksiivinen, jos x Rx kaikilla x X,

Relaation ominaisuuksia. Ominaisuuksia koskevia lauseita Sulkeumat. Joukossa X määritelty relaatio R on. (ir) irrefleksiivinen, jos x Rx kaikilla x X, Relaation Joukossa X määritelty relaatio R on (r) refleksiivinen, jos xrx kaikilla x X, (ir) irrefleksiivinen, jos x Rx kaikilla x X, Relaation Joukossa X määritelty relaatio R on (r) refleksiivinen, jos

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

Algoritmit 2. Luento 6 Ke Timo Männikkö

Algoritmit 2. Luento 6 Ke Timo Männikkö Algoritmit 2 Luento 6 Ke 29.3.2017 Timo Männikkö Luento 6 B-puun operaatiot B-puun muunnelmia Nelipuu Trie-rakenteet Standarditrie Pakattu trie Algoritmit 2 Kevät 2017 Luento 6 Ke 29.3.2017 2/31 B-puu

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

Algoritmit 2. Luento 6 To Timo Männikkö

Algoritmit 2. Luento 6 To Timo Männikkö Algoritmit 2 Luento 6 To 28.3.2019 Timo Männikkö Luento 6 B-puun operaatiot Nelipuu Trie-rakenteet Standarditrie Pakattu trie Algoritmit 2 Kevät 2019 Luento 6 To 28.3.2019 2/30 B-puu 40 60 80 130 90 100

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

Olkoon seuraavaksi G 2 sellainen tasan n solmua sisältävä suunnattu verkko,

Olkoon seuraavaksi G 2 sellainen tasan n solmua sisältävä suunnattu verkko, Tehtävä 1 : 1 a) Olkoon G heikosti yhtenäinen suunnattu verkko, jossa on yhteensä n solmua. Määritelmän nojalla verkko G S on yhtenäinen, jolloin verkoksi T voidaan valita jokin verkon G S virittävä alipuu.

Lisätiedot

TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 19. tammikuuta 2012

TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 19. tammikuuta 2012 TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 19. tammikuuta 2012 Sisällys Sisällys Muistathan A B -konstruktion 0 k 1 i 2 s 3 s 4 a 5 0 k 1 o 2 i 3 r 4

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

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

Diskreetin matematiikan perusteet Laskuharjoitus 2 / vko 9

Diskreetin matematiikan perusteet Laskuharjoitus 2 / vko 9 Diskreetin matematiikan perusteet Laskuharjoitus 2 / vko 9 Tuntitehtävät 9-10 lasketaan alkuviikon harjoituksissa ja tuntitehtävät 13-14 loppuviikon harjoituksissa. Kotitehtävät 11-12 tarkastetaan loppuviikon

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

CS-A1150 Tietokannat

CS-A1150 Tietokannat CS-A1150 Tietokannat Osa kalvoista perustuu Juha Puustjärven luentokalvoihin aikaisemmalta kurssikerralta sekä kurssin oppikirjaan 30.1.2018 CS-A1150 Tietokannat 30.1.2018 1 / 28 Aloitusluento: tämän luennon

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

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

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

AVL-puut. eräs tapa tasapainottaa binäärihakupuu siten, että korkeus on O(log n) kun puussa on n avainta AVL-puut eräs tapa tasapainottaa binäärihakupuu siten, että korkeus on O(log n) kun puussa on n avainta pohjana jo esitetyt binäärihakupuiden operaatiot tasapainotus vie pahimmillaan lisäajan lisäys- ja

Lisätiedot

13. Loogiset operaatiot 13.1

13. Loogiset operaatiot 13.1 13. Loogiset operaatiot 13.1 Sisällys Loogiset operaatiot AND, OR, XOR ja NOT. Operaatioiden ehdollisuus. Bittioperaatiot. Loogiset operaatiot ohjausrakenteissa. Loogiset operaatiot ja laskentajärjestys.

Lisätiedot

Kuvaus eli funktio f joukolta X joukkoon Y tarkoittaa havainnollisesti vastaavuutta, joka liittää joukon X jokaiseen alkioon joukon Y tietyn alkion.

Kuvaus eli funktio f joukolta X joukkoon Y tarkoittaa havainnollisesti vastaavuutta, joka liittää joukon X jokaiseen alkioon joukon Y tietyn alkion. Kuvaus eli funktio f joukolta X joukkoon Y tarkoittaa havainnollisesti vastaavuutta, joka liittää joukon X jokaiseen alkioon joukon Y tietyn alkion. Vastaavuus puolestaan on erikoistapaus relaatiosta.

Lisätiedot

Kuvaus eli funktio f joukolta X joukkoon Y tarkoittaa havainnollisesti vastaavuutta, joka liittää joukon X jokaiseen alkioon joukon Y tietyn alkion.

Kuvaus eli funktio f joukolta X joukkoon Y tarkoittaa havainnollisesti vastaavuutta, joka liittää joukon X jokaiseen alkioon joukon Y tietyn alkion. Kuvaus eli funktio f joukolta X joukkoon Y tarkoittaa havainnollisesti vastaavuutta, joka liittää joukon X jokaiseen alkioon joukon Y tietyn alkion. Kuvaus eli funktio f joukolta X joukkoon Y tarkoittaa

Lisätiedot

Relaatioista TIETOJENKÄSITTELYTIETEIDEN LAITOS, JUHA IISAKKA 11-14

Relaatioista TIETOJENKÄSITTELYTIETEIDEN LAITOS, JUHA IISAKKA 11-14 Relaatioista Sarakenimistä relaation kaava tulisi olla yksiselitteinen attribuutin roolinimen tulisi auttaa ymmärtämään attribuutin tarkoituksen OSASTO(NIMI,NRO, TNRO, SIJAINTI) mitä tarkoittaa TNRO? viiteavaimella

Lisätiedot

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

TIEDONHALLINTA - SYKSY Luento 7. Pasi Ranne /10/17 Helsinki Metropolia University of Applied Sciences TIEDONHALLINTA - SYKSY 2017 Kurssikoodi: Saapumisryhmä: Luento 7 TX00CN57-3001 TXQ16ICT, TXQ16S1 ja TXQ16PROS Pasi Ranne 02.10.2017 1/10/17 Helsinki Metropolia University of Applied Sciences 1 Tietokannan

Lisätiedot

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

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

Joukot. Georg Cantor ( )

Joukot. Georg Cantor ( ) Joukot Matematiikassa on pyrkimys määritellä monimutkaiset asiat täsmällisesti yksinkertaisempien asioiden avulla. Tarvitaan jokin lähtökohta, muutama yleisesti hyväksytty ja ymmärretty käsite, joista

Lisätiedot

Konsensusongelma hajautetuissa järjestelmissä. Niko Välimäki Hajautetut algoritmit -seminaari

Konsensusongelma hajautetuissa järjestelmissä. Niko Välimäki Hajautetut algoritmit -seminaari Konsensusongelma hajautetuissa järjestelmissä Niko Välimäki 30.11.2007 Hajautetut algoritmit -seminaari Konsensusongelma Päätöksen muodostaminen hajautetussa järjestelmässä Prosessien välinen viestintä

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

y x1 σ t 1 = c y x 1 σ t 1 = y x 2 σ t 2 y x 2 x 1 y = σ(t 2 t 1 ) x 2 x 1 y t 2 t 1

y x1 σ t 1 = c y x 1 σ t 1 = y x 2 σ t 2 y x 2 x 1 y = σ(t 2 t 1 ) x 2 x 1 y t 2 t 1 1. Tarkastellaan funktiota missä σ C ja y (y 1,..., y n ) R n. u : R n R C, u(x, t) e i(y x σt), (a) Miksi funktiota u(x, t) voidaan kutsua tasoaalloksi, jonka aaltorintama on kohtisuorassa vektorin y

Lisätiedot

Olkoon R X Y. Sen käänteisrelaatio R 1 on joukosta Y joukkoon X määritelty relaatio, jonka laki on. yr 1 x xry.

Olkoon R X Y. Sen käänteisrelaatio R 1 on joukosta Y joukkoon X määritelty relaatio, jonka laki on. yr 1 x xry. Olkoon R X Y. Sen käänteisrelaatio R 1 on joukosta Y joukkoon X määritelty relaatio, jonka laki on yr 1 x xry. Siis R 1 = { (y, x) Y X (x, y) R }. Olkoon R X Y. Sen käänteisrelaatio R 1 on joukosta Y joukkoon

Lisätiedot

2.1. Tehtävänä on osoittaa induktiolla, että kaikille n N pätee n = 1 n(n + 1). (1)

2.1. Tehtävänä on osoittaa induktiolla, että kaikille n N pätee n = 1 n(n + 1). (1) Approbatur 3, demo, ratkaisut Sovitaan, että 0 ei ole luonnollinen luku. Tällöin oletusta n 0 ei tarvitse toistaa alla olevissa ratkaisuissa. Se, pidetäänkö nollaa luonnollisena lukuna vai ei, vaihtelee

Lisätiedot

Olkoon R X Y. Sen käänteisrelaatio R 1 on joukosta Y joukkoon X määritelty relaatio, jonka laki on. yr 1 x xry.

Olkoon R X Y. Sen käänteisrelaatio R 1 on joukosta Y joukkoon X määritelty relaatio, jonka laki on. yr 1 x xry. Olkoon R X Y. Sen käänteisrelaatio R 1 on joukosta Y joukkoon X määritelty relaatio, jonka laki on yr 1 x xry. Siis R 1 = { (y, x) Y X (x, y) R }. Esimerkki. Olkoon R = {(1, 1), (1, 2), (2, 1), (3, 1)}.

Lisätiedot

Matematiikan tukikurssi

Matematiikan tukikurssi Matematiikan tukikurssi Kurssikerta 1 Määrittelyjoukoista Tarkastellaan funktiota, jonka määrittelevä yhtälö on f(x) = x. Jos funktion lähtöjoukoksi määrittelee vaikkapa suljetun välin [0, 1], on funktio

Lisätiedot

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

Helsingin yliopisto/ tktl D Tietokantojen perusteet, s 2000 Relaatioalgebra. Harri Laine 1. Relaatioalgebra. Tietokantaoperaatiot tiedon haku kyselyt miten märitellään haettava tieto ylläpito-operaatiot lisäys, poisto, muuttaminen Kyselyt: lähtökohtana tietokannan tila joukkona relaatioita kyselyn tuloksena yksi

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

joukko operaatioita, joilla relaatioista voidaan muodostaa uusia relaatioita joukko opin perusoperaatiot yhdiste, erotus, ristitulo, leikkaus

joukko operaatioita, joilla relaatioista voidaan muodostaa uusia relaatioita joukko opin perusoperaatiot yhdiste, erotus, ristitulo, leikkaus DO NOT PRINT THIS DOCUMENT joukko operaatioita, joilla relaatioista voidaan muodostaa uusia relaatioita joukko opin perusoperaatiot yhdiste, erotus, ristitulo, leikkaus erityisiä relaatioalgebran operaatioita

Lisätiedot

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1 Ohjelmoinnin peruskurssi Y1 CSE-A1111 30.9.2015 CSE-A1111 Ohjelmoinnin peruskurssi Y1 30.9.2015 1 / 27 Mahdollisuus antaa luentopalautetta Goblinissa vasemmassa reunassa olevassa valikossa on valinta Luentopalaute.

Lisätiedot

Äärellisten automaattien ja säännöllisten lausekkeiden minimointi

Äärellisten automaattien ja säännöllisten lausekkeiden minimointi Äärellisten automaattien ja säännöllisten lausekkeiden minimointi Timi Suominen, Riia Ohtamaa ja Pessi Moilanen Helsinki..01 HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Äärellisten automaattien

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

Lineaarikombinaatio, lineaarinen riippuvuus/riippumattomuus

Lineaarikombinaatio, lineaarinen riippuvuus/riippumattomuus Lineaarikombinaatio, lineaarinen riippuvuus/riippumattomuus 1 / 51 Lineaarikombinaatio Johdattelua seuraavaan asiaan (ei tarkkoja määritelmiä): Millaisen kuvan muodostaa joukko {λv λ R, v R 3 }? Millaisen

Lisätiedot

Matematiikassa ja muuallakin joudutaan usein tekemisiin sellaisten relaatioiden kanssa, joiden lakina on tietyn ominaisuuden samuus.

Matematiikassa ja muuallakin joudutaan usein tekemisiin sellaisten relaatioiden kanssa, joiden lakina on tietyn ominaisuuden samuus. Matematiikassa ja muuallakin joudutaan usein tekemisiin sellaisten relaatioiden kanssa, joiden lakina on tietyn ominaisuuden samuus. Matematiikassa ja muuallakin joudutaan usein tekemisiin sellaisten relaatioiden

Lisätiedot

Matematiikan tukikurssi, kurssikerta 2

Matematiikan tukikurssi, kurssikerta 2 Matematiikan tukikurssi kurssikerta 1 Relaatioista Oletetaan kaksi alkiota a ja b. Näistä kumpikin kuuluu johonkin tiettyyn joukkoon mahdollisesti ne kuuluvat eri joukkoihin; merkitään a A ja b B. Voidaan

Lisätiedot

(1) refleksiivinen, (2) symmetrinen ja (3) transitiivinen.

(1) refleksiivinen, (2) symmetrinen ja (3) transitiivinen. Matematiikassa ja muuallakin joudutaan usein tekemisiin sellaisten relaatioiden kanssa, joiden lakina on tietyn ominaisuuden samuus. Tietyn ominaisuuden samuus -relaatio on ekvivalenssi; se on (1) refleksiivinen,

Lisätiedot

Johdatus graafiteoriaan

Johdatus graafiteoriaan Johdatus graafiteoriaan Syksy 2017 Lauri Hella Tampereen yliopisto Luonnontieteiden tiedekunta 62 Luku 2 Yhtenäisyys 2.1 Polku 2.2 Lyhin painotettu polku 2.3 Yhtenäinen graafi 2.4 Komponentti 2.5 Aste

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

Matematiikan tukikurssi, kurssikerta 1

Matematiikan tukikurssi, kurssikerta 1 Matematiikan tukikurssi, kurssikerta 1 1 Joukko-oppia Matematiikassa joukko on mikä tahansa kokoelma objekteja. Esimerkiksi joukkoa A, jonka jäseniä ovat numerot 1, 2 ja 5 merkitään A = {1, 2, 5}. Joukon

Lisätiedot

Rinnakkaisuuden hyväksikäyttö peleissä. Paula Kemppi

Rinnakkaisuuden hyväksikäyttö peleissä. Paula Kemppi Rinnakkaisuuden hyväksikäyttö peleissä Paula Kemppi 24.4.2008 Esityksen rakenne Johdantoa Rinnakkaisuus Pelimoottorien rinnakkaisuuden mallit Funktionaalisen rinnakkaisuuden malli Rinnakkaisen tiedon malli

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

MS-A0401 Diskreetin matematiikan perusteet

MS-A0401 Diskreetin matematiikan perusteet MS-A0401 Diskreetin matematiikan perusteet Osa 2: Relaatiot ja funktiot Riikka Kangaslampi Syksy 2017 Matematiikan ja systeemianalyysin laitos Aalto-yliopisto Relaatiot Relaatio Määritelmä 1 Relaatio joukosta

Lisätiedot

Algoritmit 1. Luento 13 Ti 23.2.2016. Timo Männikkö

Algoritmit 1. Luento 13 Ti 23.2.2016. Timo Männikkö Algoritmit 1 Luento 13 Ti 23.2.2016 Timo Männikkö Luento 13 Suunnittelumenetelmät Taulukointi Kapsäkkiongelma Ahne menetelmä Verkon lyhimmät polut Dijkstran menetelmä Verkon lyhin virittävä puu Kruskalin

Lisätiedot

Diskreetin matematiikan perusteet Malliratkaisut 2 / vko 38

Diskreetin matematiikan perusteet Malliratkaisut 2 / vko 38 Diskreetin matematiikan perusteet Malliratkaisut 2 / vko 38 Tuntitehtävät 11-12 lasketaan alkuviikon harjoituksissa ja tuntitehtävät 15-16 loppuviikon harjoituksissa. Kotitehtävät 13-14 tarkastetaan loppuviikon

Lisätiedot

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 16. marraskuuta 2015

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 16. marraskuuta 2015 ja ja TIEA241 Automaatit ja kieliopit, syksy 2015 Antti-Juhani Kaijanaho NFA:ksi TIETOTEKNIIKAN LAITOS 16. marraskuuta 2015 Sisällys ja NFA:ksi NFA:ksi Kohti säännöllisiä lausekkeita ja Nämä tiedetään:

Lisätiedot