Semistructured Data and XML Winter 2014/15
Prof. Dr. Wolfgang May
Assistant:
Daniel Schubert
Date and Time:
- Wednesday 10-12 ct, IFI SR 2.101
- Friday 10-12 ct, IFI SR 2.101
Lecture and Exercises mixed (see announcements on this page)
Module M.Inf.1141, 4 SWS, 6 ECTS.
The module's home is the MSc studies in
Applied CS. It can also be credited in the BSc studies in Applied CS
(as "Vertiefung Softwaresysteme und Daten"),
and in several other studies:
BSc/MSc Wirtschaftsinformatik, Mathematik (BSc/MSc), Teaching/2-Fach-Bachelor, PhD GAUSS, ...
Course Description
One of the most important facts that lead to the overall success of XML
is that the "XML world" combines a lot of already known concepts in an
optimal way for coping with a broad spectrum of requirements.
The course will first review some of these preceding (partially even historic)
concepts (network database model, relational databases, object-oriented
databases) and the integration of data and metadata (SchemaSQL). Then,
the idea of "semistructured data" is introduced by showing early
representatives that helped to shape the XML world (F-Logic, OEM).
In the main part, XML is presented as a data model and a markup-meta-language,
and the current languages of the concepts of the XML world are systematically
investigated and applied: DTD, XPath, XQuery, XSLT, XLink, XML Schema,
and SQL/XML.
The lecture uses the geographical sample database "Mondial"
in its XML version for illustrations.
For practical exercises, the XML software is installed in the IFI CIP
Pool.
The software playground page can be found
here;
the XPath/XQuery Web interface is available
here.
The sample code fragments can be found in the pool under
/afs/informatik.uni-goettingen.de/course/xml-lecture/
.
Dates & Topics
- 22.10.
Administrativa, Overview
- 24.10.: Introductory Presentation "XML":
[Slides]
General concepts and notions of the database area.
Slides: Relational Model
- 29.10.:
Earlier database models, concepts and extensions:
Basic Concepts and Notions; example and recall: relational model.
Slides: data models
- 31.10.: Earlier database models, concepts and extensions:
Network data model, Relational Model
- Some references to read about database history (optional):
- 5.11.: "History" continued: Object-Oriented Model
- 7.11.: "History" continued: Schema SQL, early semistructured data models.
Slides: early semistructured data models
- 12.11.: "History" continued: early semistructured data models (Tsimmis/OEM/F-Logic)
- 14.11.: XML: data model, language, DTDs etc.
Slides: XML basics
- 19.11.: XML: data model, language, DTDs etc. (cont'd)
Exercise sheet 1: XML & DTD
- 21.11.: XML: data model, language, DTDs etc. (cont'd)
Smartboard notes
- 26.11.: XML (cont'd)
- 28.11.: XPath: navigation and addressing language for XML
Slides: XPath
Exercise sheet 2: XPath
- 3.12.: Discussion of Exercise sheet 1;
Solution .
Smartboard notes
- 5.12.: Discussion of the remaining exercises from Exercise sheet 1,
XPath (cont'd)
Smartboard notes
- 10.12. Discussion of Exercise Sheet 2;
Solution Exercise Sheet 2.
- 12.12. XML Query Languages: History - XQL, XML-QL; then XQuery
Slides: XQuery
- 17.12 XQuery
- 19.12. XQuery, Updating XML Data (same slide set as XQuery);
Exercise sheet 3: XQuery
... actually, nobody was there, so there was no lecture.
- 24.12.-4.1. Christmas Break
- 7.1.2015 XQuery (cont'd)
- 9.1.2015 XQuery (cont'd)
- 14.1. Discussion of Exercise Sheet 3; XSLT (cont'd)
Solution Exercise Sheet 3
example Solutions from lesson
- 16.1. No Lecture
- 21.1. Lecture: , XUpdate ...
The transformation language: XSLT
Slides: XSLT
Exercise sheet 4: XSLT
Smartboard notes
- 23.1. Lecture: XSLT (cont'd)
Smartboard notes
- 28.1. Discussion of Exercise Sheet 4 (XSLT)
Solution Exercise Sheet 4 [30.1. DTD for Exercise 3 fixed/added]
The quick-and-dirty-solutions from the lecture:
Ex.1,
Ex.2,
Ex.3, DTD using DTD Entities (click "show source" in the Browser),
Ex.3, postorder ,
Ex.3, preorder,
Ex.3, inorder.
- Slides for overviewing in the remaining Lectures:
XML Schema. (note: the XML Schema datatypes are also used in the RDF world)
Slides: XML Schema
Overview: Global referencing in XML - the linking languages: XPointer and XLink
Slides: XLink
Overview: Programming XML with Java APIs
Slides: XML and Java - DOM, SAX etc,
Literature etc.
- 30.1. Lecture: XSLT (finish)
Smartboard notes
XQuery equivalent to example from Slide 358 (the interesting thing
with it is not the XQuery code itself, but how to obtain it by systematically rewriting
the structure of the code and just editing the syntax from XSLT to XQuery).
- 4.2. Lecture: XML Schema, XLink/XPointer (short), XML and Java
XQuery equivalent to example from Slide 361
Smartboard notes
- 6.2. Lecture: XML and Java. Here, mainly the underlying Stream Processing concept of SAX is interesting
- 6.2.2015 End of lecture period.
Exams
- Oral exams, between 9.2.2015 and April 2015:
- Exam period in February: 9.2.-13.2.
- Exam period in early March: 2.3.-7.3.
- Exam period in April: 7.4.-17.4.
(Summer term lectures start on April 13)
- all three slots have been created in FlexNever; registration
for each of them ends one week before the first exam date.
- Please contact may at informatik.uni-goettingen.de for the individual
appointments/slots
- the exams take place in my office, room IFI 2.107
Some hints for Exam preparation
- Oral exams are usually dialogue-style with additional sheets of paper for
drawing sketches, code fragments, examples etc.
- Understanding the important concepts and to know how to apply them.
- Theoretical concepts around XML (DTD, regular expressions).
- "Programming" on Paper with XML, DTD, XPath, XQuery, and basic
XSLT constructs.
- "History"-Sections: understanding of the crucial issues of each of the concepts; how they
contributed to XML, and what can be found of them in XML&friends.
- The oral exam is usually started with a "project description", to design an small XML
model, DTD, then use it for example queries XPath/XQuery and XSLT.
-
The written exams from previous years are also a good preparation (hmm... they are only
available in German, but still give some overview what they looked like):
|