- Wiederholung/Übung -

Größe: px
Ab Seite anzeigen:

Download "- Wiederholung/Übung -"

Transkript

1 - Wiederholung/Übung - Einführung, XML-Grundlagen und -Konzepte 1 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

2 Welche Bestandteile hat ein XML-Dokument? Bestandteile eines XML-Dokuments XML-Dokument XML-Deklaration Namespace Kommentar Attribut Text Element <?xml version="1.0" encoding="iso "?> <vorlesung titel="xml..." xmlns:dbis=" <! -Liste der Vorlesungsteilnehmer--> <dbis:teilnehmer dbis:matrikel="4711"> <dbis:name>mustermann</dbis:name> <dbis:vorname>max</dbis:vorname> <dbis:semester>5</dbis:semester> <dbis:studienfach>8</dbis:studienfach> </dbis:teilnehmer> <dbis:teilnehmer dbis:matrikel="4736"> <dbis:name>normalverbraucher</dbis:name> <dbis:vorname>otto</dbis:vorname> <dbis:semester>6</dbis:semester> <dbis:studienfach>10</dbis:studienfach> </dbis:teilnehmer> </vorlesung> 2 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

3 Welche Vorteile bietet XML? (6) Metasprache Offener Standard Trennung von Inhalt und Darstellung Vorteile von XML Lesbarkeit Plattformunabhängigkeit Einfacher, formaler und präziser Sprachentwurf 3 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

4 Welche Repräsentation passt zu unserem Beispiel? (1) (2) (3) 4 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

5 Was ist Wohlgeformtheit und Gültigkeit? Welche Abhängigkeiten gelten? Wohlgeformheit (1) gültig wohlgeformt? (2) wohlgeformt gültig? Gültigkeit 5 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

6 Welche Prozesse finden statt? (1)? XML-Parsen (Analyse der Dokumentstruktur) <?xml version="1.0" encoding="iso "?> <vorlesung titel="xml..."> <teilnehmer matrikel="4711"> <name>mustermann</name> <vorname>max</vorname> <semester>5</semester> <studienfach>8</studienfach> </teilnehmer> </vorlesung> <?xml version="1.0" encoding="iso "?> <vorlesung titel="xml..."> <teilnehmer matrikel="4711"> <name>mustermann</name> <vorname>max</vorname> <semester>5</semester> <studienfach>8</studienfach> </teilnehmer> </vorlesung> (Rücküberführung zu Dokument) XML-Serialisieren (2)? 6 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

7 - Online Tools - Einführung, XML-Grundlagen und -Konzepte 7 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

8 Online Tools XML Formatierer ( 8 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

9 Online Tools Syntax Highlighter ( - auch für viele weitere Typen verwendbar 9 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

10 - Wiederholung/Übung - XML-Datenmodellierung / XML-Schemasprachen 11 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

11 Welche Schemasprachen haben wir kennengelernt? (4) RELAX NG DTD Schematron Welche XML-Schemasprachen XML-Schema 12 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

12 Wie heißen die Hauptelemente in DTDs? Document Type Definition (DTD) <!DOCTYPE vorlesung[ <!ELEMENT vorlesung (teilnehmer+)> <!ATTLIST vorlesung titel CDATA #REQUIRED> Attributliste Elementtyp ]> <!ELEMENT teilnehmer (name, vorname, semester, studienfach)> <!ATTLIST teilnehmer matrikel NMTOKEN #REQUIRED> <!ELEMENT name (#PCDATA)> <!ELEMENT vorname (#PCDATA)> <!ELEMENT semester (#PCDATA)> <!ELEMENT studienfach (#PCDATA)> 13 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

13 Genügt unser XML-Dokument dieser DTD? <!DOCTYPE vorlesung[ <!ELEMENT vorlesung (teilnehmer+)> <!ATTLIST vorlesung titel CDATA #REQUIRED> <!ELEMENT teilnehmer (name, vorname, semester, studienfach)> <!ATTLIST teilnehmer matrikel NMTOKEN #REQUIRED> ]> <!ELEMENT name (#PCDATA)> <!ELEMENT vorname (#PCDATA)> <!ELEMENT semester (#PCDATA)> <!ELEMENT studienfach (#PCDATA)> 14 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

14 Genügt unser XML-Dokument dieser DTD? <!DOCTYPE vorlesung[ <!ELEMENT vorlesung (teilnehmer+)> <!ATTLIST vorlesung titel CDATA #REQUIRED untertitel CDATA #REQUIRED> <!ELEMENT teilnehmer (name, vorname, semester, studienfach)> <!ATTLIST teilnehmer matrikel NMTOKEN #REQUIRED> ]> <!ELEMENT name (#PCDATA)> <!ELEMENT vorname (#PCDATA)> <!ELEMENT semester (#PCDATA)> <!ELEMENT studienfach (#PCDATA)> 15 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

15 Genügt unser XML-Dokument dieser DTD? <!DOCTYPE vorlesung[ <!ELEMENT vorlesung (teilnehmer+)> <!ATTLIST vorlesung titel CDATA #REQUIRED untertitel CDATA #IMPLIED> <!ELEMENT teilnehmer (name, vorname, semester, studienfach)> <!ATTLIST teilnehmer matrikel NMTOKEN #REQUIRED> ]> <!ELEMENT name (#PCDATA)> <!ELEMENT vorname (#PCDATA)> <!ELEMENT semester (#PCDATA)> <!ELEMENT studienfach (#PCDATA)> 16 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

16 Genügt unser XML-Dokument dieser DTD? <!DOCTYPE vorlesung[ <!ELEMENT vorlesung (teilnehmer+)> <!ATTLIST vorlesung titel CDATA #REQUIRED> <!ELEMENT teilnehmer (name, vorname, semester)> <!ATTLIST teilnehmer matrikel NMTOKEN #REQUIRED> ]> <!ELEMENT name (#PCDATA)> <!ELEMENT vorname (#PCDATA)> <!ELEMENT semester (#PCDATA)> 17 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

17 Genügt unser XML-Dokument dieser DTD? <!DOCTYPE vorlesung[ <!ELEMENT vorlesung (teilnehmer+, raum?)> <!ATTLIST vorlesung titel CDATA #REQUIRED> <!ELEMENT teilnehmer (name, vorname, semester, studienfach)> <!ATTLIST teilnehmer matrikel NMTOKEN #REQUIRED> <!ELEMENT name (#PCDATA)> <!ELEMENT vorname (#PCDATA)> <!ELEMENT semester (#PCDATA)> <!ELEMENT studienfach (#PCDATA)> ]> <!ELEMENT raum(#pcdata)> 18 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

18 Welche Nachteile hat DTD? kaum Datentypen nur dokumentweite Eindeutigkeit keine XML-Dokumente Nachteile von DTD keine Sonderzeichen für Aufzählungstyp keine Namespaces separate Editoren 19 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

19 Wie charakterisieren sich die einzelnen Typen? Erzeugung eigener Typen Typen (1)? (2)? ohne (Kind-) Elemente und Attribute umfassen (Kind-) Elemente oder Attribute einfache Typen komplexe Typen einfacher Inhalt komplexer Inhalt (3)? (4)? ohne (Kind-) Elemente mit (Kind-) Elementen 20 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

20 Genügt unser XML-Dokument diesem Schema? <?xml version="1.0" encoding="iso "?> <xs:schema xmlns:xs=" <xs:element name="vorlesung"> <xs:complextype> <xs:sequence> <xs:element maxoccurs="unbounded" name="teilnehmer"> <xs:complextype> <xs:sequence> <xs:element name="name" type="xs:string" /> <xs:element name="vorname" type="xs:string" /> <xs:element name="semester" type="xs:int" /> <xs:element name="studienfach" type="xs:int" /> </xs:sequence> <xs:attribute name="matrikel" type="xs:int" use="required" /> </xs:complextype> </xs:element> </xs:sequence> <xs:attribute name="titel" type="xs:string" use="required" /> </xs:complextype> </xs:element> </xs:schema> 21 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

21 Genügt unser XML-Dokument diesem Schema? <?xml version="1.0" encoding="iso "?> <xs:schema xmlns:xs=" <xs:element name="vorlesung"> <xs:complextype> <xs:sequence> <xs:element maxoccurs="unbounded" name="teilnehmer"> <xs:complextype> <xs:sequence> <xs:element name="name" type="xs:int" /> <xs:element name="vorname" type="xs:int" /> <xs:element name="semester" type="xs:int" /> <xs:element name="studienfach" type="xs:int" /> </xs:sequence> <xs:attribute name="matrikel" type="xs:int" use="required" /> </xs:complextype> </xs:element> </xs:sequence> <xs:attribute name="titel" type="xs:string" use="required" /> </xs:complextype> </xs:element> </xs:schema> 22 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

22 Genügt unser XML-Dokument diesem Schema? <?xml version="1.0" encoding="iso "?> <xs:schema xmlns:xs=" <xs:element name="vorlesung"> <xs:complextype> <xs:sequence> <xs:element maxoccurs="unbounded" name="teilnehmer"> </xs:element> </xs:sequence> <xs:attribute name="titel" type="xs:string" use="required" /> </xs:complextype> </xs:element> </xs:schema> 23 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

23 Genügt unser XML-Dokument diesem Schema? <?xml version="1.0" encoding="iso "?> <xs:schema xmlns:xs=" <xs:element name="vorlesung"> <xs:complextype> <xs:sequence> <xs:element maxoccurs="unbounded" name="teilnehmer"> <xs:complextype> <xs:sequence> <xs:element name="name" type="xs:string" /> <xs:element name="vorname" type="xs:string" /> <xs:element name="semester" type="xs:string" /> <xs:element name="studienfach" type="xs:string" /> </xs:sequence> <xs:attribute name="matrikel" type="xs:int" use="required" /> </xs:complextype> </xs:element> </xs:sequence> <xs:attribute name="titel" type="xs:string" use="required" /> </xs:complextype> </xs:element> </xs:schema> 24 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

24 Genügt unser XML-Dokument diesem Schema? <?xml version="1.0" encoding="iso "?> <xs:schema xmlns:xs=" <xs:element maxoccurs="unbounded" name="teilnehmer"> <xs:complextype> <xs:sequence> <xs:element name="name" type="xs:string" /> <xs:element name="vorname" type="xs:string" /> <xs:element name="semester" type="xs:int" /> <xs:element name="studienfach" type="xs:int" /> </xs:sequence> <xs:attribute name="matrikel" type="xs:int" use="required" /> </xs:complextype> </xs:element> </xs:schema> 25 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

25 - Online Tools - XML-Datenmodellierung / XML-Schemasprachen 26 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

26 Online Tools DTD-Generator ( - ist gleichzeitig vollwertiger XML-Editor 27 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

27 Online Tools XML-Schema-Generator ( - verschiedene XML-Schema-Stile generierbar 28 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

28 Online Tools XML-Validierung ( - unterstützt DTD- und XML-Schema-Validierung 29 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

29 - Wiederholung/Übung - XML-Abfrage- und Transformationssprachen 31 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

30 XML Warum sind die Attributwerte nicht im Ergebnis enthalten? XSLT 1.0 Standardregeln <?xml version="1.0" encoding="iso "?> <vorlesung titel="xml..."> <teilnehmer matrikel="4711"> <name>mustermann</name> <vorname>max</vorname> <semester>5</semester> <studienfach>8</studienfach> </teilnehmer> <teilnehmer matrikel="4736"> <name>normalverbraucher</name> <vorname>otto</vorname> <semester>6</semester> <studienfach>10</studienfach> </teilnehmer> </vorlesung> <?xml version="1.0" encoding="iso "?> <xsl:stylesheet version="1.0" xmlns:xsl=" <xsl:template match="/"> Der Name des Wurzelelements lautet: <xsl:value-of select="/child::node()/name()"/> <xsl:apply-templates/> </xsl:template> </xsl:stylesheet> Ergebnis Der Name des Wurzelelements lautet: vorlesung Mustermann Max 5 8 Normalverbraucher Otto XML-Grundlagen, -Sprachen, -Datenhaltungsfragen XSLT

31 Warum sind die Attributwerte nicht im Ergebnis enthalten? (1) XSLT 1.0 Standardregeln <?xml version="1.0" encoding="iso "?> <vorlesung titel="xml..."> <teilnehmer matrikel="4711"> <name>mustermann</name> <vorname>max</vorname>... verwendete Standardregel <xsl:template match="*"> <xsl:apply-templates /> <xsl:template> (<xsl:apply-templates /> <xsl:apply-templates select="*" />) (2) <?xml version="1.0" encoding="iso "?> <vorlesung titel="xml..."> <teilnehmer matrikel="4711"> <name>mustermann</name> <vorname>max</vorname>... ("*" "child::*") Attribute sind keine Kinder und daher nicht über die Achse child, sondern nur über die Achse attribute selektierbar 33 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

32 Warum sind die Attributwerte nicht im Ergebnis enthalten? XSLT XML Modifikation des Beispiels <?xml version="1.0" encoding="iso "?> <vorlesung titel="xml..."> <teilnehmer matrikel="4711"> <name>mustermann</name> <vorname>max</vorname> <semester>5</semester> <studienfach>8</studienfach> </teilnehmer> <teilnehmer matrikel="4736"> <name>normalverbraucher</name> <vorname>otto</vorname> <semester>6</semester> <studienfach>10</studienfach> </teilnehmer> </vorlesung> <?xml version="1.0" encoding="iso "?> <xsl:stylesheet version="1.0" xmlns:xsl=" <xsl:template match="/"> Der Name des Wurzelelements lautet: <xsl:value-of select="/child::node()/name()"/> <xsl:apply-templates/> </xsl:template> <xsl:template match="*"> <xsl:apply-templates </xsl:template> </xsl:stylesheet> Ergebnis Der Name des Wurzelelements lautet: vorlesung XML Mustermann Max Normalverbraucher Otto XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

33 XPath 1.0 Datentypen (4) Zeichenketten Ein Text ID XPath 1.0 Datentypen Zahlen <studienfach>8</studienfach> <studienfach>10</studienfach> Knotenmengen true false Wahrheitswerte 35 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

34 Wie leiten sich Wahrheitswerte ab? Wahrheitswert Zeichenketten Länge > 0 Länge = 0 true false Knotenmenge Menge ist nicht leer Menge ist leer ( ) true false Zahl Zahl 0 und Zahl NaN Zahl = 0 oder Zahl = NaN true false 36 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

35 Zusammensetzung eines XPath 1.0 Ausdrucks am Beispiel Lokalisierungspfad (1)? Lokalisierungsschritt (2)? Achse (3)? Knotentest (4)? Prädikat (5)? 37 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

36 Welche Achsen werden durch die Bereiche gekennzeichnet? ancestor preceding parent self child precedingsibling followingsibling following descendant 38 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

37 Welche Möglichkeiten bieten Knotentests? Knotentyp (1)? node() comment() text() Einschränkung nach teilnehmer * (2)? Knotenname 39 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

38 Welche Operatoren(-arten) sind in Prädikaten zulässig? (4) boolesche Operatoren and or Vergleichsoperatoren =,!= >, >= < (<), <= (<=) + - * div mod Operatoren arithmetische Operatoren Mengenoperatoren 40 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

39 Beispielabfragen Was wird abgefragt und wie lautet das Ergebnis? der Name des Teilnehmers mit der Matrikelnummer 4711 ]/name/text() Mustermann 41 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

40 Beispielabfragen Was wird abgefragt und wie lautet das Ergebnis? Vorlesungen die von mindestens zwei Teilnehmern besucht werden vorlesung[ count(teilnehmer) >= 2 ]/@titel titel="xml..." 42 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

41 Beispielabfragen Was wird abgefragt und wie lautet das Ergebnis? alle Teilnehmer mit dem Studiengang 7 oder 8 vorlesung/teilnehmer[ studiengang = 7 or studiengang = 8 ]/@matrikel * * Im XML-Dokument heißt es nicht studiengang sondern studienfach 43 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

42 Beispielabfragen Was wird abgefragt und wie lautet das Ergebnis? der Teilnehmer, der sich zuletzt eingeschrieben hat * vorlesung/teilnehmer[last()]/@matrikel matrikel="4736" * Annahme: Teilnehmer haben sich in der Reihenfolge eingeschrieben, in der sie im Dokument vermerkt sind 44 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

43 Beispielabfragen Was wird abgefragt und wie lautet das Ergebnis? Teilnehmer, die bereits überdurchschnittlich lange studieren vorlesung/teilnehmer[ semester/text() > ( sum(../teilnehmer/semester/text()) div (count(../teilnehmer)) ) ]/@matrikel matrikel="4736" 45 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

44 Beispielabfragen Was wird abgefragt und wie lautet das Ergebnis? Teilnehmer mit der größten Matrikelnummer vorlesung/teilnehmer[ < or not(following-sibling::teilnehmer)) and < or not(preceding-sibling::teilnehmer)) matrikel="4736" 46 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

45 Welche Funktion erfüllen die markierten XSLT-Anweisungen? XSLT 1.0 Basics für alle Childs der Wurzel ("/") in unserem Beispiel also alle Knoten des XML- Dokuments werden (falls vorhanden) weitere Template-Matchings durchgeführt für alle Childs der Wurzel ("/child::node()/name()") also stets genau einen Knoten wird der Name in das Transformationsergebnis geschrieben für die Wurzel wird ein spezifiziertes Template-Matching durchgeführt <?xml version="1.0" encoding="iso "?> <xsl:stylesheet version="1.0" xmlns:xsl=" <xsl:template match="/"> Der Name des Wurzelelements lautet: <xsl:value-of select="/child::node()/name()"/> <xsl:apply-templates/> </xsl:template> </xsl:stylesheet> 47 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

46 Wozu passen die Inhalte der Standardregeln? Element Wurzel Attribut <xsl:apply-templates /> <xsl:value-of select="."/> Prozessorinstruktion <! - keine Aktion --> Text Kommentar 48 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

47 Welche Template wird bei der Regelkollision verwendet? <?xml version="1.0" encoding="iso "?> <xsl:stylesheet version="1.0" xmlns:xsl=" <xsl:template match="/"> <xsl:apply-templates select="*/teilnehmer"/> </xsl:template> <xsl:template match="*"> 1 </xsl:template> <xsl:template match="vorlesung/teilnehmer"> 2 </xsl:template> <xsl:template match="teilnehmer"> 3 </xsl:template> </xsl:stylesheet> 49 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

48 Welche Möglichkeiten bieten XSLT 1.0 zum Kopieren von Knoten? xsl:copy (1)? kopiert einen einzelnen Knoten (aktuelle Kontextknoten) Möglichkeiten zum Kopieren von Knoten kopiert einen vollständigen (Teil-)Baum, entweder ausgehend vom Kontextknoten oder von beliebig selektierbarem Knoten (2)? xsl:copy-of 50 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

49 Welche XSLT 1.0 Kontrollstrukturen haben wir kennengelernt? (3) bedingte Anweisungen (xsl:if) Schleifen (xsl:for-each) Welche Kontrollstrukturen Mehrfachverzweigungen (xsl:choose, xsl:when und xsl:otherwise) 51 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

50 Welche Platzhalter können in XSLT 1.0 verwendet werden? Variablen (1)? eher im Sinn einer Konstante zu verstehen, können innerhalb des definierten Kontexts verwendet werden Platzhalter in XSLT ähnlich zu Variablen, jedoch nur in Verbindung von benannten Templates (2)? Parameter 52 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

51 Beispieltransformationen Wie lautet das Ergebnis und warum kommt es zustande? <?xml version="1.0" encoding="iso "?> <xsl:stylesheet version="1.0" xmlns:xsl=" </xsl:stylesheet> Mustermann Max 5 8 Normalverbraucher Otto XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

52 Beispieltransformationen Wie lautet das Ergebnis und warum kommt es zustande? <?xml version="1.0" encoding="iso "?> <xsl:stylesheet version="1.0" xmlns:xsl=" <xsl:template match="/"> <xsl:apply-templates select="teilnehmer"/> </xsl:template> </xsl:stylesheet> 54 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

53 Beispieltransformationen Wie lautet das Ergebnis und warum kommt es zustande? <?xml version="1.0" encoding="iso "?> <xsl:stylesheet version="1.0" xmlns:xsl=" <xsl:template match="/"> <xsl:apply-templates select="vorlesung/teilnehmer"/> </xsl:template> </xsl:stylesheet> Mustermann Max 5 8 Normalverbraucher Otto XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

54 Beispieltransformationen Wie lautet das Ergebnis und warum kommt es zustande? <?xml version="1.0" encoding="iso "?> <xsl:stylesheet version="1.0" xmlns:xsl=" <xsl:template match="/"> <xsl:apply-templates </xsl:template> </xsl:stylesheet> XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

55 Beispieltransformationen Wie lautet das Ergebnis und warum kommt es zustande? <?xml version="1.0" encoding="iso "?> <xsl:stylesheet version="1.0" xmlns:xsl=" <xsl:template match="/"> <xsl:for-each select="vorlesung/teilnehmer"> <xsl:value-of select="name"/> <xsl:if test="following-sibling::teilnehmer"> <xsl:text>, </xsl:text> </xsl:if> </xsl:for-each> </xsl:template> </xsl:stylesheet> Mustermann, Normalverbraucher 57 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

56 Beispieltransformationen Wie lautet das Ergebnis und warum kommt es zustande? <?xml version="1.0" encoding="iso "?> <xsl:stylesheet version="1.0" xmlns:xsl=" <xsl:template match="vorlesung"> <xsl:element name="verzeichnis"> <xsl:copy-of select="."/> <xsl:copy> <xsl:attribute name="titel">xml Fortsetzung</xsl:attribute> <xsl:copy-of select="teilnehmer"/> </xsl:copy> </xsl:element> </xsl:template> </xsl:stylesheet> <?xml version="1.0" encoding="iso "?> <verzeichnis> <vorlesung titel="xml..."> <teilnehmer matrikel="4711">...</teilnehmer> <teilnehmer matrikel="4736">...</teilnehmer> </vorlesung> <vorlesung titel="xml Fortsetzung"> <teilnehmer matrikel="4711">...</teilnehmer> <teilnehmer matrikel="4736">...</teilnehmer> </vorlesung> </verzeichnis> 58 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

57 - Online Tools - XML-Abfrage- und Transformationssprachen 59 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

58 Online Tools XPath-Scanner ( - kann auch XSLT-Transformationen 60 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

59 Online Tools XSLT-Prozessor ( - besitzt Möglichkeit zur direkten Darstellung von HTML- Transformationsergebnissen 61 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

60 - Wiederholung/Übung - XML-Abfrage- und Transformationssprachen (Teil 2) 63 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

61 Welche Weiterentwicklungen ergaben sich durch XPath 2.0 (4) Sequenzen als Ersatz für Knotenmengen zusätzliche Ausdrücke Bedingungsausdrücke for-ausdrücke Quantifizierungsausdrücke Weiterentwicklungen in Anlehnung an XML-Schema (zzgl. 5 neuer Datentypen) erweitertes Typsystem erweiterte Operatoren und zahlreiche neue Funktionen neue Funktionen und Operatoren 64 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

62 Wie heißt das neue Konstrukt in XPath 2.0 und wie setzt es sich zusammen? XPath 2.0 Erweiterung des Datenmodells (1, "Ein Text") Sequenz (1)? Item Item (2)? (3)? (atomarer Typ) (atomarer Wert) 65 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

63 Zusammensetzung eines XPath 2.0 Pfadausdrucks am Beispiel (1) Pfadausdruck? vorlesung/if (child) then else "kein Teilnehmer" Lokalisierungsschritt (2)? XPath 2.0 Ausdruck (6)? (Bedingungsausdruck) Achse (3)? Knotentest (4)? Prädikat (5)? 66 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

64 Was gilt und warum gilt es? (1) (2) (3) (4) (5) (1 to 5) = reverse((5,4,3,2,1)) (1,2,3) = (3,2,1) ((1,3,2) > (1,2,3)) and ((1,3,2) < (1,2,3)) subsequence((1 to 5), 2, 1) = instance of xs:integer (6) (1,2,3,2) = (1,2,3) (7) 1,(2,3) = (1,2,3) 67 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

65 Welche der Ausdrücke arbeiten mit Variablen? Bedingungsausdruck Quantifizierungsausdruck Variable for-ausdruck 68 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

66 Wo liegt der Unterschied zwischen den Vergleichsoperatoren? Sequenzvergleiche (und Einzelwertvergleiche) =,!=, <, >, <=, >= Unterschied eq, ne, lt, gt, le, ge Einzelwertvergleiche 69 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

67 Beispielabfragen Was wird abgefragt und wie lautet das Ergebnis? Teilnehmer mit der größten Matrikelnummer = max(parent::*/teilnehmer/@matrikel) ]/data(@matrikel)) (4736) vorlesung/teilnehmer[ (not(@matrikel < following-sibling::teilnehmer/@matrikel) or not(following-sibling::teilnehmer)) and (not(@matrikel < preceding-sibling::teilnehmer/@matrikel) or not(preceding-sibling::teilnehmer)) ]/@matrikel vgl. XPath XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

68 Beispielabfragen Was wird abgefragt und wie lautet das Ergebnis? Welche Veranstaltungen besuchen Max und Otto gemeinsam? (vorlesung/ (if = 4711] and = 4736]) else ()) ) (XML...) 71 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

69 Beispielabfragen Was wird abgefragt und wie lautet das Ergebnis? In welchen Semestern befinden sich die Teilnehmer der Vorlesung? (for $var1 in distinct-values(vorlesung/teilnehmer/semester) return concat( "Semester ", $var1, ": ", count(vorlesung/teilnehmer[semester = $var1]), " Teilnehmer") ) (Semester 5: 1 Teilnehmer, Semester 6: 1 Teilnehmer) 72 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

70 Beispielabfragen Was wird abgefragt und wie lautet das Ergebnis? Teilnehmer die im 5ten oder 6ten Semester sind bzw. deren Matrikelnummer mit 47 beginnt (vorlesung/teilnehmer[semester = 5 or semester = 6] /@matrikel, vorlesung/teilnehmer[starts-with(@matrikel, "47")] /@matrikel) (4711, 4736, 4711, 4736) 73 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

71 Beispielabfragen Was wird abgefragt und wie lautet das Ergebnis? Teilnehmer die im 5ten oder 6ten Semester sind bzw. deren Matrikelnummer mit 47 beginnt (vorlesung/teilnehmer[semester = 5 or semester = 6] /@matrikel union vorlesung/teilnehmer[starts-with(@matrikel, "47")] /@matrikel) (4711, 4736) 74 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

72 Beispielabfragen Was wird abgefragt und wie lautet das Ergebnis? Teilnehmer die im 5ten oder 6ten Semester sind bzw. deren Matrikelnummer mit 47 beginnt (vorlesung/teilnehmer[semester = 5 or semester = 6 or starts-with(@matrikel, "47")]/data(@matrikel)) (4711, 4736) 75 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

73 Beispielabfragen Was wird abgefragt und wie lautet das Ergebnis? Teilnehmer die im 5ten oder 6ten Semester sind bzw. deren Matrikelnummer mit 47 beginnt ((vorlesung/teilnehmer[semester = 5 or semester = 6], vorlesung/teilnehmer[starts-with(@matrikel, "47")]) /data(@matrikel)) (4711, 4736) 76 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

74 Beispielabfragen Was wird abgefragt und wie lautet das Ergebnis? Ist zu allen Teilnehmern ein Studienfach-Element enthalten? (data( every $teiln in vorlesung/teilnehmer satisfies $teiln/*[node-name(.) cast as xs:string = "studienfach"] )) true 77 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

75 Aus welchen Klauseln besteht ein FLWOR-Ausdruck und wozu dienen diese? For definiert eine Variable, die eine Liste von Elementen durchläuft Let L definiert eine Variable, deren Wert eine ganze Liste von Elementen ist Where filtert das Ergebnis (ausgewählten Elemente) anhand einer Bedingung Order by sortiert das Ergebnis Return liefert das Ergebnis als Sequenz in der angegebenen Form zurück 78 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

76 Welche Selektionsklauseln sind im FLWOR-Ausdruck möglich? (2) for-klausel definiert Variable, die an jedes Element (Item) der Sequenz einzeln gebunden wird (per in) Selektionsklauseln definiert Variable, die an die ganze Sequenz gebunden wird (per :=) let-klausel 79 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

77 Welches Ergebnis resultiert für den Ausdruck in den einzelnen Fällen? for $var1 in (1,2) for $var2 in ("a","b") <t><v1>1</v1><v2>a</v2></t> <t><v1>1</v1><v2>b</v2></t> <t><v1>2</v1><v2>a</v2></t> <t><v1>2</v1><v2>b</v2></t> for $var1 in (1,2) let $var2 := ("a","b") <t><v1>1</v1><v2>a b</v2></t> <t><v1>2</v1><v2>a b</v2></t> Mehrere Variablen return <t><v1>{$var1}</v1><v2>{$var2}</v2></t> <t><v1>1 2</v1><v2>a</v2></t> <t><v1>1 2</v1><v2>b</v2></t> let $var1 := (1,2) for $var2 in ("a","b") <t><v1>1 2</v1><v2>a b</v2></t> let $var1 := (1,2) let $var2 := ("a","b") 80 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

78 Welche Ergebnisse liefern die FLWOR-Ausdrücke? let $var1 := (0) for $var2 in (1 to 5) let $var1 := $var1 + 1 return $var1 (1,1,1,1,1) let $var1 := (0) for $var2 in (1 to 5) for $var1 in $var1 + 1 return $var1 (1,1,1,1,1) Gültigkeitsbereich (3,3,3,3,3) let $var1 := (0) for $var2 in (1 to 5) let $var1 := $var1 + 1 let $var1 := $var1 + 2 return $var1 (1) let $var1 := (0) let $var2 := (1 to 5) let $var1 := $var1 + 1 return $var1 81 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

79 Welche Konstruktoren existieren in XPath 2.0? direkte Konstruktoren (1)? <name>inhalt</name> name="inhalt" Inhalt <!--Inhalt--> kein Konstruktor für Dokumentknoten <?name Inhalt?> Konstruktoren element name {Inhalt} attribute name {Inhalt} document {Inhalt} text {Inhalt} comment {Inhalt} processing-instruction name {Inhalt} (2)? berechnete Konstruktoren 82 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

80 Wie lassen sich XML-Dokumente klassifizieren? (1)? datenorientierte Dokumente Klassifizierung (2)? dokumentorientierte Dokumente 83 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

81 Welche Vorteile bietet XML? (6) strenge Schemata meist gezielter Zugriff auf Dokumentteile nötig standardisierter Datenaustausch datenorientierte Dokumente stark strukturierte und typisierte Speicherung XQuery zumeist Felddaten Dokumentreihenfolge meist irrelevant 84 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

82 Welche Vorteile bietet XML? (6) kaum vorhandene bzw. wenig strenge Schemata in der Regel Komplettzugriff (viel) Text und (wenig) Felddaten semistrukturiertes XML dokumentorientierte Dokumente XSLT Dokumentreihenfolge relevant Präsentation, Strukturierung oder Konvertierung von Dokumenten 85 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

83 Beispielabfragen Die folgenden Beispielabfragen erwarten, dass im voraus das Beispiel- Dokument an die Variable $document gebunden werden muss. let $document := doc(" /dbis/lehre/ws2012/xml/beispiel.xml") <vorlesung titel="xml..."> <teilnehmer matrikel="4711"> <name>mustermann</name> <vorname>max</vorname> <semester>5</semester> <studienfach>8</studienfach> </teilnehmer> <teilnehmer matrikel="4736"> <name>normalverbraucher</name> <vorname>otto</vorname> <semester>6</semester> <studienfach>10</studienfach> </teilnehmer> </vorlesung> 86 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

84 Beispielabfragen Was wird abgefragt und wie lautet das Ergebnis? Wie heißen die Initialen der Teilnehmer? for $teiln in $document/vorlesung/teilnehmer let $vorname_kurz := concat(substring($teiln/vorname, 1, 1), ".", substring($teiln/name, 1, 1), ".") return <name>{$vorname_kurz}</name> <name>m.m.</name> <name>o.n.</name> 87 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

85 Beispielabfragen Was wird abgefragt und wie lautet das Ergebnis? Welche Teilnehmer sind nicht im 5ten Semester? for $teiln in $document/vorlesung/teilnehmer where $teiln/semester!= 5 return <matrikel>{$teiln/@matrikel}</matrikel> <matrikel matrikel="4736"/> 88 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

86 Beispielabfragen Was wird abgefragt und wie lautet das Ergebnis? Welche Teilnehmer sind nicht im 5ten Semester? for $teiln in $document/vorlesung/teilnehmer where $teiln/semester!= 5 return <matrikel>{data($teiln/@matrikel)}</matrikel> <matrikel>4736</matrikel> 89 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

87 Beispielabfragen Was wird abgefragt und wie lautet das Ergebnis? Sortiere die angegebenen Elemente nach dem Attribut j! for $var1 in ( <i j="1" k="a"/>, <i j="2" k="b"/>, <i k="c"/> ) order by document{$var1}/i/@j empty least return $var1 <i k="c"/> <i j="1" k="a"/> <i j="2" k="b"/> 90 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

88 Beispielabfragen Was wird abgefragt und wie lautet das Ergebnis? In welchem Semester befindet sich die Mehrheit der Teilnehmer? let $subquery := ( for $sems in distinct-values($document/vorlesung/teilnehmer/semester) let $anz := count($document/vorlesung/teilnehmer[semester = $sems]) return document{<semester><sem>{$sems}</sem><anz>{$anz}</anz></semester>} ) return concat ("Die meisten Teilnehmer studieren im ", ($subquery/semester/sem[parent::*/anz = max($subquery/semester/anz)])[1], "ten Semester.") Die meisten Teilnehmer studieren im 5ten Semester. 91 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

89 - Online Tools - XML-Abfrage- und Transformationssprachen 92 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

90 Online Tools XPath 2.0-Auswerter ( - XML-Dokument muss zuvor (per Drag-n-Drop) geuploadet werden 93 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

91 Online Tools XQuery-Prozessor ( - setzt voraus, dass XML-Dokument online verfügbar ist 94 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

92 - Wiederholung/Übung - XML in relationalen Datenbanksystemen 96 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

93 Welche Gründe für XML-Datenbanken haben wir besprochen? XML in Datenbanken Warum? Datenaustausch sichere, dauerhafte Speicherung von (ausgetauschten) Dokumenten im Originalzustand (auch aufgrund rechtlicher Vorschriften)... Dokumentenverwaltung XML-Datenbanksystem als intelligentes und leistungsstarkes Backend mit Basisfunktionalitäten (wie bspw. Textsuchverfahren) für Dokumentenverwaltungssysteme XML effizientes Suchen in XML- Anwendungsdaten, Möglichkeit paralleler Mehrbenutzerzugriffe XML-basierte Anwendungen 97 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

94 Welche Modell für XML-Datenbanken haben wir kennengelernt? monolithische Ansatz fragmentorientierte Ansatz Modelle dokumentorientierte Ansatz 98 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

95 Welche datenbankspezifischen Anforderungen stellen sich an XML-DBMS? Mehrbenutzerbetrieb Skalierbarkeit Transaktionskonzept (ACID) datenbankspezifische Sicherheit Verfügbarkeit Anforderungen Erweiterbarkeit Effizienz Speicherstrukturunabhängigkeit 99 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

96 Welche XML-spezifischen Anforderungen stellen sich an XML-DBMS? Schemavorgabe und Validierung Strukturunabhängigkeit unterschiedlich granulare Möglichkeiten zur Autorisierung Schema- Evolution Dokumentenbehandlung Standardkonformität XML-spezifische Anforderungen Schemaunabhängigkeit offenes Inhaltsmodell Speicherung von Nicht-XML-Daten Web-Anbindung und andere Protokolle Kodierung und Internationalisierung XML-spezifische Schnittstellen zur Datenabfrage und manipulation 100 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

97 Welche Ansätze zur XML-Speicherung in rel. DBMS haben wir behandelt? inhaltsorientierte Zerlegung generisch definitorisch strukturorientierte Zerlegung XML in relationalen DBMS opake Speicherung 101 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

98 Welche relationale XML-Speicherform wird beispielhaft dargestellt? strukturorientierte Zerlegung DOKUMENT- KENNUNG KNOTEN- NUMMER VORGÄNGER- NUMMER ORDNUNGS- ZAHL NAME vorlesung WERT titel XML teilnehmer matrikel name Mustermann vorname Max <vorlesung titel="xml..."> 3 <teilnehmer semester matrikel="4711"> <name>mustermann</name> <vorname>max</vorname> studienfach 8 <semester>5</semester> <studienfach>8</studienfach> </teilnehmer> </vorlesung> 102 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

99 Welche relationale XML-Speicherform wird beispielhaft dargestellt? generische inhaltsorientierte Zerlegung CREATE TABLE TEILNEHMER (MATRIKEL INT NOT NULL, NAME VARCHAR(20) NOT NULL, VORNAME VARCHAR(20) NOT NULL, STUDIENFACH INT NOT NULL, SEMESTER INT NOT NULL) <!ELEMENT TEILNEHMER (Row*)> <!ELEMENT Row (MATRIKEL, NAME, VORNAME, SEMESTER, STUDIENFACH)> <!ELEMENT MATRIKEL (#PCDATA)> <!ELEMENT NAME (#PCDATA)> <!ELEMENT VORNAME (#PCDATA)> <!ELEMENT SEMESTER (#PCDATA)> <!ELEMENT STUDIENFACH (#PCDATA)> 103 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

100 Welche relationale XML-Speicherform wird beispielhaft dargestellt? opake Speicherung CREATE TABLE VORLESUNG (ID INT NOT NULL, XML CLOB(1M)) <!ELEMENT vorlesung (teilnehmer+)> <!ATTLIST vorlesung titel CDATA #REQUIRED> <!ELEMENT teilnehmer (name, vorname, semester, studienfach)> <!ATTLIST teilnehmer matrikel NMTOKEN #REQUIRED> <!ELEMENT name (#PCDATA)> <!ELEMENT vorname (#PCDATA)> <!ELEMENT semester (#PCDATA)> <!ELEMENT studienfach (#PCDATA)> 104 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

101 Welche relationale XML-Speicherform wird beispielhaft dargestellt? strukturorientierte Zerlegung CREATE TABLE VORLESUNG (DOKUMENTKENNUNG INT NOT NULL, KNOTENNUMMER INT NOT NULL, VORGÄNGERNUMMER INT NOT NULL, ORDNUNGSZAHL INT NULL, NAME VARCHAR(1000) NOT NULL, WERT VARCHAR(1000) NULL) <!ELEMENT vorlesung (teilnehmer+)> <!ATTLIST vorlesung titel CDATA #REQUIRED> <!ELEMENT teilnehmer (name, vorname, semester, studienfach)> <!ATTLIST teilnehmer matrikel NMTOKEN #REQUIRED> <!ELEMENT name (#PCDATA)> <!ELEMENT vorname (#PCDATA)> <!ELEMENT semester (#PCDATA)> <!ELEMENT studienfach (#PCDATA)> 105 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

102 Welche relationale XML-Speicherform wird beispielhaft dargestellt? generische inhaltsorientierte Zerlegung MATRIKEL NAME VORNAME SEMESTER STUDIENFACH 4711 Mustermann Max 5 8 <TEILNEHMER> <ROW> <MATRIKEL>4711</MATRIKEL> <NAME>Mustermann</NAME> <VORNAME>Max</VORNAME> <SEMESTER>5</SEMESTER> <STUDIENFACH>8</STUDIENFACH> </ROW> </TEILNEHMER> 106 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

103 Welche Aspekte werden durch SQL/XML genormt? Abbildungsvorschriften zwischen SQL und XML relationaler Datentyp XML SQL/XML XML-spezifische (SQL-)Funktionen 107 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

104 Welche Typen von Funktionen werden durch SQL/XML genormt? Konstruktionsfunktionen Funktion zur Zerlegung Funktion zur XML-Schemavalidierung XML-spezifische (SQL-)Funktionen Konvertierungsfunktionen Funktion zur Auswertung 108 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

105 Beispielabfragen Was wird abgefragt und wie lautet das Ergebnis? Transformiere die Daten jedes Teilnehmers ins XML-Format! MATRIKEL NAME VORNAME SEMESTER STUDIENFACH 4711 Mustermann Max Normalverbraucher Otto 6 10 SELECT XMLELEMENT(NAME "teilnehmer", XMLATTRIBUTES( MATRIKEL AS "matrikel" ), XMLFOREST( NAME AS "name", VORNAME AS "vorname", SEMESTER AS "semester", STUDIENFACH AS "studienfach" ) ) FROM TEILNEHMER <teilnehmer matrikel="4711"> <name>mustermann</name> <vorname>max</vorname> <semester>5</semester> <studienfach>8</studienfach> </teilnehmer> <teilnehmer matrikel="4711"> <name>normalverbraucher</name> <vorname>otto</vorname> <semester>6</semester> <studienfach>10</studienfach> </teilnehmer> 109 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

106 Beispielabfragen Was wird abgefragt und wie lautet das Ergebnis? Erstelle im XML-Format eine Liste aller Teilnehmer! MATRIKEL NAME VORNAME SEMESTER STUDIENFACH 4711 Mustermann Max Normalverbraucher Otto 6 10 SELECT XMLELEMENT(NAME "TEILNEHMERLISTE", XMLAGG( XMLELEMENT(NAME "TEILNEHMER", CONCAT(VORNAME, CONCAT(' ', NAME) ) ) ) ) FROM TEILNEHMER; <TEILNEHMERLISTE> <TEILNEHMER> Max Mustermann </TEILNEHMER> <TEILNEHMER> Otto Normalverbraucher </TEILNEHMER> </TEILNEHMERLISTE> 110 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

107 Beispielabfragen Was wird abgefragt und wie lautet das Ergebnis? Erstelle im XML-Format eine Liste aller Teilnehmer in Abhängigkeit ihres Studienfachs! MATRIKEL NAME VORNAME SEMESTER STUDIENFACH 4711 Mustermann Max Normalverbraucher Otto 6 10 SELECT XMLELEMENT(NAME "TEILNEHMERLISTE", XMLAGG(SUB.FACHLISTE) ) FROM ( SELECT XMLELEMENT(NAME "STUDIENFACH", XMLATTRIBUTES(STUDIENFACH AS "ID"), XMLAGG( XMLELEMENT(NAME "TEILNEHMER", CONCAT(VORNAME, CONCAT(' ', NAME) ) ) ) ) AS FACHLISTE FROM TEILNEHMER GROUP BY STUDIENFACH) AS SUB; <TEILNEHMERLISTE> <STUDIENFACH ID="8"> <TEILNEHMER> Max Mustermann </TEILNEHMER> </STUDIENFACH> <STUDIENFACH ID="10"> <TEILNEHMER> Otto Normalverbraucher </TEILNEHMER> </STUDIENFACH> </TEILNEHMERLISTE> 111 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

108 Beispielabfragen Was wird abgefragt und wie lautet das Ergebnis? Ermittle die Matrikelnummern der Teilnehmer! ID XML_DATEN 1 <teilnehmer matrikel="4711"> <name>mustermann</name><vorname>max</vorname> <semester>5</semester><studienfach>8</studienfach> </teilnehmer> SELECT XMLQUERY( 'for $var1 in //teilnehmer return $var1/@matrikel' PASSING XML_DATEN ) AS ERGEBNIS FROM TEILNEHMER ERGEBNIS XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

109 Beispielabfragen Was wird abgefragt und wie lautet das Ergebnis? Prüfe ob jede Matrikelnummer nur einmal vergeben wurde! ID XML_DATEN 1 <teilnehmer matrikel="4711"> <name>mustermann</name><vorname>max</vorname> <semester>5</semester><studienfach>8</studienfach> </teilnehmer> SELECT XMLQUERY( 'for $var1 in //teilnehmer return $var1/@matrikel' PASSING XML_DATEN ) AS MATRIKEL, COUNT(*) AS PRUEFWERT FROM TEILNEHMER GROUP BY PRUEFWERT ORDER BY PRUEFWERT DESC FETCH FIRST 1 ROW ONLY; MATRIKEL PRUEFWERT 113 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

110 Beispielabfragen Was wird abgefragt und wie lautet das Ergebnis? Extrahiere die Matrikelnummer aus den XML-Daten und verwende sie als ID! ID XML_DATEN 1 <teilnehmer matrikel="4711"> <name>mustermann</name><vorname>max</vorname> <semester>5</semester><studienfach>8</studienfach> </teilnehmer> ID XML_DATEN UPDATE TEILNEHMER T_NEU SET ID = SELECT X.MATRIKEL FROM TEILNEHMER T_ALT, XMLTABLE( '$xml_daten/teilnehmer' PASSING T_ALT.XML_DATEN AS "xml_daten" COLUMNS MATRIKEL INTEGER PATH '@matrikel', ) X WHERE T_ALT.ID = T_NEU.ID; 4711 <teilnehmer matrikel="4711"> <name>mustermann</name><vorname>max</vorname> <semester>5</semester><studienfach>8</studienfach> </teilnehmer> 114 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

111 Beispielabfragen Was wird abgefragt und wie lautet das Ergebnis? Überführe die Inhalte der XML-Daten in separate Spaltenwerte! ID XML_DATEN 1 <teilnehmer matrikel="4711"> <name>mustermann</name><vorname>max</vorname> <semester>5</semester><studienfach>8</studienfach> </teilnehmer> SELECT X.MATRIKEL, X.NAME, X.VORNAME, X.SEMESTER, X.STUDIENFACH FROM TEILNEHMER T, XMLTABLE( '$xml_daten/teilnehmer' PASSING T.XML_DATEN AS "xml_daten" COLUMNS MATRIKEL INTEGER PATH '@matrikel', NAME VARCHAR(20) PATH 'name', VORNAME VARCHAR(20) PATH 'vorname', SEMESTER INTEGER PATH 'semester', STUDIENFACH INTEGER PATH 'studienfach' ) X; MATRIKEL NAME VOR- NAME 4711 Mustermann SEMESTER Max 5 8 STUDIEN- FACH 115 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

Gegeben ist das folgende XML-Dokument.

Gegeben ist das folgende XML-Dokument. Aufgabe 1 (XML): Gegeben ist das folgende XML-Dokument. (10 Punkte)

Mehr

XML 1. Einführung, oxygen. Ulrike Henny. ulrike.henny@uni-koeln.de. IDE Summer School 2013, Chemnitz

XML 1. Einführung, oxygen. Ulrike Henny. ulrike.henny@uni-koeln.de. IDE Summer School 2013, Chemnitz XML 1 Einführung, oxygen Ulrike Henny ulrike.henny@uni-koeln.de XML extensible Markup Language Was ist XML? XML-Grundlagen XML-Editoren, oxygen HTML + CSS XPath Übungen Literatur Folie 2 Was ist XML? extensible

Mehr

Institut für Dokumentologie und Editorik. XML-Datenbanken und XQuery

Institut für Dokumentologie und Editorik. XML-Datenbanken und XQuery XML-Datenbanken & XQuery Folie 1 XML Digitale Edition XSL-FO XSLT XQuery XML-DB Folie 2 Programm - Ausgewählte Biere verköstigen - Brauereibesichtigung - Anwendung der Hefe erlernen - brauen Folie 3 Telota

Mehr

Datenbanksysteme. XML und Datenbanken. Burkhardt Renz. Sommersemester 2015. Fachbereich MNI Technische Hochschule Mittelhessen

Datenbanksysteme. XML und Datenbanken. Burkhardt Renz. Sommersemester 2015. Fachbereich MNI Technische Hochschule Mittelhessen Fachbereich MNI Technische Hochschule Mittelhessen Sommersemester 2015 Übersicht Semistrukturierte Daten Dokumenttypdefinition XML-Schema XML aus Datenbank konstruieren XML in Datenbank speichern Merkmale

Mehr

... MathML XHTML RDF

... MathML XHTML RDF RDF in wissenschaftlichen Bibliotheken (LQI KUXQJLQ;0/ Die extensible Markup Language [XML] ist eine Metasprache für die Definition von Markup Sprachen. Sie unterscheidet sich durch ihre Fähigkeit, Markup

Mehr

Kapitel 33. Der xml-datentyp. In diesem Kapitel: Der xml-datentyp 996 Abfragen aus xml-datentypen 1001 XML-Indizierung 1017 Zusammenfassung 1023

Kapitel 33. Der xml-datentyp. In diesem Kapitel: Der xml-datentyp 996 Abfragen aus xml-datentypen 1001 XML-Indizierung 1017 Zusammenfassung 1023 Kapitel 33 Der xml-datentyp In diesem Kapitel: Der xml-datentyp 996 Abfragen aus xml-datentypen 1001 XML-Indizierung 1017 Zusammenfassung 1023 995 996 Kapitel 33: Der xml-datentyp Eine der wichtigsten

Mehr

Implementierung der XPath-Anfragesprache für XML-Daten in RDBMS unter Ausnutzung des Nummerierungsschemas DLN

Implementierung der XPath-Anfragesprache für XML-Daten in RDBMS unter Ausnutzung des Nummerierungsschemas DLN Vorstellung der Diplomarbeit Implementierung der XPath-Anfragesprache für XML-Daten in RDBMS unter Ausnutzung des Nummerierungsschemas DLN Oberseminar Datenbanken WS 05/06 Diplomand: Oliver Schmidt Betreuer:

Mehr

IT-Zertifikat: Daten- und Metadatenstandards

IT-Zertifikat: Daten- und Metadatenstandards IT-Zertifikat: Daten- und Metadatenstandards DTD - Document Type Definition / Dokumenttypdefinition Das (bislang) Wichtigste auf einen Blick Externe DTD einbinden:

Mehr

XML-Verarbeitung. XPath XSL die extensible Stylesheet Language. Torsten Schaßan SCRIPTO Modul 4: EDV Wolfenbüttel 25.-29.6.2012.

XML-Verarbeitung. XPath XSL die extensible Stylesheet Language. Torsten Schaßan SCRIPTO Modul 4: EDV Wolfenbüttel 25.-29.6.2012. XML-Verarbeitung XPath XSL die extensible Stylesheet Language Folie 1 Was ist XSL? - Mehrere Komponenten: - XSLT Transformations - XSL-FO Formatting Objects - XPath - (XML-Schema) - Ausgabeformate: - XML,

Mehr

Errata-Liste zum Kurs: Einführung in XML (2. Auflage)

Errata-Liste zum Kurs: Einführung in XML (2. Auflage) Errata-Liste zum Kurs: Einführung in XML (2. Auflage) 1. Kapitel 4.8: Auf Kursseite 8 ist der angeführten XML-Quellcode fehlerhaft:

Mehr

Komplexe Transformationen mit XSLT

Komplexe Transformationen mit XSLT XML-Praxis Komplexe Transformationen mit XSLT Jörn Clausen joern@techfak.uni-bielefeld.de Übersicht Sortieren XML erzeugen und weiterverarbeiten modes Daten aus mehreren XML-Dokumenten lesen XML-Praxis

Mehr

XSLT Vortrag. 2. Beispiel XML. 3. Anwendungsmöglichkeiten von XSLT 4. XHTML

XSLT Vortrag. 2. Beispiel XML. 3. Anwendungsmöglichkeiten von XSLT 4. XHTML XSLT Vortrag 1. Was ist XSLT? XSLT ist eine Transformationssprache für XML Dokumente. XSLT war wahrscheinlich die erste XML basierte Programmiersprache. XSLT ist von der Struktur her Template-Matching,

Mehr

Klaus Schild, XML Clearinghouse 2003. Transformation von XML-Dokumenten

Klaus Schild, XML Clearinghouse 2003. Transformation von XML-Dokumenten Transformation von XML-Dokumenten Lernziele Warum kann es sinnvoll sein XML-Dokumente zu transformieren? Wie funktioniert XSLT (Extensible Stylesheet Language Transformations)? Was ist XPath? Was sind

Mehr

Grundzüge und Vorteile von XML-Datenbanken am Beispiel der Oracle XML DB

Grundzüge und Vorteile von XML-Datenbanken am Beispiel der Oracle XML DB Grundzüge und Vorteile von XML-Datenbanken am Beispiel der Oracle XML DB Jörg Liedtke, Oracle Consulting Vortrag zum Praxis-Seminar B bei der KIS-Fachtagung 2007, Ludwigshafen Agenda

Mehr

Aufgaben zu XPath und XQuery

Aufgaben zu XPath und XQuery Aufgaben zu XPath und XQuery Dr. Arno Schmidhauser Letzte Revision: März 2005 Email: arno.schmidhauser@sws.bfh.ch Webseite: http://www.sws.bfh.ch/db Inhalt 1 XPath... 2 2 XQuery... 2 3 XPath/SQL Umsetzung...

Mehr

Klausur Interoperabilität

Klausur Interoperabilität Klausur 21. Juni 2012 9.30 11.00 Uhr Workflow Systems and Technology Group Fakultät für Informatik Universität Wien Univ.-Prof. Dr. Stefanie Rinderle-Ma Allgemeine Hinweise: Die Bearbeitungszeit beträgt

Mehr

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen: VBA Programmierung mit Excel Schleifen 1/6 Erweiterung der Aufgabe Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen: Es müssen also 11 (B L) x 35 = 385 Zellen berücksichtigt

Mehr

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER INHALTSVERZEICHNIS 1. Datenbanken 2. SQL 1.1 Sinn und Zweck 1.2 Definition 1.3 Modelle 1.4 Relationales Datenbankmodell 2.1 Definition 2.2 Befehle 3.

Mehr

XML Grundlagen Teil I

XML Grundlagen Teil I XML Vorlesung FH Aargau, SS 2006 XML Grundlagen Teil I Erik Wilde 20.3.2006 http://dret.net/lectures/xml-fhnw-ss06/ 20.3.2006 XML Vorlesung FHA SS 2006 1 Übersicht Aufbau von XML XML Dokumenten-Syntax

Mehr

2. XML 2.1 XML 1.0 und XML Schema. Jörg Schwenk Lehrstuhl für Netz- und Datensicherheit

2. XML 2.1 XML 1.0 und XML Schema. Jörg Schwenk Lehrstuhl für Netz- und Datensicherheit XML- und Webservice- Sicherheit 2. XML 2.1 XML 1.0 und XML Schema Gliederung 1. XML 1.0 2. XML Namespaces: URI, URL und URN 3. XML Schema Literatur: A. Tanenbaum, Computer Networks. E. R. Harold and W.

Mehr

Einführung in die Programmierung

Einführung in die Programmierung : Inhalt Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund - mit / ohne Parameter - mit / ohne Rückgabewerte

Mehr

Universität zu Köln Informationsverarbeitung WS 2009/10. Datenbanken vs. Markup Prof. Dr. M.Thaller 25.11.2009. XML als Datenbank

Universität zu Köln Informationsverarbeitung WS 2009/10. Datenbanken vs. Markup Prof. Dr. M.Thaller 25.11.2009. XML als Datenbank Universität zu Köln Informationsverarbeitung WS 2009/10 HS: Dozent: Referentin: 25.11.2009 Datenbanken vs. Markup Prof. Dr. M.Thaller Frauke Schmidt XML als Datenbank Inhalt XML Datenbanken Anforderungen

Mehr

Projektseminar Texttechnologische Informationsmodellierung

Projektseminar Texttechnologische Informationsmodellierung Projektseminar Texttechnologische Informationsmodellierung XQuery Ziele der Sitzung Nach dieser Sitzung sollten Sie: XQuery als wesentlichen Standard zur Abfrage von in XML kodierten Daten kennen Mit Hilfe

Mehr

Universität Augsburg, Institut für Informatik Wintersemester 2011/2012 Prof. Dr. W. Kießling 03. Feb. 2012. Semesterklausur

Universität Augsburg, Institut für Informatik Wintersemester 2011/2012 Prof. Dr. W. Kießling 03. Feb. 2012. Semesterklausur Universität Augsburg, Institut für Informatik Wintersemester 2011/2012 Prof. Dr. W. Kießling 03. Feb. 2012 Dr. M. Endres, Dr.-Ing. S. Mandl Datenbankprogrammierung (Oracle) Semesterklausur Hinweise: Die

Mehr

Datenbanksysteme. XML und Datenbanken. Burkhardt Renz. Sommersemester Fachbereich MNI Technische Hochschule Mittelhessen

Datenbanksysteme. XML und Datenbanken. Burkhardt Renz. Sommersemester Fachbereich MNI Technische Hochschule Mittelhessen Datenbanksysteme XML und Datenbanken Burkhardt Renz Fachbereich MNI Technische Hochschule Mittelhessen Sommersemester 2019 Übersicht Semistrukturierte Daten Datendefinition in XML Dokumenttypdefinition

Mehr

Informatik 12 Datenbanken SQL-Einführung

Informatik 12 Datenbanken SQL-Einführung Informatik 12 Datenbanken SQL-Einführung Gierhardt Vorbemerkungen Bisher haben wir Datenbanken nur über einzelne Tabellen kennen gelernt. Stehen mehrere Tabellen in gewissen Beziehungen zur Beschreibung

Mehr

Fakultät für Informatik & Wirtschaftsinformatik DB & IS II - SS 2015. XMLType. Christian Senger/Andreas Schmidt XMLType 1/32

Fakultät für Informatik & Wirtschaftsinformatik DB & IS II - SS 2015. XMLType. Christian Senger/Andreas Schmidt XMLType 1/32 XMLType Christian Senger/Andreas Schmidt XMLType 1/32 XMLType von Oracle vordefinierter Typ zur Speicherung von nativen XML-Dokumenten unterstützt verschiedene Speichermodelle für XML structured storage

Mehr

Datenbanken für Online Untersuchungen

Datenbanken für Online Untersuchungen Datenbanken für Online Untersuchungen Im vorliegenden Text wird die Verwendung einer MySQL Datenbank für Online Untersuchungen beschrieben. Es wird davon ausgegangen, dass die Untersuchung aus mehreren

Mehr

Datentypen. Agenda für heute, 4. März, 2010. Pascal ist eine streng typisierte Programmiersprache

Datentypen. Agenda für heute, 4. März, 2010. Pascal ist eine streng typisierte Programmiersprache Agenda für heute, 4. März, 2010 Zusammengesetzte if-then-else-anweisungen Datentypen Pascal ist eine streng typisierte Programmiersprache Für jeden Speicherplatz muss ein Datentyp t (Datenformat) t) definiert

Mehr

Erwin Grüner 09.02.2006

Erwin Grüner 09.02.2006 FB Psychologie Uni Marburg 09.02.2006 Themenübersicht Folgende Befehle stehen in R zur Verfügung: {}: Anweisungsblock if: Bedingte Anweisung switch: Fallunterscheidung repeat-schleife while-schleife for-schleife

Mehr

Java Kurs für Anfänger Einheit 4 Klassen und Objekte

Java Kurs für Anfänger Einheit 4 Klassen und Objekte Java Kurs für Anfänger Einheit 4 Klassen und Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 13. Juni 2009 Inhaltsverzeichnis klasse

Mehr

XML. XML in relationalen Datenbanksystemen. XPath DTD. XQuery. XML-Schema XSLT ... 204 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

XML. XML in relationalen Datenbanksystemen. XPath DTD. XQuery. XML-Schema XSLT ... 204 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen in relationalen Datenbanksystemen -Abfragesprachen -Schemasprachen DTD -Schema... XPath XQuery -Transformationssprache XSLT Relationale DBMS in DBMS Dedizierte -DBMS 204 -Grundlagen, -Sprachen, -Datenhaltungsfragen

Mehr

In diesem Thema lernen wir die Grundlagen der Datenbanken kennen und werden diese lernen einzusetzen. Access. Die Grundlagen der Datenbanken.

In diesem Thema lernen wir die Grundlagen der Datenbanken kennen und werden diese lernen einzusetzen. Access. Die Grundlagen der Datenbanken. In diesem Thema lernen wir die Grundlagen der Datenbanken kennen und werden diese lernen einzusetzen. Access Die Grundlagen der Datenbanken kurspc15 Inhaltsverzeichnis Access... Fehler! Textmarke nicht

Mehr

Anleitung für die Teilnahme an den Platzvergaben "Studio II, Studio IV und Studio VI" im Studiengang Bachelor Architektur SS15

Anleitung für die Teilnahme an den Platzvergaben Studio II, Studio IV und Studio VI im Studiengang Bachelor Architektur SS15 Anleitung für die Teilnahme an den Platzvergaben "Studio II, Studio IV und Studio VI" im Studiengang Bachelor Architektur SS15 1 Bitte melden Sie sich über das Campusmanagementportal campus.studium.kit.edu

Mehr

Datenbanken Microsoft Access 2010

Datenbanken Microsoft Access 2010 Datenbanken Microsoft Access 2010 Abfragen Mithilfe von Abfragen kann ich bestimmte Informationen aus einer/mehrerer Tabellen auswählen und nur diese anzeigen lassen die Daten einer/mehrerer Tabellen sortieren

Mehr

Dynamisches SQL. Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München

Dynamisches SQL. Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München Kapitel 4 Dynamisches SQL Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München 2008 Thomas Bernecker, Tobias Emrich unter Verwendung der Folien des Datenbankpraktikums aus dem Wintersemester

Mehr

Universität Augsburg, Institut für Informatik WS 2006/2007 Dr. W.-T. Balke 27. Nov. 2006 M. Endres, A. Huhn, T. Preisinger Lösungsblatt 5

Universität Augsburg, Institut für Informatik WS 2006/2007 Dr. W.-T. Balke 27. Nov. 2006 M. Endres, A. Huhn, T. Preisinger Lösungsblatt 5 Universität Augsburg, Institut für Informatik WS 2006/2007 Dr. W.-T. Balke 27. Nov. 2006 M. Endres, A. Huhn, T. Preisinger Lösungsblatt 5 Aufgabe 1: Projektion Datenbanksysteme I π A1,...,A n (π B1,...,B

Mehr

Allgemeines zu Datenbanken

Allgemeines zu Datenbanken Allgemeines zu Datenbanken Was ist eine Datenbank? Datensatz Zusammenfassung von Datenelementen mit fester Struktur Z.B.: Kunde Alois Müller, Hegenheimerstr. 28, Basel Datenbank Sammlung von strukturierten,

Mehr

mit Musterlösungen Prof. Dr. Gerd Stumme, Dipl.-Inform. Christoph Schmitz 11. Juni 2007

mit Musterlösungen Prof. Dr. Gerd Stumme, Dipl.-Inform. Christoph Schmitz 11. Juni 2007 6. Übung zur Vorlesung Datenbanken im Sommersemester 2007 mit Musterlösungen Prof. Dr. Gerd Stumme, Dipl.-Inform. Christoph Schmitz 11. Juni 2007 Aufgabe 1: Rekursion Betrachten Sie die folgende Tabelle

Mehr

Datenaustauschformate. Datenaustauschformate - FLV

Datenaustauschformate. Datenaustauschformate - FLV Datenaustauschformate FLV-Dateien CSV-Dateien XML-Dateien Excel-Dateien Access- Backupdateien Günter M. Goetz 108 Datenaustauschformate - FLV Fixed Length Values Repräsentation einer Tabelle als 'Flat-File'

Mehr

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom 21.10.2013b

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom 21.10.2013b AGROPLUS Buchhaltung Daten-Server und Sicherheitskopie Version vom 21.10.2013b 3a) Der Daten-Server Modus und der Tresor Der Daten-Server ist eine Betriebsart welche dem Nutzer eine grosse Flexibilität

Mehr

Diana Lange. Generative Gestaltung Operatoren

Diana Lange. Generative Gestaltung Operatoren Diana Lange Generative Gestaltung Operatoren Begriffserklärung Verknüpfungsvorschrift im Rahmen logischer Kalküle. Quelle: google Operatoren sind Zeichen, die mit einer bestimmten Bedeutung versehen sind.

Mehr

XSL Templates. Mit Templates arbeiten. XSL Templates

XSL Templates. Mit Templates arbeiten. XSL Templates XSL Templates Mit Templates arbeiten Innerhalb von XSLT werden Templates verwendet. Ein Template ist eine Vorlage für die Transformation bestimmter Knoten. Diese Knoten können Elemente, Attribute oder

Mehr

Datenmanagement in Android-Apps. 16. Mai 2013

Datenmanagement in Android-Apps. 16. Mai 2013 Datenmanagement in Android-Apps 16. Mai 2013 Überblick Strukturierung von datenorientierten Android-Apps Schichtenarchitektur Möglichkeiten der Datenhaltung: in Dateien, die auf der SDCard liegen in einer

Mehr

Access 2010. Grundlagen für Anwender. Andrea Weikert 1. Ausgabe, 1. Aktualisierung, Juli 2012. inkl. zusätzlichem Übungsanhang ACC2010-UA

Access 2010. Grundlagen für Anwender. Andrea Weikert 1. Ausgabe, 1. Aktualisierung, Juli 2012. inkl. zusätzlichem Übungsanhang ACC2010-UA Andrea Weikert 1. Ausgabe, 1. Aktualisierung, Juli 2012 Access 2010 Grundlagen für Anwender inkl. zusätzlichem Übungsanhang ACC2010-UA 3 Access 2010 - Grundlagen für Anwender 3 Daten in Formularen bearbeiten

Mehr

XML-Austauschformat für Sicherheitsdatenblätter

XML-Austauschformat für Sicherheitsdatenblätter XML-Austauschformat für Sicherheitsdatenblätter Version 2.0 / 15. Dezember 2008 www.edas.org 1 XML-Austauschformat für Sicherheitsdatenblätter Der Austausch der Sicherheitsdatenblätter erfolgt als XML-Datei.

Mehr

Einfache Ausdrücke Datentypen Rekursive funktionale Sprache Franz Wotawa Institut für Softwaretechnologie wotawa@ist.tugraz.at

Einfache Ausdrücke Datentypen Rekursive funktionale Sprache Franz Wotawa Institut für Softwaretechnologie wotawa@ist.tugraz.at Inhalt SWP Funktionale Programme (2. Teil) Einfache Ausdrücke Datentypen Rekursive funktionale Sprache Franz Wotawa Institut für Softwaretechnologie wotawa@ist.tugraz.at Interpreter für funktionale Sprache

Mehr

7. Übung - Datenbanken

7. Übung - Datenbanken 7. Übung - Datenbanken Informatik I für Verkehrsingenieure Aufgaben inkl. Beispiellösungen 1. Aufgabe: DBS a Was ist die Kernaufgabe von Datenbanksystemen? b Beschreiben Sie kurz die Abstraktionsebenen

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum

Mehr

XML Schema vs. Relax NG

XML Schema vs. Relax NG XML Schema vs. Relax NG p. 1/2 XML Schema vs. Relax NG Semistrukturierten Daten 1 Präsentation der Gruppe 2 XML Schema vs. Relax NG p. 2/2 Wozu XML Schema? W3C Empfehlung zur Definition von XML-Dokumentstrukturen

Mehr

Prozedurale Datenbank- Anwendungsprogrammierung

Prozedurale Datenbank- Anwendungsprogrammierung Idee: Erweiterung von SQL um Komponenten von prozeduralen Sprachen (Sequenz, bedingte Ausführung, Schleife) Bezeichnung: Prozedurale SQL-Erweiterung. In Oracle: PL/SQL, in Microsoft SQL Server: T-SQL.

Mehr

Das Typsystem von Scala. L. Piepmeyer: Funktionale Programmierung - Das Typsystem von Scala

Das Typsystem von Scala. L. Piepmeyer: Funktionale Programmierung - Das Typsystem von Scala Das Typsystem von Scala 1 Eigenschaften Das Typsystem von Scala ist statisch, implizit und sicher 2 Nichts Primitives Alles ist ein Objekt, es gibt keine primitiven Datentypen scala> 42.hashCode() res0:

Mehr

Kapitel 8: Physischer Datenbankentwurf

Kapitel 8: Physischer Datenbankentwurf 8. Physischer Datenbankentwurf Seite 1 Kapitel 8: Physischer Datenbankentwurf Speicherung und Verwaltung der Relationen einer relationalen Datenbank so, dass eine möglichst große Effizienz der einzelnen

Mehr

Daten- und Metadatenstandards Wintersemester 2011 / 2012 08. November 2011 XML II: DTD

Daten- und Metadatenstandards Wintersemester 2011 / 2012 08. November 2011 XML II: DTD Daten- und Metadatenstandards Wintersemester 2011 / 2012 08. November 2011 XML II: DTD Themenüberblick Vergangene Woche: Text Inhalt Struktur Äußeres Erscheinungsbild: Layout Extensible Markup Language:

Mehr

Details zu den Ausdrücken nach FROM, WHERE, GROUP BY und HAVING finden Sie in den Abschnitten über JOIN, WHERE und GROUP BY.

Details zu den Ausdrücken nach FROM, WHERE, GROUP BY und HAVING finden Sie in den Abschnitten über JOIN, WHERE und GROUP BY. SELECT - Der Grundbefehl zur Auswahl von Daten Die SELECT-Anweisung fragt Daten aus einer Datenbank ab und stellt diese in einer virtuellen Tabelle zur Verfügung. Diese virtuelle Tabelle, eine Menge von

Mehr

Kapiteltests zum Leitprogramm Binäre Suchbäume

Kapiteltests zum Leitprogramm Binäre Suchbäume Kapiteltests zum Leitprogramm Binäre Suchbäume Björn Steffen Timur Erdag überarbeitet von Christina Class Binäre Suchbäume Kapiteltests für das ETH-Leitprogramm Adressaten und Institutionen Das Leitprogramm

Mehr

Abfragen: Grundbausteine

Abfragen: Grundbausteine Abfragen: Grundbausteine Abfragen sollen gezielt Teile der Information wiedergeben. Das Ergebnis einer solchen Operation ist eine. Der Aufbau der Ergebnistabelle wird durch zwei Grundverfahren festgelegt:

Mehr

Zählen von Objekten einer bestimmten Klasse

Zählen von Objekten einer bestimmten Klasse Zählen von Objekten einer bestimmten Klasse Ziel, Inhalt Zur Übung versuchen wir eine Klasse zu schreiben, mit der es möglich ist Objekte einer bestimmten Klasse zu zählen. Wir werden den ++ und den --

Mehr

Mit dem Tool Stundenverwaltung von Hanno Kniebel erhalten Sie die Möglichkeit zur effizienten Verwaltung von Montagezeiten Ihrer Mitarbeiter.

Mit dem Tool Stundenverwaltung von Hanno Kniebel erhalten Sie die Möglichkeit zur effizienten Verwaltung von Montagezeiten Ihrer Mitarbeiter. Stundenverwaltung Mit dem Tool Stundenverwaltung von Hanno Kniebel erhalten Sie die Möglichkeit zur effizienten Verwaltung von Montagezeiten Ihrer Mitarbeiter. Dieses Programm zeichnet sich aus durch einfachste

Mehr

Relationales Modell: SQL-DDL. SQL als Definitionssprache. 7. Datenbankdefinitionssprachen. Anforderungen an eine relationale DDL

Relationales Modell: SQL-DDL. SQL als Definitionssprache. 7. Datenbankdefinitionssprachen. Anforderungen an eine relationale DDL Relationales Modell: SQLDDL SQL als Definitionssprache SQLDDL umfaßt alle Klauseln von SQL, die mit Definition von Typen Wertebereichen Relationenschemata Integritätsbedingungen zu tun haben Externe Ebene

Mehr

Computeranwendung und Programmierung (CuP)

Computeranwendung und Programmierung (CuP) Computeranwendung und Programmierung (CuP) VO: Peter Auer (Informationstechnologie) UE: Norbert Seifter (Angewandet Mathematik) Organisatorisches (Vorlesung) Vorlesungszeiten Montag 11:15 12:45 Freitag

Mehr

Unterprogramme. Funktionen. Bedeutung von Funktionen in C++ Definition einer Funktion. Definition einer Prozedur

Unterprogramme. Funktionen. Bedeutung von Funktionen in C++ Definition einer Funktion. Definition einer Prozedur Unterprogramme Unterprogramme sind abgekapselte Programmfragmente, welche es erlauben, bestimmte Aufgaben in wiederverwendbarer Art umzusetzen. Man unterscheidet zwischen Unterprogrammen mit Rückgabewert

Mehr

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = 0.51129 Euro ergeben.

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = 0.51129 Euro ergeben. Aufgabe 1.30 : Schreibe ein Programm DM_in_Euro.java zur Umrechnung eines DM-Betrags in Euro unter Verwendung einer Konstanten für den Umrechnungsfaktor. Das Programm soll den DM-Betrag als Parameter verarbeiten.

Mehr

Graphic Coding. Klausur. 9. Februar 2007. Kurs A

Graphic Coding. Klausur. 9. Februar 2007. Kurs A Graphic Coding Klausur 9. Februar 2007 Kurs A Name: Matrikelnummer: Hinweise - Es sind keine Hilfsmaterialien erlaubt. (Keine Bücher, Taschenrechner, Handys) - Sie haben zwei Stunden Zeit. - Insgesamt

Mehr

XINDICE. The Apache XML Project 3.12.09. Name: J acqueline Langhorst E-Mail: blackyuriko@hotmail.de

XINDICE. The Apache XML Project 3.12.09. Name: J acqueline Langhorst E-Mail: blackyuriko@hotmail.de Name: J acqueline Langhorst E-Mail: blackyuriko@hotmail.de 3.12.09 HKInformationsverarbeitung Kurs: Datenbanken vs. MarkUp WS 09/10 Dozent: Prof. Dr. M. Thaller XINDICE The Apache XML Project Inhalt Native

Mehr

Beuth Hochschule Die erweiterbare Markierungssprache XML WS10/11

Beuth Hochschule Die erweiterbare Markierungssprache XML WS10/11 Die erweiterbare Markierungssprache XML 1. Einleitung Eine Markierungssprache (markup language) dient dazu, Textdateien mit zusätzlichen Informationen anzureichern. Die verbreitete Markierungssprache HTML

Mehr

Auswahlabfragen mit ACCESS

Auswahlabfragen mit ACCESS Auswahlabfragen mit ACCESS Abfragekriterien und Operatoren Beim Entwerfen von ACCESS-Auswahlabfragen (queries) sind definierte Abfragekriterien bzw. Operatoren zu benutzen. Ein Abfragekriterium ist eine

Mehr

Grundlagen der Programmierung Prof. H. Mössenböck. 3. Verzweigungen

Grundlagen der Programmierung Prof. H. Mössenböck. 3. Verzweigungen Grundlagen der Programmierung Prof. H. Mössenböck 3. Verzweigungen If-Anweisung n > 0? j n if (n > 0) x = x / n; ohne else-zweig x x / n j max x x > y? n max y if (x > y) max = x; else max = y; mit else-zweig

Mehr

Mengenvergleiche: Alle Konten außer das, mit dem größten Saldo.

Mengenvergleiche: Alle Konten außer das, mit dem größten Saldo. Mengenvergleiche: Mehr Möglichkeiten als der in-operator bietet der θany und der θall-operator, also der Vergleich mit irgendeinem oder jedem Tupel der Unteranfrage. Alle Konten außer das, mit dem größten

Mehr

SEMINAR Modifikation für die Nutzung des Community Builders

SEMINAR Modifikation für die Nutzung des Community Builders 20.04.2010 SEMINAR Modifikation für die Nutzung des Community Builders Step by Step Anleitung ecktion SEMINAR Modifikation für die Nutzung des Community Builders Step by Step Anleitung Bevor Sie loslegen

Mehr

Kundenspezifische Preise im Shop WyRu Online-Shop

Kundenspezifische Preise im Shop WyRu Online-Shop Kundenspezifische Preise im Shop WyRu Online-Shop Team WyRu Christian Wyk / Günter Rubik SCS Bürocenter B1, A-2334 Vösendorf Internet http://www.wyru.at Kundenspezifische Preise sind ein Feature des WyRu

Mehr

Einfache Arrays. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Einfache Arrays. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-13-14/infoeinf WS13/14 Action required now 1. Smartphone: installiere die App "socrative student"

Mehr

Vorgetragen von. Sanaz Mostowfi Anna Polovets Mandy Neumann

Vorgetragen von. Sanaz Mostowfi Anna Polovets Mandy Neumann Vorgetragen von Sanaz Mostowfi Anna Polovets Mandy Neumann Gliederung Was ist DSL? Welche Arten von DSL gibt es? Vor und Nachteile Werkzeuge zur Erstellung von DSLs XText Definition: DSL (Domain Specific

Mehr

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen Binäre Bäume 1. Allgemeines Binäre Bäume werden grundsätzlich verwendet, um Zahlen der Größe nach, oder Wörter dem Alphabet nach zu sortieren. Dem einfacheren Verständnis zu Liebe werde ich mich hier besonders

Mehr

1 topologisches Sortieren

1 topologisches Sortieren Wolfgang Hönig / Andreas Ecke WS 09/0 topologisches Sortieren. Überblick. Solange noch Knoten vorhanden: a) Suche Knoten v, zu dem keine Kante führt (Falls nicht vorhanden keine topologische Sortierung

Mehr

Verbesserungsdetails: PTC Mathcad Prime 3.0. Copyright 2013 Parametric Technology Corporation. weiter Infos unter www.mcg-service.

Verbesserungsdetails: PTC Mathcad Prime 3.0. Copyright 2013 Parametric Technology Corporation. weiter Infos unter www.mcg-service. : PTC Mathcad Prime 3.0 Copyright 2013 Parametric Technology Corporation PTC Mathcad Angepasste Funktionen Sie können eigene Funktionen, die in C++ oder anderen Sprachen geschrieben sind, in die PTC Mathcad

Mehr

SQL. strukturierte Datenbankabfragesprache eine Datenbanksprache zur. Structured Query Language:

SQL. strukturierte Datenbankabfragesprache eine Datenbanksprache zur. Structured Query Language: SQL Structured Query Language: strukturierte Datenbankabfragesprache eine Datenbanksprache zur Definition, Abfrage und Manipulation von Daten in relationalen Datenbanken In der SQL-Ansicht arbeiten In

Mehr

Word 2010 Schnellbausteine

Word 2010 Schnellbausteine WO.001, Version 1.0 02.04.2013 Kurzanleitung Word 2010 Schnellbausteine Word 2010 enthält eine umfangreiche Sammlung vordefinierter Bausteine, die sogenannten "Schnellbausteine". Neben den aus den früheren

Mehr

Probeklausur im Modul Informationstechnik 1, WS 2003/04. Studiengang IWD 1. Semester Seite 1 von 5

Probeklausur im Modul Informationstechnik 1, WS 2003/04. Studiengang IWD 1. Semester Seite 1 von 5 Probeklausur im Modul Informationstechnik 1, WS 2003/04. Studiengang IWD 1. Semester Seite 1 von 5 Probeklausur im Modul Informationstechnik 1, WS 2003/04. Studiengang IWD 1. Semester Hinweise Der Aufgabensatz

Mehr

Präsentation zum Thema XML Datenaustausch und Integration

Präsentation zum Thema XML Datenaustausch und Integration Sebastian Land Präsentation zum Thema XML Datenaustausch und Integration oder Warum eigentlich XML? Gliederung der Präsentation 1. Erläuterung des Themas 2. Anwendungsbeispiel 3. Situation 1: Homogene

Mehr

Aufgabensammlung SQL SW4 1. Einfache Anfragen

Aufgabensammlung SQL SW4 1. Einfache Anfragen Aufgabensammlung SQL SW4 1. Einfache Anfragen Buch: Kapitel 4.6 und 4.7. Datenbank: Die folgenden Anfragen beziehen sich auf die Universitätsdatenbank des Buches. Alle Umlaute werden umschrieben (hören

Mehr

Melde- und Veröffentlichungsplattform Portal (MVP Portal) Hochladen einer XML-Datei

Melde- und Veröffentlichungsplattform Portal (MVP Portal) Hochladen einer XML-Datei Seite 1 Melde- und Veröffentlichungsplattform Portal (MVP Portal) Hochladen einer XML-Datei Seite 2 1 Inhalt Melde- und Veröffentlichungsplattform Portal... 1 (MVP Portal)... 1 Hochladen einer XML-Datei...

Mehr

Dokumentation. Black- und Whitelists. Absenderadressen auf eine Blacklist oder eine Whitelist setzen. Zugriff per Webbrowser

Dokumentation. Black- und Whitelists. Absenderadressen auf eine Blacklist oder eine Whitelist setzen. Zugriff per Webbrowser Dokumentation Black- und Whitelists Absenderadressen auf eine Blacklist oder eine Whitelist setzen. Zugriff per Webbrowser Inhalt INHALT 1 Kategorie Black- und Whitelists... 2 1.1 Was sind Black- und Whitelists?...

Mehr

Anleitung zur Erstellung von Serienbriefen (Word 2003) unter Berücksichtigung von Titeln (wie Dr., Dr. med. usw.)

Anleitung zur Erstellung von Serienbriefen (Word 2003) unter Berücksichtigung von Titeln (wie Dr., Dr. med. usw.) Seite 1/7 Anleitung zur Erstellung von Serienbriefen (Word 2003) unter Berücksichtigung von Titeln (wie Dr., Dr. med. usw.) Hier sehen Sie eine Anleitung wie man einen Serienbrief erstellt. Die Anleitung

Mehr

Betriebssysteme Arbeiten mit dem Windows Explorer

Betriebssysteme Arbeiten mit dem Windows Explorer Frage: Betriebssysteme Arbeiten mit dem Windows Explorer Was ist der Windows Explorer und welche Funktionen bietet er? Antwort: Der Windows Explorer ist das primäre Windows-eigene Programm zum Kopieren,

Mehr

Kontrollstrukturen, Strukturierte Programmierung

Kontrollstrukturen, Strukturierte Programmierung , Strukturierte Programmierung Steuer- und Kontrollfluss Strukturierte Programmierung Arten von Strukturblöcken Sequenz Alternative Iteration C-Spezifisches Seite 1 Elementare Algorithmen SelectionSort

Mehr

Datenbanken Kapitel 2

Datenbanken Kapitel 2 Datenbanken Kapitel 2 1 Eine existierende Datenbank öffnen Eine Datenbank, die mit Microsoft Access erschaffen wurde, kann mit dem gleichen Programm auch wieder geladen werden: Die einfachste Methode ist,

Mehr

EndTermTest PROGALGO WS1516 A

EndTermTest PROGALGO WS1516 A EndTermTest PROGALGO WS1516 A 14.1.2016 Name:................. UID:.................. PC-Nr:................ Beachten Sie: Lesen Sie erst die Angaben aufmerksam, genau und vollständig. Die Verwendung von

Mehr

FH-SY Chapter 2.4 - Version 3 - FH-SY.NET - FAQ -

FH-SY Chapter 2.4 - Version 3 - FH-SY.NET - FAQ - FH-SY Chapter 2.4 - Version 3 - FH-SY.NET - FAQ - Version vom 02.02.2010 Inhaltsverzeichnis 1. KANN ICH BEI EINER EIGENEN LEKTION NACHTRÄGLICH NOCH NEUE LERNINHALTE ( WAS WURDE BEHANDELT? ) EINFÜGEN?...

Mehr

Übersicht Programmablaufsteuerung

Übersicht Programmablaufsteuerung Übersicht Programmablaufsteuerung Konditionale Verzweigung: if - else switch-anweisung Schleifenkonstrukte: while, do - while for Schleife Sprung-Anweisungen: break, continue, goto, return Anweisungen

Mehr

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: 19.02.2014 MORE Projects GmbH

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: 19.02.2014 MORE Projects GmbH MORE Profile Pass- und Lizenzverwaltungssystem erstellt von: Thorsten Schumann erreichbar unter: thorsten.schumann@more-projects.de Stand: MORE Projects GmbH Einführung Die in More Profile integrierte

Mehr

THREAD ARCS: An Email Thread Visualization

THREAD ARCS: An Email Thread Visualization THREAD ARCS: An Email Thread Visualization Eine Technik zur Visualisierung der Email Threads Wladimir Emdin Seminar Visualisierung verteilter Systeme Gliederung 1. Einführung: Email Threads und Ziele deren

Mehr

Statuten in leichter Sprache

Statuten in leichter Sprache Statuten in leichter Sprache Zweck vom Verein Artikel 1: Zivil-Gesetz-Buch Es gibt einen Verein der selbstbestimmung.ch heisst. Der Verein ist so aufgebaut, wie es im Zivil-Gesetz-Buch steht. Im Zivil-Gesetz-Buch

Mehr

Übungen 19.01.2012 Programmieren 1 Felix Rohrer. Übungen

Übungen 19.01.2012 Programmieren 1 Felix Rohrer. Übungen Übungen if / else / else if... 2... 2 Aufgabe 2:... 2 Aufgabe 3:... 2 Aufgabe 4:... 2 Aufgabe 5:... 2 Aufgabe 6:... 2 Aufgabe 7:... 3 Aufgabe 8:... 3 Aufgabe 9:... 3 Aufgabe 10:... 3 switch... 4... 4 Aufgabe

Mehr

Anleitung für die Online-Bewerbung über LSF auf Lehrveranstaltungen aller Lehramtsstudiengänge

Anleitung für die Online-Bewerbung über LSF auf Lehrveranstaltungen aller Lehramtsstudiengänge Einloggen: Eingabe von Benutzername und Passwort Benutzername = Matrikelnummer (z.b. 999999) Passwort = Geburtsdatum (z.b. 31.12.1998) wird angezeigt als ********** Nach dem ersten Einloggen sollten sie

Mehr

Funktionale Programmierung mit Haskell

Funktionale Programmierung mit Haskell Funktionale Programmierung mit Haskell Dr. Michael Savorić Hohenstaufen-Gymnasium (HSG) Kaiserslautern Version 20120622 Überblick Wichtige Eigenschaften Einführungsbeispiele Listenerzeugung und Beispiel

Mehr

Whitepaper. Produkt: combit Relationship Manager. Einbindung externer FiBu-/Warenwirtschaftsdaten. combit GmbH Untere Laube 30 78462 Konstanz

Whitepaper. Produkt: combit Relationship Manager. Einbindung externer FiBu-/Warenwirtschaftsdaten. combit GmbH Untere Laube 30 78462 Konstanz combit GmbH Untere Laube 30 78462 Konstanz Whitepaper Produkt: combit Relationship Manager Einbindung externer FiBu-/Warenwirtschaftsdaten Einbindung externer FiBu-/Warenwirtschaftsdaten - 2 - Inhalt Ausgangssituation

Mehr

Modul 122 VBA Scribt.docx

Modul 122 VBA Scribt.docx Modul 122 VBA-Scribt 1/5 1 Entwicklungsumgebung - ALT + F11 VBA-Entwicklungsumgebung öffnen 2 Prozeduren (Sub-Prozeduren) Eine Prozedur besteht aus folgenden Bestandteilen: [Private Public] Sub subname([byval

Mehr

Synchronisations- Assistent

Synchronisations- Assistent TimePunch Synchronisations- Assistent Benutzerhandbuch Gerhard Stephan Softwareentwicklung -und Vertrieb 25.08.2011 Dokumenten Information: Dokumenten-Name Benutzerhandbuch, Synchronisations-Assistent

Mehr