Nonstandard Datenbanksysteme

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