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

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

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

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

Interoperable Informationssysteme - 1Klemens Böhm

Datenmodell 1: OEM

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

Interoperable Informationssysteme - 2Klemens Böhm

Semistrukturierte Daten (1)

Was sind semistrukturierte Daten? 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),

‘selbstbeschreibende’ Daten,

Einleitung/Motivation

OEM

Definitionen

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

Interoperable Informationssysteme - 3Klemens Böhm

Semistrukturierte Daten (2) Daten mit üblicherweise irregulärer Struktur:

Daten können fehlen, ä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, Struktur ist nicht vollständig bekannt.

Beispiel: ‘Jörg’ – Teil des Vornamens oder Zweitname?

Einleitung/Motivation

OEM

Definitionen

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

Interoperable Informationssysteme - 4Klemens Böhm

Semistrukturierte Daten - Motivation Daten lassen sich

i.a. nicht problemlos in Tabellen abbilden,Strukturierung ist aber trotzdem wünschenswert.Beispiel: Wörterbuch-Einträge Optionale Bestandteile, Wiederholungen von Strukturelementen, Reihenfolge der Elemente vielleicht relevant.

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

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

Interoperable Informationssysteme - 5Klemens Böhm

Semistrukturierte Daten - Motivation (2)

Warum sind Daten nicht stets explizit strukturiert? nicht erforderlich, nicht eindeutig, nicht bekannt, Erstellung der Strukturierung

zu aufwendig. Man will Modell, mit dem explizite

Strukturierung möglich, aber nicht obligatorisch ist.

Einleitung/Motivation

OEM

Definitionen

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

Interoperable Informationssysteme - 6Klemens Böhm

Semistrukturierte Daten - Fallunterscheidung

Semistrukturierte Daten - unterschiedliche Verwendungen des Begriffs:

Schema existiert, ‘Semistrukturiertheit’ heisst nur ‘Irregularität’ oder ‘teilweise strukturiert, teilweise nicht’,Beispiel: SGML-/XML-DTDs

kein Schema, aber Struktur der Daten eindeutig erkennbar, z.B.valide Dokumente a la XML,

Struktur nicht einwandfrei identifizierbar,kann z.B. in HTML-Dokumenten vorkommen (pathologischer Fall).

Einleitung/Motivation

OEM

Definitionen

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

Interoperable Informationssysteme - 7Klemens Böhm

Object Exchange Model (OEM) Forschungsergebnis der Stanford University,

m.W. keine entsprechenden Produkte, ‘Objekt’ als elementares Bestandteil. Jedes Objekt hat OID und Wert:

Atomarer Wert, z.B. int, string, komplexer Wert:

Menge von Subobjekten, Verknüpfung mit Parent durch Label.

‘OEM-Objekt’ heisst: Objekt + Subobjekte.

Einleitung/Motivation

OEM

Definitionen

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

Interoperable Informationssysteme - 8Klemens Böhm

OEM - Beispiel

2

1

3 4

5 6 78 9 10 11

BarRestaurant

Name

Entree Telefon

InhaberManager Name Entree Entree

Chili Burger 555-1234Klein Darbar Lamm Rind

Restaurant

Plus

Mehrere Parents und Zykel sind erlaubt.

“AggregationHierarchies”

Einleitung/Motivation

OEM

Definitionen

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

Interoperable Informationssysteme - 9Klemens Böhm

Pfade im OEM-Kontext Label Path eines OEM Objekts o -

Folge von Labels, separiert durch Punkte, l1.l2…ln,so dass man von o aus den Pfad (e1, …, en) traversieren kann, und Kante ei hat Label li.

Data Path eines OEM Objekts o -Alternierende Folge von Labels und OIDs, separiert durch Punkte, l1.o1.l2.o2…ln.on, so dass man von o aus den Pfad (e1, …, en) durch Objekte (x1, …, xn) traversieren kann, Kante ei hat Label li, und Objekt xi hat OID oi.

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

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

Interoperable Informationssysteme - 10Klemens Böhm

Target Set Das Target Set in einem OEM Objekt s

von einem label path l von s ist die Menge t ={o|l1.o1.l2.o2…ln.o ist Instanz von l} Target Set von Resaurant.Entrée?Label Paths des Target Sets {8}?

Label Paths eines Target Sets sowie Label Paths einer Menge von Label Paths –Beispiele: L({8}) = {Restaurant.Inhaber,

Restaurant.Manager}, L({Restaurant.Inhaber})

= {Restaurant.Inhaber, Restaurant.Manager},

Einleitung/Motivation

OEM

Definitionen

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

Interoperable Informationssysteme - 11Klemens Böhm

Schema Sehr vage Definition im folgenden;

der Vollständigkeit halber… Ein Schema ist eine endliche Menge von Namen. Eine Instanz eines Schemas besteht aus

einem endlichen gelabelten Graphen (VaVc,E)– Va enthält die atomic objects,– Vc enthält die complex objects,– Labels der Kanten sind Strings,

Abbildung der Namen zu Knoten, Abb. von atomic objects zu atomaren Werten.

Ausserdem gilt: keine ausgehenden Kanten von atomic objects, jd. Knoten ist von einem mit Namen erreichbar.

Was wäre ein Schema für das Restaurant-Beispiel?

Einleitung/Motivation

OEM

Definitionen

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

Interoperable Informationssysteme - 12Klemens Böhm

Queries 1: Deklarativer Zugriff

auf semistrukturierte Daten

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

Interoperable Informationssysteme - 13Klemens Böhm

OEM - Datenbank

19

12

35

17 13 14 66 18 23 25

restaurantrestaurant

category

name address category name addressaddress

gourmet Chef Chu MountainView

restaurant

44 15 16

streetcity zipcode

El Camino RealPalo Alto ‘92310’

77

55 79 80

name

Vietna-mese

Saigon MenloPark

cheap fast food

McDonald’s

pricecategoryprice

54

92310

zipcodenearby

nearby

nearby

Guide

Anforde-rungen

Query-sprache

Semantik

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

Interoperable Informationssysteme - 14Klemens Böhm

Unregelmässigkeiten in der Beispiel-Datenbank

und Zsh. zum deklarativen Zugriff Restaurants haben beliebig viele Adressen, Adressen sind manchmal Strings,

haben manchmal aber auch explizite Struktur, zipcode kann String oder Integer sein, zipcode ist manchmal

direkter Bestandteil von restaurant, manchmal Bestandteil von address.

Man kann bzw. möchte Struktur der Daten nicht immer genau spezifizieren,

manchmal haben die Daten aber Struktur, und sie ist dem Benutzer bekannt.

Anforde-rungen

Query-sprache

Semantik

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

Interoperable Informationssysteme - 15Klemens Böhm

Anforderungen

Anforderungen gemäss [ABS00]: Ausdrucksmächtigkeit, Semantik, Zusammensetzbarkeit, Schema, Einfache Erzeugung von Anfragen

aus Programmen.

Anforde-rungen

Query-sprache

Semantik

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

Interoperable Informationssysteme - 16Klemens Böhm

Ausdrucksmächtigkeit Mindestens das,

was Sprache für das relationale Modell kann. Sprache sollte ausdrucksmächtig sein,

aber nicht zu ausdrucksmächtig. Denn:

Optimierungen sind teilweise nicht möglich, keine Garantien für Ausführungszeiten.

Anforde-rungen

Query-sprache

Semantik

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

Interoperable Informationssysteme - 17Klemens Böhm

Semantik

Genaue Definition der Semantik ist erforderlich.

Einfache Erzeugung von Anfragen aus Programmen

“karg, aber einfach”

Anforde-rungen

Query-sprache

Semantik

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

Interoperable Informationssysteme - 18Klemens Böhm

Schema

“Structure-Consciousness” Keine Eigenschaft der Querysprache,

sondern der Implementierung.Anforde-rungen

Query-sprache

Semantik

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

Interoperable Informationssysteme - 19Klemens Böhm

Zusammensetzbarkeit

Query sollte auf anderes Queryergebnis anwendbar sein.

Konsequenz auf der semantischen Ebene: Queryergebnis sollte wieder Instanz des Ausgangsdatenmodells sein,

Beispiel: Querysprache LOREL erzeugt Relationen aus OEM-Instanz, d.h. LOREL genügt der Anforderung nicht.

Konsequenz auf der syntaktischen Ebene: “Referentielle Transparenz”Name, Variable für semistrukturierte Daten Ausdruck

Anforde-rungen

Query-sprache

Semantik

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

Interoperable Informationssysteme - 20Klemens Böhm

Beispiel Textuelle Beschreibung: “Finde die Adressen

aller Restaurants mit PLZ 92310.”(D.h. man sucht address-Objekt, das zipcode-Objekt enthält.Zipcode direkt unter Restaurant wäre – in diesem Beispiel – nicht OK.)

Query:select a: X.addressfrom Guide.restaurant Xwhere X.address.zipcode = 93210

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

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

Interoperable Informationssysteme - 21Klemens Böhm

Erläuterungen zum Beispiel Identische Präfixe von Pfadausdrücken

sollen den gleichen Datenpfaden entsprechen, Query abstrahiert davon,

ob zipcode String oder Integer(wird im folgenden beschrieben),

address ohne zipcode verursacht keine Fehlermeldung, im Gegensatz zu anderen Querysprachen,

address, zipcode können mehrmals vorkommen.

Anforde-rungen

Query-sprache

- Einstieg

- Pfadausdr.

- Coercion

- komplexe Ergebnisse

- Label-/ Path-Var.

Semantik

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

Interoperable Informationssysteme - 22Klemens Böhm

Pfadausdrücke Graph-Struktur der Daten erfordert Pfadausdrücke, ‘Unstrukturiertheit’ der Daten erfordert Flexibilität

bei der Formulierung von Pfadausdrücken (vgl. mit Folie “Beispiel OEM …”),wird im folgenden illustriert.

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

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

Interoperable Informationssysteme - 23Klemens Böhm

Pfadausdrücke in der from-Klausel Pfadausdruck in der from-Klausel:

from Guide.restaurant.address.zipcode Z,Guide.restaurant.name N

Äquivalente from-Klausel:from Guide.restaurant R,

R.address A,A.zipcode Z,R.name N

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

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

Interoperable Informationssysteme - 24Klemens Böhm

Pfadausdrücke in der select-Klausel Query mit Pfadausdruck in der select-Klausel:

select z: R.address.zipcodefrom Guide.restaurant R

Sind die folgenden Queries äquivalent? select Guide.restaurant.address.zipcode

from Guide.restaurant.address select Guide.restaurant.address.zipcode

from Guide

Anforde-rungen

Query-sprache

- Einstieg

- Pfadausdr.

- Coercion

- komplexe Ergebnisse

- Label-/ Path-Var.

Semantik

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

Interoperable Informationssysteme - 25Klemens Böhm

Pfadausdrücke in der where-Klausel Beispielquery:

select n: R.namefrom Guide.restaurant Rwhere R.address.zipcode = 93210

or(R.address.street = “Palm”andR.address.city = “Palo Alto”)

Äquivalente Query:select n: R.namefrom Guide.restaurant Rwhere 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 sichum die gleicheAdresse.

Anforde-rungen

Query-sprache

- Einstieg

- Pfadausdr.

- Coercion

- komplexe Ergebnisse

- Label-/ Path-Var.

Semantik

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

Interoperable Informationssysteme - 26Klemens Böhm

Beispiel 2 Beispiel greift Szenario von eben wieder auf. Textuelle Beschreibung: “Finde Namen

und Zipcodes aller billigen Restaurants.”(String ‘cheap’ als Wert eines Objekts enthält diese Information.)

Probleme - Anfrager kennt/weiss nicht: die genaue Position der zipcode-Objekte, welches Objekt den String “cheap” enthält.

Query:select Guide.restaurant.name,

Guide.restaurant(.address)?.zipcodewhere Guide.restaurant.% grep “cheap”

Erläuterungen: ‘?’ identifiziert optionalen Pfad-Bestandteil, ‘%’ ist Wildcard, ‘grep’ hat übliche Semantik.

Anforde-rungen

Query-sprache

- Einstieg

- Pfadausdr.

- Coercion

- komplexe Ergebnisse

- Label-/ Path-Var.

Semantik

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

Interoperable Informationssysteme - 27Klemens Böhm

Allgemeine Pfad-Ausdrücke - gpe-Komponenten

Charakterisierung: Bestandteile allgemeiner Pfad-Ausdrücke, Verallgemeinerung von Labels

in einfachen Pfad-Ausdrücken; Definition (rekursiv) -

wenn l ein Label ist, ist .l eine gpe-Komponente wenn s1, s2 gpe-Komponenten sind,

dann sind es die folgenden Ausdrücke auch: s1s2, s1|s2, (s1), (s1)?, (s1)+, (s1)*

wenn X ein String-Objekt ist, dann ist .unquote(X) eine gpe-Komponente.Wofür kann das gut sein?

Was sind Unterschiede zwischen OEM + Queryspracheund objektorientierten Modellen?

Anforde-rungen

Query-sprache

- Einstieg

- Pfadausdr.

- Coercion

- komplexe Ergebnisse

- Label-/ Path-Var.

Semantik

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

Interoperable Informationssysteme - 28Klemens Böhm

Vergleich von Objekten unterschiedlichen Typs Ziel: Man möchte Bedingungen akzeptieren

wie Z=1.0 oder Z> “0.9”, egal ob Z mit 1 oder “1” belegt ist.

Typumwandlung:

Beispiel: “4.3” < 5 - beide Werte konvertieren. Achtung: Gleichheit ist nicht mehr transitiv:

“05” = 5, “5” = 5, aber “05” “5”

arg2arg1

string real int

string - string real both realreal - int realint -

Anforde-rungen

Query-sprache

- Einstieg

- Pfadausdr.

- Coercion

- komplexe Ergebnisse

- Label-/ Path-Var.

Semantik

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

Interoperable Informationssysteme - 29Klemens Böhm

Vergleich komplexer Objekte unterschiedlichen Typs

Typumwandlung:

Beispiel: select X.addressfrom Guide.restaurant Xwhere X.name = “Chef Chu”

where-Klausel interpret. als ‘where exists Z in X: Z.name=“Chef Chu”’

arg2arg1

value atomicobject

set ofobjects

complexobject

value coerce de-reference

existentialwith =

false

atomicobject

object = existentialwith =

false

set ofobjects

setequality

false

complexobject

object =

Anforde-rungen

Query-sprache

- Einstieg

- Pfadausdr.

- Coercion

- komplexe Ergebnisse

- Label-/ Path-Var.

Semantik

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

Interoperable Informationssysteme - 30Klemens 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

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

Interoperable Informationssysteme - 31Klemens Böhm

Erzeugung eines Queryergebnisses mit ‘komplexer’ Struktur - Beispiele

Anforde-rungen

Query-sprache

- Einstieg

- Pfadausdr.

- Coercion

- komplexe Ergebnisse

- Label-/ Path-Var.

Semantik

select author: Xfrombiblio.book.author XErzeugt Baum der Tiefe 1; alle Kanten haben Label author.

select row:( select author: Yfrom X.author Y)

frombiblio.book XStrukturiertes Anfrageergebnis – ein Teilbaum für die Autoren jedes Buchs.

select ( select Yfrom X.author Y)

frombiblio.book X

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

Interoperable Informationssysteme - 32Klemens Böhm

Queryergebnis mit komplexer, unregelmässiger Struktur

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

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

Interoperable Informationssysteme - 33Klemens Böhm

Label-Variablen Label-Variablen ermöglichen Übergang

zwischen ‘Schema-Information’ und Daten. Beispiele:

select publication: {type: L, title: T}from biblio.L X, X.title Twhere X.Year > 1989

select npers: ( select L: Yfrom X.L Ywhere not (L =

salary))from db.person X

‘Gruppierung’ mit Hilfe von Label-Variablen (‘umgekehrte’ Richtung wie oben) – Beispiel:select Y: ( select X

from biblio.paper Xwhere X.year = Y)

from biblio.paper.year Y

Anforde-rungen

Query-sprache

- Einstieg

- Pfadausdr.

- Coercion

- komplexe Ergebnisse

- Label-/ Path-Var.

Semantik

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

Interoperable Informationssysteme - 34Klemens Böhm

Path-Variablen Statt einzelner Labels können auch ganze Paths

zu ‘Daten’ werden. Beispiel:select @Pfromdb1 @P.Xwhere matches(".*ubiquit.*", X)

Problem: Was geschieht bei Zykeln im Data Graph?

Anforde-rungen

Query-sprache

- Einstieg

- Pfadausdr.

- Coercion

- komplexe Ergebnisse

- Label-/ Path-Var.

Semantik

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

Interoperable Informationssysteme - 35Klemens Böhm

Semantik der Querysprache

Semantik der Querysprache muss formal definiert sein.

Vorgehen: Beschreibung des Data Graphs

mit einfacher relationaler Struktur. Abbildung (eines Teils) der Querysprache

auf Logik-Ausdrücke über dieses relationale Modell.

Alternativ: Abbildung der Querysprache auf Datalog-Ausdrücke über dieses Modell.

Anforde-rungen

Query-sprache

Semantik

- Vorgehen

- Objekterz.

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

Interoperable Informationssysteme - 36Klemens Böhm

1. Schritt: Generische relationale Beschreibung des Data Graphs

Schema:ref(source: oid, label: dom,

destination: oid)val(obj: oid, value: dom)

Constraints: Oid ist entweder ‘atomar’ oder ‘komplex’. Jedes Objekt ist von einer Wurzel erreichbar. oid Attribut ist Schlüssel in der Relation val.

Anforde-rungen

Query-sprache

Semantik

- Vorgehen

- Objekterz.

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

Interoperable Informationssysteme - 37Klemens Böhm

2. Schritt: Abbildung Querysprache logischer Ausdruck

Beispiel: Anfrage in der Querysprache:select author: Xfrom biblio.book Y, Y.author Xwhere "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"))}

Auf diese Art lässt sich kein neuer Data Graph konstruieren, der Queryergebnis repräsentiert.

Anforde-rungen

Query-sprache

Semantik

- Vorgehen

- Objekterz.

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

Interoperable Informationssysteme - 38Klemens Böhm

3. Schritt: Abbildung Querysprache Datalog

bibliodb book

&o1author

&o3 Smith&o9

book

&o2

paper

&o4

title&o8

date &o7

author&o6

author&o5

date&o10

title&o11

author &o12

1999

Data Production

Cassio

Database Systems

1976

Combalusier

Roux

title

ans

Anforde-rungen

Query-sprache

Semantik

- Vorgehen

- Objekterz.

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

Interoperable Informationssysteme - 39Klemens Böhm

3. Schritt: Abbildung Querysprache Datalog

Neue Tupel, aus denen die Antwort besteht, werden in die generische Kanten-Relation eingefügt.

Beispiel: Anfrage in der Querysprache (wiederholt):select author: Xfrom biblio.book Y, Y.author Xwhere "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.

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

Interoperable Informationssysteme - 40Klemens Böhm

3. Schritt: Abbildung Querysprache Datalog (Forts.)

Abbildung von Pfadausdrücken erfordert i.d.R. Rekursion.

Beispiel: Anfrage in der Querysprache:select part: Xfrom 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.

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

Interoperable Informationssysteme - 41Klemens Böhm

Erzeugung von Objekten

Erzeugung von Anfrageergebnissen erfordert i.a. die Erzeugung von Objekten.

Erzeugung der neuen Objekte erfordert auch Erzeugung von OIDs – Verwendung von Skolem-Funktion.

Skolem-Funktion benötigt als Parameter eine

Zeichenkette, erzeugt daraus eine einmalige,

reproduzierbare ID.

Anforde-rungen

Query-sprache

Semantik

- Vorgehen

- Objekterz.

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

Interoperable Informationssysteme - 42Klemens Böhm

Erzeugung von Objekten Beispiel für Verwendung von Skolem-Funktion:

Anfrage in der Querysprache:select row: {title: T, year: Y}from biblio.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) Nur erster Aufruf der Skolem-Funktion

mit bestimmten Parameternführt zur Erzeugung eines neuen Objekts.

Anforde-rungen

Query-sprache

Semantik

- Vorgehen

- Objekterz.

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

Interoperable Informationssysteme - 43Klemens Böhm

Erzeugung von Objekten 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)

… I.d.R. ein Objekt, das Einträge aus unterschiedlichen

Datenbanken zusammenfasst (Object Fusion).

Anforde-rungen

Query-sprache

Semantik

- Vorgehen

- Objekterz.

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

Interoperable Informationssysteme - 44Klemens Böhm

Erzeugung von ObjektenGleiche 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.