CSE-A1200 Tietokannat

Koko: px
Aloita esitys sivulta:

Download "CSE-A1200 Tietokannat"

Transkriptio

1 CSE-A1200 Tietokannat Osa kalvoista perustuu Juha Puustjärven luentokalvoihin kurssilta T sekä kurssin oppikirjaan CSE-A1200 Tietokannat / 39

2 Oppimistavoitteet: tämän luennon jälkeen Osaat selittää, mitä tekemistä XML:llä on tietokantojen kanssa. Tiedät, millainen on XML-dokumentti. Tiedät, miten voidaan määritellä XML-dokumentin rakenne DTD XML Schema Osaat hakea XML-dokumentista tietoa XPath-kyselykielen avulla. CSE-A1200 Tietokannat / 39

3 Puolirakenteinen tieto Relaatiotietokannoissa esitetyn tiedon rakenne on hyvin tarkkaan määrätty. Tietokantakaavio määrää, mitä relaatioita tietokantaan kuuluu ja mitä attribuutteja kullakin relaatiolla on. Relaation jokaisella monikolla täytyy olla arvo jokaiselle attribuutille (vähintään NULL). Monesti tarvittaisiin joustavampaa tietomallia, esimerkiksi Samanlaista tietoa pitää yhdistellä useista lähteistä. Eri lähteissä tiedon tarkka esitysmuoto on kuitenkin erilainen. Tietoa jaetaan Webissä useiden eri toimijoiden kesken. Puolirakenteinen tietomalli (semistructured-data model) tarjoaa joustavamman mahdollisuuden esittää tietoa. Tieto on esitetty niin, että se kuvaa itse oman rakenteensa. Rakenne on selvästi joustavampi kuin relaatiomallissa. CSE-A1200 Tietokannat / 39

4 XML XML (Extensible Markup Language) on kuvauskieli, jonka avulla voidaan esittää puolirakenteista tietoa sisältäviä dokumentteja. XML-dokumentit koostuvat elementeistä (elements) koostuvat kulmasuluilla merkityistä alku- ja loppumerkinnöistä (tags) ja niiden välissä olevasta leipätekstistä. elementit voivat olla sisäkkäisiä elementin alkumerkintään voidaan liittää attribuutteja, jotka koostuvat avain-arvo-pareista. CSE-A1200 Tietokannat / 39

5 Esimerkki XML-dokumentista <?xml version = "1.0" encoding = "utf-8" standalone = "yes"?> <StarMovieData> <Star> <Name>Carrie Fischer</Name> <Address> <Street>123 Maple St.</Street> <City>Hollywood</City> </Address> <Address> <Street>5 Locust Ln.</Street> <City>Malibu</City> </Address> </Star> <Star> <Name>Mark Hamill</Name> <Street>456 Oak Rd.</Street> <City>Brentwood</City> </Star> <Movie> <Title>Star Wars</Title> <Year>1977</Year> </Movie> </StarMovieData> CSE-A1200 Tietokannat / 39

6 Selityksiä edellisen kalvon dokumenttiin Ylin rivi määrittelee, että kysymyksessä XML-dokumentti, käytettävän merkistökoodauksen ja sen, että dokumenttiin ei liity erillistä tiedostoa, joka määrittelisi sen rakenteen. Dokumentissa on yksi StarMovieData-elementti, jonka sisällä on kaksi Star-elementtiä ja yksi Movie-elementti. Näiden elementtien sisällä on puolestaan muita elementtejä. Kuten esimerkistä nähdään, elementtien rakenne voi vaihdella: Ensimmäinen Star-elementti sisältää name-elementin lisäksi kaksi Address-elementtiä, mutta toinen Star-elementti sisältääkin suoraan Street- ja City-elementit name-elementin jälkeen. CSE-A1200 Tietokannat / 39

7 Attribuutit XML-elementeissä XML-elementit voivat sisältää attribuutteja, jotka ovat attribuutin nimestä ja sen arvosta koostuvia pareja. Attribuutilla voidaan korvata elementin sisällä oleva elementti, joka ei enää sisällä muita elementtejä. Attribuutti liitetään alkumerkinnän yhteyteen. Samaan elementtiin voi kuulua useita attribuutteja. Esimerkiksi elementti <Movie> <Title>Star Wars</Title> <Year>1977</Year> </Movie> voidaan esittää myös <Movie year = "1977"> <Title>Star Wars</Title> </Movie> tai <Movie title = "Star Wars" year = "1977" /> Viimeisessä esimerkissä elementti on tyhjä. Tällöin lopetusmerkintä voidaan korvata aloitusmerkinnän päättävällä /-merkillä. CSE-A1200 Tietokannat / 39

8 Hyvämuotoinen XML XML-dokumentti on hyvämuotoinen (well-formed), jos Se alkaa XML-määrittelyllä (kalvon 5 esimerkissä ylin rivi). Se sisältää vain yhden juurielementin (root element), jonka sisällä kaikki muut dokumentin elementit ovat. Jokaista aloitusmerkintää kohti on vastaava lopetusmerkintä (paitsi tyhjissä elementeissä, jotka voidaan päättää aloitusmerkinnän sisällä). Elementit ovat sisäkkäin, eivät ristikkäin. Jos XML-dokumentiksi tarkoitettu dokumentti ei ole hyvämuotoinen, sen ei katsota olevan lainkaan XML-dokumentti. CSE-A1200 Tietokannat / 39

9 Välitehtävä Mitkä seuraavista ovat hyvämuotoista XML:ää ja miksi ovat / eivät ole? 1. <?xml version = "1.0" encoding = "utf-8" standalone = "yes"?> <StarMovieData> <Star Name = "Mark Hamill"> <Street>456 Oak Rd.</Street> <City>Brentwood</City> </Star> <Movie> <Title>Star Wars</Title> <Year>1977</Year> </Movie> </StarMovieData> 2. <?xml version = "1.0" encoding = "utf-8" standalone = "yes"?> <StarMovieData> <Star> <Name>Mark Hamill</Name> <Address> <Street>456 Oak Rd.</Street> <City>Brentwood</City> </Star> </StarMovieData> CSE-A1200 Tietokannat / 39

10 Välitehtävä jatkuu 3. <?xml version = "1.0" encoding = "utf-8" standalone = "yes"?> <StarMovieData> <Star> <Name>Mark Hamill</Name> <Address /> <Street>456 Oak Rd.</Street> <City>Brentwood</City> </Star> </StarMovieData> 4. <?xml version = "1.0" encoding = "utf-8" standalone = "yes"?> <StarMovieData> <Star> <Name>Mark Hamill</Name> <Address> <Street>456 Oak Rd.</Street> <City>Brentwood</Address></City> </Star> </StarMovieData> CSE-A1200 Tietokannat / 39

11 XML-dokumentti puurakenteena XML-dokumentti voidaan esittää myös puurakenteena. Puurakenteessa ulompi elementti on isäsolmu ja sisempi elementti on lapsisolmu. Peräkkäiset elementit ovat saman isäsolmun alla olevia sisaruksia. Attribuutteja ei esitetä erillisinä solmuina, vaan oman elementtinsä solmun sisällä. Leipätekstit esitetään solmuina, joilla ei ole lapsia. XML-dokumentteja automaattisesti käsittelevät ohjelmat käsittelevät dokumentteja hyvin usein puumuodossa. Seuraavan kalvon esimerkkikuvassa elementtien nimet on tallennettu solmuihin. Vaihtoehtoinen tapa on nimetä solmuihin johtavat kaaret elementtien nimillä (ks. oppikirja). CSE-A1200 Tietokannat / 39

12 Esimerkki Kalvon 5 XML-dokumentti puurakenteena. StarMovieData Star Star Movie Name Address Address Name Street City Title Year Carrie Fischer Street City Street City Mark Hamill 456 Oak Rd Brentwood Star Wars Maple St. Hollywood 5 Locust Ln. Malibu CSE-A1200 Tietokannat / 39

13 Validi XML Hyvämuotoista XML:ää tiukempi vaatimus on se, että dokumentti on validia XML:ää (valid XML). Silloin dokumentin rakenteen pitää olla jonkin erikseen annetun kuvauksen mukainen. Kuvauksessa voidaan määritellä, mitä elementtejä dokumentissa voi esiintyä, ja miten ne voivat sijaita suhteessa toisiinsa (esim. Movie-elementin pitää sisältää yksi Title-elementti ja yksi Year-elementti). Dokumentteja käsittelevät ohjelmat voivat käyttää hyväkseen tietoa dokumenttien sallitusta rakenteesta. Rakenteen määrittelyyn on eri vaihtoehtoja. DTD (document type definition) on vanhempi kieli XML Schema on uudempi tapa, joka sisältää enemmän mahdollisuuksia kuin DTD. CSE-A1200 Tietokannat / 39

14 DTD DTD-määrittely ei ole itsessään XML:ää, mutta se määrittelee jonkin XML-dokumentin sallitun rakenteen. DTD-määrittely on muotoa: <!DOCTYPE root-tag [ <!ELEMENT element-name ( components)> more elements ]> jossa root-tag on dokumentin juurielementin nimi ja element-name yhden dokumentin sisältämän elementin nimi. Elementit määritellään ilmauksen!element avulla. Elementistä kerrotaan sen nimi ja sen sisältämät komponentit Esimerkiksi <!ELEMENT Star (Name, Address+, Movies)> kertoo, että Star-elementin sisällä täytyy olla Name-elementti, yksi tai useampi Address-elementti ja Movies-elementti. CSE-A1200 Tietokannat / 39

15 DTD, jatkoa Elementin sisältämissä komponenteissa on kaksi erityistapausta: 1. (#PCDATA) kertoo, että elementillä on arvo, joka on tekstiä. Elementillä ei siis ole omia alielementtejä. Esimerkiksi <!ELEMENT City (#PCDATA)> määrittelee, että elementin City arvona on tekstiä. 2. EMPTY (ilman sulkuja) kertoo, että elementti on tyhjä. Sillä ei ole lopetusmerkintää, alielementtejä tai tekstiarvoa. Esimerkiksi määrittelyä <!ELEMENT Foo EMPTY> voi vastata vain elementti <Foo /> (jolla voi kuitenkin olla attribuutteja ja niille arvoja) CSE-A1200 Tietokannat / 39

16 DTD, elementtien määrittelyssä käytettäviä merkintöjä Elementtien komponentteja määritellessä voidaan eri operaattoreilla määritellä sitä, kuinka monta kertaa elementti voi esiintyä toisen elementin komponenttina: * elementti voi esiintyä mielivaltaisen määrän kertoja, myös nolla kertaa. + elementti voi esiintyä yhden tai useamman kerran? elementti voi esiintyä nolla tai yksi kertaa elementtien listan kaikkien alkioiden välillä tarkoittaa sitä, että täsmälleen yksi listan alkioista esiintyy, esim. <!ELEMENT Genre (Comedy Drama SciFi Teen)> määrää, että yksi annetusta neljästä vaihtoehdosta täytyy olla elementin Genre alielementtinä. Komponentteja voidaan ryhmitellä suluilla. Esim. <!ELEMENT Address (Street, (City Zip))> määrää, että Address-elementin alielementteinä on Street ja sen jälkeen joko City tai Zip CSE-A1200 Tietokannat / 39

17 Esimerkki DTD-tiedostosta <!DOCTYPE Stars [ <!ELEMENT Stars (Star*)> <!ELEMENT Star (Name, Address+, Movies)> <!ELEMENT Name (#PCDATA)> <!ELEMENT Address (Street, City)> <!ELEMENT Street (#PCDATA)> <!ELEMENT City (#PCDATA)> <!ELEMENT Movies (Movie*)> <!ELEMENT Movie (Title, Year)> <!ELEMENT Title (#PCDATA)> <!ELEMENT Year (#PCDATA)> ]> CSE-A1200 Tietokannat / 39

18 Käytettävän DTD:n määrittely Se, että XML-dokumentti noudattaa jonkin DTD:n mallia, voidaan kertoa kahdella vaihtoehtoisella tavalla: 1. Sisällytetään DTD-määrittely XML-tiedostoon (ennen XML-koodia) 2. Kerrotaan, mihin tiedostoon käytetty DTD-määrittely on tallennettu XML-tiedoston alussa, esimerkiksi: <?xml version = "1.0" encoding = "utf-8" standalone = "no"?> <!DOCTYPE Stars SYSTEM "star.dtd"> standalone = "no" kertoo, että käytetään erillistä DTD:tä. Seuraavalla rivillä on määritelty tiedosto, johon käytetty DTD on tallennettu. CSE-A1200 Tietokannat / 39

19 Attribuuttien määrittely DTD:ssä voidaan myös määritellä, mitä attribuutteja elementillä on ja mitkä ovat niiden tyyppejä seuraavasti: <!ATTLIST element-name attribute-name type> Mahdolliset tyypit: CDATA attribuutin tyyppi on merkkijono Luetultu tyyppi: mahdolliset arvot (merkkijonot) on listattu. Lista on ympäröity suluilla ja vaihtoehtoiset arvot on erotettu -merkillä. Attribuutti voi olla joko pakollinen tai vapaaehtoinen #REQUIRED tyypin jälkeen määrittelee attribuutin pakolliseksi. #IMPLIED tyypin jälkeen määrittelee attribuutin vapaaehtoiseksi. Esimerkki: <!ELEMENT Movie EMPTY> <!ATTLIST Movie title CDATA #REQUIRED year CDATA #REQUIRED genre (comedy drama scifi teen) #IMPLIED > Esimerkin mukainen XML-rivi <Movie title = "Star Wars" year = "1977" genre = "scifi" /> CSE-A1200 Tietokannat / 39

20 XML Schema XML Schema on uudempi, DTD:lle vaihtoehtoinen tapa esittää XML-dokumentteja. XML Schema tarjoaa enemmän mahdollisuuksia kuin DTD, esimerkiksi: Alielementtien määrälle voi asettaa tarkempia rajoituksia Elementtien tyypeissä on enemmän valinnanvaraa, esimerkiksi kokonais- ja liukuluvut XML Schemalla kirjoitettu XML-dokumentin rakenteen määrittely on itsessään XML-dokumentti. CSE-A1200 Tietokannat / 39

21 XML Schema -määrittelyn rakenne XML Schema-määrittely käyttää sivulla määriteltyä nimiavaruutta. Käytetty nimiavaruus määritellään dokumentin alussa. Dokumentin rakenne on seuraava: <?xml version = "1.0" encoding = "utf-8"?> <xs:schema xmlns:xs=" </xs:schema> Toisella rivillä attribuutin xmlns (XML namespace) arvo määrittelee, että alku- ja loppumerkinnöissä etuliite xs: tarkoittaa, että sitä seuraava nimi tulkitaan XML Scheman sääntöjen mukaan. CSE-A1200 Tietokannat / 39

22 XML Schema: elementtien määrittely Elementti määritellään seuraavasti: <xs:element name = element name type = element type> constraints and / or structure information </xs:element> Tyyppi voi olla joko yksinkertainen tai kompleksi. Yksinkertaisia tyyppejä ovat esimerkiksi xs:integer, xs:decimal, xs:string ja xs:boolean Esimerkkejä elementtien määrittelyistä: <xs:element name = "Title" type = "xs:string" /> <xs:element name = "Year" type = "xs:integer" /> Yksinkertaista tyyppiä olevilla elementeillä ei voi olla alielementtejä. CSE-A1200 Tietokannat / 39

23 XML Schema: kompleksit tyypit Komplekseilla tyypeillä voi olla erilaisia muotoja, mutta kaikkein yleisin on jono elementtejä. Kompleksien tyyppien avulla voidaan siis määritellä elementtejä, joilla on alielementtejä. Alielementtien pitää esiintyä siinä järjestyksessä, kun ne on listattu määrittelyssä, ellei käytetyillä avainsanoilla ole muuta määrätty. Saman alielementtien peräkkäisten esiintymien lukumäärälle voidaan asettaa ehtoja attribuuttien minoccurs ja maxoccurs avulla: Elementin on esiinnyttävä peräkkäin vähintään minoccurs kertaa. Elementti saa esiintyä peräkkäin korkeintaan maxoccurs kertaa. Jos näiden attribuuttien arvoja ei ole määritelty, oletusarvo on molemmille yksi. CSE-A1200 Tietokannat / 39

24 XML Schema: kompleksi tyypin määrittely Määrittely silloin, kun tyyppi muodostuu jonosta elementtejä. <xs:complextype name = <xs:sequence> list of definitions </xs:sequence> </xs:complextype> type name> <xs:sequence>:n tilalla voidaan käyttää esimerkiksi <xs:choice>:a. Tällöin täsmälleen yhden listassa olevista alielementeistä pitää sisältyä määriteltävään elementtiin. Alielementin peräkkäisten esiintymien lukumäärää pystyy säätämään attribuuttien minoccurs ja maxoccurs avulla. CSE-A1200 Tietokannat / 39

25 XML Schema: esimerkki kompleksin tyypin määrittelystä <?xml version = "1.0" encoding = "utf-8"?> <xs:schema xmlns:xs=" <xs:complextype name = "movietype"> <xs:sequence> <xs:element name = "Title" type = "xs:string" /> <xs:element name = "Year" type = "xs:integer" /> </xs:sequence> </xs:complextype> <xs:element name = "Movies"> <xs:complextype> <xs:sequence> <xs:element name = "Movie" type = "movietype" minoccurs = "0" maxoccurs = "unbounded" /> </xs:sequence> </xs:complextype> </xs:element> </xs:schema> CSE-A1200 Tietokannat / 39

26 XML Schema: esimerkin selityksiä Aluksi on määritelty tyyppi movietype. Määrittelyssä kerrotaan, että tyypin elementeissä esiintyy peräkkäin yksi Title-alielementti ja yksi Year-alielementti. Myös alielementtien tyypit on määritelty. Seuraavaksi kerrotaan, että elementti Movies sisältää peräkkäisiä tyyppiä movietype olevia Movie-elementtejä. Movie-elementtejä voi olla peräkkäin mielivaltainen määrä. CSE-A1200 Tietokannat / 39

27 XML Schema: attribuuttien määrittely Kompleksilla tyypillä voi olla attribuutteja. Attribuutti määritellään seuraavasti: <xs:attribute name = attribute name type = type name other information about the attribute /> Esimerkki 1: <xs:attribute name = "year" type = "xs:integer" default = "0" /> Määrittelee attribuutin year, jonka tyyppi on kokonaisluku ja oletusarvo 0. <xs:attribute name = "year" type = "xs:integer" use = "required" /> Määrittelee kokonaislukuarvoisen attribuutin year, mutta niin, että elementillä (jolle attribuutti on määritelty) on pakko olla arvo tälle attribuutille. CSE-A1200 Tietokannat / 39

28 XML Schema: kalvon 25 esimerkki muokattu käyttämään attribuutteja <?xml version = "1.0" encoding = "utf-8"?> <xs:schema xmlns:xs=" <xs:complextype name = "movietype"> <xs:attribute name = "title" type = "xs:string" use = "required" /> <xs:attribute name = "year" type = "xs:integer" use = "required" /> </xs:complextype> <xs:element name = "Movies"> <xs:complextype> <xs:sequence> <xs:element name = "Movie" type = "movietype" minoccurs = "0" maxoccurs = "unbounded" /> </xs:sequence> </xs:complextype> </xs:element> </xs:schema> CSE-A1200 Tietokannat / 39

29 Lisää määrittelymahdollisuuksia Edellä on esittetty vain joitakin XML Scheman tarjoamia mahdollisuuksia. Oppikirjassa (3. painos) on esitetty lisää, esimerkiksi Yksinkertaisten tyyppien arvoalueiden määrääminen. Elementtien avainten määrittely. Elementtien viiteavainten määrittely. CSE-A1200 Tietokannat / 39

30 XML:n kyselykielet On määritelty joukko ohjelmointikieliä, joiden avulla on helppo käsitellä XML-dokumentteja, esimerkiksi hakea niistä haluttua tietoa. esimerkiksi: XPath: kieli, jonka avulla voidaan kuvata samanlaisten polkujen joukkoa XML-dokumenttia vastaavassa puurakenteessa. XQuery: XPathin laajennos, jossa on jotain SQL-tyyppisiä piirteitä. Mahdollistaa esimerkiksi iteraatiot joukkojen yli, alikyselyt ym. XSLT: Kehitetty alunperin esittämään XML-dokumenttien sisältöä HTML-dokumentteina. Kielellä pystyy kuitenkin tekemään myös kyselyitä, ja sen ilmaisuvoima on suunnilleen sama kuin XQueryn. Tällä luennolla tutustutaan lyhyesti XPathiin. CSE-A1200 Tietokannat / 39

31 XPath: perusteita XPath olettaa, että kaikki arvot joita se tuottaa ja joita muodostetaan välivaiheissa, koostuvat alkioiden jonosta. Alkio voi olla 1. Primitiivistä tyyppiä oleva arvo (esim. kokonaisluku, desimaaliluku, boolean tai merkkijono) 2. Solmu, jonka mahdollisista tyypeistä esitellään tässä seuraavat: Dokumentti: tiedosto, joka sisältää XML-dokumentin. Tiedostosta voi olla annettu esimerkiksi joko paikallinen nimi (polku) tai URL. Elementti: XML-elementti, johon kuulu alku- ja loppumerkintä (jos se on) ja kaikki niiden välissä, esim. alielementit. Attribuutti Tiedostosta voi tehdä dokumenttisolmun ilmauksella doc( file name) esimerkiksi doc("elokuvat.xml") doc("/usr/matti/elokuvat.xml") doc(" CSE-A1200 Tietokannat / 39

32 X-Path-lauseke X-Path-lausekkeen avulla voidaan hakea XML-dokumenttia vastaavasta puusta kaikki lausekkeessa määriteltyjä polkuja vastaavat solmut ja näiden solmujen alipuut. Polku alkaa yleensä puun juuresta (jota merkitään /-merkillä) ja etenee lausekkeessa nimettyjen solmujen kautta. Eri tason solmujen nimet on erotettu toisistaan /-merkillä. Esimerkiksi lauseke /StarMovieData/Star/Name palauttaa kalvon 12 puurakenteesta (tai kalvon 5 XML-dokumentista) tuloksen <Name>Carrie Fischer</Name> <Name>Mark Hamill</Name> Lausekkeeseen voi liittää myös muita osia, joita esitellään seuraavilla kalvoilla. CSE-A1200 Tietokannat / 39

33 X-Path-lauseke, jatkoa Kaksi kauttaviivaa peräkkäin (//) tarkoittaa "tämä solmu tai mikä tahansa sen jälkeläinen". Esimerkiksi lauseke /StarMovieData/Star//Street palauttaa kalvon 5 XML-dokumentista listan, jossa on kaikki Star-elementtien sisällä olevat Street-elementit siitä riippumatta, ovatko ne Address-elementin sisällä vai eivät: <Street>123 Maple St.</Street> <Street>5 Locust Ln.</Street> <Street>456 Oak Rd.</Street> Lauseke //City palauttaa kaikki dokumentin City-elementit siitä riippumatta, kuinka syvällä tasolla ne ovat. CSE-A1200 Tietokannat / 39

34 Muunnettu esimerkki XML-dokumentista <?xml version = "1.0" encoding = "utf-8" standalone = "yes"?> <StarMovieData> <Star> <Name>Carrie Fischer</Name> <Address Street = "123 Maple St." City = "Hollywood" /> <Address Street = "5 Locust Ln." City = "Malibu" /> </Star> <Star> <Name>Mark Hamill</Name> <Street>456 Oak Rd.</Street> <City>Brentwood</City> </Star> <Movie Year = "1977"> <Title>Star Wars</Title> </Movie> </StarMovieData> (Käytetään seuraavilla kalvoilla joidenkin XPath-esimerkkien yhteydessä.) CSE-A1200 Tietokannat / 39

35 Attribuutit XPath-lausekkeissa XPath-lausekkeilla voidaan hakea myös haluttujen attribuuttien arvoja. Esimerkiksi lausekkeen kalvon 34 XML-dokumentissa on "Hollywood" "Malibu" CSE-A1200 Tietokannat / 39

36 XPath: villikortit Merkin * avulla voidaan ilmaista "mikä tahansa nimi". Esimerkiksi lauseke /StarMovieData/* palauttaa kalvon 34 XML-dokumentista kaikki juurielementin alielementit (kaksi Star- ja yhden Movie-elementin). lauseke /StarMovieData/Movie/@* palauttaa kaikkien Movie-elementtien kaikkien attribuuttien arvot. CSE-A1200 Tietokannat / 39

37 Siirtymät Tähän asti esitetyissä lausekkeissa solmusta on siirretty sen lapsisolmuun tai muihin jälkeläisiin. Siirtymien (Axes) avulla voi liikkua vapaammin. Joitakin esimerkkejä mahdollisista siirtymistä: child:: siirrytään lapsisolmuun. attribute:: solmun attribuutti Esimerkiksi aikaisemmin käytetty on lyhennys merkinnälle /child::starmoviedata/child::star/child::address/attribute::street parent:: siirrytään vanhempaan next-sibling:: siirrytään mihin tahansa oikealla puolella olevaan sisarukseen. previous-sibling:: siirrytään mihin tahansa vasemmalla puolella olevaan sisarukseen. decendant-or-self:: vastaa //merkintää. CSE-A1200 Tietokannat / 39

38 Ehdot XPath-lausekkeissa Ehtoja voidaan esittää lausekkeissa hakasulkujen [] sisässä. Esimerkki1: /StarMovieData/Star[//City = "Malibu"]/Name palauttaa kalvon 12 XML-dokumentista niiden näyttelijöiden Name-alielementit, joilla tai joiden jälkeläisellä on City-alielementti, jonka arvona on Malibu. Esimerkki2: /StarMovieData/Movie[@Year = "1977"]/Title palauttaa kalvon 34 XML-dokumentista niiden elokuvien Title-alielementit, joiden Year-attribuutin arvo on Muita ehtoja Kokonaisluku i hakasulkujen sisässä tarkoittaa solmun i:nnettä lasta, esimerkiksi [2] tarkoittaa solmun toista lasta. Jos ehto on vain jonkin elementin nimi T yksistään, niin ehto [T] on tosi vain elementeille, joilla on yksi tai useampi T-alielementti. Jos ehto on vain jonkin attribuutin nimi A kanssa, niin ehto [@A] on tosi vain elementeille, joilla on arvo attribuutille A. CSE-A1200 Tietokannat / 39

39 Huomaa Jos kyselyn tuloksena on elementti (eikä attribuutin arvo), niin myös elementin alku- ja loppumerkinnät kuuluvat kyselyn tulokseen. CSE-A1200 Tietokannat / 39

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

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

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

XML kielioppi. Elementtien ja attribuuttien määrittely. Ctl230: Luentokalvot Miro Lehtonen XML kielioppi Elementtien ja attribuuttien määrittely Ctl230: Luentokalvot 11.10.2004 Miro Lehtonen Dokumenttien mallinnus Säännöt dokumenttityypeille 3Mahdollisten dokumenttirakenteiden määrittely Samassa

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

XML / DTD / FOP -opas Internal

XML / DTD / FOP -opas Internal XML / DTD / FOP -opas Internal Reviewed: - Status: pending approval Approved by: - Author: Sakari Lampinen Revision: 1.0 Date: 15.10.2000 1 Termit DTD (data type definition) on määrittely kielelle, niinkuin

Lisätiedot

Helsingin yliopisto/tktl XML-metakieli XPath

Helsingin yliopisto/tktl XML-metakieli XPath XML-perusrakenteen ympärille on kehitetty tekniikoita ja standardeja kuvaamaan XML-rakenteisen tiedon käsittelyä sekä tietojen välisiä kytkentöjä. Näissä keskeinen tarve on pystyä osoittamaan operaatioiden

Lisätiedot

XML merkintäkielten perusteet. Luento 3 Pekka Aarnio

XML merkintäkielten perusteet. Luento 3 Pekka Aarnio XML merkintäkielten perusteet Luento 3 Pekka Aarnio 1 Luennon sisältö OSA 1: XML-Schema OSA 2: XML-Schema ja nimiavaruudet 2 Osa 1: sisältö Osa 1 1. Mikä on XML-Schema-kieli 2. Tietotyypit ja elementtien

Lisätiedot

XML merkintäkielten perusteet. Luento 3 Pekka Aarnio

XML merkintäkielten perusteet. Luento 3 Pekka Aarnio XML merkintäkielten perusteet Luento 3 Pekka Aarnio 1 Luennon sisältö OSA 1: XML-Schema OSA 2: XML-Schema ja nimiavaruudet 2 Osa 1: sisältö Osa 1 1. Mikä on XML-Schema-kieli 2. Tietotyypit ja elementtien

Lisätiedot

Sisältö. XML, XHTML ja CSS XML XML. XML:n ja HTML:n ero. XML kieliä XML XHTML CSS XSL. T Hypermediadokumentin laatiminen 2002

Sisältö. XML, XHTML ja CSS XML XML. XML:n ja HTML:n ero. XML kieliä XML XHTML CSS XSL. T Hypermediadokumentin laatiminen 2002 , XHTML ja CSS T-111.361 Hypermediadokumentin laatiminen 2002 XHTML CSS XSL Sisältö EXtensible Markup Language W3C Recommendation helmikuu 1998 SGML:n osajoukko Standard Generalized Markup Language Kevyempi

Lisätiedot

Opintosuoritukset. Kaaviokuva

Opintosuoritukset. Kaaviokuva Opintosuoritukset Opintosuoritukset-tiedonsiirtoskeema. XML-skeema jonka avulla voidaan siirtää useita opintosuoritusten tietoja kerralla. Skeeman voi myös lukea sisään muihin skeemoihin jolloin myös yksittäisiä

Lisätiedot

Opiskeluoikeudet. Kaaviokuva

Opiskeluoikeudet. Kaaviokuva Opiskeluoikeudet Opiskeluoikeuksien tiedonsiirtoskeema. XML-skeema jonka avulla on tarkoitus siirtää useiden opiskeluoikeuksien tiedot kerralla. Skeeman voi myös lukea sisään muihin skeemoihin jolloin

Lisätiedot

Datatähti 2019 loppu

Datatähti 2019 loppu Datatähti 2019 loppu task type time limit memory limit A Summa standard 1.00 s 512 MB B Bittijono standard 1.00 s 512 MB C Auringonlasku standard 1.00 s 512 MB D Binääripuu standard 1.00 s 512 MB E Funktio

Lisätiedot

XML ja SAS. Mitä tänä päivänä voidaan SASista tehdä XML-muotoon

XML ja SAS. Mitä tänä päivänä voidaan SASista tehdä XML-muotoon XML ja SAS Mitä tänä päivänä voidaan SASista tehdä XML-muotoon Sisältö XML SAS ja XML: ODS:n käyttäminen xml-tulosteisiin Libname enginen käyttäminen XML tulosteisiin XML mapperi Libname enginen käyttäminen

Lisätiedot

XML - perusteet. Ctl230: Luentokalvot Miro Lehtonen

XML - perusteet. Ctl230: Luentokalvot Miro Lehtonen XML - perusteet Ctl230: Luentokalvot 4.10.2004 Miro Lehtonen Johdanto Mikä on merkkauskieli? 3Merkkaus (markup): lisätieto dokumentissa Erilaiset kirjasintyylit ja -koot 3Säännöt merkkaukselle Miten merkataan?

Lisätiedot

XML prosessori. XML prosessointi. XML:n kirjoittaminen. Validoiva jäsennin. Tapahtumaohjattu käsittely. Tapahtumaohjattu käsittely.

XML prosessori. XML prosessointi. XML:n kirjoittaminen. Validoiva jäsennin. Tapahtumaohjattu käsittely. Tapahtumaohjattu käsittely. XML prosessointi Miten XML dokumentteja luetaan ja kirjoitetaan XML prosessori lukee ja välittää XML dokumentin sovellukselle. Se sisältää entieettikäsittelijän (mahdollisesti) XML jäsentimen Sovellus

Lisätiedot

Hohde Consulting 2004

Hohde Consulting 2004 Luento 5: XQuery AS-0.110 XML-kuvauskielten perusteet Janne Kalliola XQuery XQuery uudet funktiot sekvenssit muuttujat Iterointi järjestys suodatus järjestäminen Ehtorakenteet Muita toimintoja www.hohde.com

Lisätiedot

Yhteentoimivuutta edistävien työkalujen kehittäminen

Yhteentoimivuutta edistävien työkalujen kehittäminen Yhteentoimivuutta edistävien työkalujen kehittäminen Semantiikkaa organisaatioiden välisen tiedonvaihdon helpottamiseksi Mikael af Hällström, Verohallinto Esityksen sisältö Taustatekijöitä (OKM:n hallinnonala,

Lisätiedot

Luento 3: Tietorakenteiden esittäminen

Luento 3: Tietorakenteiden esittäminen Luento 3: Tietorakenteiden esittäminen AS-0.110 XML-kuvauskielten perusteet Janne Kalliola Tietorakenteiden esittäminen XML-dokumentti puuna Muunnokset muodosta toiseen Perustietorakenteet listat puut

Lisätiedot

T Syksy 2004 Logiikka tietotekniikassa: perusteet Laskuharjoitus 7 (opetusmoniste, kappaleet )

T Syksy 2004 Logiikka tietotekniikassa: perusteet Laskuharjoitus 7 (opetusmoniste, kappaleet ) T-79144 Syksy 2004 Logiikka tietotekniikassa: perusteet Laskuharjoitus 7 (opetusmoniste, kappaleet 11-22) 26 29102004 1 Ilmaise seuraavat lauseet predikaattilogiikalla: a) Jokin porteista on viallinen

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

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

Vaasan yliopiston toimintaa tukevat informaatiopalvelut ovat käytettävissä WWW:n kautta. 1. Julkaisutoiminnan peruskysymyksiä a) Mieti kohderyhmät b) Mieti palvelut c) Mieti palvelujen toteutus Vaasan yliopiston toimintaa tukevat informaatiopalvelut ovat käytettävissä WWW:n kautta. PALVELUKOKONAISUUDET:

Lisätiedot

Pinot, jonot, yleisemmin sekvenssit: kokoelma peräkkäisiä alkioita (lineaarinen järjestys) Yleisempi tilanne: alkioiden hierarkia

Pinot, jonot, yleisemmin sekvenssit: kokoelma peräkkäisiä alkioita (lineaarinen järjestys) Yleisempi tilanne: alkioiden hierarkia Pinot, jonot, yleisemmin sekvenssit: kokoelma peräkkäisiä alkioita (lineaarinen järjestys) Yleisempi tilanne: alkioiden hierarkia Kukin alkio (viite) talletettuna solmuun (node) vastaa paikan käsitettä

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

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

XML-saatavuuskysely. XML-tiedoston kuvaus. versio 1.3.3 04.02.2008

XML-saatavuuskysely. XML-tiedoston kuvaus. versio 1.3.3 04.02.2008 XML-saatavuuskysely XML-tiedoston kuvaus versio 1.3.3 04.02.2008 Ecom Oy 2004-2008 XML-saatavuuskysely Versio 1.3.3 2/15 Sisällysluettelo Historia...3 Rakenteen hierarkinen esitys...4 Elementtien kuvaukset...5

Lisätiedot

Tietojen toimittaminen Skeemat Käsittelypalautteen kysely Kansallisen tulorekisterin perustamishanke

Tietojen toimittaminen Skeemat Käsittelypalautteen kysely Kansallisen tulorekisterin perustamishanke Versio 1.0 Tietojen toimittaminen Skeemat Käsittelypalautteen kysely Kansallisen tulorekisterin perustamishanke Tietojen toimittaminen Skeemat Käsittelypalautteen kysely 2 (7) Versiohistoria Versio Päivämäärä

Lisätiedot

Koodistopalvelun REST-rajapinnat

Koodistopalvelun REST-rajapinnat Koodistopalvelun REST-rajapinnat Yleiset tiedot Swagger Kuvaus Yhteiset kyselyparametrit (Query Parameters) Yhteiset otsikkoparametrit (HTTP Headers) Yhteiset vastauskoodit (HTTP Response Codes) Autentikointi

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

Digitaalisen median tekniikat. JSP ja XML Harri Laine 1

Digitaalisen median tekniikat. JSP ja XML Harri Laine 1 Digitaalisen median tekniikat JSP ja XML 28.4.2004 Harri Laine 1 JSP hyvin lyhyesti JSP on Java-pohjainen skriptikieli JSP:llä laadittu sivu käännetään java-servletiksi (sivun toteutus vastaa servlettiluokan

Lisätiedot

Luento 2: XML:n syntaksi

Luento 2: XML:n syntaksi Luento 2: XML:n syntaksi AS-0.110 XML-kuvauskielten perusteet Janne Kalliola XML:n syntaksi Peruskäsitteitä Rakennepalaset elementit leipäteksti attribuutit Nimiavaruudet Dokumentin rakenteen määrittely

Lisätiedot

Tietojen toimittaminen Skeemat Käsittelypalautteen kysely Kansallisen tulorekisterin perustamishanke

Tietojen toimittaminen Skeemat Käsittelypalautteen kysely Kansallisen tulorekisterin perustamishanke Versio 1.05 Tietojen toimittaminen Skeemat Käsittelypalautteen kysely Kansallisen tulorekisterin perustamishanke Tietojen toimittaminen Skeemat Käsittelypalautteen kysely 2 (8) Versiohistoria Versio Päivämäärä

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 25.2.2009 T-106.1208 Ohjelmoinnin perusteet Y 25.2.2009 1 / 34 Syötteessä useita lukuja samalla rivillä Seuraavassa esimerkissä käyttäjä antaa useita lukuja samalla

Lisätiedot

XML-merkkaus. Merkkidata, prosessointikomennot, kommentit

XML-merkkaus. Merkkidata, prosessointikomennot, kommentit XML-merkkaus Merkkidata, prosessointikomennot, kommentit Merkkidata Elementtien ja attribuuttien arvot 3Merkkijonot elementtien tunnisteiden välissä 3Attribuuttien arvot 3Kielletyt merkit < & Voidaan korvata

Lisätiedot

CS-A1150 Tietokannat CS-A1150 Tietokannat / 34

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

Lisätiedot

Tuomiorekisterin ratkaisuhaun kehittäminen

Tuomiorekisterin ratkaisuhaun kehittäminen 25.5.2012 Sivu 1 Muutoshistoria Versio Päiväys Tekijä Kuvaus 0.1 15.2.2012 NMu Luonnos korjattujen ratkaisujen tietojen välittämisen muutoksesta 0.2 12.3.2012 NMu Lisätty uusia metatietokenttiä 0.3 25.5.2012

Lisätiedot

Digitaalisen median tekniikat. JSP ja XML

Digitaalisen median tekniikat. JSP ja XML Digitaalisen median tekniikat JSP ja 28.4.2004 Harri Laine 1 JSP hyvin lyhyesti JSP on Java-pohjainen skriptikieli JSP:llä laadittu sivu käännetään java-servletiksi (sivun toteutus vastaa servlettiluokan

Lisätiedot

Poikkeusinfo XML-rajapinnan kuvaus, rajapinnan versio 2 Seasam Group

Poikkeusinfo XML-rajapinnan kuvaus, rajapinnan versio 2 Seasam Group 1.10.2010 1(15) Poikkeusinfo XML-rajapinnan kuvaus, rajapinnan versio 2 Seasam Group Graanintie 7 Tel. + 358 15 338 800 FIN-50190 MIKKELI Fax + 358 15 338 810 VERSIOHISTORIA Versio Pvm Tekijä Selite 1.0

Lisätiedot

Varmennepalvelu Rajapintakuvaus Kansallisen tulorekisterin perustamishanke

Varmennepalvelu Rajapintakuvaus Kansallisen tulorekisterin perustamishanke Versio 1.0 Varmennepalvelu Rajapintakuvaus Kansallisen tulorekisterin perustamishanke Varmennepalvelu Rajapintakuvaus 2 (13) Versiohistoria Versio Päivämäärä Kuvaus 1.0 Dokumentti julkaistu. Varmennepalvelu

Lisätiedot

Tietojen jakelu Skeemat Lokitiedot Kansallisen tulorekisterin perustamishanke

Tietojen jakelu Skeemat Lokitiedot Kansallisen tulorekisterin perustamishanke Versio 1.0 Tietojen jakelu Skeemat Lokitiedot Kansallisen tulorekisterin perustamishanke Tietojen jakelu Skeemat Lokitiedot 2 (15) Versiohistoria Versio äivämäärä Kuvaus 1.0 12.6.2017 Dokumentti julkaistu.

Lisätiedot

Web-teknologiat. XML-datan kysely Topi Sarkkinen

Web-teknologiat. XML-datan kysely Topi Sarkkinen Web-teknologiat XML-datan kysely Topi Sarkkinen Sisältö XML (lyhyesti) XPath XQuery XSLT XML Extensible Markup Language Ihmisten ja koneiden luettava metakieli, jolla voidaan määritellä muitakin kieliä

Lisätiedot

Tietojen toimittaminen Skeemat Vastaanottokuittaus Kansallisen tulorekisterin perustamishanke

Tietojen toimittaminen Skeemat Vastaanottokuittaus Kansallisen tulorekisterin perustamishanke Versio 1.02 Tietojen toimittaminen Skeemat Vastaanottokuittaus Kansallisen tulorekisterin perustamishanke Tietojen toimittaminen Skeemat Vastaanottokuittaus 2 (10) Versiohistoria Versio Päivämäärä Kuvaus

Lisätiedot

2. PEHMEÄ XHTML XRAJAHTML

2. PEHMEÄ XHTML XRAJAHTML Luennot 1. Intro 2. PEHMEÄ XHTML XRAJAHTML Dokumentin (matalan tason) rakenne DOCTYPE ja merkistökoodaukset Elementtien syvät rajat 3. CSS 4. JavaScript 5. JavaScript-kirjastot & AJAX 6. Käytettävyys &

Lisätiedot

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1 Ohjelmoinnin peruskurssi Y1 CS-A1111 14.9.2016 CS-A1111 Ohjelmoinnin peruskurssi Y1 14.9.2016 1 / 19 Oppimistavoitteet: tämän luennon jälkeen osaat kirjoittaa Python-ohjelman, joka pyytää käyttäjältä lukuja,

Lisätiedot

XML johdatus: DTD. Jaana Holvikivi

XML johdatus: DTD. Jaana Holvikivi XML johdatus: DTD Jaana Holvikivi Dokumenttityypin rakennemäärittely DTD = kielioppi esim. XML- esitykselle Elementit Attribuutit Entiteetit ja notaatiot Prosessointikomennot DTD:n suunnittelu 19.1.2013

Lisätiedot

Tietojen toimittaminen Skeemat Viestit Kansallisen tulorekisterin perustamishanke

Tietojen toimittaminen Skeemat Viestit Kansallisen tulorekisterin perustamishanke Versio 1.0 Tietojen toimittaminen Skeemat Viestit Kansallisen tulorekisterin perustamishanke Tietojen toimittaminen Skeemat Viestit 2 (14) Versiohistoria Versio Päivämäärä Kuvaus 1.0 12.6.2017 Dokumentti

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

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 17.2.2010 T-106.1208 Ohjelmoinnin perusteet Y 17.2.2010 1 / 41 Sanakirja Monissa sovelluksissa on tallennettava rakenteeseen avain arvo-pareja. Myöhemmin rakenteesta

Lisätiedot

Tietojen jakelu Skeemat Viestit Kansallisen tulorekisterin perustamishanke

Tietojen jakelu Skeemat Viestit Kansallisen tulorekisterin perustamishanke Versio 1.0 Tietojen jakelu Skeemat Viestit Kansallisen tulorekisterin perustamishanke Tietojen jakelu Skeemat Viestit 2 (20) Versiohistoria Versio Päivämäärä Kuvaus 1.0 12.6.2017 Dokumentti julkaistu.

Lisätiedot

Algoritmit 2. Luento 6 To Timo Männikkö

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

Lisätiedot

Ohjelmoinnin peruskurssi Y1

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

Lisätiedot

Ohjelmoinnin peruskurssi Y1

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

Lisätiedot

A274101 TIETORAKENTEET JA ALGORITMIT

A274101 TIETORAKENTEET JA ALGORITMIT A274101 TIETORAKENTEET JA ALGORITMIT PUURAKENTEET, BINÄÄRIPUU, TASAPAINOTETUT PUUT MIKÄ ON PUUTIETORAKENNE? Esim. Viereinen kuva esittää erästä puuta. Tietojenkäsittelytieteessä puut kasvavat alaspäin.

Lisätiedot

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1 Ohjelmoinnin peruskurssi Y1 CS-A1111 13.9.2017 CS-A1111 Ohjelmoinnin peruskurssi Y1 13.9.2017 1 / 19 Oppimistavoitteet: tämän luennon jälkeen osaat kirjoittaa Python-ohjelman, joka pyytää käyttäjältä lukuja,

Lisätiedot

Tietojen toimittaminen Skeemat Vastaanottokuittaus Kansallisen tulorekisterin perustamishanke

Tietojen toimittaminen Skeemat Vastaanottokuittaus Kansallisen tulorekisterin perustamishanke Versio 1.0 Tietojen toimittaminen Skeemat Vastaanottokuittaus Kansallisen tulorekisterin perustamishanke Tietojen toimittaminen Skeemat Vastaanottokuittaus 2 (10) Versiohistoria Versio Päivämäärä Kuvaus

Lisätiedot

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1 Ohjelmoinnin peruskurssi Y1 CS-A1111 12.9.2018 CS-A1111 Ohjelmoinnin peruskurssi Y1 12.9.2018 1 / 19 Oppimistavoitteet: tämän luennon jälkeen osaat kirjoittaa Python-ohjelman, joka pyytää käyttäjältä lukuja,

Lisätiedot

Helsingin yliopisto Tietojenkäsittelytieteen laitos XML-metakieli (2011) Harri Laine 1. Jäsennys ja sarjallistaminen

Helsingin yliopisto Tietojenkäsittelytieteen laitos XML-metakieli (2011) Harri Laine 1. Jäsennys ja sarjallistaminen Jäsennys ja sarjallistaminen Tietorakenteen määrittely Hyvinmuodostettu / validi rakenne Rakenteen määrittely DTD XML-jäsentäjä (parser) on työkalu, joka pystyy muodostamaan puurakenteen tekstuaalisesta

Lisätiedot

Tehtävän V.1 ratkaisuehdotus Tietorakenteet, syksy 2003

Tehtävän V.1 ratkaisuehdotus Tietorakenteet, syksy 2003 Tehtävän V.1 ratkaisuehdotus Tietorakenteet, syksy 2003 Matti Nykänen 5. joulukuuta 2003 1 Satelliitit Muunnetaan luennoilla luonnosteltua toteutusta seuraavaksi: Korvataan puusolmun p kentät p. key ja

Lisätiedot

Tietojen jakelu Skeemat Palvelupyyntö Kansallisen tulorekisterin perustamishanke

Tietojen jakelu Skeemat Palvelupyyntö Kansallisen tulorekisterin perustamishanke Versio 1.0 Tietojen jakelu Skeemat Palvelupyyntö Kansallisen tulorekisterin perustamishanke Tietojen jakelu Skeemat Palvelupyyntö 2 (9) Versiohistoria Versio Päivämäärä Kuvaus 1.0 12.6.2017 Dokumentti

Lisätiedot

www.hohde.com Hohde Consulting 2004

www.hohde.com Hohde Consulting 2004 Luento 14: Kertaus AS-0.110 XML-kuvauskielten perusteet Janne Kalliola Kertaus XML nimiavaruus validointi XML:n käyttö tietorakenteiden kuvaus ohjelmointi XML-pohjaiset kielet peruskielet muut kurssilla

Lisätiedot

PERL. TIE Principles of Programming Languages. Ryhmä 4: Joonas Lång & Jasmin Laitamäki

PERL. TIE Principles of Programming Languages. Ryhmä 4: Joonas Lång & Jasmin Laitamäki PERL TIE-20306 Principles of Programming Languages Ryhmä 4: Joonas Lång & Jasmin Laitamäki 1. Johdanto Perl on ohjelmointikielten perhe, johon kuuluu Perl 5 ja Perl 6. Kielet ovat kuitenkin erilliset ohjelmointikielet

Lisätiedot

Ohjelmoinnin peruskurssi Y1

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

Lisätiedot

Tietojen toimittaminen Skeemat Mitätöintitiedot Kansallisen tulorekisterin perustamishanke

Tietojen toimittaminen Skeemat Mitätöintitiedot Kansallisen tulorekisterin perustamishanke Versio 1.0 Tietojen toimittaminen Skeemat Mitätöintitiedot Kansallisen tulorekisterin perustamishanke Tietojen toimittaminen Skeemat Mitätöintitiedot 2 (10) Versiohistoria Versio Päivämäärä Kuvaus 1.0

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

Helsingin yliopisto / TKTL XML-Metakieli XML Schema

Helsingin yliopisto / TKTL XML-Metakieli XML Schema W3C:n tavoite kehittää parempi määrittelykieli ilmaisuvoimaisempi XML-rakenteinen itsedokumentoiva yksinkertainen Tekniseltä kannalta tuki nimiavaruuksille käyttäjän omat tietotyypit määritysten perintä

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

XQuery tietokannan kyselykielenä

XQuery tietokannan kyselykielenä XQuery tietokannan kyselykielenä Miro Lehtonen 31.10.2007 OUGF-syysseminaari Tietojenkäsittelytieteen laitos Sisältö Johdanto XQueryn perusteet + esimerkkejä Oracle ja XQuery Miro Lehtonen, XQuery tietokannan

Lisätiedot

Datatähti 2019 alku. task type time limit memory limit. A Kolikot standard 1.00 s 512 MB. B Leimasin standard 1.00 s 512 MB

Datatähti 2019 alku. task type time limit memory limit. A Kolikot standard 1.00 s 512 MB. B Leimasin standard 1.00 s 512 MB Datatähti 2019 alku task type time limit memory limit A Kolikot standard 1.00 s 512 MB B Leimasin standard 1.00 s 512 MB C Taulukko standard 1.00 s 512 MB D Ruudukko standard 1.00 s 512 MB E Sanalista

Lisätiedot

ELM GROUP 04. Teemu Laakso Henrik Talarmo

ELM GROUP 04. Teemu Laakso Henrik Talarmo ELM GROUP 04 Teemu Laakso Henrik Talarmo 23. marraskuuta 2017 Sisältö 1 Johdanto 1 2 Ominaisuuksia 2 2.1 Muuttujat ja tietorakenteet...................... 2 2.2 Funktiot................................

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 20.1.2010 T-106.1208 Ohjelmoinnin perusteet Y 20.1.2010 1 / 40 Arvon pyytäminen käyttäjältä Käyttäjän antaman arvon voi lukea raw_input-käskyllä. Käskyn sulkujen

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

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1 Ohjelmoinnin peruskurssi Y1 CS-A1111 11.9.2019 CS-A1111 Ohjelmoinnin peruskurssi Y1 11.9.2019 1 / 19 Oppimistavoitteet: tämän luennon jälkeen osaat kirjoittaa Python-ohjelman, joka pyytää käyttäjältä lukuja,

Lisätiedot

Tietojen jakelu Skeemat Palvelupyyntö Kansallisen tulorekisterin perustamishanke

Tietojen jakelu Skeemat Palvelupyyntö Kansallisen tulorekisterin perustamishanke Versio 1.05 Tietojen jakelu Skeemat Palvelupyyntö Kansallisen tulorekisterin perustamishanke Tietojen jakelu Skeemat Palvelupyyntö 2 (11) Versiohistoria Versio Päivämäärä Kuvaus 1.0 12.6.2017 Dokumentti

Lisätiedot

SÄHKE-hanke. Tekninen mallintaminen SÄHKE-metatietojen XML Schema

SÄHKE-hanke. Tekninen mallintaminen SÄHKE-metatietojen XML Schema 04.02.2005 1 (5) SÄHKE-hanke SÄHKE-metatietojen XML Schema 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ä

Lisätiedot

Tietojen toimittaminen Skeemat Käsittelypalaute Kansallisen tulorekisterin perustamishanke

Tietojen toimittaminen Skeemat Käsittelypalaute Kansallisen tulorekisterin perustamishanke Versio 1.0 Tietojen toimittaminen Skeemat Käsittelypalaute Kansallisen tulorekisterin perustamishanke Tietojen toimittaminen Skeemat Käsittelypalaute 2 (19) Versiohistoria Versio Päivämäärä Kuvaus 1.0

Lisätiedot

Ei-yhteydettömät kielet [Sipser luku 2.3]

Ei-yhteydettömät kielet [Sipser luku 2.3] Ei-yhteydettömät kielet [Sipser luku 2.3] Yhteydettömille kielille pätee samantapainen pumppauslemma kuin säännöllisille kielille. Siinä kuitenkin pumpataan kahta osamerkkijonoa samaan tahtiin. Lause 2.25

Lisätiedot

7.11.2006. Helsingin yliopisto/tktl Kyselykielet, s 2006 Relaatiokalkyylit. Harri Laine 1

7.11.2006. Helsingin yliopisto/tktl Kyselykielet, s 2006 Relaatiokalkyylit. Harri Laine 1 perusteita - relaatiokalkyylit perusteita - relaatiokalkyylit Relaatioalgebra on luonteeltaan proseduraalinen tapa käsitellä tietoa. Tiedon haetaan sarjaksi järjestettyjen operaatioiden avulla. Edellä

Lisätiedot

XML rakenteen suunnittelu. Jaana Holvikivi

XML rakenteen suunnittelu. Jaana Holvikivi XML rakenteen suunnittelu Jaana Holvikivi XML suunnittelu Dokumentin ilmentymä elementit attribuutit (määritteet) entiteetit prosessointikäskyt 19.3.2015 Jaana Holvikivi 2 Elementtien sisäkkäisyys: säännöt

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

Algoritmit 1. Luento 6 Ke Timo Männikkö

Algoritmit 1. Luento 6 Ke Timo Männikkö Algoritmit 1 Luento 6 Ke 25.1.2017 Timo Männikkö Luento 6 Järjestetty lista Listan toteutus dynaamisesti Linkitetyn listan operaatiot Vaihtoehtoisia listarakenteita Puurakenteet Binääripuu Järjestetty

Lisätiedot

Schema ReitinTilaus.xsd

Schema ReitinTilaus.xsd Schema ReitinTilaus.xsd element ReitinTilaus ReitinTilaus children annotation Reittipiste complex documentatio n Sisältää MPK:n kuljetusoperaattorille tekemän

Lisätiedot

SELECT-lauseen perusmuoto

SELECT-lauseen perusmuoto SQL: Tiedonhaku SELECT-lauseen perusmuoto SELECT FROM WHERE ; määrittää ne sarakkeet, joiden halutaan näkyvän kyselyn vastauksessa sisältää

Lisätiedot

LASKUTUSAINEISTON MUUTTAMINEN XML-MUOTOON

LASKUTUSAINEISTON MUUTTAMINEN XML-MUOTOON LASKUTUSAINEISTON MUUTTAMINEN XML-MUOTOON LAHDEN AMMATTIKORKEAKOULU Tietotekniikan koulutusohjelma Ohjelmistotekniikan suuntautumisvaihtoehto Opinnäytetyö Kevät 2006 Anu Pekurinen Lahden ammattikorkeakoulu

Lisätiedot

v 1 v 2 v 3 v 4 d lapsisolmua d 1 avainta lapsen v i alipuun avaimet k i 1 ja k i k 0 =, k d = Sisäsolmuissa vähint. yksi avain vähint.

v 1 v 2 v 3 v 4 d lapsisolmua d 1 avainta lapsen v i alipuun avaimet k i 1 ja k i k 0 =, k d = Sisäsolmuissa vähint. yksi avain vähint. Yleiset hakupuut 4 Monitiehakupuu: Binäärihakupuu 0 1 3 5 6 7 8 v k 1 k k 3 v v 3 v 4 k 1 k 3 k 1 k k k 3 d lapsisolmua d 1 avainta Yleinen hakupuu? Tietorakenteet, syksy 007 1 Esimerkki monitiehakupuusta

Lisätiedot

13. Loogiset operaatiot 13.1

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

Lisätiedot

Tietojen toimittaminen Skeemat Työnantajan erillisilmoitukset Kansallisen tulorekisterin perustamishanke

Tietojen toimittaminen Skeemat Työnantajan erillisilmoitukset Kansallisen tulorekisterin perustamishanke Versio 1.0 Tietojen toimittaminen Skeemat Työnantajan erillisilmoitukset Kansallisen tulorekisterin perustamishanke Tietojen toimittaminen Skeemat Työnantajan erillisilmoitukset 2 (21) Versiohistoria Versio

Lisätiedot

Tietojen jakelu Skeemat Viestit Kansallisen tulorekisterin perustamishanke

Tietojen jakelu Skeemat Viestit Kansallisen tulorekisterin perustamishanke Versio 1.04 Tietojen jakelu Skeemat Viestit Kansallisen tulorekisterin perustamishanke Tietojen jakelu Skeemat Viestit 2 (21) Versiohistoria Versio Päivämäärä Kuvaus 1.0 12.6.2017 Dokumentti julkaistu.

Lisätiedot

Ohjelmoinnin peruskurssi Y1

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

Lisätiedot

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

Algoritmit 2. Luento 6 Ke Timo Männikkö

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

Lisätiedot

7. Näytölle tulostaminen 7.1

7. Näytölle tulostaminen 7.1 7. Näytölle tulostaminen 7.1 Sisällys System.out.println- ja System.out.print-operaatiot. Tulostus erikoismerkeillä. Edistyneempää tulosteiden muotoilua. 7.2 Tulostusoperaatiot System.out.println-operaatio

Lisätiedot

Helsingin yliopisto Tietojenkäsittelytieteen laitos XML-metakieli

Helsingin yliopisto Tietojenkäsittelytieteen laitos XML-metakieli Tietomuodoista Merkkauksista Merkkauskielistä XML-tietomalli Tietomuodoista Tiedon tuottamiseen, muokkaukseen ja hyväksikäyttöön voi osallistua useita ohjelmia eri alustoilla eri ohjelmointikielillä toteutettuja

Lisätiedot

P e d a c o d e ohjelmointikoulutus verkossa

P e d a c o d e ohjelmointikoulutus verkossa P e d a c o d e ohjelmointikoulutus verkossa XML-kielen perusteet Teoria ja ohjelmointitehtävät XML-kielen perusteet 3 Sisältö YLEISKATSAUS KURSSIN SISÄLTÖIHIN... 7 YLEISKATSAUS KURSSIN SISÄLTÖIHIN...

Lisätiedot

Tietojen toimittaminen Skeemat Mitätöintitiedot Kansallisen tulorekisterin perustamishanke

Tietojen toimittaminen Skeemat Mitätöintitiedot Kansallisen tulorekisterin perustamishanke Versio 1.04 Tietojen toimittaminen Skeemat Mitätöintitiedot Kansallisen tulorekisterin perustamishanke Tietojen toimittaminen Skeemat Mitätöintitiedot 2 (12) Versiohistoria Versio Päivämäärä Kuvaus 1.0

Lisätiedot

Muuttujien määrittely

Muuttujien määrittely Tarja Heikkilä Muuttujien määrittely Määrittele muuttujat SPSS-ohjelmaan lomakkeen kysymyksistä. Harjoitusta varten lomakkeeseen on muokattu kysymyksiä kahdesta opiskelijoiden tekemästä Joupiskan rinneravintolaa

Lisätiedot

PALKKA-AINEISTON SIIRTOTIEDOSTO

PALKKA-AINEISTON SIIRTOTIEDOSTO Sivu 1(6) PALKKA-AINEISTON SIIRTOTIEDOSTO Erittelytason palkka-aineiston siirtotiedostolla tuodaan Procountorin palkanlaskentaan tiedot maksettavista palkoista ja niihin liittyvistä dimensioinneista. Siirtotiedosto

Lisätiedot

Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 4: Ohjelmointi, skriptaus ja Python

Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 4: Ohjelmointi, skriptaus ja Python Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 4: Ohjelmointi, skriptaus ja Python 31. tammikuuta 2009 Ohjelmointi Perusteet Pythonin alkeet Esittely Esimerkkejä Muuttujat Peruskäsitteitä Käsittely

Lisätiedot

8 XSLT-muunnoskieli XSLT-muunnoskieli

8 XSLT-muunnoskieli XSLT-muunnoskieli 8 XSLT-muunnoskieli 51 8 XSLT-muunnoskieli XML-dokumentti kuvaa siis vain tiedon sisältöä eikä määritä ulkoasua mitenkään. CSS on suunniteltu HTML-dokumenttien ulkoasun kuvaamiseen eli tiedon esittämiseen

Lisätiedot

Algoritmit 2. Luento 5 Ti Timo Männikkö

Algoritmit 2. Luento 5 Ti Timo Männikkö Algoritmit 2 Luento 5 Ti 28.3.2017 Timo Männikkö Luento 5 Puurakenteet B-puu B-puun korkeus B-puun operaatiot Algoritmit 2 Kevät 2017 Luento 5 Ti 28.3.2017 2/29 B-puu Algoritmit 2 Kevät 2017 Luento 5 Ti

Lisätiedot

tään painetussa ja käsin kirjoitetussa materiaalissa usein pienillä kreikkalaisilla

tään painetussa ja käsin kirjoitetussa materiaalissa usein pienillä kreikkalaisilla 2.5. YDIN-HASKELL 19 tään painetussa ja käsin kirjoitetussa materiaalissa usein pienillä kreikkalaisilla kirjaimilla. Jos Γ ja ovat tyyppilausekkeita, niin Γ on tyyppilauseke. Nuoli kirjoitetaan koneella

Lisätiedot