Nikos dimitrakas nikosd@kth.se 08-7904460 Rum 8522 IV1023 ht2013 Avancerad Datahantering med XML Introduktion till kursen Semistrukturerade data och XML.

Slides:



Advertisements
Liknande presentationer
Svenska WebDewey Introduktion
Advertisements

Här ser ni några sidor som hjälper er att lösa uppgifterna:
Innehåll, huvudpresentation 4. Rangordning av ordningsstörningar (fråga 1) 5. Problem med nedskräpning (fråga 1a) 6. Problem med skadegörelse (fråga 1b)
Beräkning av kommunernas och samkommunernas utgifter år 2012
Relationsdatabasdesign
Att söka och förvalta kunskap
G RUNDLÄGGANDE XML OCH CSS Mikael Gunnarsson och Helena Francke TLS, HyrData, Stockholm mars 2003.
XML och frågespråk nikos dimitrakas Rum 6626
(Data)Modellering nikos dimitrakas rum 6626
FTP, HTTP, HTML, XML och XHTML
BENÄMNA lätta ord SPRÅKTRÄNING VID AFASIKg VIII
DATABASHANTERING för programmerare
Tillämpning av bolagsstyrningskoden vid årsstämmor 2005 och 2006.
Leif Håkansson’s Square Dancer Rotation
Eddie Arnold - Make The World Go Away Images colorées de par le monde Déroulement automatique ou manuel à votre choix 1 för dig.
Elkraft 7.5 hp distans: Kap. 3 Likströmsmotorn 3:1
Föreläsning 13 Allt om tentan. Sistaminutenhjälp: På fredag 17 december kl 12 sitter Linda i kemi-fiket och svarar på frågor.
Förstudie 2. Design 3. Migrering 4 Analys av befintlig miljö –Microsoft Assessment and Planning (MAP) kan användas för att analysera sin miljö.
LANDSTINGSDIREKTÖRENS STAB Regional utveckling BILD 1 Resultat av enkät till landstingspolitiker
Svenska WebDewey Introduktion
UNIONEN - tillgänglighet under semestern 2014
Skånedatabasen & Region Skånes tillgänglighetsmodell
WEBMASTER DAG 13 Mahmud Al Hakim
Karolinska Institutet, studentundersökning Studentundersökning på Karolinska Institutet HT 2013.
Kommunpussel Din uppgift är att sortera de organisatoriska delar på nästa sida på ett sådant sätt att det överensstämmer med hur din kommun är organiserad.
V E R S I O N N R 2. 0 T A V E L I D É E R I M I L J Ö.
Bastugatan 2. Box S Stockholm. Blad 1 Läsarundersökning Maskinentreprenören 2007.
XSLT – en introduktion Digitalisering av kulturarvet.
Föreläsning 11 Arrayer.
Svenska WebDewey Introduktion Harriet Aagaard Svenska Deweyredaktion
1 Funktioner Nr 3 Funktionstyper, högre ordningens funktioner och polymorfism.
Enkätresultat för Grundskolan Elever 2014 Skola:Hällby skola.
Avgiftsstudie Nils Holgersson år 2007 Bild 1 Baserat på rapportversion
KURSUTVECKLING TILLVÄXTFONDER –
1 Vänsterskolan Debattartiklar. 2 Aktuell krok 3 Aktuella krokar 1. Direkt krok.
Postmilen båda banorna
XSLT – en introduktion Elektronisk publicering.
Hittarps IK Kartläggningspresentation år 3.
Från Gotland på kvällen (tågtider enligt 2007) 18:28 19:03 19:41 19:32 20:32 20:53 21:19 18:30 20:32 19:06 19:54 19:58 20:22 19:01 21:40 20:44 23:37 20:11.
Arbetspensionssystemet i bilder Bildserie med centrala uppgifter om arbetspensionssystemet och dess funktion
DATABASHANTERING för programmerare Lektion 3 Mahmud Al Hakim
TÄNK PÅ ETT HELTAL MELLAN 1-50
DATABASHANTERING för programmerare Lektion 4 Mahmud Al Hakim
1 Joomla © 2009 Stefan Andersson 1. 2 MÅL 2 3 Begrepp Aktör: en användare som interagerar med webbplatsen. I diagrammet till höger finns två aktörer:
Kouzlo starých časů… Letadla Pár foteček pro vzpomínku na dávné doby, tak hezké snění… M.K. 1 I Norrköping får man inte.
Best pictures on the internet 2007 Awards 1http:// Är vänsteralliansen trovärdig i Norrköping.
Enkätresultat för Fritidshem Elever 2014 Skola:Fritidselever, Gillberga skola.
Best pictures on the internet 2007 Awards 1http:// (s), (v), och (mp) i Norrköping, gillar inte att vi använder grundlagarna.
2 Agenda 1. Börja arbeta med Excel Hantera arbetsböcker 3. Formler 4. Formatera 5. Diagram 6. Skriva ut 7. Referenser mellan kalkylblad 8. Arbeta.
Arbetspensionssystemet i bilder Bildserie med centrala uppgifter om arbetspensionssystemet och dess funktion
1 Föreläsning 6 Programmeringsteknik och Matlab 2D1312/2D1305 Metoder & parametrar Array API och klassen ArrayList.
1 Munkedal 2009 Sveriges Kommuner och Landsting Signild Östgren Leif Klingensjö.
SDDB hösten 2003 Preliminära resultat Svensk Njurmedicinsk Förening Riksstämman Stockholm KG Prütz Verksamhetsområde Internmedicin Helsingborgs.
XHTML & CSS Introduktion Erik Nahkala
Mahmud Al Hakim 2  Mål för kursen  Kursplanering  Kurslitteratur  Betygsättning  Grunder om databaser  Tabeller.
Enkätresultat för Grundskolan Föräldrar 2014 Skola - Gillberga skola.
OpCon/xps - A case study. Club2200Page 1 OpCon/xps – A case study Club2200 Magnus Nyman & Hans Forslind.
1 Logging and monitoring of TCP traffic in SSH tunnels Masters thesis Anton Persson.
Informationsteknologi - Lektion 2 Trådlöst nätverk (WLAN) Trådlöst nätverk (WLAN) Filarkivet: Filarkivet:
IV1023 ht2013 nikos dimitrakas KTH/ICT/SCS 1 IV1023 ht2013 Avancerad Datahantering med XML XSLT nikos dimitrakas Rum 8522 Läsanvisningar.
Räkna till en miljard 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,14,15,16,17,18,19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, En miljard är ett.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Föreläsning 12 Sökning och Sökträd.
Förskoleenkät Föräldrar 2012 Förskoleenkät – Föräldrar Enhet:Hattmakarns förskola.
DATABASHANTERING för programmerare Lektion 5 Mahmud Al Hakim
Bild 1 Prognos för länets arbetsmarknad Stefan Tjb.
XSLT 1 Digitalisering av kulturarvet.
Grundskola Elever 2013 Grundskoleenkät - Elever Enhet: Gillberga skola.
1 Mjukvaru-utveckling av interaktiva system God utveckling av interaktiva system kräver abstrakt funktionell beskrivning noggrann utvecklingsmetod Slutanvändare.
1 Jan Lundström OV’s Hemsida Utbildning Ledare. 2 Jan Lundström OV’s Hemsida Standard Lagrum.
IV1023 ht2013 nikos dimitrakas KTH/ICT/SCS 1 IV1023 ht2013 Avancerad Datahantering med XML Frågespråk för SSD och XML nikos dimitrakas
Presentationens avskrift:

nikos dimitrakas nikosd@kth.se 08-7904460 Rum 8522 IV1023 ht2013 Avancerad Datahantering med XML Introduktion till kursen Semistrukturerade data och XML nikos dimitrakas nikosd@kth.se 08-7904460 Rum 8522 Läsanvisningar Utdrag från Data on the Web Kapitel 1, 4, 5, 6, 10 (speciellt 10.6) i kursboken Delar av kapitel 31 i Database Systems (Connolly, Begg) upplaga 5

Innehåll Introduktion till semistrukturerade data och XML Frågespråk Modell (DTD, XML Schema) Representation Frågespråk Lorel XPath XQuery XSL/XSLT SQL/XML (del av SQL 2003) Proprietära lösningar (IBM, Oracle, Microsoft) XML-applikationer, XML-baserade språk RDF/RDFS DC mm.

Upplägg Föreläsningar Lektioner Quizzar Seminarium med inlämning Labbar Inlämningsuppgifter Handledning Tenta

Material Kursanvisningar Föreläsningsbilder (endast elektroniskt) Kompendier om teknologierna och produkterna (endast elektroniskt) labbanvisningar Böcker Grunddatabasbok (Database Systems, Connolly/Begg upplaga 5) Kursbok (Querying XML, Melton/Buxton) Andra XML-böcker Utdrag och Artiklar (endast elektroniskt) Annat material Relevanta webbsidor Lösningsförslag till lektioner Exempeldatabaser Gamla tentor

Material

Examination Examination 1 (3 hp) F-A (TEN1 i Ladok) Tenta Examination 2 (4,5 hp) F-A (LAB1 i Ladok) Quizzar Inlämningsuppgifter Labbar Seminarium ”Examination” 3 (0 hp) Utvärdering

Kursanvisningar Läs igenom kursanvisningarna! Förslag på arbetsgång Handledning Lektionsuppgifter Seminarieuppgifter (Inlupp 1) Inlämningsuppgifter Även för högre betyg Gruppindelning för inlämningsuppgifterna 3 eller 2 per grupp Anmäl er i Daisy Datormiljö Administration och kommunikation (Bilda, Daisy) Databashanteringssystem (Oracle 12c, DB2 10.5, SQL Server 2012) XQuery-verktyg (XQuisitor) Webbläsare (XSLT) Och mycket annat!

Data - Metadata Data Metadata Typer av metadata Johnny, Pasta, Lund, 2001-02-12, true, 677 Metadata namn, namn, stad, startdatum, skickad, vikt Typer av metadata Struktur Semantik Katalog (klassificering) Integration

Struktur Modellering Databaslösningar Relationsmodellen TechTarget: Data modeling is the analysis of data objects that are used in a business or other context and the identification of the relationships among these data objects. Databaslösningar Relationsmodellen Tabeller, kolumner, domäner, nycklar, integritetsregler Objekt-orientering/Objektdatabaser Klasser, attribut, referenser, regler XML Element, attribut, regler Annat ?

Semantik Betydelsen av data och metadata Metadata namn pris vikt skickad Semantik Det som unikt identifierar varje produkttyp vi har produkter av Antalet SEK som kunden måste betala inkl moms för ett exemplar Anger produktens vikt inkl förpackningen för ett exemplar i gram Sant om beställningen har lämnat vårt lager, annars falskt

Semistrukturerade data Ingen struktur (schemaless) Implicit struktur (self-describing) metadata inbyggda i data inga data  inga metadata SSD {namn:{för:"Kalle", efter:"Lind"}, epost:"kalle@lind.nu", mobil:"07012345678"} {namn:"Lisa", telefon:"0709999999"}

Representationer SSD Graf XML {namn:{för:"Kalle", efter:"Lind"}, epost:"kalle@lind.nu", mobil:"07012345678"} Graf XML <Rot> <namn för="Kalle" efter="Lind" /> <epost>kalle@lind.nu</epost> <mobil>07012345678</mobil> </Rot> namn epost mobil för efter kalle@lind.nu 07012345678 Kalle Lind

Träd vs. Nätverk SSD Graf {person: &1{namn:{för:"Kalle", efter:"Lind"}, epost:"kalle@lind.nu", mobil:"07012345678"}, person: &2{namn:{för:"Mia", efter:"Dahl"}, mobil:"0709090909", chef: &1} Graf namn epost mobil för efter kalle@lind.nu 07012345678 Kalle Lind 0709090909 Mia Dahl person &1 &2 chef

XML Står för Extensible Markup Language Ett språk för att definiera dokumentstrukturer XML är en textuell representation av data Används inom olika områden: Datalagring Webb (XHTML) Konfigurationsfiler Transportformat Regler kan specificeras via DTD (Document Type Definition) XML Schema Case sensitive

XML-syntax Element Attribut Nästlade element Tomt element <Person>Kalle</Person> Attribut <Person namn="Kalle"></Person> Nästlade element <Person id="59"> <Fnamn>Kalle</Fnamn> <Enamn>Lind</Enamn> <Adress> <Gata>Kungsgatan 53</Gata> <Postnr>12332</Postnr> <Ort>Stockholm</Ort> </Adress> </Person> Tomt element <Person namn="Kalle" />

XML-dokument XML-deklaration DOCTYPE – referens till regler Namespaces <?xml version="1.1" encoding="UTF-8" ?> DOCTYPE – referens till regler <!DOCTYPE Person SYSTEM "Person.dtd"> Namespaces kvalificering av element- och attributnamn <iv1023:Person iv1023:namn="Kalle"></iv1023:Person> default och andra namespaces <Root xmlns="default ns URI" xmlns:iv1023="iv1023 ns URI"> … </Root>

XML-referenser ID IDREF <Person namn="Kalle" id="39"></Person> IDREF <Organisation namn="KTH" chef="39"></Organisation>

DTD (Document Type Definition) Definierar XML-strukturen (element och attribut) <!ELEMENT db (Person*)> <!ELEMENT Person (Adress)> <!ELEMENT Adress EMPTY> <!ATTLIST Person namn CDATA #REQUIRED id ID #REQUIRED fdatum CDATA #IMPLIED pappa IDREF #IMPLIED> <!ATTLIST Adress gatuadress CDATA #REQUIRED postnr CDATA #REQUIRED postort CDATA #REQUIRED>

XML Schema Starkare än DTD XML-syntax flexiblare strukturer datatyper <element name="db" type="dbType"/> <complexType name="dbType"> <sequence> <element name="Person" type="PersonType" minOccurs="0" maxOccurs="unbounded"/> </sequence> </complexType> <complexType name="PersonType"> <element name="Adress" type="AdressType" /> <attribute name="namn" type="string" use="required"/> <attribute name="id" type="id" use="required"/> <attribute name="fdatum" type="date" use="optional"/> <attribute name="pappa" type="idref" use="optional"/> <complexType name="AdressType"> …

Well-formed & Valid Well-formed XML Valid XML Syntaktiskt korrekt Börjar med XML-deklarationen Innehåller endast ett rot-element Matchade öppnings- och stängningstaggar Valid XML Är well-formed Följer reglerna i den kopplade DTD eller XML Schema

XML-baserade språk Definition av struktur Definition av semantik XML-grundregler Alfabet, vokabulär XML Schema (eller DTD) Grammatik, syntax XML Schema förklaringen (för människor) Semantik, betydelse

XML-representation Textuell representation (serialiserat XML-dokument) Abstrakt nodstrukturrepresentation XML Infoset PSVI (Post-schema-validation Infoset) XPath 1.0-modellen XQuery 1.0-modellen

XML Infoset Representation av det väsentliga innehållet i ett XML-dokument Vissa syntaktiska detaljer ignoreras Bryr sig inte om XML Schema eller datatyper 11 information items, bl a Document Information Item ("roten") Element Information Item Attribute Information Item Comment Information Item Processing Instruction Information Item Document Type Declaration Information Item Character Information Item

PSVI Post-Schema-Validation Infoset Utökar Infoset med stöd för information från XML Schema datatyper valideringstillstånd

XPath 1.0-modellen Trädrepresentation av XML-dokument 7 nodtyper root element attribute text namespace comment processing instruction Varje nod har ett värde konkateneringen av alla underliggande textnoder Nodmängder (node sets)

XQuery 1.0-modellen (XPath 2.0) Kan representera XML-dokument (trädstruktur) noder värden sekvenser av noder och/eller värden 7 typer av noder document element attribute text comment processing instruction namespace http://www.w3.org/TR/xpath-datamodel/

XQuery-modellen - nodegenskaper Elementnod children (elementnoder, PI-noder, kommentarnoder, textnoder) parent (elementnod eller dokumentnod) attributes (attributnoder) namespaces (namespacenoder) string-value, typed-value Obs! namespaces och attribut är inte children Attributnod parent (elementnod) (heter owner i Infoset) Dokumentnod children

XQuery-modellen - nodegenskaper Textnod string-value typed-value parent (elementnod) Kommentarnod parent (elementnod eller dokumentnod) PI-nod Namespace-nod

DTD (Document Type Definition) Definierar element och deras struktur subelement innehåll (content) attribut Använder egen syntax

DTD - element Tomt element <!ELEMENT Person EMPTY> Subelement <!ELEMENT Person (Namn, Adress)> Subelement som kan saknas <!ELEMENT Person (Namn, Adress?)> Subelement som förekommer noll eller flera gånger <!ELEMENT Person (Namn, Adress, Tel*)> Subelement som förekommer en eller flera gånger <!ELEMENT Person (Namn, Adress, Tel+)> Element med textinnehåll <!ELEMENT Person (#PCDATA)> Element med godtyckligt innehåll <!ELEMENT Person ANY>

DTD - element Alternativa subelement <!ELEMENT Person (Namn, (Anställd|Student))> Namn, Adress, Tel, Anställd, Student måste förstås också definieras.

DTD - attribut Attribut definieras per elementtyp Ett eller flera attribut kan definieras i samma ATTLIST Obligatoriskt attribut <!ATTLIST Person pnr CDATA #REQUIRED> Frivilligt attribut <!ATTLIST Person längd CDATA #IMPLIED> Frivilligt attribut med default-värde <!ATTLIST Person födelseplats CDATA "Stockholm"> Attribut med fast värde <!ATTLIST Person arbetsgivare CDATA #FIXED "KTH"> Attribut med begränsade möjliga värden <!ATTLIST Person kön ("man", "kvinna") #REQUIRED>

DTD - attribut Flera attribut i samma ATTLIST <!ATTLIST Person pnr CDATA #REQUIRED födelseplats CDATA "Stockholm" kön ("man", "kvinna") #REQUIRED längd CDATA #IMPLIED> Attribut med unika värden <!ATTLIST Person pnr ID #REQUIRED> Attribut som refererar ett unikt ID-attribut <!ATTLIST Person chef IDREF #IMPLIED>

XML Schema Definierar element och deras struktur Använder XML-syntax subelement innehåll (content) attribut datatyper antal förekomster komplexa ordningsregler Använder XML-syntax XML Schema är ett XML-baserat språk

XML Schema-dokument Namespace Rotelement Definierar http://www.w3.org/2001/XMLSchema rekommenderat alias: xs Rotelement schema attribut targetNamespace Definierar element attribut typer <schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="…"> definitioner </schema>

XML Schema - element Elementet element definierar element attributet name definierar elementets namn attributet type eller innehållet anger elementets typ Element kan ha en av följande typer En grundtyp (string, integer, date, etc.) <element name="Namn" type="string" /> En typ definierad någon annanstans <element name="Namn" type="MinTyp" /> En typ definierad i innehållet <element name="Namn"> typdefinitionen </element>

XML Schema - attribute Elementet attribute definierar attribut attributet name definierar attributets namn attributet type eller innehållet anger attributets typ attributet use anger om attributet är optional (default) eller required Attribute kan ha en av följande typer En grundtyp (string, integer, date, etc.) <attribute name="Namn" type="string" /> En typ definierad någon annanstans <attribute name="Namn" type="MinTyp" /> En typ definierad i innehållet <attribute name="Namn"> <simpleType … /> </attribute>

XML Schema - typer Grundtyper Egendefinierade typer string, integer, date, etc. Egendefinierade typer complexType när man har subelement eller attribut simpleType begränsning av en grunddatatyp

XML Schema - simpleType <xs:simpleType name="veckodag"> <xs:restriction base="xs:string"> <xs:enumeration value="Måndag"/> <xs:enumeration value="Tisdag"/> <xs:enumeration value="Onsdag"/> <xs:enumeration value="Torsdag"/> <xs:enumeration value="Fredag"/> <xs:enumeration value="Lördag"/> <xs:enumeration value="Söndag"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="betyg"> <xs:restriction base="xs:integer"> <xs:minInclusive value="0"/> <xs:maxInclusive value="10"/> </xs:restriction> </xs:simpleType>

XML Schema - complexType Kan innehålla ett av följande simpleContent om elementets innehåll skall vara av en enkel datatyp (en textnod) complexContent om elementets innehåll är baserat på en annan complexType all definierar subelement i obestämd ordning choice definierar alternativa subelement sequence definierar sekvens av subelement group använder en fördefinierad struktur av subelement Kan även innehålla (när inte Content) noll eller flera element "attribute" eller "attributeGroup"

XML Schema - complexType <xs:complexType name="PersonType"> </xs:sequence> <xs:element name="Förnamn" type="xs:string"/> <xs:element name="Efternamn" type="xs:string"/> <xs:element name="Födelsedatum" type="xs:date"/> </xs:sequence> </xs:complexType> <xs:complexType name="PersonType"> <xs:attribute name="Förnamn" type="xs:string"/> <xs:attribute name="Efternamn" type="xs:string"/> <xs:attribute name="Födelsedatum" type="xs:date"/> </xs:complexType>

XML Schema - förekomster Attributet minOccurs anger minsta antal förekomster default 1 Attributet maxOccurs anger högsta antal förekomster för obegränsat sätt "unbounded" Används för choice all (0..1 till 1..1) sequence group element any (godtyckligt element)

XML Schema - exempel <xs:group name="InfoGrupp"> </xs:choice> <xs:element name="Epost" type="xs:string"/> <xs:element name="Telefon" type="xs:string"/> <xs:element name="Webbplats" type="xs:string"/> </xs:choice> </xs:group> <xs:complexType name="PersonTyp"> <xs:sequence> <xs:group ref="InfoGrupp" minOccurs="0" maxOccurs="unbounded" /> <xs:element name="Förnamn" type="xs:string"/> <xs:element name="Efternamn" type="xs:string"/> </xs:sequence> <xs:attribute name="Födelsedatum" type="xs:date" use="optional"/> </xs:complexType> <xs:complexType name="PersonalTyp"> <xs:complexContent> <xs:extension base="PersonTyp"> <xs:attribute name="Anställningsnummer" type="xs:string"/> </xs:extension> </xs:complexContent> </xs:complexType>

XML Schema - Övrigt list union annotation definierar att en simpleType är en lista union definierar en ny typ som är unionen av flera andra typer annotation för att ange kommentarer (med documentation eller appInfo) key, unique, field, keyref, selector definierar "identifierare"/"kandidatnycklar" och referenser datatypbegränsningar med length, minLength, maxLength minExclusive, minInclusive, maxExclusive, maxInclusive totalDigits, fractionDigits pattern, whiteSpace

Fortsättning Quiz om semistrukturerade data, XML, DTD, XML Schema