190 likes | 317 Views
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.
E N D
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 Serialisierte Darstellung: selbstbeschreibend Endlicher, unbeschränkter Baum
Überblick • Sichtweisen auf Daten • Graphen und Bäume • Definitionen • Klassifizierungen • Graph ↔ Baum • XML • XML-Syntax • Baummodelle für XML • XML-Typen • Implementierungsmodelle
Vorgänger: Monolytische Dateien Informationen werden in Einheiten (z.B. Dateien) zerlegt
Vorgänger: Relationale Datenbanken • Darstellung in Matrizenform • Darstellung: Entity-Relationship-Modell STUDENTMatrikelnummerVornameNachname… VORLESUNGVL-NummerDozentSemester… PROFESSORVorname Nachname Titel… [Codd]
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() …
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
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)
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 }
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
Graphen als Bäume von zyklischen zu azyklischen Graphen: zyklischer Graph Baum o1 o1 Auffalten o1 zyklische Kante effizientere Darstellung o1
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)]
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>}
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
Ä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
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)> ]>
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
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
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