VL 2.2 Deklarativer Zugriff auf semistrukturierte Daten Flashcards

1
Q

Wo bin ich im relationalen Datenmodell beschränkt und was kann ich zum Beispiel im semistrukturierten Modell machen?

A

Bsp Folie 2

Restaurants haben beliebig viele Adressen,

Adressen sind manchmal Blätter des Baums, haben manchmal aber auch explizite Struktur,

zipcode ist manchmal direkter Bestandteil von restaurant, manchmal Bestandteil von address.

ALSO: das geht alles nicht (oder nicht gut)
–> im rDM muss ich mich beim Schemaentwurf entscheiden

#mehrere Adressen einem Restaurant zugeordnet
#Adressen unterschiedlich strukturiert
#Manchmal Struktur explizit
#Unterschiedliche Darstellung von unterschiedlichen Adressen

Fazit: Wir sind flexiebler im sDM aber Informationsbedürfnisse sind schwieriger zu befriedigen! Stichwort Anfragen!!

Man muss aufpassen wie man seine Anfrage formuliert

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Welche Anforderungen hat man an Anfragesprachen?

A
#Ausdrucksmächtigkeit,
#Semantik,
#Zusammensetzbarkeit (Referentielle Transparenz), 
#Schema, 
#Einfache Erzeugbarkeit von Anfragen aus Programmen.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Erkläre Anforderung an Anfragesprachen Ausdrucksmächtigkeit!

A

Mindestens das, was Sprache für das relationale Modell kann. –> rDM (Selektion, Projektion, Join, Union etc. insgesamt 6 o. 7)

!=Sprache sollte ausdrucksmächtig sein, aber nicht zu ausdrucksmächtig. –> Grund: Sonst kann nicht sichergestellt werden, dass eine effiziente Ausführung möglich ist

Denn haben wir viele Operatoren, dann haben wir auch viele Optimierungsmöglichkeiten

Folge: Optimierungen sind teilweise nicht möglich. Illustration auf folgender Folie. Keine Garantien für Ausführungszeiten.

Problem bei vielen Operatoren 14 oder 30:
Schwierig alle Optimierunge, die sinnvoll sind zu erkennen und zu implementieren!

–> Daher wollen wir nicht zu viel Ausdrucksmächtigkeit
Trade off : Ausdrucksm. Möglichkeit der Implementierung und Effizienz

Bsp. Folie 8 Upgrade!

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Erkläre Anforderung an Anfragesprachen Semantik!

A

Genaue Definition der Semantik ist erforderlich

–> Festlegen was genau Ausdrücke in der Anfragesprache bedeuten

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Erkläre Anforderung an Anfragesprachen “Einfache Erzeugbarkeit von Anfragen aus Programmen”!

A

Beispiel –> in Programmiersprache string erzeugen mit “SELECT * …” und den String in Datenbank geben.

** Anmerkung: Ist keine Eigenschaft der Anfragesprache, sonder der Umgebung, also hier Programmiersprache

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Erkläre Anforderung an Anfragesprachen Schema!

A

Das zur Verfügung stehende Schema möglichst gut ausgenutzt werden soll um die Anfrage schnell auszuführen.

** Anmerkung: Keine Eigenschaft der Anfragesprache, sondern der Implementierung

–> Bsp: Folie 12 Unbenannt1

Anfrage:

select X.title
from biblio.* X
where X.*.zip=”12345”

Angenommen, Schema sagt uns: Nur book-Elemente direkt unter der Wurzel enthalten zip-Element, zip stets direkt unter address-Element unter book-Element. Illustration

ALSO: Die * können also dann gefahrlos durch Konkrete Werte ersetzt werden –> Anfrage wird somit effizienter, das weniger Pfade abgelaufen werden müssen!

—> Abstraktere Anfragen können durch Konkrete mit Hilfe des Schemas ersetzt werden!

Sache der Implementierung deshalb, weil beide Anfragen, sie vage als auch die konkrete richtig sind, aber die Implementierung anders

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Erkläre Anforderung an Anfragesprachen Zusammensetzbarkeit(Referenzielle Transparenz)!

A

Anfrage in SQL liefert eine Relation zurück, diese kann weiterverarbeitet werden!

Anfragen auf Sichten nichts anderes als geschachtelte SQL Anfrage:

create view highIncomeMA
as select Mitarbeiter, Gehalt
from MGA
where Gehalt > 20

View dann verwendbar wie ‚normale‘ Relation, z. B.: select *
from highIncomeMA
where Gehalt < 50

Äquivalent zu:
select *
from (select Mitarbeiter, Gehalt from MGA where Gehalt > 20)
where Gehalt < 50

Kein Unterschied ob Anfrage auf physische Relation oder Sicht = Referenzielle Transparenz

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Wie sieht es mit Pfaden im OEM-Kontext aus?

A

In OEM –> Kanten sind beschriftet

In XML –> Elemente sind beschriftet

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Was ist die Unterscheidung zwischen absoluten und relative Pfadausdrücken?

A

Relativer Pfadausdruck

– Auswertung beginnt an aktueller Position im Dokument; Ergebnis also kontextabhängig.

Absoluter Pfadausdruck

– Auswertung beginnt an absoluter Position im Dokument. Ergebnis also stets dasselbe, unabhängig vom Kontext.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

XPath Beispiele!

A

da

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Wie werden Namensräumen in XPath Rechnung gertragen? Gibt es noch einer lokale Möglichkeit?

A

Möglichkeit mit Prefix abzufragen!

mein_namensraum:* Alle Elemente in “mein_namensraum”

Anders herum gibt es auch die Möglichkeit ausschließlich sog. “Local Names” zu betrachten

Beispiel-Dokument: blablubb

D. h. Elementname T aus unterschiedlichen Namespaces. Pfadausdruck, der alle Elemente mit Namen T zurückgibt:

//.[local-name(.) = “T”]

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Wie sind die Location Paths in XPath aufgebaut?

A

Location Path besteht aus Location Steps,
Location Step besteht aus

Achse,
‘Node Test’,
Prädikaten.

** Node Test –> Ausgabe einer Liste keiner Menge –> Reihenfolge dieser Elemente in der Liste, ist die wenn wir in der Tiefensuche durch Dokument gehen wie sie anzutreffen sind

–> wir lassen uns das 42 angetroffene figure Element ausgeben

Beispiel: /descendant::figure[position() = 42]

selektiert das 42. Bild im Dokument

Folie 29

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Warum sind Ergebnisse von XPath dupplikatfrei?

A

Naja, Die Elemente, auch wenn sie in als Ergebnisses eines Pfadausdruckes Duplikate generieren würden. Werden in der Reihenfolge ausgegeben in der sie im Baum vorkommen –> und im Baum sind sie Duplikatfrei

Bsp einfüge F30

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Kann man aus einem XML Dokument mit Hilfe von XPath eine andere Struktur ausgeben lassen?

A

Nein, eine Neuanordnung nur mit XPath ist nicht möglich! Aber in Verbindung mit XQuery!

Das zeigt die Beschränktheit von XPath!

XPath entspricht nicht der Anforderung “Abgeschlossenheit” an eine Abfragesprache

D.h. Eine Anfragesprache soll so sein, dass die Resultate selbst wieder Instanzen des Datenmodells sind –> hier nicht gegeben, da wir nur eine Liste an Elementen ausgeben, statt Dokument mit expliziter Struktur

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Warum sind polymorphe Konsistenzbedingungen in XML Schema umfangreicher als im rDM am Beispiel Eindeutigkeit?

Und (2) wie ist das Vorgehen

A

im rDM –> sind es Tupel, die eindeutig zu sein sind!

im sDM –> Elemente auf welcher Ebene die eindeutig zu sein sind?

Die spezifikation eines Uniqueness Constraints ist im XML-Fall komplexer, da sich die Ebenen des Elementes unterscheiden können

(2)

Ziel: Bestimmte Werte (bzw. Kombinationen von Werten) sollen eindeutig sein (Uniqueness Constraint).

Schritte:

(a) Identifizierung der Elemente, die eindeutig sein sollen,
(b) Identifizierung des oder der Attributwert(e) dieser Elemente, die eindeutig sein sollen,
(c) Festlegung, innerhalb welchen Kontexts die Elemente eindeutig sein sollen.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Zeige eine polymorphe Konsistenzbedingung (Uniqueness) in XML Schema an einem Beispiel!

A

einfügen F42

17
Q

Was ist neben der fehlenden Möglichkeit die Ergebnisse in Datenmodellstruktur auszugeben auch nicht vorhanden mit XPath? Zusammenfassung was Kann XPath was nicht!

A

XPath – Zusammenfassung, Ausblick

Was wurde erreicht bis hierhin?

Sprache für Zugriffe entlang Pfaden,
deklarativ.

Verwendung in anderen XML-basierten Standards, z. B. XML Schema.

Keine vollständige Querysprache:

Joins, wie besprochen,
strukturierte Ergebnisse,
Rekursion.