Datenbanksysteme&XML
am KIT
am KIT
-
- 1 / 18
-
Lernkarten
Grundfunktionen eines Datenbanksystems
- Datenmodell: Datenunabhängigkeit, Datenintegrität
- Benutzungsschnittstellen: flexible Auswertungen, untersch. Anwender
- Transaktionsmanagement: Mehrbenutzer. Recoverygrundlage
- Recovery: zur Wiederherstellung der Integrität
- Datenschutz: ZUgriffssicherung
Wann ist XML-Datenbank, wann relative, sinnvoller?
- Art Daten
- Datenzentriert à rel
- Dokumente à xml
- Menge der vorhandenen Daten
- Groß à rel
- Klein à xml
- Verarbeitung von Dokumenten als Ganzes -à xml
- Art der Anfragen
- Explizit à rel
- Häufige Anfragen&Änderungen à rel
- Volltextsuche à xml
- Datenintegrität
- Integritätsbedingungen à rel
- Schemaevolution
- Fix à rel
- Flexibel à xml
- Einsatzzweck
- XML-Schnittstelle als Erweiterung à rel
- Native XML-Funktionalität à xml
XML-Knotentypen
Elementknoten
Textknoten
Attributknoten
weitere XML-basierte Sprachen
SAML, SOAP, WSDL, XHTML
DTD
<!DOCTYPE bla [
<!ELEMENT bla (blabla, blablabla)>
<!ATTLIST bla einattributhalt CDATA #REQUIRED> (oder IMPLIED oder FIXED --> Wert gilt auf jeden Fall)
<!ELEMENT blabla (#PCDATA)>
<!ELEMENT blablabla(#PCDATA)>
]>
DTD vs. XML-Schema
Syntax: Eigene Syntax vs. XML
Typsystem: #PCDATA einzig primitiver vs. große Mege an vordefinierten primitven und abgeleiteten
Typdefinition: intern und extern vs. nur extern
Kardinalitäten: ?,+,* vs. exakt (min/max)
Objektorientierte Wiederverwendung: nein vs. erweiterung, Einschränkung sowie Vereinigung
Namensräume: nein vs. URI-Verweise
Fehler in integrierten Datenquellen
semantische Konflikte:
Synonyme (untersch. Namen, gleiche Bedeutung), Homonyme (identsche Benennung, unterschiedl. Bedeutung)
strukturell: unterschiedliche Repräsentation, Knotentypen, Datentypen, Genauigkeit oder Länge gleichartiger Datentypen, Häufigkeiten
Schemaintegration
1. Vorintegration
2. Schemavergleich
3. Schemaangleichung
4. Schemafusion und Umstrukturierung
Ziele der Schemaintegration
Vollständigkeit
Minimalität
Korrektheit
Verstädnlichkeit
Unterschied zwischen XPath 1.0 und 2.0
in XPath Kontrollstrukturen (Schleifen, Bedingungen) und Sonstiges (Quantoren some.. in .. satisfies..., Typüberprüfung ... instance of... )
XPath 2.0 benutzt das Typsystem von XML, 1.0 kennt nur Knotenmengen, boolesche, numerische und Zeichenkettenwerte
XPath 2.0 basiert auf Sequenzen, 1.0 ist mengenorientiert
- Sequenzen geordnet, Mengen nicht
- Sequenzen können Duplikate enhalten, Mengen nicht
Datenmodell für XML
Warum? Welche?
Warum? Modellierung von Objekten/Dokuemnten aus Realwelt und Abbildung in XML
in Dokumenttypen, vergleichbar mit Datenbankschema
Welche?
DTD (Document Type Definition), für Dokumente
XML-Schema, für XML-Objekte
Anforderungen an Datenbankanfragesprachen
Ad-hoc-Formulierung von ANfragen: ohne Erstellung kompletter Programme
Deklarative Beschreibung: Ergebnisbeschreibung statt Berechnungsbeschreibung
Kompaktheit: z.B. für URLs
Mengenorientiertheit: auf Mengen, nicht auf Objekten
Adäquatheit: alle Konstruktoren unterstützt
Orthogonalität: uneingeschränkt kombinierbar
Abgeschlossenheit: Anfrage mit alter Anfrage
Vollständigkeit: verlustfrei
Optimierbarkeit: Grundoperationen und Optimierungsregeln
Effizienz: Algorithmen für effiziente Grundoperationen
Sicherheit: endliches Ergebnis, terminieren (korrekte Anfragen)
Eingeschränktheit: keine vollständige Programmiersprache (sonst nicht optimierbar, effizient und sicher)
Spezielle Anforderungen an XML-Anfragesprachen
Einbettung: in XML
Ordnungserhaltung: Ordnung des XML bleibt erhalten (aber: abschaltbar)
Links: Ausnutzen und Verfolgen von Links
Flexible Typen: flexibel für unbekannte Typen, Typkonvertierung
Speicherung von XML-Dokumenten
Als Dateien / CLOBs (Volltextindex evtl. mit XML-Index): für dokumentzentrierte
Speicherung der Dokumentstruktur: Für semistrukturierte
Strukturierte Speicherung in DB: datenzentrierte
Duplikaterkennung
- Grundschema
- warum anwendungsabhängig
Paarweiser Vergleich aller Tupel --> Maßzahl
Bei numerischen Werten müssen Kriterien festgelegt werden wie hoch Abweichung sein darf, auch bei Text verschiedene Verfahren
auf Datenebene
Eigenschaften von Attributen
Element zu jedem Attribut max. ein Wert
Ungeordnet (zueinander)
nicht Teil eines XML-Baumes (nur erweiterter)
Gruppierungen in XML-Schema
xs:sequence: feste Reihenflge, wenn nix angegeben genau 1 mal
xs:choice: eins muss gewählt werden
xs:all: beliebige Reihenfolge, aber jedes darf maximal 1 mal auftreten (kann auch nicht mit maxoccurs erhöht werden)
FLOWR
For: erstellt eine Sequenz von Knoten
let: bindet eine Sequenz an eine Variable:
where: filtert Knoten
order by: sortiert Knoten
return: wird einmal für jeden Knoten ausgewertet