MARTIN-LUTHER-UNIVERSITÄT HALLE-WITTENBERG XML UND DATENBANKEN
Institut für Informatik Wintersemester 2017/18
Prof. Dr. Stefan Brass [StudIP: Vorlesung]

 

 

XML und Datenbanken

Ablauf (Planung der zeitlichen Aufteilung)

Hier wird eine ungefähre Übersicht gegeben, wann welcher Stoff behandelt werden soll. Im Laufe des Semesters ist beabsichtigt, die Liste zu aktualisieren, und den tatsächlich behandelten Stoff einzutragen. Selbstverständlich sind alle Angaben unverbindlich.

Tatsächlicher Ablauf:

1. Donnerstag, 12.10.2017:
Kapitel 0: Informationen zur Vorlesung / Organisatorisches (Folie 0-1 bis 0-23) Themen/Inhalte der Vorlesung, Semistrukturierte Daten, Motivation: Vergleich mit relationalen Datenbanken, Prüfung, Studienleistung, Lehrbücher, Webseite.
Kapitel 1: XML Syntax (Folie 1-1 bis 1-31)
Bedeutung von XML, XML vs. SGML, DTDs, well-formed vs. valid XML, Einführung in XML-Syntax anhand von Beispielen, Elemente, Tags, Visualisierung von XML als Baum. XML zur Archivierung von Daten aus relationalen Datenbanken. Attribute. Zeichensatz, Unicode, UTF-8.
2. Donnerstag, 19.10.2017:
Kapitel 1: XML Syntax (Folie 1-31 bis 1-60, 1-64)
Zeichensatz, Unicode, Utf-8, Zeichenreferenzen, Kommentare, Document Type Definitions (DTDs): Element-Deklarationen, Inhalts-Spezifikationen (Content Models), Attribut-Deklarationen,
3. Donnerstag, 26.10.2017:
Kapitel 1: XML Syntax (Folie 1-60 bis 1-111)
Well-formed vs. Valid, DOCTYPE Deklaration, XML Deklaration, Allgemeiner Aufbau einer XML Datei, Übersicht zu Entities, Vordefinierte General Entities, Marked Sections.
Kapitel 2: Designing XML DTDs (Folie 2-1 bis 2-41)
Übersetzung von Entity-Typen/Tabellen nach XML. Übersetzung von eins-zu-viele und viele-zu-viele Beziehungen nach XML, Übersetzung beliebiger ER-Diagramme nach XML.
Kapitel 2: XML Namespaces (Folie 3-1 bis 3-7, 3-17, 3-20)
Motivation, Beispiel XSLT für Mischung von Elementen verschiedener DTDs, Beispiel für Deklaration von Namespaces, Beispiel für Nutzung deklarierter Präfixe.
4. Donnerstag, 02.11.2017:
Kapitel 2: XML Namespaces (Folie 3-8 bis 3-23)
Lokaler Name und Namespace URI, Präfix, Deklaration von Präfixen, Default-Namespace, Gleichheit von Namespaces.
Kapitel 4: XML Schema (Folie 4-1 bis 4-63)
Erstes Beispiel zu XML Schema. Verschiedene Schema-Stile, "Salami Slice" Stil, "Russian Doll" Stil, "Venetian Blind" Stil, globale und lokale Deklarationen, Element-Deklarationen und Typ-Deklarationen. "Simple Types" in XML Schema, eingebaute simple Types, "Constraining Facets" (Integritätsbedingungen zur Enschräkung von Datentypen), String-Datentypen.
5. Donnerstag, 09.11.2017:
Kapitel 4: XML Schema (Folie 4-63 bis 4-153)
Wiederholung zu "Simple Types" in XML Schema, String-Datentypen, Aufzählungstypen, Reguläre Ausdrücke (für pattern-Facet), Zahl-Datentypen, Datumsangaben, Definition von Union-Typen und Listen-Typen. Übersicht und Referenz für die Definition von Typen, Elementen und Attributen in XML Schema. Benannte Inhaltsmodell-Gruppen (entsprechend Parameter-Entities, Makros), Attribut-Gruppen.
6. Donnerstag, 16.11.2017:
Kapitel 4: XML Schema (Folie 4-154 bis 4-205)
Vorstellung verschiedener Möglichkeiten zur Repräsentation von Subklassen in XML Schema, Beispiel zur Darstellung von Subklassen anhand der Folien meines Vortrags auf der Wissenschaftsnacht 2007. Schlüssel, XPath-Teilmenge zur Schlüssel-Definition, Fremdschlüssel.
7. Donnerstag, 23.11.2017:
Kapitel 4: XML Schema (Folie 4-205 bis 4-237)
Genaue Semantik von Fremdschlüsseln. Abgeleitete Typen in XML Schema.
Kapitel 5: XPath/XQuery Data Model (Folie 5-1 bis 5-71)
Einührung: Externe und interne Repräsentation, Beziehung verschiedener Standards für Baum-Darstellungen von XML (XML Infoset, XPath/XQuery Data Model, DOM). Syntaktische Details, die beim Parsen verloren gehen. Atomare Werte, Knoten, Items, Sequenzen, Arten von Knoten (Subklassen), Eigenschaften und Zugriffsfunktionen. Leerplatz zwischen Elementknoten. Probleme mit Namespace-Knoten. Probleme mit pattern-facet. Unterschied der Baumstruktur ohne/mit Validierung. Dokument-Ordnung von Knoten.
8. Donnerstag, 30.11.2017:
Kapitel 5: XPath/XQuery Data Model (Folie 5-67 bis 5-89)
String-Value und Typed Value. Zusammenfassung.
Kapitel 6: XPath (Folie 6-1 bis 6-64)
XPath: Einführung, Möglichkeiten zum Ausprobieren von XPath-Anfragen, Kontext für Auswertung von XPath-Anfragen, Einführung zu ausfürlicher und abgekürzter Syntax, Pfadausdrücke, Auswertung von E1/E2, Achsen von XPath, Knotentests (Namentests und Typ-Tests), Prädikate: Auswertung von E1[E2].
9. Donnerstag, 07.12.2017:
Kapitel 6: XPath (Folie 6-64 bis 6-115)
Wiederholung zu Kontext, Achsen, Namenstests, Typ-Tests. Prädikate, effektiver boolescher Wert. Volle Syntax (Achsenschritte), Abkürzungen. Aufgabe/Beispiel. Lexikalische Syntax. Sequenz-Konstruktor ",". Konstruktion numerischer Bereiche mit "to". Mengenoperationen. Atomisierung. Vergleichsoperatoren: Wertvergleich, Knotenvergleich, allgemeine Vergleichsoperatoren. Überraschungen beim Vergleich (Verletzungen der Transitivität, gleichzeitig = und !=). Arithmetische Operatoren, Logische Operatoren, some, every. for-Ausdrücke. Diskussion über Deklarativität des for-Konstruktes (und Parallelisierungsmöglichkeiten). Bedingte Ausdrücke mit if.
10. Donnerstag, 14.12.2017:
Kapitel 6: XPath (Folie 6-114 bis 6-188)
Wiederholung und Übersicht über Operatoren (Prioritäten), Datentypen: cast as, castable as, Konstruktor-Funktionen, instance of (Typ-Test), treat as (Typ-Zusicherung), XPath-Funktionen (Einführung und Übersicht), Knoten-Eigenschaften, Lokalisation von Knoten, Funktionen für Sequenzen, unordered, Aggregations-Funktionen.
11. Donnerstag, 21.12.2017:
Kapitel 7: XQuery (Folie 7-1 bis 7-85)
Motivation: Allgemeine Überlegungen zu Anfragesprachen, Einschränkungen von XPath. Geschichtliches. XQuery vs. XSLT. XQuery Implementierungen. Erstes Beispiel, FLWOR-Ausdrücke, Unterschiede zu SQL, Schachtelung. Vergleich der Grammatik von XPath und XQuery, typeswitch. Direkte Konstruktoren für XML/XDM-Knoten. Boundary whitespace, preserve vs. strip. Direkte Konstruktoren und {...}, Kopieren von Knoten von der Eingabe in die konstruierten Knoten, Berechnete Konstruktoren, FLWOR-Ausdrücke mit allen Details, Unterschied for und let, Reihenfolge der konstruierten Variablenbelegungen, where-Klausel (Filter für Variablen-Belegungen), return Klausel (Berechnung des Anfrage-Ergebnisses), Positions-Variablen mit "at" in der for-Klausel, Typ-Angabe mit "as" in for- und let-Klausel, Ordering Mode (ordered und unordered).
12. Donnerstag, 11.01.2018:
Kapitel 7: XQuery (Folie 7-80 bis 7-129)
Wiederholung: Definierte vs. undefinierte Sortierung ("Ordering Mode"), order by, Beispiele für XQuery-Anfragen, Vergleich mit SQL: Einfache Anfragen, Joins, Numerische Vergleiche, Übersetzung von NOT EXISTS (SQL) nach XQuery, All-Quantifizierung, Entsprechungen zu LIKE (SQL), Duplikateliminierung, Einfache Aggregationen, GROUP BY, Restrukturierung der Daten,
13. Donnerstag, 18.01.2018:
Kapitel 7: XQuery (Folie 7-130 bis 7-134)
Prolog von XQuery-Modulen, Definition von XQuery-Funktionen.
Kapitel 9: XSLT (Folie 9-1 bis 9-77)
...
14. Donnerstag, 25.01.2018:
Kapitel 9: XSLT (Folie 9-71 bis 9-84)
...
Kapitel 10: XML-Support in Modern SQL Databases (Folie 10-1 bis 10-9)
... (mit Vorführung in PostgreSQL)
...

Planung (unverbindlich):

15. Donnerstag, 01.02.2018:

 


Stefan Brass (brass@informatik.uni-halle.de), 11. Oktober 2017

Original URL: http://www.informatik.uni-halle.de/~brass/xml17/ablauf.html   [XHTML 1.0 Checked]   [CSS Checked]   [Links Geprüft]   [Impressum]