1/5 Nonstandard Datenbanksysteme Schwachstellen heutiger DB-Technologie bei Nonstandard-Anforderungen • Was versteht man unter "nonstandard"-Anforderungen an die DB-Technologie? Modellierung von Struktur: hochstrukturierte Information (beliebig zusammengesetzt, beliebige Beziehungen, Versionen, spezielle Attributwerte) unstrukturierte Information (BLOB, NCI) Modellierung von Verhalten: passende und mächtige Operationen, typenspezifisches Verhalten softwaretechnisch bessere Anbindung (oo), hohe Leistung • Warum genügen herkömmliche DBMS vielen dieser Anforderungen nicht oder nur unzureichend? solche Anforderungen nur mit hohem Aufwand lösbar, bessere Wege existieren, Passivität, keine Programmierssprachen unterstützen, Datenbanken und Objekte • Nennen Sie allgemeine Charakteristika objektorientierter Systeme. Objekte: Kollektion von unterscheidbaren Einheiten Abstraktion und Autonomie (Einkapselung (Geheimnisprinzip), Anforderung von Leistungen anderer Objekte), Klassifikation (Klassen von Objekten, Zusammenfassung von gleichartigen Objekten), Taxonomie (Ober-/ Unterklasse, Hierarchie, Vererbung von Eigenschaften) Objektorientierte Systemanalyse, Systementwurf, Systemkonstruktion (oo Programmierung, oo Benutzeroberflächen, oo Datenbanken) • Welche sind die Vorteile der objektorientierten Modellierung? objektorientierte Modellierung besteht aus: Operatorschnittstelle (akzeptierbare Botschaft) und dem Objekt (Zustand (Wert), Methode (Operatorrumpf)) Natürlichkeit (sinnvolle Abstraktion, Beherrschung der Komplexität, Trennung von Schnittstelle und Implementation), evolutionäre Systemkonstruktion (Wiederverwendbarkeit, inkrementelle Programmierung) • Was ist ein objektorientiertes Datenbanksystem? Datenbank: Menge zusammengehöriger Daten (dauerhaft, gross, integriert, unabhängig, mehrfachbenutzbar, sicher, flexibel handhabbar, verteilt) DBMS: Software zur Verwaltung von Datenbanken; Datenmodell, Datenzugriff und –manipulation, Steuerung und Überwachung Datenbanksystem mit objektorientiertem Datenmodell; oo Datenmodell bildet die Umwelt besser (1:1) ab; Gründe: oo Systeme, traditionelle DBS, neue nonstandard Anforderungen • Wie definiert man ein Datenmodell? Satz von abgestimmten Konzepten zur Beschreibung der Repräsentation von Informationen und Daten, umfasst: Aspekte bezüglich Datentypen und –strukturen, Operationen, Konsistenzregeln spezifische Miniweltbeschreibung in Termen des Datenmodells: DB-Schema Kollektion der Daten, welche die Miniwelt repräsentieren: Datenbank – Schema selbst durch Daten ausgedrückt: Metadaten zu beachten: Konsistenz (extern oder intern (im Datenmodell, in der DDL, Konsistenzdefinitionssprache CDL, Zustände oder Zustandsübergänge)); Abstraktionslevel (physisch < logisch < konzeptuell) • Charakterisieren sie den strukturellen Aspekt eines Datenmodells. Struktur der Miniwelt kann mit Gegenständen (Entitäten), Assoziationen (Beziehungen) und deren Eigenschaften ausgedrückt werden 2/5 Arten der benutzbaren individuellen Datenelementen, Strukturen zur Kombination von individuellen Datenelementen, einfache (7, Schweiz) Werte zur Darstellung individueller Eigenschaften; zusammengesetzte (Aggregationen) Werte zur Darstellung von gesamten Realweltgegenständen, Konstruktoren (für Tupel, Mengen) Syntaktische Form für Schemadefinitionen: Datendefinitionssprachen DDL • Charakterisieren sie den operationellen Aspekt eines Datenmodells. wie kann mit Werten und Strukturen umgegangen werden, Operationen: für einfache Werte: Vergleiche und Berechnungen für zusammengesetzte Werte: Zugriffsoperationen, Mengenoperationen für Datenbanken: einfügen, löschen, modifizieren und auffinden von Elementen syntaktische Form für Operationen: Datenmanipulationssprachen DML; Konsistenzaspekte • Welches sind die Eigenschaften und Grenzen traditioneller Datenmodelle? satzorientiert: einzelne Sätze/homogene Satzmengen mit generischen Operatoren wertorientiert: Gegenstandsidentität Schwächen: keine beliebigen Datentypen, Verlust von Semantik bei komplexen Anwendungsanforderungen • Welche sind die Grundeigenschaften objektorientierter Datenmodelle? Idee: nimmt Konzepte objektorientierter Systeme auf, verbinde mit trad. Datenmodellkonzepte, beachte die Anforderungen der DBMS Benutzer; Datenbank (Menge von Objekten, die von im Schema definierten Klassen abstammen), Objektidentität OID, Einkapselung (komplette, Schreibkapselung, partielle Kapselung), komplexe Werte, Objektstrukturen, zusammengesetze Objekte, Klassenhierarchien (Vererbung, Überladen/Überschreiben, später Bindung) zusätzliche Eigenschaften: explizite Beziehungen, BLOBx, benutzerdefinierte Wertetypen, Objektversionen, Schemaevaluation (Erweiterung und Einschränkung struktureller Klasseneigenschaften), Trigger- Mechanismen • Was ist ein Objekt? Objektidentität, sichtbare Objekteigenschaften OID, sichtbare Klasseneigenschaften, Objekt- und Klassenattribute, Zustand, Methoden • Welche Arten von Assoziationen zwischen Objekte existieren? lose Assoziation: Objektreferenzen, einfacher Wertetyp "ref <Klasse>" enge Assoziation: part of Beziehung, zusammengesetzte Objekte mit transitiven Operationen; einfacher Wertetyp "<Klasse>" • Was ist eine Klassenhierarchie? is-a Beziehungen • Definieren sie die Konzepte Überladen und Überschreiben. Überladen: gleicher Name für verschiedene Operatoren verschiedener Klassen Überschreiben: Neuimplementierung eines Operatorrumpfes auf tieferer Stufe der Klassenhierarchie, erfordert späteres Binden eines Operatornamen an ein zugehöriges Programm einer Klasse Operatoren können sein: generisch – überladen - individuell • Was sind Benennungsmodelle für relationale und objektorientierte Datenmodelle? Datenmodell: Struktur, Verhalten; Persistenzmodell: Erzeugung unf Verwaltung von persistenten und transistenten Daten; Benennungsmodell: wie Betritt man die DB, Benennung der DB-Elemente relational: jede Relation hat einen Namen, assoziativer Zugang zu Tupelmengen oo: Ansatz1:Klassenextension (eine Extension pro Klasse, assoziativer Zugang zu Objekten in der Extension); Ansatz 2: benannte Objekte (jedes Objekt jeder Klassen kann benannt werden) • Was ist die allgemeine Architektur eines OODBMS? (Objektdefinitionssprache, Objektanfragesprache, Programmiersprachen) -> Datenbankmaschine (prozedurale 3/5 Schnittstelle, Aufgaben: Systemverwaltung, höheres Datenmodell, Speicherung und Manipulation von Methoden) -> Datenbank • Was ist eine DDL für ein OODBMS. Objektdefinitionssprache zur Schemadefinition für ooDB: Menge der Klassen, Klassenhierarchie, Namen für Benennungsmodell • Was ist eine DML für ein OODBMS. Objektanfragesprache zum Auffinden von Inhalten einer DB: strukturelle Anfragen (auf Attribute von Objekten, assoziativer Zugriff, navigierender Zugriff), Verhaltensanfrage (Botschaftsversand an Objekte), deklarative Sprachen gewünscht Anforderungen: Muss zu Datenmodell passen, muss zu Benennungsmodell passen, orthogonal zur Persitenz, orhogonal zu Wertkonstruktoren, datenvollständig, optimierbar • Erklären Sie Kopieren, Identität und Gleichheit von Objekten. Identität: (logische, physiche, kombinierte) OIDs, systemweite Eindeutigkeit, Unveränderbarkeit, einmalige Verwendung Gleichheit: oberflächliche Gleichheit, tiefe Gleichheit Kopieren: diverse Möglichkeit für die Erstellung von Kopien (benötigt Objektidentiät) • Gegeben sei ein DBMS, das in einer OOPL implementiert ist. Ist das ein OODBMS? nein, OOPL muss in DBMS integriert sein (interne und externe PL) • Gegeben sei ein DBMS mit einem objektorientiertem Datenmodell. Ist das ein OODBMS? ja! • Oft benutzt man für die konzeptuelle Modellierung relationaler DBS das Entity/Relationship Modell. Kann man es auch für die konzeptuelle Modellierung für objektorientierte DBMS benutzen? nein, muss oo-Datenmodell sein, nicht anderes Datenmodell • Was ist ein BLOB? Binary large objects, lange Felder, long-field –Werte unstrukturierte Byteketten beliebiger Länge, Benutzung mit Cursorkonzept, Positionszeiger, d.h. positionsweise Bearbeitung, Wählbare Zugriffseinheiten; • Macht es Sinn, strukturierte Daten in ein BLOB zu "packen"? keine Konsistenzkontrolle über Inhalte langer Felder, also kann Struktur verlorengehen • Warum wurden ORDBMS entwickelt? Erweiterung des relationalen Datenmodells um OO-Konzepte bzw. Kombination beider Ansätze, Beibehaltung der bisherigen Konzepte von Relationalen DBMS • Welche sind die Unterschiede zwischen ORDBMS und OODBMS? ORDBMS:basiert auf Relationenmodell, Erweiterung um oo Konzept; komplexe Daten und Query -> Datenbank ist weiterhin eine Menge von Relationen OODBMS: Bindung an oo-PL, ganzheitliche Modellierungsweise; komplexe Daten, keine Query • Wann macht es Sinn, ein ORDBMS zu benutzen? Anfragen auf komplexe Daten, weniger Reengineering wenn schon relationale DB vorhanden • Welches sind die speziellen Merkmale von ORDBMS? Anfrage-Code als DB-Inhalt, lange Felder, Tupelidentifikatoren, Tupeltypen separat von Relationsdefinitionen, komplexe Strukturen (z.B. geschachtelte Realtionen), benutzerdefinierbare Datentypen ADT (mit Kapselung, mit definierbaren Zugriffspfaden, Vererbung) Frage: Neubau von Systemen vs. Erweiterung existierender System 4/5 • Was sind abstrakte Datentypen (ADT's)? benutzerdefinierbare Datentypen, können wie Standardtypen für die Definition von Attributen verwendet werden, Einkapselung, Vererbung • Was versteht man unter DB-Middleware? je Relation eine Klasse definieren -> je benötigter Objektart eine Klasse definieren -> DBMS-Zugriffe in Klasse versteckt; Standardsoftware als Middleware erhältlich führt zu Relationalen DBMS mit Middleware =? Objektorientierung • Welches sind die Nachteile von OODBMS verglichen mit ORDBMS? Systemreife?, Systemfunktionalität?, Relationen als Spezialfall, Effizienz? Handhabbarkeit? Preis? nicht optimal ausgelegt für einfach strukturierte, grosse Datenmengen; wenig entwickelte Anfragesprache, Sichtkonzepte, Zugriffsschutz; oo Integration oft zu Lasten der DBMS Philosophie; Probleme bei Änderung des Datenbankschemas • Nennen sie einige kommerzielle ORDBMS und OODBMS. ORDBMS: Informix Universal Server, Oracle V8, DB2 OODBMS: Ontos, Versant, ObjectStore, GemStone Aktive Datenbanksysteme • Was ist die Grundidee aktiver Datenbanksysteme? Erkennen von beschriebenen und beobachtbaren Situationen; beim Eintreten der Situation das Auslösen von definierten Reaktionen; anwendungsorientierte Situationen und Reaktionen aktive DBMS Funktionalität ist im Prinzip othogonal zur DBMS-Art (Datenmodell); aber: Details und Fähigkeiten sind an spezifische System-/ Datenmodellkonzepte angepasst, Integration in DBMS muss gegebene Umgebung berücksichtigen • Was ist eine ECA-Regel? (event E, condition C) -> A; Situation = on Ereignis und if Bedingung -> Reaktion do mögliche Situationen: Datenbankzustand, spez. Zustandswechsel, spez. DB-Operationen, spezifischer Zeitpunkt vgl Trigger, Alerter • Wie werden ECA-Regeln ausgeführt? mit einem Ausführungsmodell • Wofür wird eine Regelsprache eingesetzt? Definition von Ereignissen, Bedingungen, Aktionen, andere Konzepte Spezifikation des gewünschten aktiven Verhaltens durch den Anwender; basiert auf dem Wissensmodell, welches das Datenmodell kompletiert; Ereignis = (<Event-Beschreibung>, <Zeit>) Bedingung = Prädikate über DB Zustand, wie where in SQL Aktionen = DB Modifikationsoperationen, DB- Suchoperationen, Methoden in ooDBMS, TA- Kommandos, Anwendungsprogramme ausführen, weitere implizite oder explizite Ereignisse andere Konzepte von Regelsprachen: unbedingte Regeln (on...do...), implizite Ereignisse (wenn immer/erstmals C wahr ist), Parametrisierung (Parameterübergabe), Regelprioritäten, selektive Aktivierung / Deaktivierung von Regeln, Regelkontexte /-strukturen (Organisation grosser Regelmengen), zusammengesetzte Ereignisse mit Restriktionen, Spezialfall der Verbindung mit temporalen Datenbanken • Was ist ein Ausführungsmodell? Ausführungsmodell: wie oft wird Regel ausgeführt?, Ausführungsprioritäten, Kopllungsmodi von Transaktionen und entsprechender Regeln: immediate (während TA),deferred (am Ende der 5/5 TA), decoupled (Regelausführung als eigene TA); geschachtelte Regelausführung (Problem: Nichtterminierung) individuelle Kopplungsmodi: "immediate cond, defferred exec" oder "decoupled eval, decoupled exec" Entscheidungsspielräume der Ausführung: Ausführungsgranularität (wie oft), element- oder mengenorientierte Ausführung (worauf), iterative oder rekursive Ausführung (wann), Konfliktlösung (Prioritäten), Terminierung (weitere Regeln angehängt?), Kopplungsmodi (Zusammenspiel mit TA) • Welche Komponenten enthält ein aktives Datenbanksystem? Aktive Komponenten: Regelbank (Regelbasis), Regelübersetzer (extern definiert-> interne Form), Regelverwalter (Speicherung der Regeldefinitionen), Ereignisdetektor (und Ereignissignalisierung), Regelausführer (Bedingungsevaluation und Aktionsausführung) • Welche Arten von Ereignissen gibt es? Primitive Ereignisse: Datenbankereignisse (Operation auf DB), DBMS-Ereignisse (Operationen des DBMS), Zeitereignisse (Uhrzeit), abstrakte Ereignisse (ausserhalb des DBMS); Zusammengesetzte Ereignisse (Ereignisalgebra, Ereigniskonstruktoren, Zusammensetzung von Primitven oder zusammengesetzen Ereignissen), Ereignisgeschichten, Ereignisparameter (Übergabe von Parametern, z.B. Ausführungszeit) • Geben Sie Beispiele für mögliche Anwendungen aktiver Datenbanksysteme flexible Konsistenzüberwachung, Überwachung von Integritätsbedingungen, Berechnung abgeleiteter Daten, Schemaevaluationen und Versionen (automatische Updates von Versionen), Berechnung von Sichten auf DB, Zugriffschutz und -kontrolle, fallspezifische Standardeinstellungen definieren, Monitoring, Prozessorientierte Umgebungen (WFMS), Finanzapplikationen, Datenauswertungen, Probleme: Ereigniserkennung, Ereignisbearbeitung, Wiederanlauf, formale Grundlagen, Entwurf, Benutzungsunterstützung, Bewertung, Testen und Verstehen Kooperation und Konkurrenz bei Mehrbenutzerbetrieb • Was sind geschachtelte Transaktionen? Eltern TA, Kind TA • Welche Arten von geschachtelten Transaktionen gibt es? geschlossene geschachtelte TA: Sperren der Kind-TA's für Zeit der Eltern TA offene geschachelte TA: Sperren der Kind-TA's nur für Zeit der Kind-TA's • Definieren Sie die Entwurfstransaktionen. Erstellung einer EntwurfsDB; Begin, checkout bei Original-DB, read/write in Entwurfs-DB, checkin in EntwurfsDB, End • Vergleichen Sie geschachtelte und Entwurfstransaktionen anhand der ACID-Eigenschaften. abschlossen geschachtelt: Eltern-TA=ACID, Kind-TA=AI (D=verzögert) offen geschachtelt: Eltern-TA= AD, Kind-TA= A Entwurfstransaktionen: CD