Lösungsskizze zu Übungsblatt Nr. 13



Ähnliche Dokumente
Lösungsskizze zu Übungsblatt Nr. 13

Lösungsskizze zu Übungsblatt Nr. 13 Themenübersicht

Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester Sprachen. Grammatiken (Einführung)

Domäne und Bereich. Relationen zwischen Mengen/auf einer Menge. Anmerkungen zur Terminologie. r Relationen auf/in einer Menge.

Die Regelungen zu den Einsendeaufgaben (Einsendeschluss, Klausurzulassung) finden Sie in den Studien- und Prüfungsinformationen Heft Nr. 1.

Hausaufgabe 2 (Induktionsbeweis):

Funktionen und Mächtigkeiten

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

Aufgaben zur Vorlesung Analysis II Prof. Dr. Holger Dette SS 2012 Lösungen zu Blatt 6

Übungsblatt Gleichungssysteme Klasse 8

Lehrgang: Digitaltechnik 1 ( Grundlagen ) - Im Lehrgang verwendete Gatter ( Übersicht ) Seite 3

Mathematik. Name, Vorname:

Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester 2011

Vorlesung. Einführung in die mathematische Sprache und naive Mengenlehre

Def.: Sei Σ eine Menge von Zeichen. Die Menge Σ* aller Zeichenketten (Wörter) über Σ ist die kleinste Menge, für die gilt:

Umwandlung von endlichen Automaten in reguläre Ausdrücke

1 Kurvendiskussion /40

Z R Z R Z R Z = 50. mit. aus a) Z L R. Wie groß ist der Leistungsfaktor cos der gesamten Schaltung?

Relationen: Äquivalenzrelationen, Ordnungsrelationen

Abitur - Leistungskurs Mathematik. Sachsen-Anhalt 1999

Installations und Bedienungsanleitung

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

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

Minimalautomat. Wir stellen uns die Frage nach dem. kleinsten DFA für eine reguläre Sprache L, d.h. nach einem DFA mit möglichst wenigen Zuständen.

Lösungsskizze zu Übungsblatt Nr. 14

Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester Kurzer Einschub: das Schubfachprinzip.

Datenbanken. Sommersemester 2010 Probeklausur

Mathematik schriftlich

DBS ::: SERIE 5. Join Right Semi- Join Left Semi-Join Projektion Selektion Fremdschlüssel. Kreuzprodukt

SQL: statische Integrität

UNIVERSITÄT KARLSRUHE Institut für Analysis HDoz. Dr. P. C. Kunstmann Dipl.-Math. M. Uhl. Sommersemester 2009

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

Definition Suffixbaum

Therapiebegleiter Kopfschmerztagebuch

edatenq ist eine Anwendung, die den Unternehmen die Möglichkeit bietet, ihre statistischen Meldungen über das Internet auszufüllen und einzureichen.

Teilfachprüfung Mathematik Studiengang: Wirtschaft Neue Diplomprüfungsordnung (NPO)

In Fachwerken gibt es demnach nur konstante Normalkräfte. Die Fachwerksknoten sind zentrale Kraftsysteme.

Wintersemester 2016/2017 Scheinklausur Formale Sprachen und Automatentheorie

Programmieren in C/C++ und Matlab

Übungsblatt 1 zum Propädeutikum

Dipl. Inf. Dipl. Math. Y. Orkunoglu Datum:

Beispiel 1: Filmdatenbank

Keil Telecom Homepage - Hersteller von Isdn Tk Anlagen und Türsprechsystemen für Heim und Bü...

Der Zwei-Quadrate-Satz von Fermat

1. Voraussetzung. 2. Web-Account anlegen. 3. Einloggen. 4. Kunden-Portal verwenden 5. Sub-Accounts 5.1Sub-Account anlegen. 5.2 Sub-Account bearbeiten

Minimierung von DFAs. Minimierung 21 / 98

Vorname: Nachname: Matrikelnummer: Studiengang (bitte ankreuzen): Technik-Kommunikation M.A.

Informatik 12 Datenbanken SQL-Einführung

Gruppe A Bitte tragen Sie SOFORT und LESERLICH Namen und Matrikelnr. ein, und legen Sie Ihren Studentenausweis bereit.

Formale Systeme, Automaten, Prozesse SS 2010 Musterlösung - Übung 2 M. Brockschmidt, F. Emmes, C. Fuhs, C. Otto, T. Ströder

Präfixcodes und der Huffman Algorithmus

Gegenstand und Zweck

Identifizierbarkeit von Sprachen

DEMO. Algebraische Kurven 2. Ordnung ohne xy-glied INTERNETBIBLIOTHEK FÜR SCHULMATHEMATIK. FRIEDRICH W. BUCKEL

Mathe Warm-Up, Teil 1 1 2

Der Tigerschwanz kann als Stimmungsbarometer gesehen werden. a) Richtig b) Falsch. Tiger sind wasserscheu. a) Richtig b) Falsch

5.3 Dynamisches Sitzen und Stehen

3 Wiederholung des Bruchrechnens

McAfee Firewall Enterprise

Die quadratische Gleichung und die quadratische Funktion

2.6 Reduktion endlicher Automaten

Das SQL-Schlüsselwort ALL entspricht dem Allquantor der Prädikatenlogik

Vorlesung Dokumentation und Datenbanken Klausur

2. Übungsblatt 3.0 VU Datenmodellierung

1 topologisches Sortieren

SPSS Clementine. Auswertung von offenen Fragen mit TextMining für Clementine. Beispiel: Haustiere

Zwei unbekannte Zahlen und alle vier Rechenarten

Vorlesung 24: Topological Sort 1: Hintergrund. Einführung in die Programmierung. Bertrand Meyer. Topological sort

Mathematik: Mag. Schmid Wolfgang Arbeitsblatt Semester ARBEITSBLATT 15 ORTHOGONALITÄT

Was nicht bewertet werden soll, streichen Sie bitte durch. Werden Täuschungsversuche beobachtet, so wird die Präsenzübung mit 0 Punkten bewertet.

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

Aufgaben zu XPath und XQuery

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

Grundbegriffe der Informatik Aufgabenblatt 5

Automaten und formale Sprachen Notizen zu den Folien

Name... Matrikel-Nr... Studiengang...

a q 0 q 1 a M q 1 q 3 q 2

Datenbanken (Bachelor) (SPO2007) WS 2011/12

Aufgabensammlung SQL SW4 1. Einfache Anfragen

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

ARBEITSBLATT 5L-6 FLÄCHENBERECHNUNG MITTELS INTEGRALRECHNUNG

Programmieren für mobile Endgeräte SS 2013/2014. Dozenten: Patrick Förster, Michael Hasseler

Automaten und formale Sprachen Notizen zu den Folien

Integritätsbedingungen / Normalformen- Beispiel: Kontoführung

123 Familienausgleichskasse

Aufbau des SELECT-Befehls. Im Folgenden werden zunächst Abfragen aus einer Tabelle vorgenommen.

Fachhochschule Deggendorf Platzziffer:...

Übung Datenbanken in der Praxis. Datenmodifikation mit SQL

Reinigung 146. Reinigen des Hindernissensors. Reinigung der Projektoroberfläche. Reinigen des Projektionsfensters. Warnung. Warnung.

5.2 Neue Projekte erstellen

Primzahlen und RSA-Verschlüsselung

1KOhm + - y = x LED leuchtet wenn Schalter x gedrückt ist

Name... Matrikel Nr... Studiengang...

VERORDNUNG ZUM ORGANISATIONSREGLEMENT DES SCHULVERBANDES NIDAU

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Algorithmische Bioinformatik I

Großübung Balkenbiegung Biegelinie

7. Übung - Datenbanken

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER

Transkript:

Technische Universität Dortmund Lehrstuhl Informtik VI Prof Dr Jens Teuner Pflichtmodul Informtionssysteme (SS 2014) Prof Dr Jens Teuner Leitung der Üungen: Mrcel Preuß, Sestin Breß, Mrtin Schwitll, Krolin Hilkens Lösungsskizze zu Üungsltt Nr 13 Ausge: 02072014 Age: 09072014 Dieses Üungsltt ist eine Smmlung von Aufgen, wie sie uch in einer Klusur gestellt werden könnten (sie wurden teilweise us lten Klusuren entnommen) Aufge 1 (ER-Modellierung) In einem Schulungszentrum werden verschiedene Kurse ngeoten, woei usgewählte Kurse den Inhlt nderer Kurse vorussetzen Je Kurs git es genu eine Lehrkrft, die uch verschiedene Kurse etreuen knn 1 Erstellen Sie für diesen Diskursereich ein ER-Digrmm Verwenden Sie für die Funktionlität der Beziehungstypen die Min-/Mx-Nottion 2 Üerführen Sie ds erhltene ER-Digrmm in Tellen des Reltionenmodells und geen Sie Primär- und Fremdschlüsseledingungen n 1 ER-Digrmm: Kurs (1,1) (0,*) etreut Lehrkrft (0,*) (0,*) setzt vorus 2 D keine Attriute vorgegeen sind, fügen wir eigenmächtig welche hinzu (dmit die Tellen interessnt werden in der Klusur tritt so ein Fll nicht uf) Ein Kurs wird durch seine Nummer identifiziert und ht eine Bezeichnung Eine Lehrkrft wird durch ihre Personlnummer identifiziert und ht einen Nmen Die Reltion setzt vorus wird üer ds Pr identifiziert, welches sich us den Schlüsselttriuten der eiden teilnehmenden Entitäten zusmmensetzt Die Reltion etreut wird durch die Nummer des Kurses identifiziert (dies reicht ufgrund der Krdinlitätseschränkung):

Pflichtmodul Informtionssysteme Lösungsskizze zu Üungsltt Nr 13 In den Tellen wird folgende Nottion verwendet: Die unterstrichenen Attriute ilden jeweils (zusmmengenommen im Flle von SetztVorus) einen Schlüssel für die entsprechende Reltion (Telle): () Entitäten: Kurse Kursnummer Bezeichnung () Reltionen: SetztVorus Kursnummer Kursnummer2 Lehrkräfte Personlnummer Nme Betreut Kursnummer Personlnummer Hierei sind Kursnummer und Kursnummer2 Fremdschlüssel, die uf ds entsprechende Attriut in Kurse verweisen Personlnummer ist ein Fremdschlüssel, der uf ds entsrpechende Attriut in Lehrkräfte verweist Aufge 2 (Tellen erzeugen) Ein Sportverein will eine Dtennk mit folgendem Schem ufuen: sch(mitglieder)=(mitglnr, Nme, Alter, Ateilung) sch(beiträge)=(alter, Betrg) sch(zhlungen)=(dtum, MitglNr, Betrg) In Beiträge werden die Mitgliedseiträge festgehlten, die vom Alter des Mitglieds hängig sind Mnche Mitglieder ezhlen ihre Beiträge in Rten, dher sind in Zhlungen lle islng eingegngenen Beträge vermerkt 1 Geen Sie die SQL-Anweisungen n, mit denen ds oige Reltionen-Schem erzeugt wird Spezifizieren Sie dei sämtliche Primär- und Fremdschlüsseleziehungen 2 Trinern soll die Möglichkeit erstellt werden, von llen Mitgliedern Nme und Alter zu sehen Geen Sie SQL-Kommndos n zur Erstellung einer View, die genu diese Informtion enthält 1 SQL-Anweisungen: CREATE TABLE Mitglieder ( MitglNr INTEGER NOT NULL, NmeMitglied CHAR(30), AlterMitglied INTEGER, Ateilung CHAR(30), PRIMARY KEY (MitglNr) ) 2

Pflichtmodul Informtionssysteme Lösungsskizze zu Üungsltt Nr 13 CREATE TABLE Beitrege ( AlterMitglied INTEGER NOT NULL, Betrg INTEGER, PRIMARY KEY (AlterMitglied) ) CREATE TABLE Zhlungen ( Dtum DATE NOT NULL, MitglNr INTEGER NOT NULL, Betrg INTEGER, PRIMARY KEY (Dtum, MitglNr), FOREIGN KEY (MitglNr) REFERENCES Mitglieder ) 2 View: CREATE VIEW NmeUndAlter AS SELECT NmeMitglied, AlterMitglied FROM Mitglieder; Aufge 3 (Anfrgesprchen) Gegeen sei ds Reltionen-Schem us Aufge 2: sch(mitglieder)=(mitglnr, Nme, Alter, Ateilung) sch(beiträge)=(alter, Betrg) sch(zhlungen)=(dtum, MitglNr, Betrg) Formulieren Sie die folgende Anfrge in Tupel-Reltionen-Klkül und SQL Verwenden Sie DISTINCT genu dnn, wenn im Ergenis ttsächlich Duplikte uftreten können 1 Geen Sie Nme, MitglNr und Betrg der fälligen Beiträge ller Mitglieder us der Ateilung Fußll us {t m : m Mitglieder : Beitrege malter = Alter mateilung = F ussll t mnme, mmitglnr, Betrg } SELECT mnmemitglied, mmitglnr, Betrg FROM Mitglieder m, Beitrege WHERE maltermitglied = AlterMitglied AND mateilung = Fussll ; Formulieren Sie die folgenden eiden Anfrgen in Reltionen-Alger und SQL Verwenden Sie uch hier DISTINCT genu dnn, wenn im Ergenis ttsächlich Duplikte uftreten können 2 Welche Mitglieder hen islng noch gr nichts ezhlt? Geen Sie MitglNr, Nme, Alter und den fälligen Betrg us ( πmitglnr,nme,alter (Mitglieder) π MitglNr,Nme,Alter (Mitglieder Zhlungen) ) Beitrege 3

Pflichtmodul Informtionssysteme Lösungsskizze zu Üungsltt Nr 13 SELECT mmitglnr, mnmemitglied, maltermitglied, Betrg FROM Mitglieder m, Beitrege WHERE maltermitglied = AlterMitglied AND NOT EXISTS ( SELECT * FROM Zhlungen AS z WHERE zmitglnr = mmitglnr ); 3 Geen Sie von den ältesten Mitgliedern MitglNr und Nme us Self-Join zwischen Mitglieder, woei linkes Alter größer ist ls rechtes Dmit sind lle, die rechts stehen, nicht die ältesten Wir ziehen sie dher von der Gesmt-Menge n Mitgliedern und es leien die ältesten Der erneute Join mit Mitglieder ergit die pssenden Attriute π MitglNr (Mitglieder) π MitglNr m2 ( σ 1 > 2 ( π m1 MitglNr, 1 Alter(Mitglieder) π m2 MitglNr, 2 Alter(Mitglieder) ) ) π MitglNr,Nme (Mitglieder) Alterntivlösung: Die Idee ist es, zuerst Mitgliedsnummer und Nme ller Mitglieder zu erechnen, die nicht ältestes Mitglied des Vereins sind (ähnlich wie oen) Dnn zieht mn diese Tupel von der Menge ller Tupel von Mitgliedsnummern und Nmen Mn kriegt dnn: Hierei gelte: π MitglNr,Nme (Mitglieder) π MitglNr MN2,Nme(Exp) Exp = σ 1 > 2 (π 1 Alter(Mitglieder) π MN2 MitglNr, 2 Alter,Nme(Mitglieder)) SELECT MitglNr, NmeMitglied FROM Mitglieder m WHERE NOT EXISTS ( SELECT * FROM Mitglieder elter WHERE elteralter > malter ); Formulieren Sie die folgenden zwei Anfrgen nur in SQL: 4 Welche Ateilung ht die meisten Mitglieder, die isher noch nichts gezhlt hen? 4

Pflichtmodul Informtionssysteme Lösungsskizze zu Üungsltt Nr 13 select mteilung from mitglieder m where not exists ( select * from zhlungen z1 where z1mitglnr=mmitglnr) group y mteilung hving count(*) >= ll( select count(*) from mitglieder m1 where not exists ( select * from zhlungen z where zmitglnr = m1mitglnr) group y m1teilung); Idee: Wähle die Ateilungen, wo die Anzhl der Mitglieder, die noch nichts gezhlt hen (ds sind die, deren Mitgliedsnummer nicht in der Telle Zhlungen uftucht), größer oder gleich der entsprechenden Anzhl jeder einzelnen Ateilung ist Eine üersichtlichere Lösung sierend uf Views: CREATE VIEW N AS SELECT MAteilung FROM Mitglieder M WHERE NOT EXISTS ( SELECT * FROM Zhlungen Z WHERE MMitglNr = ZMitglNr ); SELECT Ateilung FROM N GROUP BY Ateilung HAVING COUNT(*) >= ALL ( SELECT COUNT(*) FROM N GROUP BY Ateilung ); 5 Geen Sie für lle Mitglieder, die noch nicht vollständig ezhlt (unter Eineziehung ller ereits geleisteten Zhlungen) hen, Nme und den noch verleienden Betrg us select mnmemitglied, etrg - ggesmt s verleiend from mitglieder m, eitrege, (select mitglnr, sum(etrg) s gesmt from zhlungen group y mitglnr) g where gmitglnr = mmitglnr nd etrg > ggesmt nd ltermitglied=mltermitglied; 5

Pflichtmodul Informtionssysteme Lösungsskizze zu Üungsltt Nr 13 Aufge 4 (Trnsktionskontrolle) Untersuchen Sie die folgenden Schedules uf Serilisierrkeit Geen Sie dzu den vollständigen Ahängigkeitsgrphen n und eschriften Sie die Knten mit llen vorkommenden Konflikten Geen Sie, flls möglich, einen äquivlenten seriellen Schedule n () r 2 (x), r 3 (y), w 2 (x), r 4 (x), w 3 (z), r 1 (z), w 1 (z), r 4 (z), w 4 (x), r 2 (y), w 4 (z), w 2 (y) () r 3 (u), r 2 (v), w 3 (u), r 2 (u), r 1 (w), w 2 (v), r 1 (v), r 3 (u), r 3 (w), r 2 (u), w 3 (w), w 2 (u) Lösung: 1 r 2 (x), r 3 (y), w 2 (x), r 4 (x), w 3 (z), r 1 (z), w 1 (z), r 4 (z), w 4 (x), r 2 (y), w 4 (z), w 2 (y) Konfliktreltion: r 2 (x) w 4 (x) Lel für Knte 1 r 3 (y) w 2 (y) Lel für Knte 2 w 2 (x) r 4 (x) Lel für Knte 1 w 2 (x) w 4 (x) Lel für Knte 1 w 3 (z) r 1 (z) Lel für Knte 3 w 3 (z) w 1 (z) Lel für Knte 3 w 3 (z) r 4 (z) Lel für Knte 4 w 3 (z) w 4 (z) Lel für Knte 4 r 1 (z) w 4 (z) Lel für Knte 5 w 1 (z) r 4 (z) Lel für Knte 5 w 1 (z) w 4 (z) Lel für Knte 5 Konfliktgrph: T 2 T 4 (Knte 1) T 3 T 2 (Knte 2) T 3 T 1 (Knte 3) T 3 T 4 (Knte 4) T 1 T 4 (Knte 5) Der Grph ist zyklisch Also git es konflikt-äquivlente serielle Ausführung, zb: T 3, T 1, T 2, T 4 6

Pflichtmodul Informtionssysteme Lösungsskizze zu Üungsltt Nr 13 2 r 3 (u), r 2 (v), w 3 (u), r 2 (u), r 1 (w), w 2 (v), r 1 (v), r 3 (u), r 3 (w), r 2 (u), w 3 (w), w 2 (u) Konfliktreltion: r 3 (u) w 2 (u) Lel für Knte 1 w 3 (u) r 2 (u) Lel für Knte 1 w 3 (u) w 2 (u) Lel für Knte 1 r 1 (w) w 3 (w) Lel für Knte 2 w 2 (v) r 1 (v) Lel für Knte 3 Konfliktgrph: T 3 T 2 (Knte 1) T 1 T 3 (Knte 2) T 2 T 1 (Knte 3) Der Grph ht einen Zyklus Also ist der Schedule nicht konflikt-serilisierr Aufge 5 (Schemnormlisierung) Gegeen seien ds Reltionenschem sch(r) = V W XY Z sowie die zugehörige Menge F = {Z X, V W, X Y V, W V } von funktionlen Ahängigkeiten 1 Geen sie einen Schlüssel für sch(r) n! 2 Zerlegen Sie R mit Hilfe des BCNF-Zerlegungslgorithmus us der Vorlesung, sodss lle resultierenden Tellen in BCNF vorliegen Geen Sie vor jedem Durchluf der while-schleife sowie nch Aluf des Algorithmus die Schemt ller erzeugten Tellen n Listen Sie dei uch lle zugehörigen Funktionlen Ahängigkeiten uf Lösung: Wir hen sch(r) = V W XY Z und F = {Z X, V W, X Y V, W V } Ein Schlüssel für R ist Z, d durch {Z X} X geleitet werden knn, gefolgt von Y V durch {X Y V }, und W durch {V W } D immer {Z Z} gilt, knn durch Kenntnis von Z jedes Attriut in sch(r) geleitet werden, worus folgt ds Z ein Schlüssel ist Die drei funktionlen Ahängigkeiten V W, X Y V und W V verletzen die BCNF- Eigenschft Wir listen lle Möglichkeiten uf, den Nichtdeterminismus ufzulösen (es genügt der Lösungsweg zu einer Menge von Schemt in BCNF!!!): 7

Pflichtmodul Informtionssysteme Lösungsskizze zu Üungsltt Nr 13 1 Entlng V W zerlegen Es ergit sich die Menge: {(V W, {V W, W V }), (V XZY, {X Y V, Z X})} Beim zweiten Schem verletzt die Ahängigkeit X Y V die Bedingung () Entlng X Y V zerlegen Es ergit sich die Menge: {(V W, {V W, W V }), (XY V, X Y V ), (ZX, Z X)} Alle Schemt sind in BCNF 2 Entlng W V zerlegen Es ergit sich die Menge: {(V W, {V W, W V }), (W XZY, {X Y, Z X})} Beim zweiten Schem verletzen eide Ahängigkeiten die Bedingung () Entlng X Y zerlegen Es ergit sich die Menge: {(V W, {V W, W V }), (XY, {X Y }), (W XZ, {Z X})} Beim letzten Schem verletzt Z X die Bedingung i Entlng Z X zerlegen Es ergit sich die Menge: {(V W, {V W, W V }), (XY, {X Y }), (ZX, {Z X}), (W Z, )} Alle Schemt sind in BCNF () Entlng Z X zerlegen Es ergit sich die Menge: {(V W, {V W, W V }), (ZX, {Z X}), (W ZY, )} Alle Schemt sind in BCNF 3 Entlng X Y V zerlegen Es ergit sich die Menge: {(XY V, {X Y V }), (W XZ, {Z X})} Beim zweiten Schem verletzt Z X die Bedingung () Entlng Z X zerlegen Es ergit sich die Menge: {(XY V, {X Y V }), (ZX, {Z X}), (W Z, )} Alle Schemt sind in BCNF Aufge 6 (XML-Dtennken / XPth) Gegeen sei ein XML-Frgment, drgestellt hier ls Bum: 8

Pflichtmodul Informtionssysteme Lösungsskizze zu Üungsltt Nr 13 1 Nummerieren Sie lle Knoten in document order Die Document Order ergit sich us einer Tiefensuche (von links nch rechts) im Bum Dies entspricht der Reihenfolge der öffnenden XML-Tgs Wir erhlten: 1 2 8 9 15 16 3 6 10 11 14 17 4 5 7 12 13 18 19 20 21 2 Nehmen Sie n, ds context item ist n den Wurzelknoten (mit Nmen ) des Frgments geunden Welche(r) Knoten wird durch folgende XPth-Ausdrücke zurückgeliefert? Geen sie für jeden XPth Ausdruck die Zwischenschritte in derselen Nottion wie uf Folie 311 und 312 n, die sich durch die Anwendung des / Opertors ergeen! Geen sie ls Ergenisknoten die Knotennummer ezüglich der document order n! () /descendnt::[] Selects ll nodes on level elow the root-node (not the root node itself) with lel tht hve child with lel : Sme s /descendnt::[child::] (diese kürzende Schreiweise findet sich uf Folie 327: Wenn der xis:: -Teil fehlt, wird er stndrdmäßig durch child:: ersetzt) Die Zwischenschritte sind wie folgt: i Die descendnt Achse liefert ls Zwischenergenis die folgenden Knoten zurück: /descendnt::* = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21} ii Dvon qulifizieren sich für den Nodetest die folgenden Knoten: /descendnt:: = (2, 4, 5, 6, 9, 12, 13, 17, 19, 21) 9

Pflichtmodul Informtionssysteme Lösungsskizze zu Üungsltt Nr 13 iii Dvon suchen wir die Knoten, die ein ls Kind hen: /descendnt::[child::] = (2, 6, 9, 17) () /descendnt::[child::[2]] Selects ll nodes on level elow the root-node (not the root node itself) with lel hving second child with lel Die Zwischenschritte sind wie folgt: i Die descendnt Achse liefert ls Zwischenergenis die folgenden Knoten zurück: /descendnt::* = (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21) ii Dvon qulifizieren sich für den Nodetest die folgenden Knoten: /descendnt:: = (2, 4, 5, 6, 9, 12, 13, 17, 19, 21) iii Dvon suchen wir die Knoten, die ein ls Kind hen: /descendnt::[child::] = (2, 6, 9, 17) iv Druf wenden wir ds Prädikt 2 n, die zwei ls Kindknoten hen: (c) ///[ncestor::] Corresponds to: /descendnt::[child::[2]] = (9, 17) /child::/descendnt-or-self::node()/child::[ncestor::] (Note tht // expnds to /descendnt-or-self::node()/, cf slide 327) This expression selects ll nodes leled in the rightmost sutree: Die Zwischenschritte sind wie folgt: i Die child Achse liefert ls Zwischenergenis die folgenden Knoten zurück: /child = (2, 8, 9, 15, 16) 10

Pflichtmodul Informtionssysteme Lösungsskizze zu Üungsltt Nr 13 ii Dvon qulifizieren sich für den Nodetest die folgenden Knoten: /child:: = (8, 15, 16) iii Dvon holen wir lle Folgeknoten, den ktuellen Knoten jeweils mit eingeschlossen: /child::/descendnt-or-self::node() = (8, 15, 16, 17, 18, 19, 20, 21) iv Dvon suchen wir die Knoten, die ls Kind ein hen: /child::/descendnt-or-self::node()/child:: = (17, 19, 21) v Druf wenden wir ds Prädikt ncestor:: n, welches testet, o ein oerhl der Hierrchie vorkommt: /child::/descendnt-or-self::node()/child::[ncestor::] = (17, 19, 21) (d) /descendnt-or-self::/descendnt::[2] Selects ll the second descendnt with lel of ll nodes with lel (this time the root is included ecuse of the use of descendnt-or-self:: insted of descendnt::): Die Zwischenschritte sind wie folgt: i Die descendnt-or-self Achse liefert ls Zwischenergenis die folgenden Knoten zurück: /descendnt-or-self::* = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21) ii Dvon qulifizieren sich für den Nodetest die folgenden Knoten: /descendnt-or-self:: = (1, 2, 4, 5, 6, 9, 12, 13, 17, 19, 21) iii Die descendnt Achse liefert ls Zwischenergenis die folgenden Knoten zurück: /descendnt-or-self::/descendnt::* = (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21) iv Der Ausdruck descendnt:: liefert dnn nur die Folgeknoten, die ein hen: /descendnt-or-self::/descendnt:: = (3, 7, 8, 10, 11, 14, 15, 16, 18, 20) v Der finle XPth Ausdruck liefert nun die Knoten zurück, die die zweiten Kindknoten der vorherigen Knoten sind (Dei entfllen die Knoten, die keine zwei Kindknoten hen, zu echten ist uch, dss ds trnsitiv gilt: zb ist von Knoten zwei der zweite Kindknoten 7, und Kind 7 ist der Enkel von 2): /descendnt-or-self::/descendnt::[2] = (7, 11, 20) 11