CSE-A1200 Tietokannat

Koko: px
Aloita esitys sivulta:

Download "CSE-A1200 Tietokannat"

Transkriptio

1 CSE-A1200 Tietokannat CSE-A1200 Tietokannat / 41

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. CSE-A1200 Tietokannat / 41

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) CSE-A1200 Tietokannat / 41

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ä. CSE-A1200 Tietokannat / 41

5 Yksilöjoukot Yksilö (entity) vastaa suunnilleen olio-ohjelmointikielen oliota ilman olioon liittyviä metodeita. Esimerkiksi yksi elokuva 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). CSE-A1200 Tietokannat / 41

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 CSE-A1200 Tietokannat / 41

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 CSE-A1200 Tietokannat / 41

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 CSE-A1200 Tietokannat / 41

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. CSE-A1200 Tietokannat / 41

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 CSE-A1200 Tietokannat / 41

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. CSE-A1200 Tietokannat / 41

12 Monisuhteet ER-mallissa suhteeseen voi osallistu 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 CSE-A1200 Tietokannat / 41

13 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 CSE-A1200 Tietokannat / 41

14 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 CSE-A1200 Tietokannat / 41

15 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 CSE-A1200 Tietokannat / 41

16 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 CSE-A1200 Tietokannat / 41

17 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. CSE-A1200 Tietokannat / 41

18 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 CSE-A1200 Tietokannat / 41

19 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"). CSE-A1200 Tietokannat / 41

20 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. CSE-A1200 Tietokannat / 41

21 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 CSE-A1200 Tietokannat / 41

22 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. CSE-A1200 Tietokannat / 41

23 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. CSE-A1200 Tietokannat / 41

24 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. CSE-A1200 Tietokannat / 41

25 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ä. CSE-A1200 Tietokannat / 41

26 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 CSE-A1200 Tietokannat / 41

27 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. CSE-A1200 Tietokannat / 41

28 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. CSE-A1200 Tietokannat / 41

29 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. CSE-A1200 Tietokannat / 41

30 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). CSE-A1200 Tietokannat / 41

31 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. CSE-A1200 Tietokannat / 41

32 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 CSE-A1200 Tietokannat / 41

33 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 CSE-A1200 Tietokannat / 41

34 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? CSE-A1200 Tietokannat / 41

35 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. CSE-A1200 Tietokannat / 41

36 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 CSE-A1200 Tietokannat / 41

37 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, merkitään reunoiltaan kaksinkertaisilla vinoneliöillä. CSE-A1200 Tietokannat / 41

38 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. CSE-A1200 Tietokannat / 41

39 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 CSE-A1200 Tietokannat / 41

40 Heikot yksilöjoukot, esimerkki 2 Muutetaan kuvassa esitetty kolmijakoinen suhde Artists Contracts Albums Companies 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. CSE-A1200 Tietokannat / 41

41 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 CSE-A1200 Tietokannat / 41

42 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. CSE-A1200 Tietokannat / 41

CS-A1150 Tietokannat CS-A1150 Tietokannat / 43

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

Lisätiedot

CS-A1150 Tietokannat CS-A1150 Tietokannat / 35

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

Lisätiedot

CSE-A1200 Tietokannat

CSE-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ätiedot

CS-A1150 Tietokannat CS-A1150 Tietokannat / 51

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

Lisätiedot

CS-A1150 Tietokannat CS-A1150 Tietokannat / 44

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

Lisätiedot

CS-A1150 Tietokannat CS-A1150 Tietokannat / 54

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

Lisätiedot

CSE-A1200 Tietokannat

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

Lisätiedot

CSE-A1200 Tietokannat

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

Lisätiedot

CSE-A1200 Tietokannat

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

Lisätiedot

CS-A1150 Tietokannat CS-A1150 Tietokannat / 39

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

Lisätiedot

CS-A1150 Tietokannat CS-A1150 Tietokannat / 43

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

Lisätiedot

CS-A1150 Tietokannat CSE-A1150 Tietokannat / 32

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

Lisätiedot

3. Käsiteanalyysi ja käsitekaavio

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

Lisätiedot

CS-A1150 Tietokannat CS-A1150 Tietokannat / 44

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

Lisätiedot

CS-A1150 Tietokannat CSE-A1150 Tietokannat / 29

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

Lisätiedot

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

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

Lisätiedot

Sisällys. Mitä on periytyminen? Yksittäis- ja moniperiytyminen. Oliot ja perityt luokat. Periytymisen käyttö. 8.2

Sisä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ätiedot

Mitä on periytyminen?

Mitä 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ätiedot

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

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

Lisätiedot

CS-A1150 Tietokannat CSE-A1150 Tietokannat / 39

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

Lisätiedot

Johdatus sovellussuunnitteluun, s99, osa3 Helsingin yliopisto;/tktl Harri Laine 1. Olioiden väliset yhteydet. Olioiden väliset yhteydet

Johdatus 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ätiedot

Johdatus sovellussuunnitteluun, s99, osa3 Helsingin yliopisto;/tktl Harri Laine 1. Olioiden väliset yhteydet. Olioiden väliset yhteydet

Johdatus 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ätiedot

Tietokannat II -kurssin harjoitustyö

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

Lisätiedot

Yhteydelle voi antaa nimen kumpaankin suuntaan Sille ei tarvise antaa lainkaan nimeä Yhteysnimen asemasta tai lisäksi voidaan käyttää roolinimiä

Yhteydelle 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ätiedot

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

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

Lisätiedot

Ohjelmistojen mallintaminen luokkamallin lisäpiirteitä

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

Lisätiedot

Tietokannat II -kurssin harjoitustyö

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

Lisätiedot

2. Olio-ohjelmoinnin perusteita 2.1

2. 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ätiedot

HELIA 1 (17) Outi Virkki Tiedonhallinta

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

Lisätiedot

2. Käsiteanalyysi ja relaatiomalli

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

Lisätiedot

UML - unified modeling language

UML - 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ätiedot

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

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

Lisätiedot

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

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

Lisätiedot

Tietokantojen suunnittelu, relaatiokantojen perusteita

Tietokantojen suunnittelu, relaatiokantojen perusteita Tietokantojen suunnittelu, relaatiokantojen perusteita A277, Tietokannat Teemu Saarelainen teemu.saarelainen@kyamk.fi Lähteet: Leon Atkinson: core MySQL Ari Hovi: SQL-opas TTY:n tietokantojen perusteet-kurssin

Lisätiedot

Ohjelmistojen mallintaminen, mallintaminen ja UML

Ohjelmistojen 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ätiedot

Nimi: Henkilötunnus: {id} {+id}

Nimi: 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ätiedot

Relaatiomalli ja -tietokanta

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

Lisätiedot

CSE-A1200 Tietokannat

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

Lisätiedot

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

Tietokantasuunnittelun pääperiaatteena on tiedon toiston välttäminen. Tiedon toistumiseen liittyy monenlaisia ongelmia. Tietokantasuunnittelusta Tietokantasuunnittelun pääperiaatteena on tiedon toiston välttäminen. Tiedon toistumiseen liittyy monenlaisia ongelmia toistuva tieto vie tilaa ylläpito muodostuu hankalaksi ylläpito-operaatioilla

Lisätiedot

Nollasummapelit ja bayesilaiset pelit

Nollasummapelit 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ätiedot

CS-A1150 Tietokannat CS-A1150 Tietokannat / 43

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

Lisätiedot

CS-A1150 Tietokannat CS-A1150 Tietokannat / 43

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

Lisätiedot

keskenään isomorfiset? (Perustele!) Ratkaisu. Ovat. Tämän näkee indeksoimalla kärjet kuvan osoittamalla tavalla: a 1 b 3 a 5

keskenää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ätiedot

2. Olio-ohjelmoinnin perusteita 2.1

2. 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ätiedot

HARJOITUS 2. Kasvattamot ja mittaukset

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

Lisätiedot

Kaikki kurssin laskuharjoitukset pidetään Exactumin salissa C123. Malliratkaisut tulevat nettiin kurssisivulle.

Kaikki 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ätiedot

T740103 Olio-ohjelmointi Osa 5: Periytyminen ja polymorfismi Jukka Jauhiainen OAMK Tekniikan yksikkö 2010

T740103 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ätiedot

SÄHKE-hanke. Abstrakti mallintaminen Tietomallin (graafi) lukuohje

SÄ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ätiedot

TIEDONHALLINNAN PERUSTEET - SYKSY 2013

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

Lisätiedot

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

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

Lisätiedot

CSE-A1200 Tietokannat

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

Lisätiedot

Olio-ohjelmoinnissa luokat voidaan järjestää siten, että ne pystyvät jakamaan yhteisiä tietoja ja aliohjelmia.

Olio-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ätiedot

Luokka- ja oliokaaviot

Luokka- 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ätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin 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ätiedot

Liigan taulut ja attribuutit

Liigan 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ätiedot

Ohjelmistojen mallintaminen luokkamallin lisäpiirteitä

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

Lisätiedot

Tenttikysymykset. + UML-kaavioiden mallintamistehtävät

Tenttikysymykset. + 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ätiedot

HELIA 1 (20) Outi Virkki Tiedonhallinta 4.11.2000

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

Lisätiedot

1 Kannat ja kannanvaihto

1 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ätiedot

POLKU LUOKKAKAAVIOISTA TAULUJEN TOTEUTUKSEEN

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

Lisätiedot

Kuinka määritellään 2 3?

Kuinka 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ätiedot

Tällä harjoituskerralla on tarkoituksena harjoitella käyttötapaus-, luokka- ja tapahtumasekvenssikaavioiden luontia.

Tä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ätiedot

Sisällys. 19. Unified Modeling Language (UML) Johdanto. Johdanto. Johdanto. Luokkakaavio:

Sisä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ätiedot

Matemaatiikan tukikurssi

Matemaatiikan 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ätiedot

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

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

Lisätiedot

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

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

Lisätiedot

Paikkatiedon mallinnus Dokumentoinnin ymmärtäminen. Lassi Lehto

Paikkatiedon 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ätiedot

HELIA 1 (17) Outi Virkki Tiedonhallinta 4.11.2000

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

Lisätiedot

Oliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä

Oliosuunnitteluesimerkki: 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ätiedot

Matematiikan tukikurssi, kurssikerta 1

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

Lisätiedot

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

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

Lisätiedot

Yhtälönratkaisusta. Johanna Rämö, Helsingin yliopisto. 22. syyskuuta 2014

Yhtä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ätiedot

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

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

Lisätiedot

M. Merikanto 2012 XML. Merkkauskieli, osa 2

M. Merikanto 2012 XML. Merkkauskieli, osa 2 XML Merkkauskieli, osa 2 Esimerkki: XML-dokumentti resepti maitokaakao

Lisätiedot

JYVÄSKYLÄN YLIOPISTO Valintakoe s2011 Sivu 1 Tietojärjestelmätieteen opiskelijavalinta. Nimi: Henkilötunnus:

JYVÄSKYLÄN YLIOPISTO Valintakoe s2011 Sivu 1 Tietojärjestelmätieteen opiskelijavalinta. Nimi: Henkilötunnus: JYVÄSKYLÄN YLIOPISTO Valintakoe s2011 Sivu 1 Tehtävä 1. Tehtävän enimmäispistemäärä on 15. Esitä lyhyesti äskeisen esityksen keskeinen sisältö. Ilmaise asiasi sujuvasti ja selkeästi, kokonaisilla virkkeillä

Lisätiedot

Rajapinnasta ei voida muodostaa olioita. Voidaan käyttää tunnuksen tyyppinä. Rajapinta on kuitenkin abstraktia luokkaa selvästi abstraktimpi tyyppi.

Rajapinnasta 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ätiedot

Johdanto. Olio (Object) Luokka (Class) Olion kuvaaminen

Johdanto. Olio (Object) Luokka (Class) Olion kuvaaminen Johdanto Olio (Object) Luokat (ja oliot) mallintava järjestelmän rakennetta määrittely järjestelmän kannalta Luokat ja niiden väliset suhteet muuntuvat suoraan lähdekoodiksi! Luokkakaaviolla kuvataan ohjelmiston

Lisätiedot

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

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

Lisätiedot

Malliratkaisut Demot

Malliratkaisut 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ätiedot

Valitsemalla sopivat alkiot joudutaan tämän määritelmän kanssa vaikeuksiin, jotka voidaan välttää rakentamalla joukko oppi aksiomaattisesti.

Valitsemalla 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ätiedot

CS-A1150 Tietokannat CS-A1150 Tietokannat / 34

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

Lisätiedot

Tämän lisäksi listataan ranskalaisin viivoin järjestelmän tarjoama toiminnallisuus:

Tä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ätiedot

1. Otetaan perusjoukoksi X := {0, 1, 2, 3, 4, 5, 6, 7}. Piirrä seuraaville kolmelle joukolle Venn-diagrammi ja asettele alkiot siihen.

1. 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ätiedot

Sisällys. 11. Rajapinnat. Johdanto. Johdanto

Sisä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ätiedot

Diskreetin matematiikan perusteet Laskuharjoitus 2 / vko 9

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

Lisätiedot

HELIA 1 (12) Outi Virkki Tiedonhallinta 4.11.2000

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

Lisätiedot

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

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

Lisätiedot

CS-A1150 Tietokannat CS-A1150 Tietokannat / 51

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

Lisätiedot

Königsbergin sillat. Königsberg 1700-luvulla. Leonhard Euler ( )

Königsbergin sillat. Königsberg 1700-luvulla. Leonhard Euler ( ) Königsbergin sillat 1700-luvun Königsbergin (nykyisen Kaliningradin) läpi virtasi joki, jonka ylitti seitsemän siltaa. Sanotaan, että kaupungin asukkaat yrittivät löytää reittiä, joka lähtisi heidän kotoaan,

Lisätiedot

Kannan vektorit siis virittävät aliavaruuden, ja lisäksi kanta on vapaa. Lauseesta 7.6 saadaan seuraava hyvin käyttökelpoinen tulos:

Kannan 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ätiedot

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Taulukot & Periytyminen

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Taulukot & Periytyminen Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Taulukot & Periytyminen Taulukot: Array Taulukko Javassa pitää aina perustaa (new) Yksinkertaisessa tilanteessa taulukon koko tiedetään etukäteen ja

Lisätiedot

Tietokannan suunnittelu

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

Lisätiedot

2.3 Voiman jakaminen komponentteihin

2.3 Voiman jakaminen komponentteihin Seuraavissa kappaleissa tarvitaan aina silloin tällöin taitoa jakaa voima komponentteihin sekä myös taitoa suorittaa sille vastakkainen operaatio eli voimien resultantin eli kokonaisvoiman laskeminen.

Lisätiedot

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

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

Lisätiedot

Johdanto. Rough Sets. Peruskäsitteitä

Johdanto. Rough Sets. Peruskäsitteitä Johdanto Rough Sets "The central problem of our age is how to act decisively in the absence of certainty" B Russel, 1940 Rough sets on 1980-luvun alussa Puolassa (Z Pawlak) kehitetty epävarmuutta ja epämääräisyyttä

Lisätiedot

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

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

Lisätiedot

GeoGebra-harjoituksia malu-opettajille

GeoGebra-harjoituksia malu-opettajille GeoGebra-harjoituksia malu-opettajille 1. Ohjelman kielen vaihtaminen Mikäli ohjelma ei syystä tai toisesta avaudu toivomallasi kielellä, voit vaihtaa ohjelman käyttöliittymän kielen seuraavasti: 2. Fonttikoon

Lisätiedot

Kehittää ohjelmointitehtävien ratkaisemisessa tarvittavia metakognitioita!

Kehittää 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ätiedot

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

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 5. marraskuuta 2015 TIEA24 Automaatit ja kieliopit, syksy 205 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 5. marraskuuta 205 Sisällys Käsiteanalyysiä Tarkastellaan koodilukkoa äärellisenä automaattina. Deterministinen äärellinen

Lisätiedot

UML Luokkakaavio 14:41

UML 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ätiedot