1 / 19

Bäume als Datenmodelle

Bäume als Datenmodelle. Frank Schmidt Betreuer: Tim Priesnitz Proseminar "Logische Aspekte von XML" - SS 2003 Gert Smolka PS-Lab, Uni Saarland. Semistrukturierte Daten. { person: { name: “Alan“, phone: 1234 } }. person. name. phone. Alan. 1234.

marek
Download Presentation

Bäume als Datenmodelle

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. Bäume als Datenmodelle Frank Schmidt Betreuer: Tim Priesnitz Proseminar "Logische Aspekte von XML" - SS 2003 Gert Smolka PS-Lab, Uni Saarland

  2. Semistrukturierte Daten { person: { name: “Alan“, phone: 1234 } } person name phone Alan 1234 Serialisierte Darstellung: selbstbeschreibend Endlicher, unbeschränkter Baum

  3. Überblick • Sichtweisen auf Daten • Graphen und Bäume • Definitionen • Klassifizierungen • Graph ↔ Baum • XML • XML-Syntax • Baummodelle für XML • XML-Typen • Implementierungsmodelle

  4. Vorgänger: Monolytische Dateien Informationen werden in Einheiten (z.B. Dateien) zerlegt

  5. Vorgänger: Relationale Datenbanken • Darstellung in Matrizenform • Darstellung: Entity-Relationship-Modell STUDENTMatrikelnummerVornameNachname… VORLESUNGVL-NummerDozentSemester… PROFESSORVorname Nachname Titel… [Codd]

  6. Vorgänger: Objektorientierte Systeme • Objekte der realen Welt  Objekte im System • Vererbung (Klassen und Methoden) Student Matrikelnummer Fachsemester getMatrikel() setMatrikel() … Person Name Adresse getName() setName() … Professor Titel Fachrichtung getTitel() setTitel() …

  7. Bäume basieren auf Graphen Definition: Ein gerichteter Graph G=(V,E) • V - Menge von Knoten • E: V  V - Menge von Kanten aus N F V 1 1 1 MA Pfad 111 an V (Pfade sind aus N*) N SB S M Graph mit Zyklus Anwendungsbeispiel: Routenplan

  8. A 1 2 B E 1 2 C D Gewurzelte Bäume Definition:Baum ist zusammenhängender, azyklischer, gerichteter Graph Alternative Definition Bäume: Menge von Pfaden (D)

  9. Klassifizierung von Bäumen ω-Bäume endliche Bäume 1 2 1 2 1 2 1 1 D = { ε, 2 }  1* D = { ε, 1, 2, 11, 12 } Strings beschränkte Bäume unbeschränkte Bäume ω-ranked Bäume a 1 1 1 3 1 2 2 f 4 3 1 1 2 c c Term überΣ = { f/2, a/1, c/0 }

  10. Beschriftung von Bäumen • Labels für Knoten Beschriftungsfunktion L1 : V  Σ • Labels für Kanten L2 : E  Σ f 1 2 c c name vorname phone phone 1 2 1 2 funktional: Kantenlabels eindeutig nicht funktional

  11. Graphen als Bäume von zyklischen zu azyklischen Graphen: zyklischer Graph Baum o1 o1 Auffalten o1 zyklische Kante effizientere Darstellung o1

  12. Bäume erweitert mit Zeigern { person: &o1 { name: “Mary“, age: 45, child: &o2 } person: &o2 { name: "John", mother: &o1 }} person person child &o1 &o2 Baum  Graph mother name name age "Mary" 45 "John" [Links (HTML)]

  13. Syntax von XML: Elemente <name> Frank </name> { name: "Frank" } <person> <vorname> Frank </vorname> <nachname> Schmidt </nachname></person> { person: { vorname: "Frank", nachname: "Schmidt" }} • XML-Elemente • Ideelles Konzept: ssd-Ausdrücke • Unterschiede XML - HTML: • Tags (=Elemente) können in XML beliebig definiert werden • Elemente lassen sich in XML beliebig tief verschachteln • Optionale Beschreibung der XML-Grammatik (DTD's) Elemente Unterelemente <ssd-expr> ::= <value> | pointer <value> | pointer <value> ::= atomicvalue | <complexvalue><complexvalue> ::= {label: <ssd-expr>, … ,label: <ssd-expr>}

  14. XML-Attribute • Syntax XML-Attribute • Semantik XML-Attribute <person gender="m"> <name> Frank </name> <email> abc@xyz.com </email> <married/></person> Attribute: Zusatzinformationen zu Elementen tag tag virtuelles Tag dum-my Unterelemente Attribute

  15. Äquivalente Baummodelle für XML gelabelte unbeschränkte Bäume XML-Graph: knotenbeschriftet ssd-Graph: kantenbeschriftet person person 1 3 2 1 3 name email 2 name age email age Frank 24 abc@xyz.com Frank 24 abc@xyz.com

  16. Typen für XML Document Type Definition Reguläre Ausdrücke: person* - beliebige Anzahl von Personen person+ - eine oder mehrere Personen person? – keine oder eine Person e|e' - Regel e oder alternativ e' e,e' - Konkatenation von e und e' <!DOCTYPE db [ <!ELEMENT db (person*)> <!ELEMENT person (name,email,phone)> <!ELEMENT name (#PCDATA)> <!ELEMENT age (#PCDATA)> <!ELEMENT email (#PCDATA)> <!ELEMENT phone (number | (phone,phone))> <!ELEMENT number (#PCDATA)> <!ATTLIS name age CDATA #REQUIRED (IMPLIED)> ]>

  17. DTD • Ein XML-Elemente heißt wohlgeformt, falls alle Tags korrekt geschlossen und alle Attribute eindeutig sind. • Grenzen von DTD's: • Darstellung von ungeordneten Daten (ssd) • DTD's unterstützen keine atomaren Typen (z.B. Integer) • Elementtypen sind global, d.h. ein Feld "name" darf z.B. nur einmal vorkommen • Listentypen können nicht weiter spezifiziert oder beschränkt werden

  18. Implementierungsmodelle für XML DOM SAX versus {a: {b: {d,e}, c} {a: {b: {d,e}, c} Parser a a b c b c d e d e Baumtraversieren durch einen Automaten

  19. Referenzen • S. Abiteboul, P. Buneman und D.Suciu. Data on the Web: From Relations to Semistructured Data and XML. Morgan Kaufman, New York, 1999 • S. Abiteboul. Semistructured Data: from Practice to Theory.LICS 2001 • H. Lobin. Informationsmodellierung in XML und SGML.Springer Verlag, Berlin, 2001

More Related