CS-A1150 Tietokannat CS-A1150 Tietokannat / 43
|
|
- Martti Mikkola
- 6 vuotta sitten
- Katselukertoja:
Transkriptio
1 CS-A1150 Tietokannat CS-A1150 Tietokannat / 43
2 Oppimistavoitteet: tämän luennon jälkeen Osaat tehdä tietokantaa kuvaavan mallin ER-kaavion avulla. Tunnet esimerkiksi seuraavat ER-mallinnuksen keskeiset asiat: yksilöjoukko suhde attribuutti suhteen valitsevuus. CS-A1150 Tietokannat / 43
3 ER-mallinnus Ongelma: mitä relaatioita luotavaan tietokantaan pitäisi määritellä? Usein on helpompi aloittaa suunnittelu korkeammalla tasolla kuin suoraan relaatiomallilla. Tässä esitetään yksi tapa esittää korkeamman tason suunnitelmia, ER-kaaviot (entity-relationship diagram, E/R diagram). ER-kaaviolla suunniteltu malli voidaan yleensä muuntaa varsin suoraviivaisesti relaatiomalliin. Muita yleisesti käytettyjä tapoja suunnitelmien esittelyyn: UML-mallinnus (Unified Modelling Language) ODL (Object Description Language) CS-A1150 Tietokannat / 43
4 ER-kaavioiden peruskomponentit ER-kaavio on graafinen tapa tietokannan mallintamiseen. Kaavio sisältää kolmenlaisia peruskomponentteja: Yksilöjoukot (entity sets) Attribuutit (attributes) Suhteet (relationships) Seuraavilla kalvoilla selitetään tarkemmin eri komponenttien merkitystä. CS-A1150 Tietokannat / 43
5 Yksilöjoukot Yksilö (entity) vastaa suunnilleen olio-ohjelmointikielen oliota ilman olioon liittyviä metodeita. Esimerkiksi yksi verkkokaupassa myytävä tuote voi olla yksilö. Yksilöjoukko vastaa suunnilleen olio-ohjelmointikielen luokkakäsitettä ilman luokassa määriteltyjä metodeita. Verkkokaupan tietokantaa kuvaavaan ER-malliin voi kuulua esimerkiksi yksilöjoukko Products. Yksilöjoukkoja kuvataan ER-kaaviossa suorakulmioilla, joiden sisällä on yksilöjoukon nimi. Products ER-kaaviossa ei lainkaan kuvata yksilöille tai yksilöjoukoille mahdollisia toimenpiteitä (metodeita). CS-A1150 Tietokannat / 43
6 Attribuutit Attribuutit kuvaavat yksilön ominaisuuksia. Tällä kurssilla esitetyssä versiossa attribuuttien arvojen tulee olla atomisia (esimerkiksi lukuja tai merkkijonoja, ei tietueita tai joukkoja) Attribuutteja kuvataan soikioilla, jotka on liitetty viivoilla siihen yksilöjoukkoon, jonka yksilöiden ominaisuuksia ne kuvaavat. Esimerkki, jossa verkkokaupan tuotteista esitetään tuotenumero, nimi, kuvaus ja hinta. number Products description price CS-A1150 Tietokannat / 43
7 Suhteet Suhteet yhdistävät kaksi tai useampia yksilöjoukkoa. Esimerkiksi yksilöjoukkojen Products ja Manufacturers välille voidaan määritellä suhde Made-by. Jos Manufacturers-joukon valmistaja m on valmistanut Products-joukon tuotteen p, nämä kaksi yksilöä liittyvät toisiinsa Made-by-suhteella. Suhteita esitetään vinoneliöillä. phone Manufacturers number ID Made by Products description price CS-A1150 Tietokannat / 43
8 Esimerkkikaavio Edelliseen esimerkkiin on lisätty vielä yksilöjoukko Orders kuvaamaan tilauksia ja Customers kuvaamaan asiakkaita. Suhteella Ordered-by kuvataan sitä, mikä asiakas on tehnyt minkin tilauksen, ja suhteella Belongs-to sitä, mikä tuote kuuluu mihinkin tilaukseen. phone Manufacturers number ID deliver Made by Belongs to Products description price Orders custno orderno status Ordered by Customers born bonus address CS-A1150 Tietokannat / 43
9 Suhteen valitsevuus ER-kaaviossa Yleisesti ER-kaaviossa kahden yksilöjoukon välinen suhde voi liittää minkä tahansa ensimmäisen yksilöjoukon yksilön kuinka moneen tahansa toisen yksilöjoukon jäseneen. Esimerkiksi edellisen kalvon kuvassa yhteen tilaukseen voi liittyä monta tuotetta Belongs-to-suhteella ja toisaalta yhteen tuotteeseen voi liittyä monta tilausta. Tällainen suhde on suhde monesta moneen (many-many). Voidaan kuitenkin vaatia, että kukin ensimmäisen yksilöjoukon yksilö voi liittyä korkeintaan yhteen toisen yksilöjoukon yksilöön. Esimerkiksi edellisen kalvon kaaviossa on järkevää määritellä, että yhteen tuotteeseen voi liittyä korkeintaan yksi valmistaja ja että yhteen tilaukseen voi liittyä korkeintaan yksi asiakas. Tällainen suhde on suhde monesta yhteen (many-one). Suhdetta merkitään ER-kaaviossa nuolella. Nuoli suunnataan siihen yksilöjoukkoon, jota saa liittyä vain yksi. Huomaa, että sama vaatimus ei päde toisinpäin: samaan valmistajaan saa liittyä monta tuotetta ja samaan asiakkaaseen monta tilausta. CS-A1150 Tietokannat / 43
10 Esimerkkikaavio, johon on merkitty monesta-yhteen -suhteet phone Manufacturers number ID deliver Made by Belongs to Products description price Orders custno orderno status Ordered by Customers born bonus address CS-A1150 Tietokannat / 43
11 Suhteen valitsevuus ER-kaaviossa, jatkoa Jos yksilöjoukkojen E ja F välinen suhde on monesta yhteen sekä E:stä F :ään että F :stä E:hen, on suhde R yhdestä yhteen (one-one). Tällaista suhdetta merkitään ER-kaaviossa niin, että kumpaankin suhteesta yksilöjoukkoon yhdistävään viivaan tulee nuoli. Esimerkki: oletetaan, että yrityksessä jokaisella osastolla on korkeintaan yksi johtaja ja kukin työntekijä voi johtaa korkeintaan yhtä osastoa. Tätä voitaisiin kuvata ER-kaaviolla seuraavasti: Departments Manages Employees Yhdestä yhteen -suhde on monesta yhteen -suhteen erikoistapaus. CS-A1150 Tietokannat / 43
12 Välitehtävä 1 Mikä seuraavista välitteistä pätee alla olevaan ER-kaavioon, jossa kuvataan opettajia ja kursseja? address credits position department Teachers Teaches Courses ssno phoneno code semester a Yksi opettaja voi opettaa mielivaltaista määrää kursseja, ja yhdellä kurssilla voi olla mielivaltainen määrä opettajia. b Yksi opettaja voi opettaa korkeintaan yhtä kurssia, mutta yhdellä kurssilla voi olla mielivaltainen määrä opettajia. c Yksi opettaja voi opettaa mielivaltaista määrää kursseja, mutta yhdellä kurssilla voi olla korkeintaan yksi opettaja. d Yksi opettaja voi opettaa korkeintaan yhtä kurssia, ja yhdellä kurssilla voi olla korkeintaan yksi opettaja. CS-A1150 Tietokannat / 43
13 Välitehtävän ratkaisu Vaihtoehto b on oikein. Nuoli tulee siihen yksilöjoukkoon, jota rajoitetaan. Koska nuoli tulee yksilöjoukkoon Courses, rajoitetaan sitä, kuinka monta kurssia voi suhteen kautta liittyä yhteen opettajaan. Yksi opettaja voi siis opettaa korkeintaan yhtä kurssia. CS-A1150 Tietokannat / 43
14 Monisuhteet ER-mallissa suhteeseen voi osallistua myös useampi kuin kaksi yksilöjoukkoa. Esimerkki: halutaan kuvata artistien levy-yhtiöiden kanssa albumeista tekemiä sopimuksia. Sopimuksiin liittyy kolme asiaa: artisti, levy-yhtiö ja albumi. Sama artisti voi tehdä sopimuksia muidenkin yhtiöiden kanssa muista albumeista. Yhdellä artistilla voi kuitenkin olla yhteen albumiin liittyvä sopimus vain yhden levy-yhtiön kanssa. Tätä kuvataan Companies-yksilöjoukkoon suuntautuvalla nuolella. Artists Contracts Albums Companies CS-A1150 Tietokannat / 43
15 Suhteiden roolit Ongelma: Miten kuvataan ER-kaaviossa suhteita, joissa sama yksilöjoukko esiintyy kahteen (tai useampaan) kertaan? Esimerkiksi halutaan kertoa, että joku työntekijä on toisen työntekijän lähiesimies, Tällöin suhteesta piirretään samaan yksilöjoukkoon useita viivoja. Kukin viiva voi kuvata yksilöjoukon erilaista roolia suhteessa. Tällöin viivan viereen kirjoitetaan roolin kuvaus. Oletetaan, että kullakin työntekijällä voi olla yksi lähiesimies, mutta yhdellä esimiehellä useita alaisia. Sen vuoksi esimiehen roolia kuvaavaan viivaan tulee nuoli, mutta alaisen rooliin kuuluvaan ei. Immediate superior Superior Employees Subordinate CS-A1150 Tietokannat / 43
16 Suhteiden roolit, toinen esimerkki Halutaan kuvata tilannetta, jossa artisteilla on yleensä vakiosopimus jonkin levy-yhtiön kanssa. He voivat kuitenkin tehdä sopimuksen jonkin albumin levyttämisestä toisen yhtiön kanssa, mutta tähän tarvitaan vakioyhtiön lupa. Sopimukseen liittyy siis kaksi eri levy-yhtiötä: toinen, jonka kanssa artistilla on vakiosopimus, ja toinen, jolle artisti tekee albumin, jota sopimus koskee. Tällöin ER-kaavioon tulee Contracts-suhteesta kaksi eri nuolta Companies-joukkoon. Artists Albums Contracts Regular company Producing company Companies CS-A1150 Tietokannat / 43
17 Suhteiden attribuutit Halutaan, että verkkokauppaesimerkissä asiakas voi lisätä yhteen tilaukseen monta kappaletta samaa tuotetta. Mihin tieto kappalemäärästä pitäisi liittää? Sitä ei voida liittää esimerkiksi tuotteen attribuutiksi, koska samaa tuotetta voi olla eri kappalemäärä jossain toisessa tilauksessa. ER-kaaviossa myös suhteilla voi olla attribuutteja, joten helpointa on liittää tieto kappalemäärästä suhteen Belongs-to attribuutiksi. phone Manufacturers number ID deliver Made by Belongs to Products description price Orders count custno orderno status Ordered by Customers born bonus address CS-A1150 Tietokannat / 43
18 Suhteen attribuutin muuttaminen yksilöjoukon attribuutiksi Jos suhteelle ei haluta antaa attribuuttia, on toinen vaihtoehto luoda suhdetta varten uusi yksilöjoukko ja siirtää attribuutti sen attribuutiksi. Alla näin on tehty edellisen kalvon esimerkille (kaaviosta esitetään vain osa). number Orders deliver Belongs to description Products price orderno status Countinfo count CS-A1150 Tietokannat / 43
19 Monijakoisten suhteiden muuttaminen kaksijakoisiksi Jokainen monijakoinen (multiway) suhde voidaan muuttaa useaksi kaksijakoiseksi monesta yhteen -suhteeksi. Tämä tehdään luomalla monijakoista suhdetta varten uusi yksilöjoukko, jota kutsutaan liittäväksi yksilöjoukoksi (connecting entity set). Liittävästä yksilöjoukosta asetetaan oma monesta yhteen -suhde yhteen alkuperäiseen suhteeseen osallistuvaan yksilöjoukkoon. Tämä tehdään jokaiselle monijakoiseen suhteeseen osallistuvalle yksilöjoukolle. Monijakoisten suhteiden muuttaminen kaksijakoisiksi ei ole ER-kaavioissa mitenkään välttämätöntä, mutta monet muut suunnittelumenetelmät vaativat suhteiden olevan kaksijakoisia. CS-A1150 Tietokannat / 43
20 Monijakoisten suhteiden muuttaminen kaksijakoisiksi, esimerkki Artists Albums Artists Albums Artist of Album of Contracts Regular company Producing company Contracts Companies Regular company Producing company Companies CS-A1150 Tietokannat / 43
21 Aliluokat ER-mallissa Toisinaan joillakin yksilöjoukon yksilöillä on ominaisuuksia, joita ei ole kaikilla joukon yksilöillä. Tällöin näitä yksilöitä varten voidaan määritellä aliluokka (subclass). Aliluokan yksilöillä on kaikki sen yliluokan (superclass) atttribuutit ja suhteet sekä lisäksi aliluokan omat attribuutit ja suhteet. ER-kaaviossa merkitään erityisellä isa-suhteella, että yksilöjoukko A on yksilöjoukon B aliluokka: A:sta on tällöin isa-suhde B:hen. (Suhteen nimi tulee lauseesta "A is a B"). CS-A1150 Tietokannat / 43
22 Aliluokat ER-mallissa, jatkoa Isa-suhdetta merkitään kaaviossa kolmiolla: kolmion yksi sivu on yhdistetty aliluokkaan, ja sivua vastapäinen kulma yliluokkaan. Products isa CDs Jokainen isa-suhde on yhdestä yhteen -suhde, mutta ER-kaavioon ei piirretä nuolia suhdetta ja yksilöjoukkoja yhdistäviin viivoihin. CS-A1150 Tietokannat / 43
23 Aliluokat ER-mallissa, esimerkki Esimerkissä yksilöjoukolle Products on määritelty aliluokkia erilaisia myytäviä tuotteita varten, tässä CDs, Books ja Computers. ER-mallissa yksilöllä voi olla mitä tahansa isa-hierarkiassa määriteltyjä ominaisuuksia, esimerkiksi CD-äänikirjalla olla ominaisuuksia sekä yksilöjoukoista Products, CDs että Books. number description price Products isa isa isa ram CDs Books Computers artist length author pages speed harddisk CS-A1150 Tietokannat / 43
24 Suunnitteluperiaatteita Mitä pitäisi ottaa huomioon, kun lähdetään laatimaan ER-mallia jostain tosielämän asiakokonaisuudesta? Seuraavilla kalvoilla käydään läpi joitakin keskeisiä suunnitteluperiaatteita. CS-A1150 Tietokannat / 43
25 Tarkkuus Yksilöjoukkojen ja niiden attribuuttien tulee vastata kuvattavaa reaalimaailmaa. Esimerkiksi sama tuote voi kuulua moneen tilaukseen ja samassa tilauksessa voi olla monta eri tuotetta. Sen vuoksi suhteen Belongs-to yksilöjoukkojen Products ja Orders välillä tulee olla monesta moneen -suhde, ei monesta yhteen tai yhdestä yhteen -suhde. CS-A1150 Tietokannat / 43
26 Ylimäärän (redundancy) välttäminen Kukin asia pitäisi sanoa vain yhteen kertaan. Esimerkiksi yksilöjoukolle Products voisi ajatella järkeväksi attribuutiksi valmistajan nimeä. Jos kuitenkin joukkojen Products ja Manufacturers välille on jo määritelty suhde Made-by, ilmaisee se tuotteen valmistajan. Tällöin attribuutti manufacturername Products-joukolla kertoisi vain saman asian uudelleen. Miksi ylimäärä on haitallista? Saman tiedon toistaminen vie turhaa tilaa, kun ER-kaavio muutetaan myöhemmin todelliseksi tietokannaksi. Tiedon toistaminen aiheuttaa ongelmia päivitysten yhteydessä: syntyy helposti tilanteita, jossa tieto päivitetään vain yhdessä monikossa, mutta saman tiedon päivittäminen toisessa monikossa unohtuu. CS-A1150 Tietokannat / 43
27 Yksikertaisuuteen pyrkiminen Malliin ei kannata ottaa mukaan ylimääräisiä elementtejä. Esimerkiksi kaksijakoista suhdetta ei kanna korvata uudella yksilöjoukolla ja kahdella suhteella (uudesta yksilöjoukosta molempiin alkuperäisen suhteen yksilöjoukkoihin), jos tähän ei ole erityisen hyvää syytä. CS-A1150 Tietokannat / 43
28 Oikeiden elementtien käyttö Koska jonkin asian kuvaamiseen on syytä käyttää mallissa yksilöjoukkoa, koska attribuutteja? Tarkastellaan alla olevaa mallia. Voisiko yksilöjoukon Manufacturers ja suhteen Made-by korvata lisäämällä yksilöjoukkoon Products sopivat attribuutit? phone Manufacturers number ID deliver Made by Belongs to Products description price Orders count custno orderno status Ordered by Customers born bonus address CS-A1150 Tietokannat / 43
29 Oikeiden elementtien käyttö, jatkoa Yksilöjoukolle Products voisi periaatteessa määritellä attribuutit manufacturerid, manufacturername ja phone, jotka korvaisivat joukon Manufacturers ja suhteen Made-by. Mutta silloin valmistajan nimi ja puhelinnumero toistuisivat useassa eri tuotteessa, vaikka ne riippuvat suoraan valmistajan tunnuksesta. Sen vuoksi alkuperäinen malli on parempi. Yleisperiaate: jos jostain reaalimaailman käsitteestä mallinnetaan muutakin kuin pelkkä nimi, tulisi se mallintaa yksilöjoukkona. CS-A1150 Tietokannat / 43
30 Oikeiden elementtien käyttö, jatkoa Yksilöjoukko E voidaan korvata lisäämällä toiseen yksilöjoukkoon (tai toisiin yksilöjoukkoihin) sopivat attribuutit seuraavilla ehdoilla: Kaikissa suhteissa, jotka liittyvät E:hen, täytyy olla E:hen päättyvä nuoli. (Eli E voi olla osallisena vain monesta yhteen ja yhdestä yhteen -suhteissa ja niissäkin vain yhteen-puolella.) Jos E:llä on useampi kuin yksi attribuutti, niin minkään attribuutin arvo ei saa suoraan riippua jonkin toisen attribuutin arvosta. (Toisin kuin valmistajien kohdalla valmistajan puhelinnumero riippuu suoraan valmistajan tunnuksesta.) E ei kuulu mihinkään suhteeseen useammin kuin kerran. CS-A1150 Tietokannat / 43
31 Eheysrajoitteiden mallintaminen Kaikkia kuvattavia reaalimaailmaan liittyviä ominaisuuksia ei voida mallintaa esimerkiksi yksilöjoukkoina, suhteina ja attribuutteina. ER-kaaviossa voidaan esittää myös erilaisia eheysrajoitteita: Attribuutti tai attribuuttijoukko muodostaa yksilöjoukon avaimen. Viite-eheysvaatimus: jossain yhteydessä esitetyn arvon täytyy esiintyä myös jossain toisessa yhteydessä. Vaatimukset suhteen asteelle. CS-A1150 Tietokannat / 43
32 Avaimet Yksilöjoukon E avain on attribuutti tai attribuuttijoukko siten, että millään kahdella E:n yksilöllä ei ole samaa avainattribuutin (tai -attribuuttien) arvoa. Jos avain koostuu useammasta kuin yhdestä attribuutista, kahdella yksilöllä voi olla samat arvot osalle attribuuteista, mutta ei koskaan kaikille niille yhtä aikaa. Jokaisella yksilöjoukolla täytyy olla avain, mutta joissakin tapauksissa (perintä ja myöhemmin esitettävät heikot yksilöjoukot) avain tai osa siitä voi kuulua toiseen yksilöjoukkoon. Joissakin tapauksissa on avainattribuuttien valintaan on useita eri vaihtoehtoja. ER-mallinnuksessa kuitenkin vain yksi vaihtoehdoista merkitään avaimeksi ja sitä kutsutaan ensisijaiseksi avaimeksi (primary key). CS-A1150 Tietokannat / 43
33 Avaimet, jatkoa Jos ER-kaaviossa on aliluokkia, vaaditaan, että hierarkian ylimmäinen yksilöjoukko (se, jolla ei enää ole yliluokkaa) sisältää kaikki avaimeen kuuluvat attribuutit. Suhteilla ei voi olla avainattribuutteja. Jos tuntuu tarpeelliselta määritellä suhteelle attribuutti, joka kuuluu avaimeen, pitää tehdä suhteen sijaan yksilöjoukko, jolla on ko. avainattribuutti. CS-A1150 Tietokannat / 43
34 Avainten esittäminen ER-kaaviossa ER-kaaviossa avaimeen kuuluvat attribuutit merkintään alleviivaamalla ne. Jos mahdollisia avaimia on useita, niistä valitaan vain yksi. Jos saman yksilöjoukon attribuuteista useampi kuin yksi on alleviivattu, merkitsee se sitä, että kaikki alleviivatut attribuutit muodostavat yhdessä avaimen. phone Manufacturers number ID deliver Made by Belongs to Products description price Orders count custno orderno status Ordered by Customers born bonus address CS-A1150 Tietokannat / 43
35 Viite-eheys Tarkastellaan yksilöjoukkojen Orders ja Customers välistä Ordered-by-suhdetta. Tähän asti suhde on määritelty monesta-yhteen -suhteeksi. Orders Ordered by Customers Tämä tarkoittaa sitä, että jokaiseen tilaukseen voi suhteen kautta liittyä korkeintaan yksi asiakas. Se ei kuitenkaan vaadi sitä, että jokaiselle tilausyksilölle täytyy löytyä jokin asiakasyksilö, vaan voi olla myös tilauksia, joiden tehnyttä asiakasta ei tiedetä. Jos halutaan vaatia, että jokaiseen tilaukseen liittyy täsmälleen yksi asiakas, piirretään Customers-yksilöjoukkoon pyöreäpäinen nuoli. Orders Ordered by Customers CS-A1150 Tietokannat / 43
36 Viite-eheys, jatkoa Olkoon yksilöjoukosta E suhde R yksilöjoukkoon F. Joukkoon F suuntautuva pyöreäpäinen nuoli kuvaa sitä, että R ei ole pelkästään monesta yhteen -suhde, vaan että jokaiseen E:n yksilöön täytyy liittyä täsmälleen yksi F :n yksilö suhteen R kautta. Tätä vaatimusta sanotaan viite-eheysvaatimukseksi. Tarkastellaan sitten Made-by-suhdetta yksilöjoukkojen Products ja Manufacturers välillä. Kannattaako Manufacturers-joukkoon osoittava nuoli vaihtaa pyöreäpäiseksi? Jos haluataan, että verkkokaupassa voi olla myytävänä myös tuotteita, joiden valmistajaa ei tunneta, nuolen tyyppiä ei pidä vaihtaa. CS-A1150 Tietokannat / 43
37 Vaatimukset suhteen asteelle ER-kaavioon voidaan myös merkitä tarkempia vaatimuksia siitä, kuinka monta yksilöä yhdestä yksilöjoukosta voi liittyä yhteen toisen yksilöjoukon yksilöön suhteen kautta. Jos esimerkiksi halutaan vaatia, että yhdeen tilaukseen voi kuulua korkeintaan 20 eri tuotetta, voidaan vaatimus kirjoittaa kaavioon näkyviin alla olevan esimerkin mukaisesti. <= 20 Orders Belongs to Products CS-A1150 Tietokannat / 43
38 Heikot yksilöjoukot Yksilöjoukkoa sanotaan heikoksi (weak entity set), jos kaikki tai osa sen avainattribuuteista kuuluu toiseen yksilöjoukkoon Heikkoja yksilöjoukkoja voi muodostua kahdella tavalla: Yksilöjoukon omat attribuutit eivät riitä yksilöjoukon avaimeksi, koska niiden arvot eivät ole yksikäsitteisiä kaikille mahdollisille yksilöille. Osa avaimen attribuuteista kuuluu toiseen yksilöjoukkoon, mutta niiden arvot tietylle yksilölle määräytyvät jonkin suhteen kautta. Monijakoinen suhde muutetaan useaksi kaksijakoiseksi suhteeksi. Tällöin muodostettavalla liittävällä yksilöjoukolla ei usein ole omia attribuutteja, vaan sen avain muodostuu liitettävien yksilöjoukkojen avainattribuuteista. ER-kaaviossa heikkoja yksilöjoukkoja merkintään reunoiltaan kaksinkertaisilla suorakulmioilla Suhteita, jotka yhdistävät heikon yksilöjoukon yksilöjoukkoon, josta heikon yksilöjoukon avain on peräisin (heikkoa yksilöjoukkoa tukeva suhde), merkitään reunoiltaan kaksinkertaisilla vinoneliöillä. CS-A1150 Tietokannat / 43
39 Heikot yksilöjoukot, esimerkki 1 Oletetaan, että verkkokaupan tuotteesta voi olla erilaisia versioita. Esimerkiksi samaa vaatemallia voi olla myynnissä erivärisenä ja -kokoisena. Näillä on kuitenkin sama tuotenumero. Määritellään yksilöjoukko Versions kuvaamaan tuotteen eri versioita. Joukon attribuutteina on version väri ja koko. Ne eivät kuitenkaan kelpaa edes yhdessä yksilöjoukon avaimeksi, koska useasta eri tuotteesta voi olla versioita, joilla on sama väri ja koko. Sen vuoksi version tunnistamiseen tarvitaan myös tuotteen tuotenumero. CS-A1150 Tietokannat / 43
40 Heikot yksilöjoukot, esimerkki 1 jatkuu ER-kaaviossa tätä kuvataan siten, että yksilöjoukko Versions on heikko, ja se liittyy Products-yksilöjoukkoon. Products-yksilöjoukon attribuutti number ja Versions-yksilöjoukon attribuutit size ja color muodostavat yhdessä yksilöjoukon Versions avaimen. size color number Versions Version of Products description price CS-A1150 Tietokannat / 43
41 Heikot yksilöjoukot, esimerkki 2 Muutetaan kuvassa esitetty kolmijakoinen suhde Artists Contracts Albums address Companies year length website kaksijakoisiksi suhteiksi. Tällöin otetaan käyttöön liittävä yksilöjoukko Contracts, jolla ei ole omia attribuutteja. Joukon Contracts avain muodostuu liitettävien yksilöjoukkojen avainattribuuteista. Muutettu ER-kaavio on seuraavalla kalvolla. CS-A1150 Tietokannat / 43
42 Heikot yksilöjoukot, esimerkki 2 jatkuu Edellisen kalvon kolmijakoinen suhde on muutettu kaksijakoisiksi suhteiksi: Contracts Artist of Company of Album of Artists Companies Albums address website year length CS-A1150 Tietokannat / 43
43 Vaatimukset heikon yksilöjoukon attribuuteille Olkoon E heikko yksilöjoukko siten, että se on suhteessa R yksilöjoukkoon F, jolla on yksi tai useampi E:n avainattribuutti. Tällöin seuraavien ehtojen täytyy olla voimassa: 1. R on kaksijakoinen monesta yhteen -suhde E:stä F :ään. 2. Jokaista E:n yksilöä kohti täytyy olla täsmälleen yksi F :n yksilö, johon se on R:n kautta suhteessa. 3. Niiden F :n attribuuttien, jotka kuuluvat E:n avaimeen, täytyy olla F :n avaimia. 4. Jos kuitenkin F itse on heikko yksilöjoukko, niin sen jotkut tai kaikki sen avainattribuuteista ovat jonkin toisen yksilöjoukon G (johon F on suhteessa monesta yhteen) avaimia. 5. Jos E:stä on useita eri monesta yhteen -suhteita samaan yksilöjoukkoon F, niin E voi saada kunkin suhteen kautta attribuutteja E:n avaimeen. Sama E:n yksilö voi olla siis suhteessa useaan eri F :n yksilöön eri suhteiden kautta, ja kukin näistä F :n yksilöistä voi tuoda attribuutteja E:n avaimeen. CS-A1150 Tietokannat / 43
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ä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ä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ätiedotCS-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 / 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ä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ä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ä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 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 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 / 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ä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ä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ä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ätiedotOhjelmistojen mallintamisen ja tietokantojen perusteiden yhteys
Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys Tällä kurssilla on tutustuttu ohjelmistojen mallintamiseen oliomenetelmiä ja UML:ää käyttäen Samaan aikaan järjestetyllä kurssilla on käsitelty
Lisä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ätiedotSisällys. Mitä on periytyminen? Yksittäis- ja moniperiytyminen. Oliot ja perityt luokat. Periytymisen käyttö. 8.2
8. Periytyminen 8.1 Sisällys Mitä on periytyminen? Yksittäis- ja moniperiytyminen. Oliot ja perityt luokat. Periytymisen käyttö. 8.2 Mitä on periytyminen? Periytyminen (inheritance) tarkoittaa luokan piirteiden
LisätiedotMitä on periytyminen?
8. Periytyminen 8.1 Sisällys Mitä on periytyminen? Yksittäis- ja moniperiytyminen. Oliot ja perityt luokat. Filosofinen ja käytännönläheinen näkökulma periytymiseen. Periytymisen soveltaminen. 8.2 Mitä
LisätiedotJohdatus sovellussuunnitteluun, s99, osa3 Helsingin yliopisto;/tktl Harri Laine 1. Olioiden väliset yhteydet. Olioiden väliset yhteydet
..999 DO NOT PRINT THIS DOCUMENT DO NOT PRINT THIS DOCUMENT Yhteyden nimi Nimen lukusuunta pankkitili asiakas 0..0 Omistaja->..3
LisätiedotJohdatus sovellussuunnitteluun, s99, osa3 Helsingin yliopisto;/tktl Harri Laine 1. Olioiden väliset yhteydet. Olioiden väliset yhteydet
DO NOT PRINT THIS DOCUMENT DO NOT PRINT THIS DOCUMENT Yhteyden nimi Nimen lukusuunta pankkitili 0..0 Omistaja->..3 asiakas
LisätiedotYhteydelle voi antaa nimen kumpaankin suuntaan Sille ei tarvise antaa lainkaan nimeä Yhteysnimen asemasta tai lisäksi voidaan käyttää roolinimiä
DO NOT PRINT THIS DOCUMENT DO NOT PRINT THIS DOCUMENT Olioiden väliset yhteydet Yhteyden nimi Nimen lukusuunta pankkitili 0..10 Omistaja-> 1..3 asiakas
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ä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ä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ätiedotOhjelmistojen mallintaminen, mallintaminen ja UML
582104 Ohjelmistojen mallintaminen, mallintaminen ja UML 1 Mallintaminen ja UML Ohjelmistojen mallintamisesta ja kuvaamisesta Oliomallinnus ja UML Käyttötapauskaaviot Luokkakaaviot Sekvenssikaaviot 2 Yleisesti
LisätiedotLuokka- ja oliokaaviot
Luokka- ja oliokaaviot - tärkeimmät mallinnuselementit : luokat, oliot ja niiden väliset suhteet - luokat ja oliot mallintavat kuvattavan järjestelmän sisältöä ja niiden väliset suhteet näyttävät, kuinka
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ä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ä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. Olio-ohjelmoinnin perusteita 2.1
2. Olio-ohjelmoinnin perusteita 2.1 Sisällys Luokat ja oliot. Käsitteet, luokat ja oliot. Attribuutit, olion tila ja identiteetti. Metodit ja viestit. 2.2 Luokat ja oliot Olio-ohjelmoinnin keskeisimpiä
Lisätiedot2. Olio-ohjelmoinnin perusteita 2.1
2. Olio-ohjelmoinnin perusteita 2.1 Sisällys Esitellään peruskäsitteitä yleisellä tasolla: Luokat ja oliot. Käsitteet, luokat ja oliot. Attribuutit, olion tila ja identiteetti. Metodit ja viestit. Olioperustainen
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ä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ä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ätiedotUML - unified modeling language
UML - unified modeling language Lähtökohtana: Booch, Rumbaugh, Jacobsson Tavoitteena Unified Method - syntyykö? Kehittäjänä: Rational Inc. Standardointi: Object Management Group (OMG) - vaiheessa Lähteet:
LisätiedotKaikki kurssin laskuharjoitukset pidetään Exactumin salissa C123. Malliratkaisut tulevat nettiin kurssisivulle.
Kombinatoriikka, kesä 2010 Harjoitus 1 Ratkaisuehdotuksia (RT (5 sivua Kaikki kurssin laskuharjoitukset pidetään Exactumin salissa C123. Malliratkaisut tulevat nettiin kurssisivulle. 1. Osoita, että vuoden
Lisätiedotkeskenään isomorfiset? (Perustele!) Ratkaisu. Ovat. Tämän näkee indeksoimalla kärjet kuvan osoittamalla tavalla: a 1 b 3 a 5
Johdatus diskreettiin matematiikkaan Harjoitus 6, 21.10.2015 1. Ovatko verkot keskenään isomorfiset? (Perustele!) Ratkaisu. Ovat. Tämän näkee indeksoimalla kärjet kuvan osoittamalla tavalla: a 2 b 4 a
LisätiedotSÄHKE-hanke. Abstrakti mallintaminen Tietomallin (graafi) lukuohje
04.02.2005 1 (6) SÄHKE-hanke Versio ja pvm Laatinut Tarkpvm Tarkastanut Hyvpvm Hyväksynyt 2.0 / 04.02.2005 Anneli Rantanen 15.02.2005 Markus Merenmies 18.02.2005 Ohjausryhmä 04.02.2005 2 (6) Muutoshistoria
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ä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ä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ätiedotRelaatiomalli 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ä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ätiedotLiigan taulut ja attribuutit
HARJOITUS 3. Tehtävä 1. Laadi harjoitusmielessä kaksi käsitekaaviota, (juniori. Nappula tms.)liiga ja äänitearkisto. Levyarkisto: Tietokannassa tulee olla perustiedot äänitteistä (CD, vinyyli, kasetti),
LisätiedotTietokannat 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ätiedotNollasummapelit ja bayesilaiset pelit
Nollasummapelit ja bayesilaiset pelit Kristian Ovaska HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Seminaari: Peliteoria Helsinki 18. syyskuuta 2006 Sisältö 1 Johdanto 1 2 Nollasummapelit 1 2.1
LisätiedotPaikkatiedon mallinnus Dokumentoinnin ymmärtäminen. Lassi Lehto
Paikkatiedon mallinnus Dokumentoinnin ymmärtäminen Lassi Lehto INSPIRE-seminaari 23.08.2012 Sisältö Tietotuoteselosteen rakenne (ISO 19131) Unified Modeling Language (UML) Luokkakaaviotekniikan perusteet
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ätiedotTenttikysymykset. + UML-kaavioiden mallintamistehtävät
Tenttikysymykset 1. Selitä mitä asioita kuuluu tietojärjestelmän käsitteeseen. 2. Selitä kapseloinnin ja tiedon suojauksen periaatteet oliolähestymistavassa ja mitä hyötyä näistä periaatteista on. 3. Selitä
LisätiedotOlio-ohjelmoinnissa luokat voidaan järjestää siten, että ne pystyvät jakamaan yhteisiä tietoja ja aliohjelmia.
4. Periytyminen 4.1. Johdantoa Käytännössä vähänkään laajemmissa ohjelmissa joudutaan laatimaan useita luokkia, joiden pitäisi pystyä välittämään tietoa toisilleen. Ohjelmien ylläpidon kannalta olisi lisäksi
LisätiedotMatemaatiikan tukikurssi
Matemaatiikan tukikurssi Kurssikerta 1 1 Funktiot Funktion määritelmä Funktio on sääntö, joka liittää kahden eri joukon alkioita toisiinsa. Ollakseen funktio tämän säännön on liitettävä jokaiseen lähtöjoukon
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ätiedotTIEDONHALLINTA - SYKSY Luento 2. Pasi Ranne /8/17 Helsinki Metropolia University of Applied Sciences
TIEDONHALLINTA - SYKSY 2017 Kurssikoodi: Saapumisryhmä: Luento 2 TX00CN57-3001 TXQ16ICT, TXQ16S1 ja TXQ16PROS Pasi Ranne 28.8.2017 27/8/17 Helsinki Metropolia University of Applied Sciences 1 Oppitunnin
LisätiedotKuinka määritellään 2 3?
Kuinka määritellään 2 3? y Nyt 3 = 1,7320508.... Luvut 3 2 x x 3 2 x 2 1 = 2, 2 1,7 3,2490, 2 1,73 3,3173, 2 1,732 3,3219,... ovat hyvin määriteltyjä koska näihin tarvitaan vain rationaalilukupotenssin
LisätiedotOhjelmistojen mallintaminen
Ohjelmistojen mallintaminen - Mallit - Ohjelmiston kuvaaminen malleilla 31.10.2008 Harri Laine 1 Malli: abstraktio jostain kohteesta Abstrahointi: asian ilmaiseminen tavalla, joka tuo esiin tietystä näkökulmasta
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ätiedotTietokannat 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ätiedotPOLKU LUOKKAKAAVIOISTA TAULUJEN TOTEUTUKSEEN
POLKU LUOKKAKAAVIOISTA TAULUJEN TOTEUTUKSEEN KIRJAN HOVI, HUOTARI, LAHDENMÄKI: TIETOKANTOJEN SUUNNITTELU & INDEKSOINTI DOCENDO (2003, 2005) LUKU 7 JOUNI HUOTARI & ARI HOVI IIO30100 TIETOKANTOJEN SUUNNITTELU
Lisätiedot1 Kannat ja kannanvaihto
1 Kannat ja kannanvaihto 1.1 Koordinaattivektori Oletetaan, että V on K-vektoriavaruus, jolla on kanta S = (v 1, v 2,..., v n ). Avaruuden V vektori v voidaan kirjoittaa kannan vektorien lineaarikombinaationa:
LisätiedotT740103 Olio-ohjelmointi Osa 5: Periytyminen ja polymorfismi Jukka Jauhiainen OAMK Tekniikan yksikkö 2010
12. Periytyminen Johdantoa Käytännössä vähänkään laajemmissa ohjelmissa joudutaan laatimaan useita luokkia, joiden pitäisi pystyä välittämään tietoa toisilleen. Ohjelmien ylläpidon kannalta olisi lisäksi
LisätiedotTIE-20200 Samuel Lahtinen. Lyhyt UML-opas. UML -pikaesittely
Lyhyt UML-opas UML -pikaesittely UML, Unified Modeling Language Standardoitu, yleiskäyttöinen mallinnuskieli, jota ylläpitää/hallitsee (Object Management Group) OMG Historiaa: 90-luvulla oli paljon kilpailevia
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ätiedotHELIA 1 (20) Outi Virkki Tiedonhallinta 4.11.2000
HELIA 1 (20) Luento 3.1 7LHWRNDQWDSRKMDLVHQVRYHOOXNVHQVXXQQLWWHOXSURVHVVL Tietokannan suunnittelun tavoitteet... 3 Abstraktiotasot tietokannan suunnittelussa... 4 3-taso -malli... 4 TIHA-standardi... 5
Lisä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ätiedot1. Otetaan perusjoukoksi X := {0, 1, 2, 3, 4, 5, 6, 7}. Piirrä seuraaville kolmelle joukolle Venn-diagrammi ja asettele alkiot siihen.
Joukko-oppia Matematiikan mestariluokka, syksy 2010 Harjoitus 1, vastaukset 20.2.2010 1. Otetaan perusjoukoksi X := {0, 1, 2, 3, 4, 5, 6, 7}. Piirrä seuraaville kolmelle joukolle Venn-diagrammi asettele
LisätiedotRajapinnasta ei voida muodostaa olioita. Voidaan käyttää tunnuksen tyyppinä. Rajapinta on kuitenkin abstraktia luokkaa selvästi abstraktimpi tyyppi.
11. Rajapinnat 11.1 Sisällys Johdanto. Abstrakti luokka vai rajapinta? Rajapintojen hyötyjä. Kuinka rajapinnat määritellään ja otetaan käyttöön? Eläin, nisäkäs, kissa ja rajapinta. Moniperiytyminen rajapintojen
LisätiedotSisällys. 19. Unified Modeling Language (UML) Johdanto. Johdanto. Johdanto. Luokkakaavio:
Sisällys 9. Unified Modeling Language (UML) Perustuu Kai Koskimiehen Oliokirjaan ja aikaisempaan luentomateriaaliin. Johdanto. Luokkakaavio: Luokkasymboli, attribuutit ja metodit. Suhteet: Assosiaatiot:
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ä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ätiedotJHS 162 Paikkatietojen mallintaminen tiedonsiirtoa varten Liite 1 UML-mallinnus
JHS 162 Paikkatietojen mallintaminen tiedonsiirtoa varten Liite 1 UML-mallinnus Versio: 12.01.2011 Julkaistu: Voimassaoloaika: toistaiseksi Sisällys 1 Johdanto... 1 2 Yleistä... 1 3 Lyhenteet... 1 4 UML-luokkakaaviotekniikan
Lisätiedot2. Haet työntekijöiden tiedot etunimen mukaan nousevasti järjestettyinä. (ORDER BY) SELECT * FROM employees ORDER BY firstname ASC;
Tällä viikolla Kotitehtävien läpikäynti SQL-harjoituksia, osa 1 Jatketaan Pelifirman tietovaraston suunnittelua: tietotyyppien kertaus, taulun luonti ER-kaavioon, taulun luonti kaavion avulla tietokantaan,
LisätiedotSisällys. 11. Rajapinnat. Johdanto. Johdanto
Sisällys 11. ajapinnat. bstrakti luokka vai rajapinta? ajapintojen hyötyjä. Kuinka rajapinnat määritellään ja otetaan käyttöön? Eläin, nisäkäs, kissa ja rajapinta. Moniperiytyminen rajapintojen avulla.
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 12.4.2010 T-106.1208 Ohjelmoinnin perusteet Y 12.4.2010 1 / 34 Graafiset käyttöliittymät Tähän asti kirjoitetuissa ohjelmissa on ollut tekstipohjainen käyttöliittymä.
LisätiedotUML Luokkakaavio 14:41
UML Luokkakaavio UML Olio-ohjelman luokkien pääpiirteet voidaan kätevähkösti esittää ns. UML-luokkakaaviona. Näin usein tehdäänkin esim. suunniteltaessa, millaisia luokkia ohjelmaan on tarkoitus laatia,
LisätiedotUML -mallinnus LUOKKAKAAVIO EERO NOUSIAINEN
UML -mallinnus LUOKKAKAAVIO EERO NOUSIAINEN SISÄLLYS 3. Luokkakaavio UML -mallinnuskielessä 3.1 Luokkakaavion luokan rakenteet 3.2 Luokan kuvauksesta C++ ohjelmakoodiksi 3.3 Luokkakaavion luokkien yhteystyypit
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ä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ätiedotKehittää ohjelmointitehtävien ratkaisemisessa tarvittavia metakognitioita!
Kehittää ohjelmointitehtävien ratkaisemisessa tarvittavia metakognitioita! eli... Hyvä kaava sanoo enemmän kuin,... tuhat riviä koodia!... sata riviä tekstiä!... kymmenen diagrammia! Sopimusohjelmointi
LisätiedotOliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä
Oliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä Matti Luukkainen 10.12.2009 Tässä esitetty esimerkki on mukaelma ja lyhennelmä Robert Martinin kirjasta Agile and Iterative Development löytyvästä
LisätiedotTämän lisäksi listataan ranskalaisin viivoin järjestelmän tarjoama toiminnallisuus:
Dokumentaatio, osa 1 Tehtävämäärittely Kirjoitetaan lyhyt kuvaus toteutettavasta ohjelmasta. Kuvaus tarkentuu myöhemmin, aluksi dokumentoidaan vain ideat, joiden pohjalta työtä lähdetään tekemään. Kuvaus
LisätiedotOhjelmistotekniikan menetelmät, UML
582101 - Ohjelmistotekniikan menetelmät, UML 1 Sisältö DFD- ja sidosryhmäkaavioiden kertaus Oliomallinnus UML:än kaaviotyypit 2 Tietovuokaaviot Data flow diagrams, DFD Historiallisesti käytetyin kuvaustekniikka
LisätiedotTällä harjoituskerralla on tarkoituksena harjoitella käyttötapaus-, luokka- ja tapahtumasekvenssikaavioiden luontia.
MagicDraw-pikaohje Tällä harjoituskerralla on tarkoituksena harjoitella käyttötapaus-, luokka- ja tapahtumasekvenssikaavioiden luontia. Alkuvalmistelut Windows (sali TC205) 1) Kirjaudu sisään TTY:n intra-tunnuksella.
LisätiedotYhtälönratkaisusta. Johanna Rämö, Helsingin yliopisto. 22. syyskuuta 2014
Yhtälönratkaisusta Johanna Rämö, Helsingin yliopisto 22. syyskuuta 2014 Yhtälönratkaisu on koulusta tuttua, mutta usein sitä tehdään mekaanisesti sen kummempia ajattelematta. Jotta pystytään ratkaisemaan
LisätiedotValitsemalla sopivat alkiot joudutaan tämän määritelmän kanssa vaikeuksiin, jotka voidaan välttää rakentamalla joukko oppi aksiomaattisesti.
Joukon määritelmä Joukko on alkioidensa kokoelma. Valitsemalla sopivat alkiot joudutaan tämän määritelmän kanssa vaikeuksiin, jotka voidaan välttää rakentamalla joukko oppi aksiomaattisesti. Näin ei tässä
LisätiedotOhjelmistojen mallintaminen, kesä 2009
582104 Ohjelmistojen mallintaminen, kesä 2009 1 Ohjelmistojen mallintaminen Software Modeling Perusopintojen pakollinen opintojakso, 4 op Esitietoina edellytetään oliokäsitteistön tuntemus Ohjelmoinnin
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ä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ä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ä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ätiedotJouni Huotari & Ari Hovi. Käsitemallinnuksesta relaatiokantaan KÄSITEMALLI. LOOGINEN MALLI: tietomalli valittu. FYYSINEN MALLI: DBMS valittu
Informaatioteknologian instituutti IIO30100 Tietokantojen suunnittelu Polku luokkakaavioista taulujen toteutukseen kirjan Hovi, Huotari, Lahdenmäki: Tietokantojen suunnittelu & indeksointi, Docendo (2003,
LisätiedotLuento 3 Tietokannan tietosisällön suunnittelu
HAAGA-HELIA / Heti-09 1 (17) Luento 3 Tietokannan tietosisällön suunnittelu Tietojärjestelmän suunnitteluprosessi... 2 Tietokannan suunnittelun tavoitteet... 3 Tietokannan suunnitteluprosessi... 4 Käsitteellinen
LisätiedotHakemistojen sisällöt säilötään linkitetyille listalle.
Harjoitustyö 1 Harjoitustyö Tehtävä: ohjelmoi Java-kielellä komentoikkunaa (komentotulkkia, komentoriviä) simuloiva olioperustainen ohjelma. Hakemistojen sisällöt säilötään linkitetyille listalle. Työ
LisätiedotOhjelmistojen mallintaminen Unified Modeling Language (UML)
582104 Ohjelmistojen mallintaminen Unified Modeling Language (UML) 1 Olioperustaisuus Olio toimii mallinnuksen perusyksikkönä eri abstraktiotasoilla Järjestelmän rajaus, suunnittelu, ohjelmointi, suoritus..
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ätiedotMalliratkaisut Demot
Malliratkaisut Demot 4 3.4.017 Tehtävä 1 Tarkastellaan harjoituksen 1 nopeimman reitin ongelmaa ja etsitään sille lyhin virittävä puu käyttämällä kahta eri algoritmia. a) (Primin algoritmi) Lähtemällä
LisätiedotKannan vektorit siis virittävät aliavaruuden, ja lisäksi kanta on vapaa. Lauseesta 7.6 saadaan seuraava hyvin käyttökelpoinen tulos:
8 Kanta Tässä luvussa tarkastellaan aliavaruuden virittäjävektoreita, jotka muodostavat lineaarisesti riippumattoman jonon. Merkintöjen helpottamiseksi oletetaan luvussa koko ajan, että W on vektoreiden
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ätiedotLinkitetystä listasta perittyä omaa listaa käytetään muun muassa viestiin liittyvien vastausten säilömiseen.
Harjoitustyö 1 Harjoitustyö Tehtävä: ohjelmoi Java-kielellä keskustelualuetta simuloiva olioperustainen ohjelma (Simple Oope Board, S.O.B). Linkitetystä listasta perittyä omaa listaa käytetään muun muassa
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ä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ätiedot