Datenbankmodelle für die Realisierung von Anwendungen Hauptseminar Nichtrelationale Datenbanken...

30
Datenbankmodelle für die Realisierung von Anwendungen Hauptseminar ‚Nichtrelationale Datenbanken‘ Master of Ceremony: Christian Daum

Transcript of Datenbankmodelle für die Realisierung von Anwendungen Hauptseminar Nichtrelationale Datenbanken...

Page 1: Datenbankmodelle für die Realisierung von Anwendungen Hauptseminar Nichtrelationale Datenbanken Master of Ceremony: Christian Daum.

Datenbankmodelle für die Realisierung von Anwendungen

Hauptseminar ‚Nichtrelationale Datenbanken‘

Master of Ceremony: Christian Daum

Page 2: 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 Datenbankeno 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

Page 3: Datenbankmodelle für die Realisierung von Anwendungen Hauptseminar Nichtrelationale Datenbanken Master of Ceremony: Christian Daum.

Ü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 Modelleo Neuere Modelle wie NF2 etc.

Objektorientierte (ODMG) & objektrelationale (SQL-3/SQL-99) Modelleo 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

Page 4: Datenbankmodelle für die Realisierung von Anwendungen Hauptseminar Nichtrelationale Datenbanken Master of Ceremony: Christian Daum.

Das RelationenmodellZentrale Eigenschaften des 1970 von Edgar F. Codd eingeführten Relationenmodells I: 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

Page 5: Datenbankmodelle für die Realisierung von Anwendungen Hauptseminar Nichtrelationale Datenbanken Master of Ceremony: Christian Daum.

Das RelationenmodellZentrale Eigenschaften des Relationenmodells II: 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)

Page 6: Datenbankmodelle für die Realisierung von Anwendungen Hauptseminar Nichtrelationale Datenbanken Master of Ceremony: Christian Daum.

Das RelationenmodellDie wichtigsten Basisoperationen im Relationenmodell (sog. Relationenalgebra)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

> 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.

Mengen-Operationen (Vereinigung, Differenz, Durchschnitt)

o 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

Page 7: Datenbankmodelle für die Realisierung von Anwendungen Hauptseminar Nichtrelationale Datenbanken Master of Ceremony: Christian Daum.

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)

Relationenschema Relationenname + Menge von Attributen

Tupel Zeile einer Tabelle / Record (auch Element einer Relation)

Datenbankschema Menge von Relationenschemata

Datenbank Menge von Relationen (Basisrelationen)

Schlüssel minimale Menge von Attributen, deren Werte ein Tupel einer Tabelle eindeutig identifizieren

Primärschlüssel ein beim Datenbankentwurf ausgezeichneter Schlüssel

Fremdschlüssel Attributmenge, die in einer anderen Relation Schlüssel ist

Fremdschlüssel- bedingung

alle Attributwerte des Fremdschlüssels tauchen in der anderen Relation als Werte des Schlüssels auf

Begriffe des RelationenmodellsBegriffe des Relationenmodells

Das Relationenmodell

2 Relationen zur Darstellung von Personen:

Page 8: Datenbankmodelle für die Realisierung von Anwendungen Hauptseminar Nichtrelationale Datenbanken Master of Ceremony: Christian Daum.

Netzwerkmodell & hierarchisches Modell

Hierarchisches ModellHierarchisches 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

Page 9: Datenbankmodelle für die Realisierung von Anwendungen Hauptseminar Nichtrelationale Datenbanken Master of Ceremony: Christian Daum.

Netzwerkmodell & hierarchisches Modell

Hierarchisches ModellHierarchisches Modell

Problem dieses Datenbankschemas: o Mit einer solchen Baumstruktur lassen sich lediglich 1:1 sowie 1:n-Beziehungen darstellen –

nicht jedoch die oftmals benötigten n:m-Beziehungen:

Lösung: VPCR (um nicht zu sagen: Virtual Parent Child Relationships):o Hier wird via „virtual records“ (Zeigern) die klassische Baumstruktur durchbrochen, so

dass auch Querverbindungen möglich sind, um auch allgemeine Beziehungen darzustellen:

Page 10: Datenbankmodelle für die Realisierung von Anwendungen Hauptseminar Nichtrelationale Datenbanken Master of Ceremony: Christian Daum.

Netzwerkmodell & hierarchisches ModellNetzwerkmodell (CODASYL-Datenbankmodell)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:

Page 11: Datenbankmodelle für die Realisierung von Anwendungen Hauptseminar Nichtrelationale Datenbanken Master of Ceremony: Christian Daum.

Netzwerkmodell & hierarchisches ModellNetzwerkmodell (CODASYL-Datenbankmodell)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:

Professor Jedöns hält Vorlesung V & empfiehlt das passende Buch B mit der ISBN xyz

> 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 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

Page 12: Datenbankmodelle für die Realisierung von Anwendungen Hauptseminar Nichtrelationale Datenbanken Master of Ceremony: Christian Daum.

Netzwerkmodell & hierarchisches ModellNetzwerkmodell (CODASYL-Datenbankmodell)Netzwerkmodell (CODASYL-Datenbankmodell)

Beispiel Netzwerkstruktur:

Basisoperationen im Netzwerkmodell:

o Selektionsoperationen für Rekord-Typen (‚Schemata‘)

> z.B.: Suche alle Studenten die in Rostock wohnen

o Befehle zum Verfolgen von Links (Set-Typen/‘Relationen‘) in beiden Richtungen

> z.B.: Suche alle Vorlesungen eines Professors

Page 13: Datenbankmodelle für die Realisierung von Anwendungen Hauptseminar Nichtrelationale Datenbanken Master of Ceremony: Christian Daum.

Erweiterte relationale & semantische Modelle

Geschachtelte Relationen: NFGeschachtelte Relationen: NF22-Modell-Modell (NF (NF22 = NFNF = Non First Normal Form): = 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):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):Erweitertes NF-Modell (eNF):

o Hier sind als Attributwerte „Mengen von...“, „Listen von...“ , „Tupel von...“ erlaubt

Semantische Datenmodelle:Semantische Datenmodelle:

o Datenmodelle, die das Relationenmodell um weitere Abstraktionskonzepte wie Generalisierung, Spezialisierung, Aggregation, Gruppierung etc. ergänzen

Page 14: Datenbankmodelle für die Realisierung von Anwendungen Hauptseminar Nichtrelationale Datenbanken Master of Ceremony: Christian Daum.

Objektorientierte & Objektrelationale ModelleObjektorientierte ModelleObjektorientierte 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

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

o 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

Page 15: Datenbankmodelle für die Realisierung von Anwendungen Hauptseminar Nichtrelationale Datenbanken Master of Ceremony: Christian Daum.

Objektorientierte & Objektrelationale ModelleObjektorientierte ModelleObjektorientierte 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.

Page 16: Datenbankmodelle für die Realisierung von Anwendungen Hauptseminar Nichtrelationale Datenbanken Master of Ceremony: Christian Daum.

Objektorientierte & Objektrelationale ModelleObjektrelationale ModelleObjektrelationale 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.

Page 17: Datenbankmodelle für die Realisierung von Anwendungen Hauptseminar Nichtrelationale Datenbanken Master of Ceremony: Christian Daum.

Multidimensionale Datenmodelle Data WarehouseData 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-Data-Warehousing (yoyoyo!).

Page 18: Datenbankmodelle für die Realisierung von Anwendungen Hauptseminar Nichtrelationale Datenbanken Master of Ceremony: Christian Daum.

Multidimensionale Datenmodelle OLAPOLAP

OLAP (OnLine Analytical Processing):Ein analytisches Informationssystem, welches entscheidungsunterstützend im interaktiven Bereich eingesetzt wird

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.

o 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.

Page 19: Datenbankmodelle für die Realisierung von Anwendungen Hauptseminar Nichtrelationale Datenbanken Master of Ceremony: Christian Daum.

Multidimensionale Datenmodelle Data Warehouse & OLAPData Warehouse & OLAP

Ich hab da mal ne Grafik vorbereitet, ne:

Oder wie der Spanier sagt:

Page 20: Datenbankmodelle für die Realisierung von Anwendungen Hauptseminar Nichtrelationale Datenbanken Master of Ceremony: Christian Daum.

Multidimensionale Datenmodelle Data Warehouse & OLAPData 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

> Als mögliche Datenquellen werden neben DB auch WWW-Quellen genutzt

o 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 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

o 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)

Page 21: Datenbankmodelle für die Realisierung von Anwendungen Hauptseminar Nichtrelationale Datenbanken Master of Ceremony: Christian Daum.

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

Notwendigkeit von Parsern o.ö. zur Strukturerkennung & -interpretation, da sich ein solches Schema nicht von ‚Standard-Datenmodellen‘ adäquat verarbeiten ließe

> Wechselnde Datenstruktur:Selbst Daten desselben Typs können eine wechselnde Struktur aufweisen differierende, fehlende od. zusätzliche Attribute bzw. divergierende Strukturierung

auch innerhalb der Attribute selbst

> Daten haben keine Struktur im Sinne von Attributen bzw. Tags

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

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)

Page 22: Datenbankmodelle für die Realisierung von Anwendungen Hauptseminar Nichtrelationale Datenbanken Master of Ceremony: Christian Daum.

Semistrukturierte DatenbankenMögliche Merkmale semistrukturierter Datenmodelle (Fortsetzung):Mögliche Merkmale semistrukturierter Datenmodelle (Fortsetzung):

Kein festes Schema (als auch nicht implizit):Attribute & Dokument-Struktur unterliegen häufigen Änderungen

o relationale DB haben über einen längeren Zeitraum hinweg ein festes Schema

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 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

Page 23: Datenbankmodelle für die Realisierung von Anwendungen Hauptseminar Nichtrelationale Datenbanken Master of Ceremony: Christian Daum.

Semistrukturierte DatenbankenDatenmodelle für semistrukturierte Dokumente 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

Page 24: Datenbankmodelle für die Realisierung von Anwendungen Hauptseminar Nichtrelationale Datenbanken Master of Ceremony: Christian Daum.

Semistrukturierte DatenbankenSemistrukturierte Daten am Beispiel von XMLSemistrukturierte 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):

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 ]]>

o 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 XML-Dokuments (s. Folgerchart): *.dtd

Page 25: Datenbankmodelle für die Realisierung von Anwendungen Hauptseminar Nichtrelationale Datenbanken Master of Ceremony: Christian Daum.

Semistrukturierte DatenbankenSemistrukturierte Daten am Beispiel von XML – die DTD I (Semistrukturierte Daten am Beispiel von XML – die DTD I (Elementtyp-DeklarationElementtyp-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)

Page 26: Datenbankmodelle für die Realisierung von Anwendungen Hauptseminar Nichtrelationale Datenbanken Master of Ceremony: Christian Daum.

Semistrukturierte DatenbankenSemistrukturierte Daten am Beispiel von XML – die DTD II (Semistrukturierte Daten am Beispiel von XML – die DTD II (Attributlisten-DeklarationAttributlisten-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

Page 27: Datenbankmodelle für die Realisierung von Anwendungen Hauptseminar Nichtrelationale Datenbanken Master of Ceremony: Christian Daum.

Semistrukturierte DatenbankenSemistrukturierte Daten am Beispiel von XML – die DTD III (Semistrukturierte Daten am Beispiel von XML – die DTD III (Entity-DeklarationEntity-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:

o <!ENTITY %adresse „(straße, plz, stadt)“> //Anführungsstriche beachten!

o Möchte man nun die Adresse als Unterelement einer Person verwenden, tut man dies über das Entity %adresse:

<!ELEMENT person (%adresse; alter)> //Semikolon nicht vergessen!

o 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

Page 28: Datenbankmodelle für die Realisierung von Anwendungen Hauptseminar Nichtrelationale Datenbanken Master of Ceremony: Christian Daum.

Semistrukturierte DatenbankenSemistrukturierte Daten am Beispiel von XML – die DTD IV (Verschiedene ‚DTD-Klassen‘)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

Page 29: Datenbankmodelle für die Realisierung von Anwendungen Hauptseminar Nichtrelationale Datenbanken Master of Ceremony: Christian Daum.

Semistrukturierte DatenbankenImport semistrukturierter Daten in relationalen od. objektorientierten DatenbankenImport 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.

Page 30: Datenbankmodelle für die Realisierung von Anwendungen Hauptseminar Nichtrelationale Datenbanken Master of Ceremony: Christian Daum.

Sonstige DB-Modelle GOOD (Graph-Oriented Object Model)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-ModelleKlassenlose DB-ModelleVariante der OODBM

o Mit ähnlichen Eigenschaften, allerdings wird hier auf eine strenge Klassifizierung & Typisierung verzichtet

> Vorteil: Höhere Flexibilität bei der Modellierung dynamischer & komplexer Anwendungen

> Nachteil: Erschweren von Anfragen & effizienten Speicherstrukturen

Feature-TermeFeature-TermeDienen der Wissensrepräsentation

o 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)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 von-Beziehungen‘ zu unterstützen. MAD ermöglicht z.B. das Zusammensetzen von Basisobjekten (Atomen) zu komplexen Objektstrukturen (Molekülen)