Nonstandard Datenbanksysteme

1/5 Nonstandard Datenbanksysteme Schwachstellen heutiger DB-Technologie bei Nonstandard-Anforderungen • Was versteht man unter "nonstandard"-Anforde...
Author: Helga Fiedler
9 downloads 0 Views 16KB Size
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 " enge Assoziation: part of Beziehung, zusammengesetzte Objekte mit transitiven Operationen; einfacher Wertetyp ""



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 = (, ) 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