Interoperable Informationssysteme - 1 Klemens Böhm Datenmodell 1: OEM.

Slides:



Advertisements
Ähnliche Präsentationen
8. Termin Teil B: Wiederholung Begriffe Baum
Advertisements

Programmierung 1 - Repetitorium WS 2002/2003 Programmierung 1 - Repetitorium Andreas Augustin und Marc Wagner Homepage:
Zur Rolle der Sprache bei der Modellierung von Datenbanken
Algebraische Zahlen: Exaktes Rechnen mit Wurzeln
Vorlesung: 1 Betriebliche Informationssysteme 2003 Prof. Dr. G. Hellberg Studiengang Informatik FHDW Vorlesung: Betriebliche Informationssysteme Teil3.
Datenmodellierung Externe Phase Informationsstruktur
Graphen Ein Graph ist eine Kollektion von Knoten und Kanten. Knoten sind einfache Objekte. Sie haben Namen und können Träger von Werten, Eigenschaften.
Frame-Logik Eine Einführung Andreas Glausch.
CPCP Institute of Clinical Pharmacology AGAH Annual Meeting, 29. Februar 2004, Berlin, Praktischer Umgang mit den Genehmigungsanträgen gemäß 12. AMG Novelle.
Anmerkungen zu XML Im September 2000 Entwicklung/Anspruch von XML
7. Natürliche Binärbäume
R. Der - Vorlesung Algorithmen und Datenstrukturen (Magister)
Scratch Der Einstieg in das Programmieren. Scatch: Entwicklungsumgebung Prof. Dr. Haftendorn, Leuphana Universität Lüneburg,
IMS Universität Stuttgart 1 Einführung in XML Hannah Kermes HS: Elektronische Wörterbücher Do,
FH-Hof Extensible Markup Language Richard Göbel. FH-Hof Extensible Markup Language XML XML ist universeller Ansatz für die Strukturierung von Zeichenketten.
Java: Objektorientierte Programmierung
Sortierverfahren Richard Göbel.
Java: Dynamische Datentypen
Sortierverfahren Richard Göbel.
Indirekte Adressierung
Baumstrukturen Richard Göbel.
Bäume als Datenmodelle
DOM (Document Object Model)
WS Algorithmentheorie 05 - Treaps Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (17 – Bäume: Grundlagen und natürliche Suchbäume) Prof. Th. Ottmann.
© 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie 2.1.
Grundkurs Theoretische Informatik, Folie 2.1 © 2006 G. Vossen,K.-U. Witt Grundkurs Theoretische Informatik Kapitel 2 Gottfried Vossen Kurt-Ulrich Witt.
Fakten, Regeln und Anfragen
IS: Datenbanken, © Till Hänisch 2000 CREATE TABLE Syntax: CREATE TABLE name ( coldef [, coldef] [, tableconstraints] ) coldef := name type [länge], [[NOT]NULL],
SQL/XML. © Prof. T. Kudraß, HTWK Leipzig 2 2 Motivation Speicherung von XML in allen großen kommerziellen DBMS vorhanden proprietäre Lösungen für die.
Prof. Dr. T. Kudraß1 Relationenkalkül. Prof. Dr. T. Kudraß2 Relationenkalkül Zwei Ausprägungen: Tupelrelationenkalkül (TRK) und Domänenrelationenkalkül.
Vorlesung: 1 Betriebliche Informationssysteme 2003 Prof. Dr. G. Hellberg Studiengang Informatik FHDW Vorlesung: Betriebliche Informationssysteme Teil2.
MMQL – Multimedia Query Language Eine Anfragesprache für Multimedia-Ähnlichkeitsanfragen Christian Mantei.
Übung Datenbanksysteme SQL-Anfragen (2)
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik I Vorlesung Listen-
Vererbung Spezialisierung von Klassen in JAVA möglich durch
PKJ 2005/1 Stefan Dissmann Ausblick Es fehlen noch: Möglichkeiten zum Strukturieren größerer Programme Umgang mit variabler Zahl von Elementen Umgang mit.
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
PKJ 2005/1 Stefan Dissmann Zusammenfassung Bisher im Kurs erarbeitete Konzepte(1): Umgang mit einfachen Datentypen Umgang mit Feldern Umgang mit Referenzen.
Wir müssen also überlegen: Implementierung der Knoten, Implementierung der Kanten, daraus: Implementierung des Graphen insgesamt. Annahme: die Knoteninhalte.
RelationentheorieObjektorientierte Datenbanken AIFB SS Das ODMG-Objektmodell vs. relationales Modell (1/9) ODMG-Objektmodell Literal_type Atomic_literal.
Datenbankentwurfsprozess
XQuery-Anfragen Spezifikations- und Selektionsmethoden für Daten und Dienste Markus Mauch.
Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering SS 2009Folie 1 Objektmodellierung Objekte und Klassen Ein Objekt ist ein Exemplar.
20:00.
Die Grundterminologie
DTD – Deklaration von Elementen Beschreibt die Einschränkungen des Inhalts eines Elements Syntax: Einziger atomarer Typ: #PCDATA (Parsed Character DATA)
Interoperable Informationssysteme - 1 Klemens Böhm Systeme 1: Materialisierungen und Indexstrukturen für semistrukturierte Daten.
Interoperable Informationssysteme
Vorlesung #4 Überführung des ER-Modells in das relationale Modell
WS 2013/14 Datenbanksysteme D0 15:15 – 16:45 R Vorlesung #5 SQL (Teil 2)
Vorlesung #4 Überführung des ER-Modells in das relationale Modell
Analyse von Ablaufdiagrammen
HORIZONT 1 XINFO ® Das IT - Informationssystem PL/1 Scanner HORIZONT Software für Rechenzentren Garmischer Str. 8 D München Tel ++49(0)89 / 540.
Algorithmen und Datenstrukturen Übungsmodul 8
MINDREADER Ein magisch - interaktives Erlebnis mit ENZO PAOLO
1 (C)2006, Hermann Knoll, HTW Chur, FHO Quadratische Reste Definitionen: Quadratischer Rest Quadratwurzel Anwendungen.
Schutzvermerk nach DIN 34 beachten 20/05/14 Seite 1 Grundlagen XSoft Lösung :Logische Grundschaltung IEC-Grundlagen und logische Verknüpfungen.
Eike Schallehn, Martin Endig
Eike Schallehn, Martin Endig
1 Polymorphe Konsistenzbedingungen (1) Polymorphe Konsistenzbedingungen legen fest, welche Arten von Zustandsbeschränkungen nach einer Konkretisierung.
Semistructured Data Autor: Stefan Josten 21. Juli 1999 Seminar: Intelligenz im Intranet Intelligenz im Intranet Thema:
7. Formale Sprachen und Grammatiken
Objekte und Literale ODMG-Objektmodell kennt zwei Arten von Datenelementen: Literale: Identität ist ausschließlich durch Wert gegeben. Nur maximal eine.
Hauptseminar Web-Services und verteilte Datenbanken Thema XML, DTDs und XML-Schema XML, DTDs und XML-Schema - Stefan Kurz, 25. April 2003.
1 Medienpädagogischer Forschungsverbund Südwest KIM-Studie 2014 Landesanstalt für Kommunikation Baden-Württemberg (LFK) Landeszentrale für Medien und Kommunikation.
Monatsbericht Ausgleichsenergiemarkt Gas – Oktober
1 6.4 Verwaltung semistrukturierter Daten - was ist das? Datenverwaltung für XML-Dokumente - Daten in XML-Gewand - eigentlich XML-Dokumente - Abbildung.
1 StatiX: Making XML Count J.Freire, J.R.Haritsa, M.Ramanath, P.Roy, J.Siméon: StatiX: Making XML Count ACM SIGMOD, June 2002 Ann Früchtl
Document Type Definitions (DTDs) Marko Harasic Freie Universität Berlin Institut für Informatik Netzbasierte Informationssysteme
 Präsentation transkript:

Interoperable Informationssysteme - 1 Klemens Böhm Datenmodell 1: OEM

Interoperable Informationssysteme - 2 Klemens Böhm Semistrukturierte Daten (1) Was sind semistrukturierte Daten? l Daten, die nicht zu einem apriori definierten Schema konform sein müssen (bzw. können Schemata so wenig restriktiv sein, dass sie unwichtig werden - Beispiel: HTML-DTD), l selbstbeschreibende Daten, Einleitung/ Motivation OEM Definitionen

Interoperable Informationssysteme - 3 Klemens Böhm Semistrukturierte Daten (2) l Daten mit üblicherweise irregulärer Struktur: u Daten können fehlen, u ähnliche Konzepte werden durch unterschiedliche Typen repräsentiert, –NAME flach oder FIRSTNAME, LASTNAME, –Vorgesetzter: Referenz oder Name –Zweitname: CHAR vs. String Mengen können heterogen sein, u Struktur ist nicht vollständig bekannt. Beispiel: Jörg – Teil des Vornamens oder Zweitname? Einleitung/ Motivation OEM Definitionen

Interoperable Informationssysteme - 4 Klemens Böhm Semistrukturierte Daten - Motivation l Daten lassen sich i.a. nicht problemlos in Tabellen abbilden, Strukturierung ist aber trotzdem wünschenswert. Beispiel: Wörterbuch-Einträge u Optionale Bestandteile, u Wiederholungen von Strukturelementen, u Reihenfolge der Elemente vielleicht relevant. l Man möchte die Struktur von Daten nur teilweise explizit machen. Beispiel: Bestellungen haben strukturierten Anteil, aber auch frei definierbare Zusätze. Einleitung/ Motivation OEM Definitionen

Interoperable Informationssysteme - 5 Klemens Böhm Semistrukturierte Daten - Motivation (2) l Warum sind Daten nicht stets explizit strukturiert? u nicht erforderlich, u nicht eindeutig, u nicht bekannt, u Erstellung der Strukturierung zu aufwendig. l Man will Modell, mit dem explizite Strukturierung möglich, aber nicht obligatorisch ist. Einleitung/ Motivation OEM Definitionen

Interoperable Informationssysteme - 6 Klemens Böhm Semistrukturierte Daten - Fallunterscheidung Semistrukturierte Daten - unterschiedliche Verwendungen des Begriffs: l Schema existiert, Semistrukturiertheit heisst nur Irregularität oder teilweise strukturiert, teilweise nicht, Beispiel: SGML-/XML-DTDs l kein Schema, aber Struktur der Daten eindeutig erkennbar, z.B. valide Dokumente a la XML, l Struktur nicht einwandfrei identifizierbar, kann z.B. in HTML-Dokumenten vorkommen (pathologischer Fall). Einleitung/ Motivation OEM Definitionen

Interoperable Informationssysteme - 7 Klemens Böhm Object Exchange Model (OEM) l Forschungsergebnis der Stanford University, m.W. keine entsprechenden Produkte, l Objekt als elementares Bestandteil. l Jedes Objekt hat OID und Wert: u Atomarer Wert, z.B. int, string, u komplexer Wert: Menge von Subobjekten, Verknüpfung mit Parent durch Label. l OEM-Objekt heisst: Objekt + Subobjekte. Einleitung/ Motivation OEM Definitionen

Interoperable Informationssysteme - 8 Klemens Böhm OEM - Beispiel Bar Restaurant Name Entree Telefon Inhaber Manager Name Entree Chili Burger Klein Darbar Lamm Rind Restaurant Plus Mehrere Parents und Zykel sind erlaubt. Aggregation Hierarchies Einleitung/ Motivation OEM Definitionen

Interoperable Informationssysteme - 9 Klemens Böhm Pfade im OEM-Kontext l Label Path eines OEM Objekts o - Folge von Labels, separiert durch Punkte, l 1.l 2 …l n, so dass man von o aus den Pfad (e 1, …, e n ) traversieren kann, und Kante e i hat Label l i. l Data Path eines OEM Objekts o - Alternierende Folge von Labels und OIDs, separiert durch Punkte, l 1.o 1.l 2.o 2 …l n.o n, so dass man von o aus den Pfad (e 1, …, e n ) durch Objekte (x 1, …, x n ) traversieren kann, Kante e i hat Label l i, und Objekt x i hat OID o i. l Ein Data Path d ist Instanz eines Label Paths l, wenn die Folgen der Labels übereinstimmen. Alle Instanzen von Restaurant.Entrée? Einleitung/ Motivation OEM Definitionen

Interoperable Informationssysteme - 10 Klemens Böhm Target Set l Das Target Set in einem OEM Objekt s von einem label path l von s ist die Menge t ={o|l 1.o 1.l 2.o 2 …l n.o ist Instanz von l} Target Set von Resaurant.Entrée? Label Paths des Target Sets {8}? l Label Paths eines Target Sets sowie Label Paths einer Menge von Label Paths – Beispiele: u L({8}) = {Restaurant.Inhaber, Restaurant.Manager}, u L({Restaurant.Inhaber}) = {Restaurant.Inhaber, Restaurant.Manager}, Einleitung/ Motivation OEM Definitionen

Interoperable Informationssysteme - 11 Klemens Böhm Schema l Sehr vage Definition im folgenden; der Vollständigkeit halber… l Ein Schema ist eine endliche Menge von Namen. l Eine Instanz eines Schemas besteht aus u einem endlichen gelabelten Graphen (V a V c,E) –V a enthält die atomic objects, –V c enthält die complex objects, –Labels der Kanten sind Strings, u Abbildung der Namen zu Knoten, u Abb. von atomic objects zu atomaren Werten. Ausserdem gilt: u keine ausgehenden Kanten von atomic objects, u jd. Knoten ist von einem mit Namen erreichbar. l Was wäre ein Schema für das Restaurant- Beispiel? Einleitung/ Motivation OEM Definitionen

Interoperable Informationssysteme - 12 Klemens Böhm Queries 1: Deklarativer Zugriff auf semistrukturierte Daten

Interoperable Informationssysteme - 13 Klemens Böhm OEM - Datenbank restaurant category name address category name address gourmet Chef Chu Mountain View restaurant street city zipcode El Camino Real Palo Alto name Vietna- mese Saigon Menlo Park cheap fast food McDonalds price category price zipcode nearby Guide Anforde- rungen Query- sprache Semantik

Interoperable Informationssysteme - 14 Klemens Böhm Unregelmässigkeiten in der Beispiel-Datenbank und Zsh. zum deklarativen Zugriff l Restaurants haben beliebig viele Adressen, l Adressen sind manchmal Strings, haben manchmal aber auch explizite Struktur, l zipcode kann String oder Integer sein, l zipcode ist manchmal direkter Bestandteil von restaurant, manchmal Bestandteil von address. l Man kann bzw. möchte Struktur der Daten nicht immer genau spezifizieren, l manchmal haben die Daten aber Struktur, und sie ist dem Benutzer bekannt. Anforde- rungen Query- sprache Semantik

Interoperable Informationssysteme - 15 Klemens Böhm Anforderungen Anforderungen gemäss [ABS00]: l Ausdrucksmächtigkeit, l Semantik, l Zusammensetzbarkeit, l Schema, l Einfache Erzeugung von Anfragen aus Programmen. Anforde- rungen Query- sprache Semantik

Interoperable Informationssysteme - 16 Klemens Böhm Ausdrucksmächtigkeit l Mindestens das, was Sprache für das relationale Modell kann. l Sprache sollte ausdrucksmächtig sein, aber nicht zu ausdrucksmächtig. l Denn: u Optimierungen sind teilweise nicht möglich, u keine Garantien für Ausführungszeiten. Anforde- rungen Query- sprache Semantik

Interoperable Informationssysteme - 17 Klemens Böhm Semantik Genaue Definition der Semantik ist erforderlich. Einfache Erzeugung von Anfragen aus Programmen karg, aber einfach Anforde- rungen Query- sprache Semantik

Interoperable Informationssysteme - 18 Klemens Böhm Schema l Structure-Consciousness l Keine Eigenschaft der Querysprache, sondern der Implementierung. Anforde- rungen Query- sprache Semantik

Interoperable Informationssysteme - 19 Klemens Böhm Zusammensetzbarkeit l Query sollte auf anderes Queryergebnis anwendbar sein. l Konsequenz auf der semantischen Ebene: Queryergebnis sollte wieder Instanz des Ausgangsdatenmodells sein, l Beispiel: Querysprache LOREL erzeugt Relationen aus OEM-Instanz, d.h. LOREL genügt der Anforderung nicht. l Konsequenz auf der syntaktischen Ebene: Referentielle Transparenz Name, Variable für semistrukturierte Daten Ausdruck Anforde- rungen Query- sprache Semantik

Interoperable Informationssysteme - 20 Klemens Böhm Beispiel l Textuelle Beschreibung: Finde die Adressen aller Restaurants mit PLZ (D.h. man sucht address-Objekt, das zipcode-Objekt enthält. Zipcode direkt unter Restaurant wäre – in diesem Beispiel – nicht OK.) l Query: select a: X.address from Guide.restaurant X where X.address.zipcode = l Anmerkung: Vorgestellt wird eine spezielle Querysprache, andere Semantik wäre denkbar (Beispiel s.o.). Anforde- rungen Query- sprache - Einstieg - Pfadausdr. - Coercion - komplexe Ergebnisse - Label-/ Path-Var. Semantik

Interoperable Informationssysteme - 21 Klemens Böhm Erläuterungen zum Beispiel l Identische Präfixe von Pfadausdrücken sollen den gleichen Datenpfaden entsprechen, l Query abstrahiert davon, ob zipcode String oder Integer (wird im folgenden beschrieben), l address ohne zipcode verursacht keine Fehlermeldung, im Gegensatz zu anderen Querysprachen, l address, zipcode können mehrmals vorkommen. Anforde- rungen Query- sprache - Einstieg - Pfadausdr. - Coercion - komplexe Ergebnisse - Label-/ Path-Var. Semantik

Interoperable Informationssysteme - 22 Klemens Böhm Pfadausdrücke l Graph-Struktur der Daten erfordert Pfadausdrücke, l Unstrukturiertheit der Daten erfordert Flexibilität bei der Formulierung von Pfadausdrücken (vgl. mit Folie Beispiel OEM …), wird im folgenden illustriert. l Pfadausdrücke können Bestandteil aller Query-Bestandteile sein, d.h. select-, from-und where-Klausel. Anforde- rungen Query- sprache - Einstieg - Pfadausdr. - Coercion - komplexe Ergebnisse - Label-/ Path-Var. Semantik

Interoperable Informationssysteme - 23 Klemens Böhm Pfadausdrücke in der from-Klausel l Pfadausdruck in der from-Klausel: fromGuide.restaurant.address.zipcode Z, Guide.restaurant.name N l Äquivalente from-Klausel: fromGuide.restaurant R, R.address A, A.zipcode Z, R.name N l D.h. zipcode Z und name N müssen zum gleichen Restaurant gehören. Anforde- rungen Query- sprache - Einstieg - Pfadausdr. - Coercion - komplexe Ergebnisse - Label-/ Path-Var. Semantik

Interoperable Informationssysteme - 24 Klemens Böhm Pfadausdrücke in der select-Klausel l Query mit Pfadausdruck in der select-Klausel: select z: R.address.zipcode from Guide.restaurant R l Sind die folgenden Queries äquivalent? u select Guide.restaurant.address.zipcode from Guide.restaurant.address u select Guide.restaurant.address.zipcode from Guide Anforde- rungen Query- sprache - Einstieg - Pfadausdr. - Coercion - komplexe Ergebnisse - Label-/ Path-Var. Semantik

Interoperable Informationssysteme - 25 Klemens Böhm Pfadausdrücke in der where-Klausel l Beispielquery: select n: R.name from Guide.restaurant R where R.address.zipcode = or (R.address.street = Palm and R.address.city = Palo Alto) l Äquivalente Query: select n: R.name from Guide.restaurant R where exists A in R.address: ((exists Z in A.zipcode: Z = 93210) or ((exists S in A.street: S = Palm) and (exists C in A.city: C = Palo Alto))) Existenzquantor für address enthält alle drei Bedingungen, im Gegensatz zu den anderen Quantoren. Es handelt sich um die gleiche Adresse. Anforde- rungen Query- sprache - Einstieg - Pfadausdr. - Coercion - komplexe Ergebnisse - Label-/ Path-Var. Semantik

Interoperable Informationssysteme - 26 Klemens Böhm Beispiel 2 l Beispiel greift Szenario von eben wieder auf. l Textuelle Beschreibung: Finde Namen und Zipcodes aller billigen Restaurants. (String cheap als Wert eines Objekts enthält diese Information.) l Probleme - Anfrager kennt/weiss nicht: u die genaue Position der zipcode-Objekte, u welches Objekt den String cheap enthält. l Query: selectGuide.restaurant.name, Guide.restaurant(.address)?.zipcode whereGuide.restaurant.% grep cheap l Erläuterungen: u ? identifiziert optionalen Pfad-Bestandteil, u % ist Wildcard, grep hat übliche Semantik. Anforde- rungen Query- sprache - Einstieg - Pfadausdr. - Coercion - komplexe Ergebnisse - Label-/ Path-Var. Semantik

Interoperable Informationssysteme - 27 Klemens Böhm Allgemeine Pfad-Ausdrücke - gpe-Komponenten l Charakterisierung: u Bestandteile allgemeiner Pfad-Ausdrücke, u Verallgemeinerung von Labels in einfachen Pfad-Ausdrücken; l Definition (rekursiv) - u wenn l ein Label ist, ist.l eine gpe-Komponente u wenn s 1, s 2 gpe-Komponenten sind, dann sind es die folgenden Ausdrücke auch: s 1 s 2, s 1 |s 2, (s 1 ), (s 1 )?, (s 1 )+, (s 1 )* u wenn X ein String-Objekt ist, dann ist.unquote(X) eine gpe-Komponente. Wofür kann das gut sein? Was sind Unterschiede zwischen OEM + Querysprache und objektorientierten Modellen? Anforde- rungen Query- sprache - Einstieg - Pfadausdr. - Coercion - komplexe Ergebnisse - Label-/ Path-Var. Semantik

Interoperable Informationssysteme - 28 Klemens Böhm Vergleich von Objekten unterschiedlichen Typs l Ziel: Man möchte Bedingungen akzeptieren wie Z=1.0 oder Z> 0.9, egal ob Z mit 1 oder 1 belegt ist. l Typumwandlung: l Beispiel: 4.3 < 5 - beide Werte konvertieren. l Achtung: Gleichheit ist nicht mehr transitiv: 05 = 5, 5 = 5, aber 05 5 Anforde- rungen Query- sprache - Einstieg - Pfadausdr. - Coercion - komplexe Ergebnisse - Label-/ Path-Var. Semantik

Interoperable Informationssysteme - 29 Klemens Böhm Vergleich komplexer Objekte unterschiedlichen Typs l Typumwandlung: l Beispiel: select X.address from Guide.restaurant X where X.name = Chef Chu where-Klausel interpret. als where exists Z in X: Z.name=Chef Chu Anforde- rungen Query- sprache - Einstieg - Pfadausdr. - Coercion - komplexe Ergebnisse - Label-/ Path-Var. Semantik

Interoperable Informationssysteme - 30 Klemens Böhm Erzeugung eines Queryergebnisses mit beliebiger Struktur Queries müssen Instanzen des zugrundeliegenden Datenmodells generieren (d.h. z.B. OEM-Instanzen). Anforde- rungen Query- sprache - Einstieg - Pfadausdr. - Coercion - komplexe Ergebnisse - Label-/ Path-Var. Semantik

Interoperable Informationssysteme - 31 Klemens Böhm Erzeugung eines Queryergebnisses mit komplexer Struktur - Beispiele Anforde- rungen Query- sprache - Einstieg - Pfadausdr. - Coercion - komplexe Ergebnisse - Label-/ Path-Var. Semantik selectauthor: X frombiblio.book.author X Erzeugt Baum der Tiefe 1; alle Kanten haben Label author. selectrow:(selectauthor: Y fromX.author Y) frombiblio.book X Strukturiertes Anfrageergebnis – ein Teilbaum für die Autoren jedes Buchs. select(selectY fromX.author Y) frombiblio.book X

Interoperable Informationssysteme - 32 Klemens Böhm Queryergebnis mit komplexer, unregelmässiger Struktur l Subqueries mit leerem Ergebnis führen nicht zu Fehler; vielmehr lässt sich unregelmässig strukturiertes Queryergebnis erzeugen. Beispiel: select r:{number: N, (select title: T where {number: N, title: T} in db1.report), (select postscript: P where {num: N, postscript: P} in db2.myrep)} where N in db1.report.number union db2.myrep.num Anforde- rungen Query- sprache - Einstieg - Pfadausdr. - Coercion - komplexe Ergebnisse - Label-/ Path-Var. Semantik

Interoperable Informationssysteme - 33 Klemens Böhm Label-Variablen l Label-Variablen ermöglichen Übergang zwischen Schema-Information und Daten. l Beispiele: u select publication: {type: L, title: T} from biblio.L X, X.title T where X.Year > 1989 u select npers: (selectL: Y fromX.L Y wherenot (L = salary)) from db.person X Gruppierung mit Hilfe von Label-Variablen (umgekehrte Richtung wie oben) – Beispiel: select Y: (select X from biblio.paper X where X.year = Y) from biblio.paper.year Y Anforde- rungen Query- sprache - Einstieg - Pfadausdr. - Coercion - komplexe Ergebnisse - Label-/ Path-Var. Semantik

Interoperable Informationssysteme - 34 Klemens Böhm Path-Variablen l Statt einzelner Labels können auch ganze Paths zu Daten werden. Beispiel: wherematches(".*ubiquit.*", X) l Problem: Was geschieht bei Zykeln im Data Graph? Anforde- rungen Query- sprache - Einstieg - Pfadausdr. - Coercion - komplexe Ergebnisse - Label-/ Path-Var. Semantik

Interoperable Informationssysteme - 35 Klemens Böhm Semantik der Querysprache l Semantik der Querysprache muss formal definiert sein. l Vorgehen: u Beschreibung des Data Graphs mit einfacher relationaler Struktur. u Abbildung (eines Teils) der Querysprache auf Logik-Ausdrücke über dieses relationale Modell. u Alternativ: Abbildung der Querysprache auf Datalog-Ausdrücke über dieses Modell. Anforde- rungen Query- sprache Semantik - Vorgehen - Objekterz.

Interoperable Informationssysteme - 36 Klemens Böhm 1. Schritt: Generische relationale Beschreibung des Data Graphs Schema: ref(source: oid, label: dom, destination: oid) val(obj: oid, value: dom) l Constraints: u Oid ist entweder atomar oder komplex. u Jedes Objekt ist von einer Wurzel erreichbar. oid Attribut ist Schlüssel in der Relation val. Anforde- rungen Query- sprache Semantik - Vorgehen - Objekterz.

Interoperable Informationssysteme - 37 Klemens Böhm 2. Schritt: Abbildung Querysprache logischer Ausdruck l Beispiel: Anfrage in der Querysprache: select author: X from biblio.book Y, Y.author X where "Database" in Y.title Entsprechender logischer Ausdruck: {X| Y, Z, V, W(ref(db, "biblio", W) ref(W, "book", Y) ref(Y, "author", X) ref(Y, "title", V) val(V, "database"))} l Auf diese Art lässt sich kein neuer Data Graph konstruieren, der Queryergebnis repräsentiert. Anforde- rungen Query- sprache Semantik - Vorgehen - Objekterz.

Interoperable Informationssysteme - 38 Klemens Böhm 3. Schritt: Abbildung Querysprache Datalog biblio db book &o1 author &o3 Smith &o9 book &o2 paper &o4 title &o8 date &o7 author &o6 author &o5 date &o10 title &o11 author&o Data Production Cassio Database Systems 1976 Combalusier Roux title ans Anforde- rungen Query- sprache Semantik - Vorgehen - Objekterz.

Interoperable Informationssysteme - 39 Klemens Böhm 3. Schritt: Abbildung Querysprache Datalog l Neue Tupel, aus denen die Antwort besteht, werden in die generische Kanten-Relation eingefügt. l Beispiel: Anfrage in der Querysprache (wiederholt): select author: X from biblio.book Y, Y.author X where "Database" in Y.title Entsprechender Datalog-Ausdruck: ref(ans, " author ", X) (ref(db, "biblio", W), ref(W, "book", Y), ref(Y, "author", X), ref(Y, "title", V), val(V, "database") Anforde- rungen Query- sprache Semantik - Vorgehen - Objekterz.

Interoperable Informationssysteme - 40 Klemens Böhm 3. Schritt: Abbildung Querysprache Datalog (Forts.) l Abbildung von Pfadausdrücken erfordert i.d.R. Rekursion. l Beispiel: Anfrage in der Querysprache: select part: X from product X, X.(subpart)* Y Entsprechender Datalog-Ausdruck: ref(ans, part ", Y) q(Y) q(Y) ref(db, product", Y) q(Y) q(Z), ref(Z, subpart", Y) Anforde- rungen Query- sprache Semantik - Vorgehen - Objekterz.

Interoperable Informationssysteme - 41 Klemens Böhm Erzeugung von Objekten l Erzeugung von Anfrageergebnissen erfordert i.a. die Erzeugung von Objekten. l Erzeugung der neuen Objekte erfordert auch Erzeugung von OIDs – Verwendung von Skolem-Funktion. l Skolem-Funktion u benötigt als Parameter eine Zeichenkette, u erzeugt daraus eine einmalige, reproduzierbare ID. Anforde- rungen Query- sprache Semantik - Vorgehen - Objekterz.

Interoperable Informationssysteme - 42 Klemens Böhm Erzeugung von Objekten l Beispiel für Verwendung von Skolem-Funktion: Anfrage in der Querysprache: selectrow: {title: T, year: Y} frombiblio.book X, X.title T, X.year Y Entsprechender Datalog-Ausdruck: ref(ans, row ", f(X)) ref(db, biblio", B), ref(B, book", X) ref(f(X), title ", T) ref(X, title", T) ref(f(X), year ", Y) ref(X, year", Y) l Nur erster Aufruf der Skolem-Funktion mit bestimmten Parametern führt zur Erzeugung eines neuen Objekts. Anforde- rungen Query- sprache Semantik - Vorgehen - Objekterz.

Interoperable Informationssysteme - 43 Klemens Böhm Erzeugung von Objekten l Weiteres Beispiel – Anfragen über mehrere Datenbanken. Anfragen in der Querysprache (ohne Object Fusion): select row: {num: N, title: Y} where {number: N, title: Y} in db1.report select row: {num: N, postscript: P} where {num: N, postscript: P} in db2.myrep Entsprechendes Datalog-Programm: ref(ans, row", f(N)) ref(db1, report", X), ref(X, number", Y), val(Y, N) ref(f(X), title", T) val(Y, N), ref(X, number", Y) ref(X, title", T) … l I.d.R. ein Objekt, das Einträge aus unterschiedlichen Datenbanken zusammenfasst (Object Fusion). Anforde- rungen Query- sprache Semantik - Vorgehen - Objekterz.

Interoperable Informationssysteme - 44 Klemens Böhm Erzeugung von Objekten Gleiche Anfrage in unserer Querysprache – ist möglich, aber kompliziert: select report: {number: N, ( select title: T where {number: N, title T} in db1.report), ( select postscript: P where {num: N, postscript P} in db2.myrp)} where N in db1.report.number union db2.myrp.num Anforde- rungen Query- sprache Semantik - Vorgehen - Objekterz.