Transcript Document

Datenbankmodelle für die
Realisierung von Anwendungen
Hauptseminar
‚Nichtrelationale Datenbanken‘
Master of Ceremony: Christian Daum
Grundlagen Datenbankmodell

Datenbankmodell :
o Ein System von Konzepten zur Beschreibung von Datenbanken
o Es liefert zudem die Grundlage für Syntax & Semantik eines
Datenbankschemas (& damit auch einer Datenbankprogrammiersprache).
o Nach Edgar F. Codd definiert sich ein Datenbankmodell aus 3 Eigenschaften:
> Einer Sammlung von Datenstrukturen
> Einer Menge von Operatoren, die auf jede der Datenstrukturen angewandt werden
kann, um Daten abzufragen oder abzuleiten.
> Einer Menge von Integritätsregeln, die Veränderungen der Daten festlegen.

Datenbankschema
o Formales Modell für die Struktur von Daten: Beschreibt den Aufbau einer
konkreten Datenbank auf Basis des Datenbankmodells:
3
> Aufbau der Daten, Basisdatentypen, zulässige Operationen auf Daten, Beziehungen,
Konsistenz-/Integritätsbedingungen etc.
o Das Datenbankschema ist in einer formalen Sprache definiert – einer
Datenbankprogrammiersprache (DBPL = Database Programming Language);
Beispiele:
> XML-Datenbanken -> Schema durch DTD (Document Type Definition) definiert
> SQL-Datenbanken -> Schema durch DDL (Data Definition Language) definiert
Übersicht Datenbankmodelle

Relationenmodell
o Derzeit das am weitesten verbreitete Modell

Netzwerkmodell & hierarchisches Modell
o Eher historische aber nichtsdestotrotz nach wie vor im Einsatz befindliche Modelle

Erweiterte relationale & semantische Modelle
o Neuere Modelle wie NF2 etc.

Objektorientierte (ODMG) & objektrelationale (SQL-3/SQL-99) Modelle
o Die beiden aktuellen Trends im DB-Bereich

Multidimensionale Modelle (MOLAP/OLAP/ROLAP)
o Insbesondere im Data Warehouse-Umfeld weit verbreitet

Semistrukturierte Modelle (z.B. auf XML-Basis)
o Besonders für die Verarbeitung von heterogenen und uneinheitlich strukturierten
Dokumenten (Text, Bild etc.) geeignet
Das Relationenmodell
Zentrale Eigenschaften des 1970 von Edgar F. Codd eingeführten Relationenmodells I:

Im Relationenmodell werden – idealerweise logisch zusammenhängende –
Daten (‚Realweltausschnitte‘) in Form von zweidimensionalen Tabellen
(Relationen) verwaltet, die über Schlüssel (Primärschlüssel, Fremdschlüssel)
miteinander verknüpft werden können.

Die Attribute (Tabellenspalten) stellen die Eigenschaften der aufgelisteten
Datensätze (Records) dar, welche den Tabellenzeilen (Tupel) entsprechen. Die
konkrete Ausprägung einer solchen Eigenschaft lässt sich jeweils am
Kreuzungspunkt zwischen Attribut & Tupel – den Komponenten (Zellen) – ablesen.

Der Tabellenname (Relationenname) sowie die Menge der Attribute einer Tabelle
werden als Relationenschema bezeichnet.

2 Tupel einer Relation (‚Tabelle‘ bzw. Menge von Zeilen) sind dabei niemals
identisch & besitzen also immer unterschiedliche Schlüssel
Das Relationenmodell
Zentrale Eigenschaften des Relationenmodells II:

Ein Primärschlüssel ist ein Attribut (bzw. eine Attributkombination), dass zur
eindeutigen Identifikation eines Tupels einer Relation dient. Wird dieser Schlüssel in
einer anderen Tabelle als Attribut verwendet, ist er dort Fremdschlüssel – über
Fremdschlüssel werden also die Relationen zwischen Tabellen realisiert
o
Schlüssel sind auch für die Einhaltung von sog. Integritätsbedingung notwendig
(Bsp. Reservierungssystem Fluggesellschaft: Kein Sitzplatz eines Fluges darf
mehrfach reserviert werden etc.)
>
Insbesondere Fremdschlüssel sind für globale – also über mehrere/alle Relationen
hinweg geltende – Integritätsbedingungen maßgeblich; s. referentielle Integrität:
Ein Eintrag in ein Feld darf nur vorgenommen werden, wenn ein entsprechender
Eintrag im – über den Fremdschlüssel – referenzierten Feld der entsprechenden
Tabelle existiert.
>
Primärschlüssel hingegen gewährleisten die lokale Integrität innerhalb einer
Relation. Die Integrität kann dabei automatisch von einem Integritätsmonitor als Teil
des DBMS überwacht werden (s. Access etc.)

Die Reihenfolge der Tupel einer Relation ist nicht von Bedeutung – desgleichen
gilt für die Attribute einer Relation (mal abgesehen von irgendwelchen finsteren
weil diskriminierenden Sortierabsichten etc.).

Attribute haben i.d.R. atomare Werte (d.h. eine Komponente bzw. Zelle enthält
normalerweise – in der 1. NF – nur einfache Datentypen wie string, int etc. –im sog.
‚Non First Normal Form‘-Model (NF2 -Modell) sind allerdings auch komplexere
Datentypen & Relationen – also weitere Tabellen – als Werte erlaubt)
Das Relationenmodell
Die wichtigsten Basisoperationen im Relationenmodell (sog. Relationenalgebra)

Selektion: Wählt Tupel aus einer Relation aus -> z.B. alle Personen mit Nachnamen Meyer etc.
o
Das Ergebnis ist wieder eine Relation

Projektion: Wählt Attribute einer Relation aus -> z.B. nur Vorname & PLZ aller Personen

Natürlicher Verbund (Join)
o
Verknüpft/Vereinigt 2 Relationen hinsichtlich ihrer gemeinsamen (da in logischem
bzw. ‚natürlichem‘ Zusammenhang stehenden) Attribute -> mehrere Tupel werden also zu
einem Neuen vereinigt
>

Mengen-Operationen (Vereinigung, Differenz, Durchschnitt)
o

z.B. wird aus einem Tupel der Relation ‚Personen‘ (Attribute: Vorname, Name) & einem Tupel
der Relation ‚Personen_Tel‘ (Attribut: Nummer) über einen Join ein neuer Tupel, der nun
sowohl die Attribute Vorname & Name als auch das Attribut Nummer enthält.
Diese Mengen-Operationen können nur auf Relationen angewandt werden, welche ein
identisches Relationenschema aufweisen (s. a. Umbenennung)
Umbenennung: z.B. die Umbenennung des Attributs Ort in Wohnort
o
Die Notwendigkeit einer solchen Umbenennung wäre beispielsweise bei einer Vereinigung
zweier Relationen gegeben, um deren Attribute zueinander kompatibel zu machen –
enthielte eine Relation das Attribut Wohnort & die andere das Attribut Ort, muss eines
dieser Attribute vor einer Vereinigung dergestalt umbenannt werden, dass es mit dem
anderen Attributnamen identisch ist, da eine Vereinigung nur bei identischem Schema
möglich ist – puh.
o
Das Ergebnis einer Umbenennung ändert also nicht die Relation selbst sondern lediglich
das Relationenschema
Das Relationenmodell
Begriffe des Relationenmodells
Attribut
 Spalte einer Tabelle
Wertebereich
 Mögliche Werte eines Attributs
(auch Domäne; int, string, boolean)
Attributwert
 Element eines Wertebereichs
Relation/Instanz
 ‚Tabelle‘ bzw. Menge von Zeilen
einer Tabelle
(auch Instanz eines Relationenschemas)
2 Relationen zur Darstellung von Personen:
Relationenschema
 Relationenname + Menge von
Attributen
Tupel
 Zeile einer Tabelle / Record
Datenbankschema
 Menge von Relationenschemata
Datenbank
 Menge von Relationen
(Basisrelationen)
Schlüssel
 minimale Menge von Attributen,
Primärschlüssel
 ein beim Datenbankentwurf
ausgezeichneter Schlüssel
Fremdschlüssel
 Attributmenge, die in einer
anderen Relation Schlüssel ist
Fremdschlüsselbedingung
 alle Attributwerte des
Fremdschlüssels tauchen in der
anderen Relation als Werte des
Schlüssels auf
(auch Element einer Relation)
deren Werte ein Tupel einer Tabelle
eindeutig identifizieren
Netzwerkmodell & hierarchisches Modell
Hierarchisches Modell



Ältestes & kommerziell erfolgreichstes Datenbankmodell der ersten Generation
o
1969 von IBM mit dem IMS – Information Management System – eingeführt
o
Insbesondere von Banken & Versicherungen z.T. bis dato eingesetzt
Hierarchie/Wald als Datenbankschema:
o
Bildet die Realwelt durch eine hierarchische Baumstruktur (einen Wald – also eine
‚Menge von Bäumen‘) ab
o
Verknüpfungen der Records via PCR (Parent Child Relationships):
>
Die einzelnen Records sind dabei jeweils mit ihrem Vorgänger (Parent) verlinkt – mit
Ausnahme der Wurzel, welche aus einem einzelnen Record besteht & keinen Vorgänger hat
>
Ergo tritt jeder Record mit Ausnahme der Wurzel genau einmal als Child auf
>
Die „Enden“ des Baums, welche also nicht als Parent fungieren können,
werden jeweils „Blatt“ genannt
Operationen im Hierarchischen Modell:
o
Die Operationen des hierarchischen Modells lassen sich sehr einfach implementieren (was eine der
Ursachen für die Beliebtheit des Modells in der Praxis ist); Basisoperationen:
>
Durchlauf eines Baums ausschließlich von oben nach unten ...
>
... bzw. bei Geschwistern einer Ebene von links nach rechts
Netzwerkmodell & hierarchisches Modell
Hierarchisches Modell

Problem dieses Datenbankschemas:

Lösung: VPCR (um nicht zu sagen: Virtual Parent Child Relationships):
o
o
Mit einer solchen Baumstruktur lassen sich lediglich 1:1 sowie 1:n-Beziehungen darstellen –
nicht jedoch die oftmals benötigten n:m-Beziehungen:
Hier wird via „virtual records“ (Zeigern) die klassische Baumstruktur durchbrochen, so
dass auch Querverbindungen möglich sind, um auch allgemeine Beziehungen darzustellen:
Netzwerkmodell & hierarchisches Modell
Netzwerkmodell (CODASYL-Datenbankmodell)


Datenbankmodell der ersten Generation
o
1971 von CODASYL-DBTG (Yihah: Conference on Data Systems Language - Data
Base Task Group) entwickelt (wird deswegen oft auch CODASYL-Datenbankmodell
genannt)
o
Zwar wird das Netzwerkmodell seit den 90ern zunehmend durch das relationale Modell
verdrängt, ist jedoch insbesondere im Großcomputerbereich heute noch weit verbreitet
& gewinnt zudem im Zuge des Semantic Web wieder an Bedeutung
o
Bekannte Systeme:
>
IDMS (Integrated Database Management System) von Cullinet Software
>
UDS (Universelles Datenbank-System) von Siemens
Begriffe des Netzwerkmodells/Gegenüberstellung zum ER- &
Relationenmodell:
Netzwerkmodell & hierarchisches Modell
Netzwerkmodell (CODASYL-Datenbankmodell)
Datenbankschema:

Das Netzwerkmodell fordert keine strengen Hierarchien – vielmehr kann es als Verallgemeinerung
bzw. Erweiterung des hierarchischen Modells betrachtet werden. Es entspricht jedoch auch –
mit gewissen Einschränkungen – dem ER-Modell

Verknüpfungen der Records
o
Records können mehrere Vorgänger haben – es sind prinzipiell also auch m:n-Beziehungen erlaubt
– zudem können mehrere Records an oberster Stelle stehen, so dass sich eine Netzwerkstruktur
ergibt.
o
Allerdings sind Beziehungen immer 2stellig (binär)
>
Beispiel n-stellige Beziehung:

>

Beispiel 2stelliger Beziehungen:

Professor Jedöns hält Vorlesung V;

Professor Jedöns empfiehlt Buch B;

Buch B hat die ISBN xyz usw. ...
o
Die Beziehungstypen haben zudem keine Attribute (hein?)
o
Anstelle der Mengensemantik des ER-Modells hat das Netzwerkmodell eine Listensemantik
Das Schema des Netzwerkmodells wird als gerichteter Graph definiert:
o

Professor Jedöns hält Vorlesung V & empfiehlt das passende Buch B mit der ISBN xyz
Mit der Menge der Record-Typen (‚Schemata‘) als Knoten & den Set-Typen (‚Relationen‘)
als Kanten
Über Zeiger wird eine Reihenfolge von Instanzen (Member) festgelegt
o
Diese Member sind einer Vorgängerinstanz (Owner) zugeordnet
o
Wird der Member-Satz (Set) vollständig durchlaufen, gelangt man schließlich
wieder zum Owner
Netzwerkmodell & hierarchisches Modell
Netzwerkmodell (CODASYL-Datenbankmodell)

Beispiel Netzwerkstruktur:

Basisoperationen im Netzwerkmodell:
o
Selektionsoperationen für Rekord-Typen (‚Schemata‘)
>
o
z.B.: Suche alle Studenten die in Rostock wohnen
Befehle zum Verfolgen von Links (Set-Typen/‘Relationen‘) in beiden Richtungen
>
z.B.: Suche alle Vorlesungen eines Professors
Erweiterte relationale & semantische Modelle



Geschachtelte Relationen: NF2-Modell (NF2 = NFNF = Non First Normal Form):
o
Erlaubt im Gegensatz zum klassischen Relationenmodell auch geschachtelte Relationen.
o
Während im Relationenmodell Attribute i.d.R. nur atomare Werte haben (eine Komponente
bzw. Zelle also in der 1. NF nur einfache Datentypen wie string, int etc enthält), sind im
sog. NF2 -Modell neben komplexeren Datentypen vor allem auch Relationen – also weitere
Tabellen – als Werte erlaubt, was letztlich einer Schachtelung von Relationen
entspricht
PNF-Relationen (Partitioned Normal Form):
o
Da die beschriebene Schachtelung von Relationen schnell zu unübersichtlichen & auch
fehlerträchtigen Relationen führen können, gibt es sog. PNF-Relationen
o
Diese lassen sich immer zu einer klassischen (flachen) Relation im Sinne der 1. NF
entschachteln
o
PNP-Relationen haben demnach auf jeder Stufe der Schachtelung einen flachen Schlüssel
o
PNF-Relationen sind also jene NF-Relationen, die sich entschachtelt immer durch eine
flache 1. NF-Relation darstellen lassen
Erweitertes NF-Modell (eNF):
o

Hier sind als Attributwerte „Mengen von...“, „Listen von...“ , „Tupel von...“ erlaubt
Semantische Datenmodelle:
o
Datenmodelle, die das Relationenmodell um weitere Abstraktionskonzepte wie
Generalisierung, Spezialisierung, Aggregation, Gruppierung etc. ergänzen
Objektorientierte & Objektrelationale Modelle
Objektorientierte Modelle

Modelle, deren Gegenstände Objekte im Sinn der objektorientierten
Programmierung sind

Basieren dementsprechend auf objektorientierten Sprachen wie C++ & bilden deren
Typsystem direkt auf das Datenmodell ab
o
Ziel: Struktur & Verhalten von Umweltobjekten möglichst 1:1 zu erfassen
o
Zu diesem Zweck unterstützen OODB-Modelle im Gegensatz zu klassischen DB-Modellen
weiterführende OO Konzepte wie
>
Komplexe Werte (Objekte), die als set of, tuple of & list of beschrieben werden können

o
Also bspw. Objekte, die neben den üblichen Attributen wiederum Objekte beinhalten können
>
Objektidentität, um die gespeicherten Objekte von ihren Werten unterscheiden zu können
>
Methoden, um objektspezifische Operationen definieren & ausführen zu können (& damit
ausschließlich für bestimmte Objekttypen zuzulassen)
>
Vererbung von Attributen & Methoden zwischen Objekten, die in einer IST-Beziehung zueinander
stehen
>
Möglichkeit der (Neu)Definition von Objekttypen
(s. Definition von Klassen in der OOP im Sinne selbstdefinierter Datentypen)
>
Kapselung – Verbergen von Attributen & Methoden – bzw. Kontrolle des Zugriffs auf
Objekteigenschaften durch öffentliche Methoden (s. public/private/protected/friends-Prinzip bei C++)
>
Persistenz – Objekte werden ‚dauerhaft‘ gespeichert
Wichtiger Vertreter OODBM ist ODMG-93 (Object Database Management Group)
>
Hier beschreibt ein (C++-lastiges) Objektmodell Begriffe & semantische Bedingungen des
OO Datenmodells
>
Mögliche Schnittstellen zur Datendefinition & -manipulation werden durch Datenbanksprachen wie ODL
(Object Definition Language) OQL (Object Query Language) geboten
>
Zudem sind Bindings (Spracheinbettungen) für C++, Java & SMALLTALK vorgesehen
Objektorientierte & Objektrelationale Modelle
Objektorientierte Modelle

Abgrenzung zum relationalen Modell:
o
Im relationalen Modell sind Informationen über ein ‚Objekt‘ (wie einen Angestellten
o.ä.) über mehrere Relationen „verstreut“ – d.h. die gefragte Information muss
unter Umstände aus mehreren Relationen (via Verbundoperationen etc.)
vergleichsweise umständlich zusammengesetzt werden
o
Im OODBM hingegen wird die Gesamtheit der Informationen über einen Angestellten
o.ä. in einem Datenobjekt „gehalten“ – eine entsprechende Anfrage betrifft dann
auch nur dieses Objekt.
>
Vereinfachung der Konsistenzregeln & Leistungsvorteil:
Demzufolge müsste auch bei einer Aktualisierung nicht die gesamte
Datenbasis der DB nach eventuell betroffenen Tupeln abgesucht werden,
wie dies im relationalen Modell der Fall wäre.
Objektorientierte & Objektrelationale Modelle
Objektrelationale Modelle

Bindeglied zwischen klassischen relationalen und objektorientierten Datenbanksystemen
– also eine Erweiterung relationaler DB-Systeme um bestimmte objektorientierte
Eigenschaften (s. SQL3/SQL-99)
o

Häufig wird über eine Relationale Datenbank eine objektorientierte
Zugriffsschicht (Persistent Framework) gesetzt.
Objektrelationale Modelle kommen überall dort zum Einsatz, wo Mengen von Objekten
in Beziehung zu anderen Daten oder Objekten gebracht werden müssen.
o
Beispiel GIS: Mehrere Koordinaten-Objekte referenzieren eine Straße – die
Koordinaten stehen also in Relation mit einem Straßennamen und sind selbst
Objekte, die zueinander eine Beziehung haben.
Multidimensionale Datenmodelle
Data Warehouse

Data Warehouse:
Mitnichten ein Warenhaus, sondern ein multidimensionales System, das
unternehmensübergreifend Daten aus den operativen Einzelsystemen
zusammenführt, integriert & für die Analyse aufbereitet
o
Also eher ein Datenlager, dass der Informationsintegration dient
o
Der Inhalt dieses Datenlagers setzt sich demnach aus Daten unterschiedlicher
Quellen zusammen, die in das Warehouse geladen & dort mehr oder weniger
langfristig gespeichert werden, um zu Analysezwecken sowie als
betriebswirtschaftliche Entscheidungshilfe verwendet zu werden.
o
Es wird also eine homogene, vergleichbare Datenbasis generiert, um eine
globale Sicht auf heterogene & verteilte Datenbestände zu ermöglichen
o
Ein Data Warehouse dient oft einem OLAP (OnLine Analytical Processing)
als Datenquelle (s. Folgechart).
o
Die „Beladung“ eines Warehouse erfolgt z.B. turnusmäßig, um Analysen über die
Zeit zu ermöglichen. Der Trend geht allerdings inzwischen zum Real-Time-DataWarehousing (yoyoyo!).
Multidimensionale Datenmodelle
OLAP

OLAP (OnLine Analytical Processing):
Ein analytisches Informationssystem, welches entscheidungsunterstützend im
interaktiven Bereich eingesetzt wird
o
o
OLAP wird zur hypothesengestützten Analyse von Daten z.B. eines Data
Warehouse verwendet:
>
Der Analyst muss also vor der eigentlichen Untersuchung wissen, welche
Anfragen er an das OLAP-System stellen möchte.
>
Seine Hypothese wird dann durch das Analyseergebnis bestätigt oder abgelehnt
>
Ziel ist, durch multidimensionale Betrachtung dieser Daten ein
entscheidungsunterstützendes Analyseergebnis zu gewinnen.
OLAP-Cube
Der OLAP-Cube ist ein Data Cube, ein mehrdimensionaler Datenwürfel, der auf
Basis bspw. eines Data Warehouse erstellt wurde und der logischen Darstellung von
Daten dient
>
Die Daten – z.B. Kennzahlen wie Geldbeträge etc. – werden dabei als
Elemente eines solchen mehrdimensionalen Würfels angeordnet.
>
Da häufig mehr als 3 Dimensionen realisiert werden, spricht man auch von
einem Hypercube
>
Bei OLAP sind die Dimensionen des Cube i.d.R. hierarchisch angeordnet

Produktgruppen -> Produktklassen -> Produkte etc.

Staaten -> Bundesländer -> Städte -> Stadtbezirke etc.
Multidimensionale Datenmodelle
Data Warehouse & OLAP

Ich hab da mal ne Grafik vorbereitet, ne:
Oder wie der Spanier sagt:
Multidimensionale Datenmodelle
Data Warehouse & OLAP
Zusammenspiel zwischen Data Warehouse & OLAP:

Das ‚Befüllen‘ eines Data Warehouse ist ein komplexer & zeitaufwendiger Prozess, der
nicht synchron zum normalen Transaktionsbetrieb der als Quelle dienenden DB erfolgen
kann & deshalb nur selten vorgenommen wird:
o
Ein Data Warehouse wird aus mehreren verschiedenen operationalen DB gefüllt – also DB,
welche im laufenden Betrieb beständig Transaktionen verschiedenster Art durchführen
>
o

Als mögliche Datenquellen werden neben DB auch WWW-Quellen genutzt
Vor der Datenintegration ins Warehouse müssen die Daten aktualisiert (refreshed),
extrahiert, transformiert & bereinigt werden (Data Cleaning), um schließlich eine
homogene & vergleichbare Datenbasis zu generieren
Auf dem Gesamtbestand des Warehouse setzt (i.d.R. nach dem Client-Server-Prinzip) ein
OLAP-System auf, welches aus ein od. mehreren OLAP-Servern besteht
o
o
Dabei sollte das OLAP-System den durch das Akronym FASMI (Fast Analysis of Shared
Multidimensional Information) definierten Anforderungen genügen:
>
Fast:
Fürgegen interaktives Arbeiten notwendig
>
Analysis:
Unterstützung analytischer & statistischer Funktionalitäten
>
Shared:
Unterstützung des Mehrbenutzerbetriebs
>
Multidimensional:
Unterstützung des multidimensionalen Datenmodells
>
Information:
Gewährleistung der Informationsgewinnung aus Rohdaten
OLAP-Varianten
>
MOLAP
Multidimensional OLAP (s. OLAP-Cube: eigene Datenhaltung in Form eines
Datenwürfels – realisiert als direkte Speicherung von Matrizen; schneller Zugriff)
>
ROLAP
Relationales OLAP (basiert auf relationaler DB)
>
HOLAP
Hybrides OLAP (Hybrid zwischen MOLAP & ROLAP)
Semistrukturierte Datenbanken

Semistrukturierte Daten/Dokumente:
Daten bzw. Dokumente wie Text- oder HTML-Files mit wechselnder Strukturierung
o
Bestenfalls liegt zwar eine interne Struktur vor, jedoch ist diese oft
wechselhaft/nicht zwingend konsistent
o
Mögliche Merkmale semistrukturierter Datenmodelle:
>
Kein Zentrales Schema vorhanden:
Das Schema solcher Modelle ist nicht zentral für alle Daten gleichen Typs gespeichert –
sondern implizit in jedem Dokument enthalten

>
Wechselnde Datenstruktur:
Selbst Daten desselben Typs können eine wechselnde Struktur aufweisen

>
So lassen sich beispielsweise die einzelnen Sätze eines Textes in Ermangelung
von Attributen bzw. Tags nicht ohne weiteres (parsing o.ä.) identifizieren
Ggf. variierende Datentypen der Attribute:
Diese haben keine verbindliche Typisierung im Sinne einer Integritätsbedingung

>
differierende, fehlende od. zusätzliche Attribute bzw. divergierende Strukturierung
auch innerhalb der Attribute selbst
Daten haben keine Struktur im Sinne von Attributen bzw. Tags

>
Notwendigkeit von Parsern o.ö. zur Strukturerkennung & -interpretation, da sich ein
solches Schema nicht von ‚Standard-Datenmodellen‘ adäquat verarbeiten ließe
Relationale Modelle definieren für die Attribute Integritätsbedingungen hinsichtlich
der zuzulassenden Datentypen
Große Anzahl möglicher Attribute & polymorphe interne Strukturierung der
Attribute (im Gegensatz zu relationalen Modellen mit einer überschaubaren Anzahl von
Attributen & deren durchgängigen Strukturierung)
Semistrukturierte Datenbanken
Mögliche Merkmale semistrukturierter Datenmodelle (Fortsetzung):

Kein festes Schema (als auch nicht implizit):
Attribute & Dokument-Struktur unterliegen häufigen Änderungen
o

Unscharfe Trennung zwischen Daten & Schema:
Bedingt durch häufige strukturelle Änderungen können Schema & die eigentlichen
Nutzdaten nicht immer klar voneinander unterscheiden werden – Schemainformationen
werden also ggf. als Daten ‚missverstanden‘
o

relationale DB haben über einen längeren Zeitraum hinweg ein festes Schema
Relationale Modelle trennen Schemata & Instanzen (Daten) streng voneinander
Inhaltsbasierte Anfragen:
Bei Anfrageoptionen wie Vergleichsprädikaten (z.B. die Suche nach einem Begriff) wird
oftmals das gesamte Dokument & nicht einzelne Attribute abgeglichen bzw. durchsucht
(s. übliche Suchanfragen im klassischen (nicht semantischen) Web: Ein gesuchter Begriff
wird im Titel, in den Keywords sowie des gesamten HTML-Dokuments gesucht)
o
In relationalen Modelle erfolgen Anfragen hingegen auf Basis von konkreten Attributen
Semistrukturierte Datenbanken
Datenmodelle für semistrukturierte Dokumente
(welche die beschriebenen Merkmale teilweise beheben)


Schemalose Datenmodelle:
Nutzen Graphendarstellungen für Instanzen & Attribute
o
OEM (Object Exchange Model)
o
Baummodell
Union-Datenmodell:
Hier wird eine Dokumentstruktur durch Vereinigung von Basisstrukturen erreicht
o


Problemski: Notwendigkeit vordefinierter Basisstrukturen – andernfalls bleiben die
Probleme semistrukturierter Modelle bestehen
Die Markup-Sprache HTML (Hypertext Markup Language):
Strukturierung durch Tags
o
Vorteil: Hohe Toleranz bei fehlenden/zusätzlichen Tags – deshalb eigentlich für
semistrukturierte Dokumente gut geeignet
o
Problem: Vordefinierter & nicht veränderbarer Satz von (Tag-)Attributen
Metasprachen wie SGML (Standard Generalized Markup Language) & XML (Extensible
Markup Language):
Ermöglichen die Beschreibung einer sog. DTD (Document Type Definition), welche Art, Menge &
Strukturierung (Schachtelung) der Attribute definiert
Semistrukturierte Datenbanken
Semistrukturierte Daten am Beispiel von XML

XML ist eine Teilmenge von SGML, die aufgrund der hohen Komplexität von SGML vom W3C
neu abgeleitet wurde

Damit ist XML - wie SGML auch – eine Metasprache (also eine Sprache zur (Regel-)Definition
anderer Sprachen) zur Erstellung maschinen- und menschenlesbarer Dokumente in Form
einer Baumstruktur

XML-Dokumente haben eine logische & eine physische Struktur (im Gegensatz zu HTML jedoch
keine zwingende Layout-Struktur für die Browser-Darstellung)
o
Logische Struktur:
Durch einen hierarchisch strukturierten Baum gewährleistet; Baumknoten:
>
Elemente: Tags bzw. Tag-Paare oder Empty-Element-Tags
>
Attribute: Schlüsselwort-Werte-Paare für Zusatz-Informationen über Elemente
>
Processing Instructions (Verarbeitungsanweisungen):

o
Werden z.B, verwendet, um Verarbeitungsanweisungen anderer Sprachen zu
integrieren – PHP-Beispiel: <?php echo("Hello, World");?>
>
Kommentare: <!-- Kommentar-Text -->
>
Daten/Payload wie Text etc.: <![CDATA[ beliebiger Text ]]>
Physische Struktur:
>
Hauptdatei des XML-Dokuments als erste Entität: *.xml
>
XML-Deklaration (spezifiziert XML-Version, Zeichenkodierung und Verarbeitbarkeit):
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
>
DTD definiert Entitäten & spezifiziert den erlaubten logischen Aufbau des XMLDokuments (s. Folgerchart): *.dtd
Semistrukturierte Datenbanken
Semistrukturierte Daten am Beispiel von XML – die DTD I (Elementtyp-Deklaration)

In einer DTD werden Elemente, Attribute von Elementen & Entitäten definiert.

Mit einer Elementtyp-Deklaration wird ein Element (Tag) & sein möglicher Inhalt definiert.
In einem validen XML-Dokument dürfen nur Elemente vorkommen, die in der DTD definiert sind.

Die DTD verwendet zur Elementtyp-Deklaration folgende Ausdrücke :
o
Sequenz: (A1, A2)
Definiert die Reihenfolge von Elementen – logo: erst A1, dann A2 ...
o
Alternative: (A1|A2)
Definiert eine Wahlmöglichkeit zwischen Elementen - entweder muss A1 oder A2 enthalten sein
o
Verschiedene Varianten für Wiederholungen (Iteration),deren Notation an reguläre
Ausdrücke anlehnt (fehlt eine solche Notation, muss das entsprechende Element genau einmal
vorkommen!):
>
Beliebige Iteration:
A*
A kann beliebig oft vorkommen –also auch gar nicht
>
nichtleere Iteration:
A+
A muss mindestens einmal vorkommen
>
optionales Element:
A?
A darf vorkommen, muss es jedoch nicht – wenn A vorkommt, dann jedoch nur einmal!
o
Gruppierung von Elementen mit runden Klammern: ()
o
Kein Inhalt: EMPTY (das Element ist immer leer, wie z.B. bei <br>)
o
Beliebiger Inhalt: ANY
o
Ausschließlich Text: #PCDATA (parseable character data)
Semistrukturierte Datenbanken
Semistrukturierte Daten am Beispiel von XML – die DTD II (Attributlisten-Deklaration)

Die Liste der möglichen Attribute eines Elementes wird in einer DTD mit <!ATTLIST
Elementname Attributliste> angegeben.

Die Attributliste enthält durch Leerzeichen oder Zeilenumbrüche getrennt jeweils den Namen,
den Typ und Vorgaben eines Attributes.

Attributtypen:

o
CDATA
(Zeichenketten)
o
ID
(Attributwert gilt als eindeutige ID – optimal für IDs aus Datenbanken)
o
IDREF (Einzelne Referenz auf Attribute des Typs ID - Attributwert muss also gleich einer ID sein)
IDREFS (Liste von Referenzen auf Attribute des Typs ID - dito für ein oder mehrere ID's)
o
NMTOKEN (einzelnes Token - Attributwert muss gleich einem Namen sein)
NMTOKENS (Liste von Tokens - dito für ein oder mehrere Namen)
o
ENTITY (Attributwert muss gleich ungeparster Entity sein)
ENTITIES (dito für ein oder mehrere Entities)
o
Aufzählungen & NOTATION-Aufzählungen
(Liste der erlaubten Werte; wird der Reihe nach angegeben und durch | getrennt)
Attribut-Vorgaben:
o
#REQUIRED
Erforderliches Attribut (muss explizit im Element vorkommen)
o
#IMPLIED
Optionales Attribut (darf fehlen & hart dann auch keinen Default-wert)
o
"..."
Default-Wert (falls das Attribut weggelassen wird)
o
#FIXED "..."
Das Attribut hat immer einen festen Standardwert
Semistrukturierte Datenbanken
Semistrukturierte Daten am Beispiel von XML – die DTD III (Entity-Deklaration)

Ein Entity ist eine benannte Abkürzung für eine Zeichenkette (oder ein externes Dokument),
die innerhalb der DTD oder des XML-Dokumentes, das diese DTD benutzt, verwendet werden kann.

Entities sind also (verkürzte) Platzhalter für längere Deklarationen innerhalb einer DTD


Die Entity-Deklaration wird durch das Schlüsselwort ENTITY in der DTD festgelegt.
Ein Beispiel-Entity fasst unter dem Platzhalter %adresse die Elemente straße, plz und stadt
zusammen:
//Anführungsstriche beachten!
o
<!ENTITY %adresse „(straße, plz, stadt)“>
o
Möchte man nun die Adresse als Unterelement einer Person verwenden, tut man dies über das
Entity %adresse:
<!ELEMENT person (%adresse; alter)>
o

//Semikolon nicht vergessen!
Hier zeigt sich der Vorteil der Entity-Verwendung, da logisch zusammengehörende Elemente zu einem
verkürzten Platzhalter zusammengefasst werden können.
Interne Entities:
Diese bestehen aus Zeichenketten (& können selber wieder Entity-Referenzen und wohlgeformtes XML-Markup
enthalten) – hier wird eine Entity-Referenz der Form &name; wird durch den Inhalt der Entity name ersetzt:

Externe Entities:
Diese bestehen aus dem Inhalt einer externen Datei, auf die verwiesen wir
Semistrukturierte Datenbanken
Semistrukturierte Daten am Beispiel von XML – die DTD IV (Verschiedene ‚DTD-Klassen‘)



Standard-DTDs
o
Also gleichsam als Standard verabschiedete DTDs (EAD-DTD, TEI-DTD, EBIND-DTD etc.) mit
einem fixen Schema
o
Vorteil: Lassen sich leicht in beliebige Datenbanken importieren
Separate DTDs
o
Z.B. für den Datenaustausch innerhalb von Firmen etc.
o
Vorteil: dito; die Programmierung spezifischer Import-Filter etc. lohnt sich jedoch erst bei
einer großen Anzahl zu importierender XML-Dokumente
Lokale DTDs für selbstbeschreibende Dokumente
o
Als Teil des Dokuments selbst (interne Notation)
o
Nachteil: Variierende, zueinander inkompatible DTDs - hier muss also auf die
genannten anderen Modelle zur Verarbeitung semistrukturierter Datenbanken
zurückgegriffen werden
Semistrukturierte Datenbanken
Import semistrukturierter Daten in relationalen od. objektorientierten Datenbanken

Hier lässt sich ein Import dadurch realisieren, dass die zu importierenden, semistrukturierten
Daten als neuer Datentyp für Dokumente etc. definiert werden.
o
Bei XML-Dokumenten od. DTDs kann dies durch die Definition eines
Erweiterungsmoduls geschehen
o
XML kann hier auch als Datenaustauschformat zwischen verschiedenartigen relationalen
DB fungieren (Die Tabellenstruktur wird dann als DTD erfasst)
o
XQL, XML-Q & Lorel sind mögliche Technologien zur Abfrage von XML basierten
Datenbanken
o
Das DOM (Document Object Model) als plattform- & PPSneutrale Schnittstelle
fungiert im Zusammenhang mit XML-Parsern als API , um Programmen den Zugriff auf
Inhalt, Struktur & Stil von XML-Dokumenten zu ermöglichen.
Sonstige DB-Modelle


GOOD (Graph-Oriented Object Model)
DB-Modell auf Basis von Graphen
o
Hier werden die Ecken eines Graphen als Werte, Objekte & Typen interpretiert, wobei die Kanten des
Graphen dessen Ecken einander zuordnen
o
Ein GOOD-Graph besteht aus DB & DB-Schema in einer homogenen Darstellung
o
Mittels Graphmanipulationen werden Anfragen & Änderungen vorgenommen
Klassenlose DB-Modelle
Variante der OODBM
o

>
Vorteil: Höhere Flexibilität bei der Modellierung dynamischer & komplexer Anwendungen
>
Nachteil: Erschweren von Anfragen & effizienten Speicherstrukturen
Feature-Terme
Dienen der Wissensrepräsentation
o

Mit ähnlichen Eigenschaften, allerdings wird hier auf eine strenge Klassifizierung & Typisierung
verzichtet
Feature-Terme bestehen aus einem eindeutigen Namen & verschiedenen Features (Attributen)
>
Die Features können wiederum weitere vollständige Feature-Terme aufnehmen, so dass eine komplexe
Objektstruktur ermöglicht wird
>
Das Lilog-Datenmodell dient der Verarbeitung natürlicher Sprachen (& wohl auch von feature-Termen)
– eine logikbasierte Abfragesprache stellt F-Logic dar (basiert auf Feature-Termen)
Komplex-Objekt-Datenmodelle wie MAD (Molekül-Atom-Datenmodell)
Dient der Darstellung komplexer Objektstrukturen
o
Wird im technischen Bereich verwendet, um die dort weit verbreiteten hierarchischen ‚Ist Teil vonBeziehungen‘ zu unterstützen. MAD ermöglicht z.B. das Zusammensetzen von Basisobjekten
(Atomen) zu komplexen Objektstrukturen (Molekülen)