CS-A1150 Tietokannat CS-A1150 Tietokannat / 54
|
|
- Petteri Mäkinen
- 5 vuotta sitten
- Katselukertoja:
Transkriptio
1 CS-A1150 Tietokannat CS-A1150 Tietokannat / 54
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. CS-A1150 Tietokannat / 54
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 CS-A1150 Tietokannat / 54
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. CS-A1150 Tietokannat / 54
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) CS-A1150 Tietokannat / 54
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) CS-A1150 Tietokannat / 54
7 Relaatioiden avaimista Yksilöjoukoista muodostetuilla relaatioilla avainattribuutit ovat samat kuin yksilöjoukolla. Monesta moneen -suhteesta muodosteluillla relaatiolla avainattribuuteiksi tulevat suhteen yhdistävien yksilöjoukkojen avainattribuutit. Monesta yhteen -suhteesta muodosteluilla yksilöjoukolla avainattribuutiksi tulevat vain monesta-puolen yksilöjoukon avaimet. Esimerkiksi suhteesta BelongsTo tehdyn relaation avaimen muodostavat yhdessä attribuutit orderno, number, kun taas OrderedBy-suhteesta muodostetun relaation avaimeksi riittää attribuutti orderno yksin. Heikot yksilöjoukot ja perintähierarkia aiheuttavat poikkeuksia, joita käsitellään myöhemmin. CS-A1150 Tietokannat / 54
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. CS-A1150 Tietokannat / 54
9 Relaatioiden 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. CS-A1150 Tietokannat / 54
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) CS-A1150 Tietokannat / 54
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 CS-A1150 Tietokannat / 54
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. CS-A1150 Tietokannat / 54
13 Välitehtävä Mitkä seuraavan kalvon tietokantakaavioista ovat oikein, kun alla oleva ER-kaavio muutetaan relaatioiksi? name address name credits position department Teachers Teaches Courses ssno phoneno code semester Vastaa Presemossa CS-A1150 Tietokannat / 54
14 Välitehtävä jatkuu Vaihtoehdot: a Teachers(ssNo, name, position, department, address, phoneno) Courses(code, name, credits, semester) Teaches(ssNo, code) b Teachers(ssNo, name, position, department, address, phoneno) Courses(code, name, credits, semester) Teaches(code, ssno) c Teachers(ssNo, name, position, department, address, phoneno, coursecode) Courses(code, name, credits, semester) d Teachers(ssNo, name, position, department, address, phoneno) Courses(code, name, credits, semester, teacherssno) CS-A1150 Tietokannat / 54
15 Välitehtävän ratkaisu ER-kaavion mukaan yksi opettaja voi opettaa korkeintaan yhtä kurssia, mutta yhdellä kurssilla voi olla useita opettajia. Vaihtoehto a on oikein, koska siinä relaation Teaches avain on opettajan tunnus. Vaihtoehto b on väärin, koska siinä relaation Teaches avain on on kurssikoodi, mutta tämä ei käy, koska samalla kurssilla voi olla useita opettajia (jokaista kurssi opettaja-yhdistelmää kohti tehdään oma monikko). Vaihtoehto c on oikein, koska siinä opettajan tietoihin on yhdistetty tieto siitä, mitä kurssia opettaja opettaa (opettajalla voi olla korkeintaan yksi kurssi). Vaihtoehto d on väärin, koska siinä kurssin tietoihin on yhdistetty tieto opettajasta, mikä ei toimi, koska kurssilla voi olla useita opettajia. Oikea vastaus on siis a ja c. CS-A1150 Tietokannat / 54
16 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.) CS-A1150 Tietokannat / 54
17 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. CS-A1150 Tietokannat / 54
18 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. CS-A1150 Tietokannat / 54
19 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. CS-A1150 Tietokannat / 54
20 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. CS-A1150 Tietokannat / 54
21 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. CS-A1150 Tietokannat / 54
22 Heikko yksilöjoukko tavallisen suhteen osapuolena Oletetaan, että verkkokaupassa joitakin tuotteen versioita on tarjolla vain määräaikaisissa kampanjoissa. start end size color name number Campaigns OfferedIn Versions Version of Products name description price Yksilöjoukoista Products ja Versions muodostetaan samat relaatiot kuin edellä. Yksilöjoukosta Campaigns tehdään suoraviivaisesti relaatio Campaigns(name, start, end) Kun suhteesta OfferedIn muodostetaan relaatio, otetaan relaatioon mukaan yksilöjoukkojen Versions ja Campaigns avainattribuutit. Heikon yksilöjoukon Versions avainattribuutteihin kuuluun tällöin myös yksilöjoukon Products avainattribuutti. Saadaan OfferedIn(prodNo, size, color, campaignname, start) CS-A1150 Tietokannat / 54
23 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, jonka 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. CS-A1150 Tietokannat / 54
24 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 CS-A1150 Tietokannat / 54
25 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. CS-A1150 Tietokannat / 54
26 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. CS-A1150 Tietokannat / 54
27 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. CS-A1150 Tietokannat / 54
28 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 CS-A1150 Tietokannat / 54
29 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. CS-A1150 Tietokannat / 54
30 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ä. CS-A1150 Tietokannat / 54
31 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. CS-A1150 Tietokannat / 54
32 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. CS-A1150 Tietokannat / 54
33 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. CS-A1150 Tietokannat / 54
34 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) CS-A1150 Tietokannat / 54
35 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 CS-A1150 Tietokannat / 54
36 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 CS-A1150 Tietokannat / 54
37 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. CS-A1150 Tietokannat / 54
38 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. CS-A1150 Tietokannat / 54
39 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. CS-A1150 Tietokannat / 54
40 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 CS-A1150 Tietokannat / 54
41 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? CS-A1150 Tietokannat / 54
42 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. CS-A1150 Tietokannat / 54
43 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. CS-A1150 Tietokannat / 54
44 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. CS-A1150 Tietokannat / 54
45 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ä. CS-A1150 Tietokannat / 54
46 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). CS-A1150 Tietokannat / 54
47 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. CS-A1150 Tietokannat / 54
48 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 b 1 = 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. CS-A1150 Tietokannat / 54
49 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 } + CS-A1150 Tietokannat / 54
50 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 } +. CS-A1150 Tietokannat / 54
51 Attribuuttien sulkeuman laskeminen, esimerkki Tarkastellaan relaatiota R(A, B, C, D, E, F ), jolla on riippuvuudet B C A D, A B C, D E ja C F B. Mikä on {A, B} +? Ratkaisu: Jaetaan ensin toinen riippuvuus kahdeksi riippuvuudeksi. Saadaan siis riippuvuudet: B C A B C D A B C D E C F B (jatkuu seuraavalla kalvolla) CS-A1150 Tietokannat / 54
52 Attribuuttien sulkeuman laskeminen, ratkaisu jatkuu Aloitetaan asettamalla X = {A, B}. Kolmannen riippuvuuden perusteella voidaan lisätä X :ään C, siis X = {A, B, C}. Toisen 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} CS-A1150 Tietokannat / 54
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 {A1, 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. CS-A1150 Tietokannat / 54
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. CS-A1150 Tietokannat / 54
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ätiedotCS-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ätiedotCSE-A1200 Tietokannat
CSE-A1200 Tietokannat 8.3.2016 CSE-A1200 Tietokannat 8.3.2016 1 / 49 Oppimistavoitteet: tämän luennon jälkeen Osaat muuttaa ER-kaavion relaatiomalliin. Toisin sanoen: jos sinulla on valmis ER-kaavio, niin
LisätiedotCS-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ätiedotCS-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ätiedotCSE-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ätiedotCS-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ätiedotCS-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ätiedotCS-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ätiedotCSE-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ätiedotCSE-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ätiedotCS-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ätiedotCSE-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ätiedotCS-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ätiedotCS-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ätiedotCS-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ätiedotCSE-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ätiedotCS-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ätiedotCS-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ätiedotCSE-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ätiedotRelaatiotietokantojen 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ätiedotHELIA 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ätiedotTietokantasuunnittelun 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ätiedotHELIA 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ätiedotHELIA 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ätiedotTIEDONHALLINNAN 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ätiedotCS-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ätiedotCSE-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ätiedotCS-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ätiedotHarjoitustyö. 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ätiedotCS-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ätiedotSQL-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ätiedotHELIA 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ätiedotCS-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ätiedotApprobatur 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ätiedotCS-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ätiedotTietokantojen 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ätiedotCS-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ätiedotKirjoita 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ätiedotHelsingin 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ätiedotMS-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ätiedotKyselyt: 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ätiedotOhjelmistojen 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ätiedotHelsingin 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ätiedotDiskreetin 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ätiedotKarteesinen 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ätiedotTIEDONHALLINTA - 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ätiedotDiskreetin 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ätiedotRelaatioalgebra. 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ätiedotRelaatioalgebra. 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ätiedotTietokantasuunnittelun 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ätiedotRelaatioista 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ätiedotHelsingin 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ätiedot3. 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ätiedot13. 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ätiedotAVL-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ätiedotOn 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ätiedotOlkoon 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ätiedotHelsingin 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ätiedotJoukot. 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ätiedotCS-A1150 Tietokannat
CS-A1150 Tietokannat Osa kalvoista perustuu Juha Puustjärven luentokalvoihin vuodelta 2011 sekä kurssin oppikirjaan 31.1.2017 CS-A1150 Tietokannat 31.1.2017 1 / 28 Aloitusluento: tämän luennon jälkeen
LisätiedotTIEA241 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ätiedot2. 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ätiedotJoukossa 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ätiedotRelaation 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ätiedotHelsingin 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ätiedotHELIA 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ätiedotAlgoritmit 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ätiedotAlgoritmit 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ätiedotTietokantasuunnittelun 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ätiedotCSE-A1200 Tietokannat
CSE-A1200 Tietokannat Osa kalvoista perustuu Juha Puustjärven luentokalvoihin vuodelta 2011 sekä kurssin oppikirjaan 2.2.2016 CSE-A1200 Tietokannat 2.2.2016 1 / 28 Aloitusluento: tämän luennon jälkeen
LisätiedotTietokantojen 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ätiedotOlkoon 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ätiedotTietomallit. 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ätiedotOlkoon 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ätiedotKonsensusongelma 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ätiedotTIETOKANNAN 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ätiedotMatematiikan 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ätiedotInsert 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ätiedot2.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ätiedoty 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ätiedotKuvaus 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ätiedotKuvaus 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ätiedotMatematiikan 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ätiedotDiskreetin 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ätiedotNimi: Henkilötunnus: {id} {+id}
TEHTÄVÄ : Eräillä kursseilla on kertauskysymyksiä, joihin opiskelijat vastaavat webin kautta. Kurssilla voi olla useita kysymyssarjoja, joihin voi kuulua monta kysymystä. Kysymyssarjalla on kurssikohtainen
LisätiedotTietokantojen 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ätiedotTIEA241 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ätiedotTietokannan 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ätiedotLineaarikombinaatio, 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Ää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ätiedotHelsingin 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ätiedotMiten perustella, että joukossa A = {a, b, c} on yhtä monta alkiota kuin joukossa B = {d, e, f }?
Miten perustella, että joukossa A = {a, b, c} on yhtä monta alkiota kuin joukossa B = {d, e, f }? Miten perustella, että joukossa A = {a, b, c} on yhtä monta alkiota kuin joukossa B = {d, e, f }? Vastaus
Lisätiedotjoukko 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ätiedotHARJOITUS 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ätiedotVastaus 1. Lasketaan joukkojen alkiot, ja todetaan, että niitä on 3 molemmissa.
Miten perustella, että joukossa A = {a, b, c} on yhtä monta alkiota kuin joukossa B = {d, e, f }? Vastaus 1. Lasketaan joukkojen alkiot, ja todetaan, että niitä on 3 molemmissa. Vastaus 2. Vertaillaan
LisätiedotNormalisointi. 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ätiedotRinnakkaisuuden 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ätiedotJohdatus 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ätiedot4.3. Matemaattinen induktio
4.3. Matemaattinen induktio Matemaattinen induktio: Deduktion laji Soveltuu, kun ominaisuus on osoitettava olevan voimassa luonnollisilla luvuilla. Suppea muoto P(n) : Ominaisuus, joka joka riippuu luvusta
Lisätiedot