1 / 24

Semistrukturierte Daten und deklarativer Zugriff auf semistrukturierte Daten

Semistrukturierte Daten und deklarativer Zugriff auf semistrukturierte Daten. Semistrukturierte Daten. Was sind semistrukturierte Daten?

gordy
Download Presentation

Semistrukturierte Daten und deklarativer Zugriff auf semistrukturierte Daten

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Semistrukturierte Datenund deklarativer Zugriffauf semistrukturierte Daten

  2. Semistrukturierte Daten 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), • Daten mit üblicherweise irregulärer Struktur: • Daten können fehlen, • ähnliche Konzepte werden durch unterschiedliche Typen repräsentiert,NAME flach oder SURNAME, LASTNAMEVorgesetzter: Referenz oder NameZweitname: CHAR vs. String • Mengen können heterogen sein, • Struktur ist nicht vollständig bekannt.Jörg – Teil des Vornamens oder Zweitname Einleitung/Motivation OEM Query-sprachefür OEM

  3. 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.Mehrere Bedeutungen; nested relations wären nicht ausreichend • 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 Query-sprachefür OEM

  4. 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 Query-sprachefür OEM

  5. 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 Query-sprachefür OEM

  6. Object Exchange Model (OEM) • Forschungsergebnis der Stanford University, m.W. keine entsprechenden Produkte, • 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 Query-sprachefür OEM

  7. 1 Restaurant Restaurant Bar 2 3 4 Plus Name Inhaber Name Manager Entree Entree Entree Telefon 9 10 11 5 8 6 7 Darbar Rind Lamm Klein Chili Burger 555-1234 OEM - Beispiel “AggregationHierarchies”Beispiel Einleitung/Motivation OEM Query-sprachefür OEM Mehrere Parents und Zykel sind erlaubt.

  8. 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. Beispiel • 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 Resaurant.Entree Einleitung/Motivation OEM Query-sprachefür OEM

  9. Target Set • Das Target Set in einem OEM Objekt s von einem label path l von sist die Menge t ={o|l1.o1.l2.o2…ln.o ist Instanz von l} Target Set von Resaurant.EntréeLabel 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 Query-sprachefür OEM

  10. OEM - Datenbank Guide 12 restaurant restaurant restaurant Einleitung/Motivation OEM Query-sprachefür OEM 54 zipcode nearby 19 77 35 92310 nearby category price address category name name address category address price name 79 80 17 55 25 23 13 18 14 66 fast food McDonald’s Menlo Park cheap Vietna-mese Mountain View gourmet Chef Chu Saigon street zipcode city nearby 44 16 15 El Camino Real Palo Alto ‘92310’

  11. ‘Unregelmässigkeiten’ in der Beispiel-Datenbank • 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. Einleitung/Motivation OEM Query-sprachefür OEM

  12. Definitionen • Ein Schema ist eine endliche Menge von Namen.Wirklich sehr vage Definition. • Eine Instanz eines Schemas besteht aus • einem endlichen gelabelten Graphen (VaVc,E) • Va enthält die atomic objects, • Vc enthält die complex objects, • Labels der Kanten sind Strings, • Abbildung von 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 waere ein Schema fuer das Restaurant-Beispiel? Einleitung/Motivation OEM Query-sprachefür OEM

  13. Deklarativer Zugriff auf semistrukturierte Daten • Man kann bzw. möchte Struktur der Daten nicht immer genau spezifizieren, • manchmal haben die Daten aber Struktur, und sie ist dem Benutzer bekannt. Einleitung/Motivation OEM Query-sprachefür OEM restaurant address dishes city entree dessert entree entree ZH Altwiesenstrasse Bündner-fleisch mousse soup

  14. Beispiel • Textuelle Beschreibung: “Finde die Adressen aller Restaurants mit PLZ 92310.” • Query:select Guide.restaurant.addressfrom Guide.restaurantwhere Guide.restaurant.address.zipcode = 93210 • Anmerkung: Vorgestellt wird eine spezielle Querysprache, andere Semantik wäre denkbar (Beispiel s.o.). Einleitung/Motivation OEM Query-sprachefür OEM

  15. 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. Einleitung/Motivation OEM Query-sprachefür OEM

  16. Pfadausdrücke • Graph-Struktur der Daten erfordert Pfadausdrücke, • ‘Unstrukturiertheit’ der Daten erfordert Flexibilität bei der Formulierung von Pfadausdrücken, • Pfadausdrücke können Bestandteil aller Query-Bestandteile sein, d.h. select-, from-und where-Klausel. Einleitung/Motivation OEM Query-sprachefür OEM

  17. Beispiel 2 • 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. Einleitung/Motivation OEM Query-sprachefür OEM

  18. 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” Einleitung/Motivation OEM Query-sprachefür OEM

  19. Vergleich komplexer Objekte unterschiedlichen Typs • Typumwandlung: • 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”’Query-Var. wird u.U. fuer Joins etc. gebraucht Was waere, wenn name mengenwertig? Einleitung/Motivation OEM Query-sprachefür OEM

  20. 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. Einleitung/Motivation OEM Query-sprachefür OEM

  21. Pfadausdrücke in der select-Klausel • Query mit Pfadausdruck in der select-Klausel:select Guide.restaurant.address.zipcodefrom Guide.restaurant • Äquivalente Query:select (select Z from R.address A, A.zipcode Z)from Guide.restaurant R • Sind die folgenden Queries äquivalent? • select Guide.restaurant.address.zipcodefrom Guide.restaurant.address • select Guide.restaurant.address.zipcodefrom Guide Einleitung/Motivation OEM Query-sprachefür OEM

  22. Pfadausdrücke in der where-Klausel • Beispielquery:select Guide.restaurant.namefrom Guide.restaurantwhere Guide.restaurant.address.zipcode = 93210 or (Guide.restaurant.address.street = “Palm” and Guide.restaurant.address.city = “Palo Alto”) • Äquivalente Query:select Rfrom 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”))) Einleitung/Motivation OEM Query-sprachefür OEM Es handelt sichum die gleicheAdresse.Beispiel, das keine Lösung wäre Existenzquantor für address enthält alle drei Bedingungen,im Gegensatz zu den anderen Quantoren.

  23. Auslassen der from-Klausel • Query ohne from-Klausel:select Guide.restaurant.namewhere Guide.restaurant.category = “gourmet” • Äquivalente Query:select Guide.restaurant.namefrom Guide.restaurantwhere Guide.restaurant.category = “gourmet” Einleitung/Motivation OEM Query-sprachefür OEM

  24. 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? Einleitung/Motivation OEM Query-sprachefür OEM Was sind Unterschiede zwischen OEM + Queryspracheund objektorientierten Modellen?

More Related