10. Luento Käsiteltävä tieto

Samankaltaiset tiedostot
4. Luento Käsiteltävä tieto

5. Luento Vaatimusmäärittelyt 2 Käsiteltävä tieto

Tietokantojen suunnittelu, relaatiokantojen perusteita

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

POLKU LUOKKAKAAVIOISTA TAULUJEN TOTEUTUKSEEN

3. Käsiteanalyysi ja käsitekaavio

Tiedonhallinnan perusteet. Viikko 1 Jukka Lähetkangas

HELIA 1 (20) Outi Virkki Tiedonhallinta

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

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

XML kielioppi. Elementtien ja attribuuttien määrittely. Ctl230: Luentokalvot Miro Lehtonen

Tietokannan suunnittelu

TIEDONHALLINNAN PERUSTEET - SYKSY 2013

P e d a c o d e ohjelmointikoulutus verkossa

Luento 3 Tietokannan tietosisällön suunnittelu

Tentissä ratkaistaan neljä ohjelmointitehtävää Javalla. Tehdään sähköisesti mikroluokan Windows-koneilla.

TIE Samuel Lahtinen. Lyhyt UML-opas. UML -pikaesittely

Ohjelmistotekniikan menetelmät, kesä 2008

TIEDONHALLINTA - SYKSY Luento 2. Pasi Ranne /8/17 Helsinki Metropolia University of Applied Sciences

Tilakaaviot, sekvenssikaaviot (Haikala, Märijärvi ss , )

HELIA 1 (17) Outi Virkki Tiedonhallinta

2. Käsiteanalyysi ja relaatiomalli

IIO30100 Tietokantojen suunnittelu (6 op)

IIO30100 Tietokantojen suunnittelu (6 op)

Ohjelmistojen mallintaminen, kesä 2010

Ohjelmistojen mallintaminen, mallintaminen ja UML

Tentissä ratkaistaan neljä ohjelmointitehtävää Javalla. Tehdään sähköisesti mikroluokan Windows-koneilla.

TIE = JOTU. VH5 - MagicDraw

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

Ohjelmistojen mallintaminen, kesä 2009

Analyysi, staattinen mallintaminen, kohdealueen malli ja luokkakaavio

Ctl160 Tekstikorpusten tietojenkäsittely p.1/15

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

Ohjelmistotekniikan menetelmät, käyttötapauksiin perustuva vaatimusmäärittely

ELINTARVIKE MARKKINOINNIN PERUSTEET YET-004

Analyysi on tulkkaamista

IIO30100 TIETOKANTOJEN SUUNNITTELU (6 OP)

Rakenteisen oppimateriaalin tuottaminen verkossa esimerkki Rhaptos. Antti Auer Koordinaattori, HT Jyväskylän yliopisto Virtuaaliyliopistohanke

WWW-ohjelmoinnin kokonaisuus. WWW-OHJELMOINTI 1 Merkkauskielet. Merkkauskielten idea. Merkkauskielet (markup languages) Merkkauskielten merkitys

Johdatus rakenteisiin dokumentteihin

VH5, JOTU, MagicDraw:n käyttö

ITKA204 Tietokannat ja tiedonhallinnan perusteet

GroupDesk Toiminnallinen määrittely

Ohjelmistotekniikan menetelmät, kevät 2008

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

Paikkatiedot ja Web-standardit

NELLI-Tunnis. Käyttäjän tunnistus NELLI-tiedonhakuportaalissa yleisissä kirjastoissa. Versio Ere Maijala Kansalliskirjasto

HELIA 1 (8) Outi Virkki Tietokantasuunnittelu

Vaasan yliopiston toimintaa tukevat informaatiopalvelut ovat käytettävissä WWW:n kautta.

TESTIRAPORTTI - XMLREADER LUOKKA Virtuaaliyhteisöjen muodostaminen Versio 1.0

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

Luokka- ja oliokaaviot

Ohjelmistojen mallintaminen, kurssikoe esimerkkivastauksia

Johdatus ohjelmistotuotantoon

Vaalijärjestelmä Vakka

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

19/20: Ikkuna olio-ohjelmoinnin maailmaan

Suunnitteluvaihe prosessissa

käyttötapaukset mod. testaus

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

Ohjelmistojen suunnittelu

TOIMINNALLINEN MÄÄRITTELY MS

Kaaviotekniikoista (erityisesti UML)

Sopimuspohjainen olio-ohjelmointi

Myös opettajaksi aikova voi suorittaa LuK-tutkinnon, mutta sillä ei saa opettajan kelpoisuutta.

M. Merikanto 2012 XML. Merkkauskieli, osa 2

Ylläpitodokumentti. Boa Open Access. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Kuvaustekniikoista menetelmiin

ELM GROUP 04. Teemu Laakso Henrik Talarmo

UML -mallinnus LUOKKAKAAVIO EERO NOUSIAINEN

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

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

Johdatus ohjelmistotuotantoon

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

Laajuus 5 op Luennot: 12 x 2t Harjoitukset: 7 viikkoharjoitusta harjoitusten tekemiseen saatavissa apua 2 ryhmää / harjoitus

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmistojen mallintaminen viikon 4 laskareiden mallivastauksia

Ohjelmistojen mallintaminen kertausta Harri Laine 1

Tietokantojen perusteet k2004helsingin yliopisto/tktl Tietokantojen perusteet, s 2007 ER-mallin peruskäsitteet.

UML ja luokkien väliset suhteet

Ohjelmistotuotanto vs. muut insinööritieteet. (Usein näennäinen) luotettavuus ja edullisuus

TESTIRAPORTTI - XMLREADER-LUOKKA Virtuaaliyhteisöjen muodostaminen Versio 1.0 (luonnos 2)

StanForD-XML. Juha-Antti Sorsa, Tapio Räsänen, Vesa Imponen

Paikkatietojen tietotuotemäärittely

Johdatus ohjelmistotuotantoon

Tähtitieteen käytännön menetelmiä Kevät 2009

Ohjelmistojen mallintaminen luokkamallin lisäpiirteitä

Paikkatietojen tietotuotemäärittely

Tietojärjestelmän osat

Opettajatuutorointi-kurssin syksyn 2006 kyselyjen tulokset

Ohjelmistoarkkitehtuurit. Kevät

Yhteentoimivuutta edistävien työkalujen kehittäminen

Algoritmit 1. Luento 3 Ti Timo Männikkö

2. Olio-ohjelmoinnin perusteita 2.1

T Ohjelmistojen määrittely- ja suunnittelumenetelmät Harjoitustyöraportti TNT - Tarkistetaan Ne Tentit Analyysimalli

Tietokannan suunnittelu

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

TTZC0800 TIETOKANNAT (5 OP)

Transkriptio:

10. Luento Käsiteltävä tieto Kari Systä 5.11.2013 JOTU 2013 / Kari Systä 1

Alustava luentoaikataulu 26.8: Johdanto + historiaa, mitä on ohjelmistotuotanto 2.9: Ohjelmistojen roolista ja ohjelmistotyön määrästä, ohjelmistotyypit 9.9: Miten ohjelmistotyö organisoidaan (vaihejako ja prosessi-mallit) 16.9: vaatimusmäärittelyt 23.9: projektitoiminta 30.9: Yleiset notaatiot erityisesti UML 7.10: Esimerkkiprojekti (vierailuluento esillä ihan oikea projekti) 10/21/2013 JOTU2013/Kari Systä 21.10: Asiakasroolista 28.10: Käyttäjä ja käyttäjäkokemus ohjelmistoprojektissa (Kati Kuusinen) 4.11: Tiedon mallintaminen 11.11: Ohjelmisto osana laitetta 1 18.11: Ohjelmisto osana laitetta 2 25.11: IPR, sopimukset, open source 2.12: Kertausta 2

Sisältöä Mitä tietoa järjestelmä käsittelee käsitteellinen mallinnus Tiedon yksityiskohtien määritteleminen Tiedon esitys- ja välitystavoista - mm. XML Mitä se Big Data on JOTU 2013 / Kari Systä 3

Järjestelmää suunniteltaessa on tärkeää miettiä tallennettavaa tietoa Tiedon tyyppi, arvoalueet ja rajoitteet Vrt Arien kantoraketti Tietojen väliset yhteydet ja riippuvuudet Valittu tiedon rakenne vaikuttaa järjestelmän toimintoihin ja tehokkuuteen Järjestelmien välinen tiedon siirto Myös siirto vanhasta uuteen JOTU 2013 / Kari Systä 4

Suunnitteluprosessi Määrittely 1. Käsitteellinen mallintaminen 2. Tiedon esitysmuodot ja tallentaminen Tietokanta 3. Tiedon siirto ja vaihto 2. Järjestelmä JOTU 2013 / Kari Systä 5

Muita kursseja OtuPK JohTiKa TiKaSu JOTU 2013 / Kari Systä 6

TIE-22100 - Johdatus tietokantoihin Kurssin tavoitteena on, että kurssin suoritettuaan opiskelijan pitäisi ymmärtää tietokantojen ja tietokantajärjestelmien perusajatukset, tuntea alueen terminologia, osata käyttää relaatiotietokannan hallintajärjestelmää, luoda valmiiksi kuvattu tietokanta sekä tehdä ei-triviaaleja tietokantahakuja SQL-kieltä käyttäen. Kurssi koostuu luennoista ja viikkoharjoituksista. Suoritusvaatimuksina ovat hyväksytysti suoritetut harjoitustehtävät ja tentti. Ks. kurssin arvostelu. Kurssin vastuuhenkilö on Jari Peltonen (jari.peltonen(at)tut.fi) jatkossa Timo Aaltonen (timo.aaltonen (at) tut.fi) JOTU 2013 / Kari Systä 7

TIE-22200 - Tietokantojen suunnittelu Kurssin tavoitteena on, että kurssin suoritettuaan opiskelija osaa käyttää rutiininomaisesti relaatiotietokannan hallintajärjestelmää sekä osaa suunnitella ja toteuttaa alusta loppuun suorituskykyisen, turvallisen ja ei-triviaalin relaatiotietokannan käyttäen kurssilla opetettua prosessia. Hän osaa myös käyttää relaatiotietokantaa sekä ohjelmallisesti että SQL-kielellä rutiininomaisesti. Opiskelija myös tietää mitä liittyy sellaisten järjestelmien määrittelyyn, suunnitteluun, toteutukseen ja ylläpitoon, missä olennaisena osana on tietokanta sekä osaa käyttää tätä tietoa vaihtoehtojen harkinnan ja lisätietojen hankinnan tukena. Kurssi koostuu luennoista, viikkoharjoituksista ja harjoitustyöstä. Suoritusvaatimuksina ovat hyväksytysti suoritetut harjoitustehtävät, harjoitustyö ja tentti. Ks. kurssin arvostelu. Kurssin vastuuhenkilö on Jari Peltonen (jari.peltonen(at)tut.fi) jatkossa Timo Aaltonen (timo.aaltonen (at) tut.fi). JOTU 2013 / Kari Systä 8

Käsitteellinen mallintaminen (lainaus kurssin tietokantojen suunnittelu luentomateriaalista) Kuvataan maailmaa (kohdealue) siellä olevien käsitteiden, niiden ominaisuuksien ja suhteiden avulla. Näiden tilat voivat muuttua ajoittain tapahtumien vaikutuksesta. Ollaan kiinnostuneita maailman tilasta menneisyydessä, nyt ja tulevaisuudessa. Käsitteellinen malli = kohdealueen vääristymätön ja täydellinen esitys (, jossa mahdolliset toteutusnäkökohdat jätetään huomioimatta.) JOTU 2013 / Kari Systä 9

Esitetään useimmiten graafisesti Oliokaavio Luokkakaavio (UML) ER-kaavio (entity-relationship kaavio) Tietoyhteyskaavio Käsitekaavio Kohdekaavio JOTU 2013 / Kari Systä 10

Käsitekaavio (UML:n luokkakaavio) Nimi Ominaisuudet lkm nimi lkm Nimi Ominaisuudet Metodit Metodit JOTU 2013 / Kari Systä 11

Esimerkki Navigointisuunta JOTU 2013 / Kari Systä 12

Kooste/muodoste Kooste (aggregation) Olio on toisen osa / komponentti Muodoste (composition) Kiinteä riippuvuus Usein elinikäinen riippuvuus JOTU 2013 / Kari Systä 13

Muodoste/kooste Kooste: Muodoste: JOTU 2013 / Kari Systä 14

Yleistäminen Olio-ohjelmoinnin kurssilla puhutaan sitten periytymisestä JOTU 2013 / Kari Systä 15

Muut notaatiot: Chenin notaatio (kuva 6.11) opiskelija 1:N osallis- tuu 0:N kurssi 0:N <-kuvaa 1:1 opintojakso 0:N 1:1 0:N 0:N suorittaa 0:N tentti kuuluu luennoi 0:1 suoritus opettaja JOTU 2013 / Kari Systä 16

Muut notaatiot: Martinin kohdekaaviot (kuva 6.12) opiskelija osallistuu kurssi kuvaa opintojakso luennoi kuuluu suoritus tentti opettaja JOTU 2013 / Kari Systä 17

Vinkkejä ja neuvoja Assosiaatio-yhteys voi olla joko kaksisuuntainen tai yksisuuntainen. Ns navigointisuunta Tarvittaessa merkitse (UML:ssä nuolella) Luokkakaaviossa tiedon tyyppejä (luokkia) Olio-ohjelmoinnissa mennään syvemmälle olioiden ja luokkien ihmeelliseen maailmaan Lukumääräsuhteiden oikeellisuuteen kannattaa kiinnittää huomiota, sillä ne ohjaava järjestelmän suunnittelua. Raja assosiaation, muodosteen ja koosteen välillä on usein häilyvä JOTU 2013 / Kari Systä 18

Etevä suunnittelija käsittää käsitteet http://aikalainen.uta.fi/2011/12/23/eteva-suunnittelija-kasittaa-kasitteet/ Tietojärjestelmän tekijän täytyy ensin itse ymmärtää, mistä on kyse, ja tunnistaa asiaan liittyvät käsitteet. Käsitteet ovat sellaisia, joita järjestelmää käyttävä ihminen tuntee. Käsitteellinen mallintaminen on eri asia kuin järjestelmän käytettävyys, joskin mallintamisen puute saattaa heijastua myös järjestelmän käytettävyyteen. Jos käsitteellistä mallintamista ei ole suunnitteluvaiheessa tehty tai se on tehty huonosti, niin järjestelmästä alkaa usein paljastua asioita, jotka eivät toimi niin kuin suunnittelija on kuvitellut. Järjestelmään tulee virheitä, joita ei ehkä helposti pystytä paljastamaan. Tietojärjestelmän rakentaminen kuulostaa arkiselta työltä, mutta käsitteellisessä mallintamisessa tarvitaan filosofian oppeja tiedon sisällöstä ja käsitteistä. JOTU 2013 / Kari Systä 19

Eräs tunnettu kömmähdys Vaalitulospalvelu eduskuntavaaleissa 1970 JOTU 2013 / Kari Systä 20

Mitä tapahtui SMP oli saamassa murskavoittoa ja 18 kansanedustajaa Mutta tulospalvelu ennusti jatkuvasti vain n. 8 edustajaa. SMP:n legendaarinen poliitikko Eino Poutiainen laski omia ennusteitaan klubiaskin kanteen ja oli kokoajan oikeassa. JOTU 2013 / Kari Systä 21

Eino Poutiaisen muistelmista Tietokonekaan ei vaalien jälkeisenä yönä tulosten laskennassa ruvennut uskomaan tosiasioita. [...] Joten herrojen henki oli tarttunut tietokoneeseenkin, joka sitten ällisteli ja ihmetteli. [...] Eniten kiinnitti huomiotani, kun televisiossa ilmoitettiin Oulun vaalipiirin äänistä lasketuksi noin 30 % ja meille sanottiin ääniä tulleen vain 0,5 %. Silloin huomasin, että kyllä tohtori Sänkiahon rokkatoosa joutaisi heittää Suomenlahteen, koska hörisee niin kuin vanha tamma, jolle syötetään ruisjauhoapetta. JOTU 2013 / Kari Systä 22

Prof. Sänkiahon kuvaus erään laskennassa tarvittavan kertoimen arvo määriteltiin yhdellä kokonaisluvulla ja kahdella desimaalilla. Kone "luki Arvon 12.34 arvoksi 2.34 ja ollen kertoimena niin tulokset olivat vähän pielessä useissa vaalipiireissä eli siellä missä SMP:n kannatus lisääntyi yli kymmenkertaiseksi. PS. Cobol kielessä on tapana käyttää desimaalilukuja liukulukujen sijaan JOTU 2013 / Kari Systä 23

Tiedon rakenteen määrittely Tarkennetaan käsitteellisen mallinnuksen tulosta Useimmiten vastuu toimittajalla, mutta vain tilaaja tietää oikeat vastaukset Tässä opetellaan kieltä jolla keskustella JOTU 2013 / Kari Systä 24

Bachus-Naur Form (Lauseke) 1: <lauseke> ::= <kertolauseke> <kertolauseke> <ynnäoper> <lauseke> 2: <kertolauseke> ::= <sulkulauseke> <sulkulauseke> <kerto-oper> <kertolauseke> 3: <sulkulauseke> ::= <termi> ( <lauseke> ) 4: <termi> ::= <numeerinen_vakio> <muuttuja> 5: <ynnäoper> ::= + - 6: <kerto-oper> ::= * / JOTU 2013 / Kari Systä 25

(a+b)*c Luennoilla käydään läpi tarkistus sääntöjen avulla kuten kirjassa Jos aikaa, myös tietokoneen (esim kääntäjän tapa) joka seuraavilla kalvoilla JOTU 2013 / Kari Systä 26

(a+b)*c <tyhjä> (a+b)*c ( (a+b)*c (a (a+b)*c (muuttuja (a+b)*c (termi (a+b)*c (kertolauseke (a+b)*c (kertolauseke+ (a+b)*c (kertolauseke ynnäop (a+b)*c (kertolauseke ynnäop b (a+b)*c (kertolauseke ynnäop lauseke (a+b)*c (kertolauseke ynnäop lauseke ) (a+b)*c (lauseke) JOTU 2013 / Kari Systä 27

(a+b)*c lauseke * (a+b)*c lauseke kerto-op (a+b)*c lauseke kerto-op c (a+b)*c lauseke kerto-op kertolauseke (a+b)*c kertolauseke (a+b)*c lauseke JOTU 2013 / Kari Systä 28

Testataan hieman (a+b)+c? kertolauseke + lauseke a+b*c a+sulkulauseke*c a+kertolauseke a+lauseke kertolauseke+lauseke JOTU 2013 / Kari Systä 29

Tietohakemistonotaatio merkki merkitys + ja () optionaalinen (voi puuttua) {} toisto (0-N kertaa) n{}m toisto n-m kertaa [] vaihtoehtoja vaihtoehtojen erotin @ avainkenttä * kommentti JOTU 2013 / Kari Systä 30

Esimerkkejä henkilötiedot = nimi + @henkilötunnus + aviosääty + lapset nimi = 1{etunimi}3 + sukunimi aviosääty = [naimaton naimisissa eronnut leski] osoite = (toimitusosoite) + (laskutusosoite) osoite = [toimitusosoite laskutusosoite toimitusosoite + laskutusosoite] osoite = toimitusosoite + (laskutusosoite) luottoraja = *asiakkaalle myönnettävän luoton enimmäismäärä markkoina* luottoraja_ilmoitus = *vastaus luottorajan muutosyritykseen* ["Tuntematon asiakas" "Virheellinen luottoraja" "Uudeksi luottorajaksi on muutettu xxx markkaa"] JOTU 2013 / Kari Systä 31

Esimerkkejä suoritustietokanta= * Relaatiokanta, joka kuvaa opiskelijat, kurssit ja suoritukset. Se koostuu tauluista opiskelijat, suoritukset ja opintojaksot.* opiskelijat = {@op_nro + nimi + osoite +...} suoritukset = {@suor_nro + op_nro + oj_nro+ pvm + ov_määrä + arvosana + opettaja} opintojaksot ={@oj_nro+oj_nimi+kuvaus} op_nro nimi os 777 Ahto S. 222 Teemu T. suor_nro op_nro oj_nro pvm ov_määrä arvosana opettaja 234 777 81210 20.3.1995 2 3 ijh 456 222 81210 22.3.1996 2 5 ijh 645 777 81130 24.3.1996 4 3 tensu JOTU 2013 / Kari Systä oj_nro oj_nimi kuvaus 81210 otupk 81130 otm 32

Lauseke tietohakemistonotaatiolla lauseke = [kertolauseke kertolauseke + ynnäop + lauseke] kertolauseke = [sulkulauseke sulkulauseke + kerto-op + kertolauseke] sulkulauseke = [termi ( lauseke ) ] termi = [numeerinen_vakio muuttuja] JOTU 2013 / Kari Systä 33

Pieni sormiharjoitus Pieni sormiharjoitus: esitä tietohakemistonotaatio desimaalilukujen esittämiseksi. Sallittuja lukuja ovat esimerkiksi "-.123", "123", "123.123", ".123", "+123" ja "-123". Kiellettyjä ovat mm. "++123" ja "123.". LUKU = (ETUM) + ARVO ETUM = [ '+' '-' ] ARVO = [ KOK_LUKU + ('.' + KOK_LUKU) '.' + KOK_LUKU ] KOK_LUKU = 1{NUMERO}N NUMERO = ['0' '1' '2' '3' '4' '5' '6' '7' '8' '9'] JOTU 2013 / Kari Systä 34

Suunnitteluprosessi Määrittely 1. Käsitteellinen mallintaminen 2. Tiedon esitysmuodot ja tallentaminen Tietokanta 3. Tiedon siirto ja vaihto 2. Järjestelmä JOTU 2013 / Kari Systä 35

Tiedonvälitysformaatteja Tarvitaan kun järjestelmät keskustelevat keskenään Vakiotavat ja standardit helpottavat JOTU 2013 / Kari Systä 36

Muita tiedon rakenteen ja esitystavan Merkkauskielet HTML SGML määrittelytapoja XML (ja siihen liittyvät standardit: DTD, XML Schema) ASN.1: tietoliikenteen sanomarakenteet JOTU 2013 / Kari Systä 37

XML, DTD ja Schema A XML doku B DTD/ schema JOTU 2013 / Kari Systä 38

DTD ja Schema DTD Document Type Definition Yksinkertainen Voi olla erillinen tai osa tiedostoa XML Schema Monipuolisempi Aito XML-dokumentti JOTU 2013 / Kari Systä 39

XML:n dokumenttityypin rakenteen määrittely: DTD (Document Type Definition). Tiedon rakenteen kuvaaminen. <!DOCTYPE postitilaus [ <!ELEMENT postitilaus (vastaanottaja, tavara*) <!ELEMENT vastaanottaja (nimi, osoite)> <!ELEMENT tavara (nimeke, määrä, hinta)> <!ELEMENT nimi (#PCDATA)> <!ELEMENT osoite (#PCDATA)> <!ELEMENT nimeke (#PCDATA)> <!ELEMENT määrä (#PCDATA)> <!ELEMENT hinta (#PCDATA)> ]> JOTU 2013 / Kari Systä 40

XML-dokumentti (joka on well-formed, mutta edellä esitetyn DTDkuvauksen mukaan ei valid ) <?xml version="1.0"?> <postitilaus> <vastaanottaja> <nimi>ahto Simakuutio</nimi> <osoite>hermiankatu 99, 33720 Tampere</osoite> </vastaanottaja> <tavarat> <tavara> <nimeke>muistipiiri 256MX</nimeke> <maara>2</maara> <hinta>100</hinta> </tavara> <tavara> <nimeke>nokia Lumia 920</nimeke> <maara>1</maara> <hinta>750</hinta> </tavara> </tavarat> </postitilaus> Jos dokumentti ei ole XML:ää, se ei ole well formed XML-standardin mukaiset dokumentit ovat well formed Tietyn DTD-kuvauksen tai scheman mukaiset kuvaukset ovat valid XML-syntaksin mukainen dokumentti voi siis olla well formed, well formed but not valid tai well formed and valid JOTU 2013 / Kari Systä 41

ja vastaava XML Schema <xsd:schema xmlns:xsd="http://www.w3.org/1999/xmlschema"> <xsd:element name="postitilaus" type="tilaus"/> <xsd:complextype name="tilaus"> <xsd:element name="vastaanottaja" type="osoitetiedot"/> <xsd:element name="tavarat" type="tavaroidentiedot"/> </xsd:complextype> <xsd:complextype name="osoitetiedot"> <xsd:element name="nimi" type="xsd:string"/> <xsd:element name= osoite" type="xsd:string"/> </xsd:complextype> <xsd:complextype name="tavaroidentiedot"> <xsd:element name="tavara" type="tavaratiedot" maxoccurs= *"/> </xsd:complextype> <xsd:complextype name="tavaratiedot"> <xsd:element name= nimeke" type="xsd:string"/> <xsd:element name="maara" type="xsd:positiveinteger"/> <xsd:element name="hinta" type="xsd:decimal"/> </xsd:complextype> </xsd:schema> JOTU 2013 / Kari Systä 42

Toinen esimerkki <?xml version="1.0" encoding="utf-8"?> <kml xmlns="http://www.opengis.net/kml/2.2"> <Document> <Placemark> <name>new York City</name> <description>new York City</description> <Point> <coordinates>74.006393,40.714172,0</coordinates> </Point> </Placemark> </Document> </kml> JOTU 2013 / Kari Systä 43

http://www.opengis.net/kml/2.2 JOTU 2013 / Kari Systä 44

XML:n etuja ja haittoja Yleinen Myös ihmisen luettava Eriäviäkin mielipiteitä on Joustava ja dynaaminen Esim uusi kenttä ei välttämättä riko vastaanottajaa Raskas ja monimutkainen JOTU 2013 / Kari Systä 45

Tutoriaaleja Esimerkiksi nämä on ok http://www.sitepoint.com/xml-dtds-xmlschema/ http://edutechwiki.unige.ch/en/dtd_tutorial JOTU 2013 / Kari Systä 46

Suunnitteluprosessi Määrittely 1. Käsitteellinen mallintaminen 2. Tiedon Toteutus Järjestelmä JOTU 2013 / Kari Systä 47

Big data mikä kumma se on JOTU 2013 / Kari Systä 48

HYPE Paljon palstatilaa lehdissä Määritelmät epämääräisiä ja erilaisia Paljon odotuksia paljon konsutteja JOTU 2013 / Kari Systä 49

Google statistiikkaa (www.google.com/trends) JOTU 2013 / Kari Systä 50

Yksi määritelmä "Big data is high volume, high velocity, and/or high variety information assets that require new forms of processing to enable enhanced decision making, insight discovery and process optimization." Gartner, 2012 JOTU 2013 / Kari Systä 51

Volume, velocity, variety Volume Tietoa on PALJON Velocity Uutta tietoa syntyy koko ajan Variety Tiedon esitystavat ovat moninaiset ja saattavat jopa muuttua JOTU 2013 / Kari Systä 52

Big Datan haasteet Ohjelmointi Analyysi Business, Domain, Laki Uudet matemaattiset menetelmät Tallennus Esim. MapReduce(HADOOP) Esim. NoSQL tietokannat JOTU 2013 / Kari Systä 53