Zusammenstellung von Fragestellungen der letzten 10 DB2Klausuren (und Versuch eines Ranking) • Prolog • Wozu Datenbanken • Datenmodelle und Grundlagen Aufgabe 3 (40 Punkte) WS 1999 Auf eine Tabelle mitarbeiter, die Informationen über Mitarbeiter enthält, sind mehrere Indexe errichtet worden: insbesondere auf die Spalten abteilungs_nr und alter. Diskutieren Sie, was ein QueryOptimizer mit folgender Anfrage machen wird: SELECT * FROM mitarbeiter WHERE abteilungs_nr < 5 AND alter > 45 Gibt es eine äquivalente Umformulierung dieser Anfrage, die schneller zu dem gewünschten Ergebnis führen wird? Unsere Lösung: Der Query-Optimizer ermittelt die Zugriffspfade und versucht diese zu optimieren. Als Bewertungskriterien dienen als Kosten Plattenzugriffe, CPU- und Speicherbelastung etc. Das Problem bei der Optimierung dieser Anweisung liegt in den beiden sich widersprechenden Sortierkriterien (abteilungs_nr < 5 und alter > 45). Sinnvoll ist eine Splittung in zwei einzelne SQL-Anfragen, wobei die Bedingung alter > 45 nur auf die Ergebnismenge von abteilungs_nr < 5 angewendet wird. Aufgabe 4 (15 Punkte) WS 1997 In welchen Fällen muß der Systemadministrator auf eine komplette Sicherungskopie zurückgreifen? Bei der Festlegung der Sicherungsstrategie muß der Systemadministrator unter anderem entscheiden, wie groß der zeitliche Abstand zwischen den kompletten Sicherungskopien sein soll. Skizzieren Sie Vor- und Nachteile eines langen zeitlichen Abstandes. Unsere Lösung: Der aktuelle Stand der Datenbank und Datenhaltung kann durch einen Datenbestand und das Log wiederhergestellt werden. Eine komplette Sicherungskopie beinhaltet die Gefahr nicht mehr zeitlich aktuell zu sein. Evtl. benötigt man noch das Log seit dem Erstellzeitpunkt der kompletten Sicherungskopie. Lange Sicherungszeiträume sind nur dann sinnvoll, falls das Erstellen der kompletten Sicherungskopie sehr „teuer“, also zeitaufwendig und Rechner-Ressourcen intensiv ist. Ein weiteres Kriterium ist zudem die Häufigkeit von ändernden Zugriffen. Ist diese sehr hoch, wird es wiederum teuer in einem alten Backup sämtliche Änderungen nachzupflegen. Ist dies der Fall wird man sicherlich relativ häufig komplette Backups fahren, wodurch der Aufwand zur Wiederherstellung der Datenbank minimiert werden kann. Aufgabe 6 (15 Punkte) WS 1999 Beschreiben Sie die Fehlerarten, bei denen der DBA zur Administrierung auf ein komplettes Backup zurückgreifen muß, sowie diejenigen, bei denen die Information des LOGs ausreicht. Unsere Lösung: Eine Wiederherstellung der Datenbank mittels des LOGs ist sinnvoll, wenn es ausreicht die Einzelaktionen von einem bestimmten Datenstand vor- oder nach zu vollziehen. Andernfalls, z.B. Plattencrash (kaputtes Dictionary) , muss auf ein komplettes Backup zurückgegriffen werden. Aufgabe 8 (20 Punkte) SS 1998 Welche Überlegungen muß der DBA bzgl. der Sicherungsstrategie anstellen. Gibt es diesbezüglich etwas, das vor bzw. zur Installationszeit des DBMS festgelegt werden muß? Unsere Lösung: Um die Sicherheit einer Datenbank zu gewährleisten, sollte der DBA möglichst DBMS-SystemDateien, (Dictionary) und den Log-Bereich auf verschiedenen Platten verteilen. Zum Verfahren mit Log-Dateien gibt es mehrere Möglichkeiten, wobei dabei die zentrale Frage lautet: Lasse ich das Überschreiben zu oder nicht? Eine erhöhte Sicherheit birgt das DualLogging bzw. Logging auf externen Medien. Aufgabe 2 (20 Punkte) SS 1998 Wie muß der DBA Vorsorge treffen, damit bei einem Plattencrash die Datenbank möglichst schnell wieder einsetzbar ist. Was muß er nach einem solchen Ereignis tun? Unsere Lösung: WAS WILL ER ??? Aufgabe 1(10 Punkte) SS 1999 Beschreiben Sie die Aufgaben eines DBA. Aufgaben eines DBA • Erstellen der konzeptionellen Sicht, • Erstellen der internen Sicht, • Erstellen der externen Sichten - dies betrifft insbesondere Zugriffsrechte, Dazu kommen noch: • Verankern von Regeln, die die Sicherheit und die Integrität der Daten gewährleisten, • Datenschutz, • Erstellen von Backup-Strategien und Recovery-Prozeduren, • Überwachen der Performance und Erstellen von Maßnahmen, um die Gesamtperformance zu steigern, • in Zusammenarbeit mit der Systemgruppe: • Installation des DBMS und • Einbinden neuer Hardware. Aufgabe 2(10 Punkte) SS 1999 Ein DBMS bietet die Möglichkeit, Hash-Indexe einzusetzen. Auf eine Tabelle, die als Spalten einen Zeitstempel und den Namen einer zur angegebenen Zeit durchgeführten Aktion enthält, wird häufig auf ein Zeitintervall in der Reihenfolge der Zeitstempel zugegriffen. Wäre der Einsatz eines HashIndexes angebracht? Begründung? Unsere Lösung: Da der Zugriff auf ein Intervall und eine Reihenfolge bei der zur Hilfenahme eines Hash-Indexes nicht möglich ist, sollte dieser hier nicht verwendet werden, sondern besser ein B-Tree. Aufgabe 3 (15 Punkte) SS 1998 Warum kann man nicht grundsätzlich vom Einrichten eines Indexes eine Beschleunigung der Performance erwarten? Unsere Lösung: Bei kleinen Datenvolumina (Richtwert < 8 Pages pro Tabelle) kann der Einsatz eines Indexes teurer als ein kompletter Tablescan sein. Bei Änderungen an einer Tabelle müssen sämtliche Indexe für diese Tabelle mitgepflegt werden. Aufgabe 5 (10 Punkte) SS 1996 Warum müssen Indexe bei der physischen Implementation einer Datenbank sorgfältig geplant werden? Unsere Lösung: Aufgabe 6 (15 Punkte) SS 2000 Zur Beschleunigung des Zugriffes werden Indexe eingesetzt. Warum ist dann die Aussage ,,je mehr Indexe, desto besser`` falsch? Aufgabe 6 (10 Punkte) 2001 Welche Spalten bzw. Spaltenkombinationen sind für die Einrichtung eines Indexes besonders geeignet? Warum sollte man nicht beliebige Indexe einrichten? Aufgabe 1 (15 Punkte) WS 1999 Auf eine kleine Tabelle, die als Inhalt einen Farbcode (3-stellige Nummer), den Namen der Farbe und das Mischungsverhältnis aus Grundfarben enthält, wird in der Regel ausschließlich über den Farbcode zugegriffen. Diskutieren Sie, ob Sie über die Errichtung von Indexen Performance-Gewinn erwarten können. Aufgabe 4 (10 Punkte) WS 1996 Welche Möglichkeiten hat ein DBA, für Datenschutz zu sorgen? Aufgabe 5 (10 Punkte) SS 1999 Wie kann bei der Installation einer DB-Anwendung auf Datenschutz geachtet werden? Unsere Lösung: Der Datenschutz wird über ein internes (und externes, wenn es ein verteiltes Datenbanksystem ist) Rechtemodell ermöglicht. Dabei kann der Zugang auf Datenbanken für Rechner und Benutzer datenbank-, tabellen- und spaltenweise eingeschränkt werden. Der Benutzter kann dabei auf vielfältige Art und Weise eingeschränkt werden. BASTA! Aufgabe 2 (15 Punkte) WS 1997 bzw. Aufgabe 1 (15 Punkte) WS 1998 Was versteht man unter dem Begriff ,,Clusterung``? Erläutern Sie, wozu Clusterung bei Datenbanken gebraucht wird. Unsere Lösung: Clusterung bedeutet, dass Daten, die logisch "zusammengehören" und somit häufig zusammen gelesen werden, physisch nahe benachbart gespeichert werden. Erfolgt häufig ein Zugriff auf Datensätze in einer bestimmten Reihenfolge, kann eine Clusterung die Performance steigern. Aufgabe 1 (20 Punkte) SS 1998 Begründen Sie, wieso Clustern die Performance einer DB-Anwendung verbessern kann. Worin sehen Sie mögliche Nachteile? Cluster Erfolgt häufig ein Zugriff auf Datensätze in einer bestimmten Reihenfolge, kann eine Clusterung diePerformance steigern: die Datensätze werden so auf die Seiten verteilt, dass Sätze, die in der Ordnung (Clusterindex) aufeinanderfolgen, so weit wie möglich jeweils auf einer Seite zusammengefasst werden bei der Verarbeitung in Reihenfolge des Clusterindex werden die physischen Speicherzugriffe minimiert Problem • liegen Daten geclustered vor und erfolgen eine Reihe von Änderungen, so können nach gewisser Zeit Datensätze nicht mehr auf diejenige Seite geschrieben werden, auf die sie auf Grund der Clusterung kommen müßten Überlaufseiten zur Aufnahme der Datensätze • Lösungen: • Füllungsgrad der Seiten verändern • Reorganisation, • Datenbank-Entwurf Aufgabe 5 (15 Punkte) SS 2000 Warum sind bei der physischen Implementation einer rel. Datenbank in der Regel die Tabellen nicht vollständig normalisiert? (Häufig gibt man sich bereits mit der 2.NF zufrieden.) Was sind die Gründe für eine Normalisierung, was sind ggf. die Nachteile? Aufgabe 6 (25 Punkte) WS 2000 Wozu dient Normalisierung? In welchen Situationen darf Normalisierung (geplant!) vernachlässigt werden? Aufgabe 4 (15 Punkte) SS 1998 Beschreiben Sie mit der Normalisierung verträgliche Methoden, um in einem RDBMS den Zugriff auf Daten zu beschleunigen. • Relationale DBMS Aufgabe 5 (20 Punkte) SS 1999 Was versteht der SQL92-Standard unter temporären Tabellen? temporäre Tabellen CREATE TABLE {GLOBAL|LOCAL} TEMPORARY name ... [ ON COMMIT {DELETE|PRESERVE} ROWS ] Nicht persistente Daten, die im Laufe einer Transaktion zur Verfügung stehen müssen, können auf diese Weise strukturiert werden. Besonderheiten: • Gültigkeitsbereich • Aufbewahrungsdauer • Foreign Key • Check Aufgabe 6 (25 Punkte) SS 1999 Der SQL92-Standard beschreibt Methoden, wie das DBMS veranlaßt werden kann, die Integrität der Daten zu gewährleisten. Beschreiben Sie diese Möglichkeiten und versuchen Sie ein Beispiel zu geben, warum der Standard dabei vorsieht, unterschiedliche Zeitpunkte der Überprüfung zu berücksichtigen. Trigger Constraint Transaktion • Schnittstellen Aufgabe 4 (20 Punkte) SS 1997 Was wurde in der Vorlesung unter ,,dynamischem SQL`` verstanden. Worin liegen die Schwierigkeiten, dynamische SELECT-Anweisungen zu schreiben? Aufgabe 7 (15 Punkte) SS 1998 Worin liegen die Probleme, dynamische SQL-Anweisungen zu schreiben? Was versteht man überhaupt unter diesem Begriff? Aufgabe 1 (15 Punkte) WS 1996 Was wurde in der Vorlesung unter ,,dynamischem SQL`` verstanden. Warum gibt es bei Programmiersprachen ohne dynamische Speicherverwaltung Probleme, dynamisches SQL zu verwenden? Aufgabe 3 (20 Punkte) SS 1999 Was versteht man unter ,,dynamischem SQL``? Worin liegen die besonderen Probleme? Ist dynamisches SQL in jeder Umgebung einsetzbar? Dynamische SQL-Anweisungen nicht in jedem Fall ist die SQL-Anweisung bereits vor der Compilationsphase bekannt Typisch z.B. für interaktive Oberflächen, die auf DB zugreifen Anweisung wird erst zur Laufzeit des Programmes ermittelt es muß Möglichkeiten geben, eine Zeichenkette an das DBMS zu übergeben, die zur Laufzeit ausgewertet und als SQL-Anweisung ausgeführt wird. Problem einmaliger Zugriff oder wiederholter Zugriff? Bei wiederholtem Zugriff mit Hilfe der ermittelten Anweisung müßte jeweils die Analyse-Phase erneut durchlaufen werden. Performance! Aufgabe 9 (10 Punkte) WS 2000 Warum muss JDBC die Klasse ResultSet bereitstellen? • java.sql.ResultSet erlaubt es, Ergebniszeilen auszuwerten Auslesen von Ergebnistabellen Aufgabe 2 (20 Punkte) SS 2000 Wie werden Transaktionen bei verteilten rel. DBMSen unterstützt? Aufgabe 4 (10 Punkte) SS 2000 Wie erfolgt in JDBC der Zugriff auf die Sätze einer Ergebnistabelle? Skizzieren Sie das Vorgehen. Aufgabe 1 (25 Punkte) WS 2001 Kann die folgende SQL-Anweisung in Embedded SQL dynamisch verwendet werden? Begründen Sie Ihre Aussage: SELECT nr, name INTO :nr,:name:i_name FROM t_kunde WHERE nr = :wert Vorausgesetzt wird dabei, dass nr Primärschlüssel der Tabelle t_kunde ist. Falls notwendig, nehmen Sie geeignete Korrekturen vor und schreiben Sie dann die benötigten Anweisungen, damit Ergebnisse mehrfach mit unterschiedlichen Werten ausgelesen werden können. Aufgabe 6 (15 Punkte) SS 1998 Beschreiben Sie, wie eine Applikation mit eingebetteten SQL-Anweisungen auf ,,Exceptions`` des DBMS reagieren kann. Aufgabe 6 (10 Punkte) SS 1998 Skizzieren Sie, wie mit eingebettetem SQL eine Tabelle zeilenweise gelesen wird. Zur Lösung gehört sowohl eine kurze Diskussion der benötigten Konzepte als auch eine Skizze der Anweisungen. Aufgabe 8 (25 Punkte) WS 1999 Die Schnittstelle CLI bietet Vorteile gegenüber Embedded SQL. Versuchen Sie diese Vorteile darzustellen. Aufgabe 2 (15 Punkte) WS 1999 Warum wird trotz der Mächtigkeit von SQL Embedded SQL benötigt? Zeigen Sie an einem einfachen Beispiel, daß programmierte SQL-Anweisungen nötig sind. Aufgabe 8 (30 Punkte) 2001 Vergleichen Sie Embedded SQL und CLI. Vor- und Nachteile, Einsatz, ... • embedded SQL Konzept • Einbetten der SQL-Anweisungen in den Programm-Quelltext • Verwendung eines Precompilers • aber: Probleme bei der „Vermischung“ von Einbettung und Programmiersprache • Call-Level-Interface wichtiger Standard • Trennung zwischen SQL und Programmiersprache, • wohldefinierter Übergabemechanismus zwischen Programm und CLI-Routine • Implementation weitgehend Datenbank-unabhängig Aufgabe 7 (15 Punkte) WS 1999 Was ist Vorteil, wenn ein Precompiler einen Zugriffsplan erstellt und speichert, was ist der Nachteil dieses Vorgehens? Aufgabe 3 (15 Punkte) WS 1998 Was sind die Aufgaben eines Precompilers und wie arbeitet er? Aufgabe 6 (10 Punkte) WS 1997 Welche Aufgaben hat ein SQL-Precompiler? Aufgabe 3 (15 Punkte) SS 1997 Welche Ausnahmebedingungen kennt ein SQL-Precompiler überlicherweise? Wie erfolgt durch den Precompiler die Umsetzung der Ausnahmebehandlung. Beschreiben Sie aus dieser Sicht heraus folgende Programmzeilen, bei denen das Lesen einer Tabellezeile in der Prozedur EINLESEN_AUS_SQLTABELLE vorgenommen werden soll und bei Erreichen des Tabellenendes die Verarbeitung an der Marke TABELLEN_ENDE_ERREICHT fortgesetzt werden soll: /* SQL-Ausnahmebedingung fuer Tabellenende wird hier gesetzt */ Do While('1'b); Call EINLESEN_AUS_SQLTABELLE; ... End; TABELLEN_ENDE_ERREICHT: ... Aufgabe 5 (30 Punkte) WS 1996 Skizzieren Sie eine in einer prozeduralen Sprache programmierte Anwendung, folgendes leisten soll: Vorhanden sind die Tabellen OFFENE_ZAHLUNGEN mit den Spalten KUNDEN_ID, DATUM, BETRAG, BESTELLUNG mit den Spalten KUNDEN_ID, BESTELL_ID, DATUM, WERT sowie BESTELLTE_WARE mit den Spalten KUNDEN_ID, BESTELL_ID, ARTIKEL_ID, MENGE. Als Regel gilt einzuhalten, daß eine Bestellung für einen Kunden nur dann aufgenommen werden darf, wenn der Wert der Bestellung einschließlich des Betrages noch offener Zahlungen eine vorgegebene Summe (z.B. 5.000 DM) nicht überschreitet. Benutzen Sie diese Programmskizze, um die Einbettung von SQL-Anweisungen und die Arbeitsweise des Precompilers zu erläutern. Precompiler übersetzt eingebettete Anweisungen in Statements der jeweiligen Programmiersprache • arbeitet vor Übersetzungszeit keine Kenntnis von Information zur Zeit der Ausführung • arbeitet rein sequentiell • prüft zusammen mit DBMS für jede eingebettete Anweisung: • ist Anweisung syntaktisch korrekt • sind alle referenzierten Objekte in DB vorhanden • sind Zugriffsrechte gegeben • nach erfolgreicher Prüfung: • ersetzt Anweisung durch Quelltext und benötigte Datenstrukturen • ggf. ermitteln "optimalen" Zugriffspfad Aufgabe 6 (15 Punkte) SS 1996 Beschreiben Sie anhand einer Programmskizze, wie Sie mit Hilfe von SQL-Precompiler-Anweisungen Ausnahmebedingungen behandeln können. Welche Ausnahmebedingungen werden typischerweise erkannt? Beschreiben Sie hinsichtlich dieses Problems die Arbeitsweise des Precompilers. • Optimierung Aufgabe 4 (10 Punkte) SS 1999 Bei der Installation des DBMS wurde die Partition für das Dictonary auf dem gleichen Laufwerk installiert wie die Partition für den Log. Welche Effekte sind zu erwarten? Physischer Speicherplatz Ziel: durch Bereitstellung von genügend physischen Laufwerken an genügend Controllern sollen im laufenden Betrieb die IO-Zugriffe gut verteilt werden, so dass in diesem Bereich keine Engpässe auftreten Möglichst Trennung von • DBMS-System-Dateien • Dictionary • Log-Bereiche • temporäre Plattenbereiche für große Sortiervorgänge • (mehrere) Bereiche für die Daten • (ggf.) eigene Index-Bereiche Sicherungskonzepte: • Dual Logging • Überschreiben? • Logging auf externe Medien • Strategie • Größe und Speicherort • ... Aufgabe 3 (10 Punkte) WS 1996 Ein Datenbankadministrator hat eine Datenbank mit Dual Loging eingerichtet. Beide Logs werden auf dem gleichen Laufwerk erzeugt, auf dem auch das Directory der Datenbank gespeichert ist. Wozu dient Loging und insbesondere Dual Loging? Was würden Sie dem DBA raten? wurde nur als Namen in der Vorlesung benannt Aufgabe 3 (20 Punkte) SS 1996 Abweichend von dem logischen Datenbankentwurf wird bei der physischen Implementierung eine Tabelle vertikal zerlegt. Wann wird ein solches Vorgehen vorteilhaft sein? Welche Konsequenzen für die entstehenden Tabellen hat es? Partitionierung Geeignete Aufteilung einer Tabelle auf mehrere Partitionen führt dazu, dass im Mittel weniger physische IO_Vorgänge abzuwickeln sind: • so kann z.B. statt eines kompletten Table-Scans ein Scan einer geeigneten Partition ausreichen • Partitionen können ggf. unabhängig voneinander gesichert werden • ggf. können Partitionen bei Mehrprozessorsystemen parallel verarbeitet werden Arten der Partitionierung: • horizontale Partitionierung: • ein Partitionierungs-Index nimmt transparent die Aufteilung in die einzelnen Partitionen vor • dies wird bereits von vielen DBMS unterstützt • vertikale Partitionierung: • bedeutet eine strukturelle Veränderung • Schlüsselspalten müssen in allen Partitionen wiederholt werden • Verbesserung bei allen Zugriffen, die nur auf eine Partition zugreifen müssen wegen verringertem IO • aber: Partitionsübergreifende Zugriffe erfordern Join, werden somit erheblich teurer sorgfältige Planung erforderlich • Replikation und Synchronisation Aufgabe 4 (25 Punkte) WS 1998 Oracle und DB2 unterscheiden sich hinsichtlich des Zeitpunktes, zu dem der Zugriffsplan erstellt wird. Was sind die Vor- und Nachteile der beiden Methoden? Oracle: • Basic Replication: Änderung auf Primärtabelle, Datenverteilung asynchron auf Replikate Replikate als Snapshot der Primärtabelle Änderungs-LOG der Primärtabelle wird benutzt, um die Änderungen zu propagieren entspricht dem Primary Copy • Advanced Replication Symmetrische Replikation mit asynchroner Aktualisierung alle Replikate sind gleichberechtigt, Änderungen werden an alle übrigen Replikate asynchron weitergereicht keine Behandlung des DELETE-Konflikts • Änderbare Snapshots Variante beider vorhergehenden Arten: Primärtabelle verteilt weiterhin die Änderungen asynchron an alle Replikate, Replikate richten die Änderungsmitteilung mit Hilfe des INSTEAD OF-Triggers an die Primärtabelle • Symmetrische synchrone Aktualisierung (ROWA) ist nicht vorgesehen DB2: • Asynchrone Aktualisierung unter Einsatz einer Primärtabelle es werden nur transaktions-konsistente, aber nicht transaktions-basierte Änderungen verteilt Verringerung der Netzbelastung, indem zwischen zwei Replikationszeiten Änderungen zusammengefaßt werden • Transaktions-basierte asynchrone Aktualisierung unter Einsatz einer Primärtabelle Primary Copy • Asynchrone Aktualisierung unter Einsatz einer Primärtabelle mit änderbaren Kopien sowohl Replikate als auch Primärtabelle erzeugen Änderungsmitteilungen, Änderungsmitteilungen der Replikate gehen an Primärtabelle, die auf Konsistenz überprüft, Primärtabelle übernimmt Verteilung • Symmetrische synchrone Aktualisierung: (ROWA) ist nicht vorgesehen Aufgabe 5 (20 Punkte) SS 1997 Warum benötigen Datenbanksysteme Sperrmechanismen? Beim Übergang zu einem verteilten DBMS wäre bzgl. der Deadlockerkennung ein zentral verwalteter Sperrmechanismus scheinbar sinnvoll. Warum werden dennoch die Sperrmechanismen überlicherweise nur lokal implementiert? Aufgabe 3 (15 Punkte) SS 1999 Der SQL92-Standard enthält noch keine Standardisierung für Trigger, dies ist für SQL3 geplant. Begründen Sie, wofür Trigger wichtig sind. Aufgabe 2 (20 Punkte) SS 1999 Was ist ein Trigger? Welche Bedeutung hat der für Oracle spezifische Trigger INSTEAD OF? • Änderbare Snapshots Variante beider vorhergehenden Arten: Primärtabelle verteilt weiterhin die Änderungen asynchron an alle Replikate, Replikate richten die Änderungsmitteilung mit Hilfe des INSTEAD OF-Triggers an die Primärtabelle Prüfroutinen für bestimmte Ereignisse, d.h. Trigger. Aufgabe 9 (15 Punkte) SS 1999 Die Datenverarbeitung der Firma, aus der die vorstehende Aufgabe einen kleinen Ausschnitt betrachtet, wird in einer vernetzten Umgebung durchgeführt. Während die Aufgaben der Lagerhaltung (siehe oben) auf einem Rechner durchgeführt werden, werden die Daten des Verkaufs auf einem anderen Rechner gehalten. Der Verkauf benötigt insbesondere aktuelle Daten über die Menge der vorhandenen Waren (also einen Ausschnitt aus der obigen Tabelle LAGER). Welche Möglichkeiten der Verwirklichung schlagen Sie vor? Aufgabe 3 (15 Punkte) WS 2000 Wozu werden Sperrtabellen von einem DBMS eingesetzt? Was ist bei einem verteilten DBMS der Vorund Nachteil einer zentralisierten Sperrtabelle? Welchen Nachteil hat in diesem Falle der Einsatz rein lokaler Sperrtabellen? Die Sperren werden in der Regel in einer Sperrtabelle vermerkt, die für eine Sperre zumindest folgende Information enthalten muss: die Transaktionsnummer zur Identifizierung der Transaktion, das gesperrte Objekt und die Art der Sperre. Der Zugriff auf die Sperrtabelle muss für jeden Eintrag exklusiv erfolgen. Bei verteilten Systemen kann eine zentrale Sperrtabelle oder aber dezentrale Sperrtabellen verwendet werden. Eine zentrale Sperrtabelle bietet den Vorteil, dass die Synchronisation der Transaktionen wie in einem lokalen System erfolgt, jedoch den gravierenden Nachteil, dass für jede Sperranforderung der Aufbau einer Kommunikation zum zentralen Knoten erfolgen muss; zudem verlieren die anderen Knoten ihre Autonomie. Dezentrale Sperrtabellen werden auf jedem Knoten separat gepflegt; eine Transaktion fordert bei dem jeweiligen lokalen Sperrmanager des DBMS eine Sperre für das zu bearbeitende Objekt an. Das Problem liegt darin, dass nun globale Deadlocks auftreten können, die durch die lokal arbeitenden Sperrmanager nicht mehr erkannt werden können. Aufgabe 5 (20 Punkte) 2001 Was versteht man unter ,,Replikation``, wie kann dies sinnvoll eingesetzt werden? Aufgabe 5 (25 Punkte) WS 2000 Wozu wird Replikation eingesetzt? Was versteht man unter dem ,,Primary Copy`` Verfahren? Versuchen Sie zu begründen, warum alle namhaften Hersteller relationaler verteilter DBMS zumindest dieses Replikationsverfahren implementieren. Mehrere Knoten - Replikation * Replikation bedeutet: durch Duplizieren von Tabellen gezielte Redundanz • Replikation von Tabellen, die (nahezu) ausschließlich gelesen werden, ist völlig unproblematisch • Problem: Replikate, die auch geändert werden sollen • in diesem Fall sind für jedes Replikat Vor- und Nachteile abzuwägen: • größere Verfügbarkeit der Daten • höhere Performance bei lesenden Transaktionen • erhöhter Systemaufwand • höhere Kommunikation • Verlangsamung bei ändernden Transaktionen (je nach Replikationsverfahren) Primary Copy für Replikate einer Tabelle: • ein Knoten wird für diese Replikate als Primärknoten ausgezeichnet • Änderung darf nur an diesem Knoten erfolgen • nach erfolgreicher Änderung durch eine Transaktion: • Knoten übernimmt Verteilung der Änderung an die Knoten, die Replikate tragen • Änderung ist asynchron • Kommunikationsaufwand abhängig von Wahl des Primärknotens Verringerung des Kommunikationsaufwandes: • Sammeln von Änderungsinformationen auf Primärknoten • verzögerte gebündelte Weitergabe an andere Knoten Achtung: Aktualität der Replikate sinkt je nach Anforderung bzgl. der Aktualität bei lesenden Zugriffen: • Lesen von Primärkopie keine Vorteile durch Replikation Aufgabe 1 (20 Punkte) SS 2000 Wie unterstützen die bekannten rel. DBMS Transaktionen? Was erfolgt implizit, was wird üblicherweise - abweichend von der SQL-Standardisierung - zusätzlich zur Verfügung gestellt? Globale Transaktionsunterstützung • setzt auf der lokalen Transaktionsunterstützung auf • durch Kommunikation der beteiligten Knoten muss gewährleistet werden, dass die auf den beteiligten Knoten laufenden Subtransaktionen gemeinsam ausgeführt oder verworfen werden • üblicherweise verwendetes Protokoll: Zwei-Phasen-Commit-Protokoll Dieses Protokoll kennzeichnet für jede Transaktion einen Knoten besonders aus: "Koordinator" ist derjenige Knoten, an dem die Transaktion gestartet wird Abschluß der Transaktion: 1. der Koordinator schickt an alle an der Transaktion beteiligten Knoten die Meldung Prepareto-commit 2. die Knoten informieren daraufhin den Koordinator, ob sie • die Transaktion lokal durchführen können (Commit) • die Transaktion verwerfen müssen (Abort) 3. die jeweilige Subtransaktion wird jedoch noch nicht vollzogen, vielmehr warten die Knoten auf die endgültige Mitteilung des Koordinators 4. der Koordinator sammelt alle Rückmeldungen auf und informiert die Knoten: • falls alle Rückmeldungen Commit lauten, mit der Meldung Commit • falls wenigstens eine Rückmeldung Abort lautet, mit Abort 5. die Knoten vollziehen ihre Aktion auf Grund der endgültigen Meldung des Koordinators Aufgabe 3 (30 Punkte) SS 2000 Die Abteilungen Einkauf, Lagerverwaltung und Verkauf haben drei vernetzte Rechner, auf denen eine verteilte DBMS-Anwendung läuft. Eine der Tabellen hat die Gestalt CREATE TABLE gelagerteWare (warenNr CHARACTER(8), lagerort CHARACTER(8), menge INTEGER, PRIMARY KEY (warenNr, lagerort) ) Die Abteilung Einkauf muss lesend auf die Information zugreifen. Lagerverwaltung und Verkauf müssen auf die jeweils aktuelle Information lesend sowie schreibend zugreifen, dabei kommen 75% der Zugriffe von Lagerverwaltung. Wie würden Sie in diesem Falle Replikation einsetzen? Begründung? Aufgabe 4 (25 Punkte) WS 2000 Wozu dienen ,,Optimistische Synchronisationsverfahren``? Warum werden sie nicht standardmäßig in allen DBMS-Implementationen eingesetzt? Aufgabe 8 (25 Punkte) SS 2000 Was sind ,,Optimistische Synchronisationsverfahren``? Gibt es Situationen, in denen Sie diese Verfahren für besonders geeignet halten? Optimistische Synchronisationsverfahren hierbei handelt es sich um eine Reihe von Verfahren, die zunächst einmal Transaktionskonflikte zulassen um diese im Nachhinein zu korrigieren. Deadlocks werden dadurch vermieden. optimistische Synchronisationsverfahren falls nur selten Transaktionskonflikte auftreten vorbeugende Sperren sind unnötiger Aufwand • greifen nicht in den Ablauf einer Transaktion ein • sie überprüfen statt dessen am Ende einer Transaktion, ob Konflikt aufgetreten ist in dem Falle wird Transaktion zurückgesetzt Aufgabe 6 (15 Punkte) SS 1999 Was bewirkt ein COMMIT? Beschreiben Sie dies zunächst für die einfache Form, sodann für den Fall des Zwei-Phasen-Commits. Aufgabe 4 (20 Punkte) WS 1999 Was wird durch die Anweisung COMMIT bewirkt? Aufgabe 4 (20 Punkte) 2001 Was versteht man unter dem 2-Phasen-COMMIT-Protokoll? Ist der Ausdruck ,,2-PhasenSperrprotokoll`` nur eine andere Umschreibung oder wird damit etwas Anderes zum Ausdruck gebracht? 2-Phasen-Commit-Protokoll 1. der Koordinator schickt an alle an der Transaktion beteiligten Knoten die Meldung Prepare-to-commit 2. die Knoten informieren daraufhin den Koordinator, ob sie die Transaktion lokal durchführen können (Commit) die Transaktion verwerfen müssen (Abort) 3. die jeweilige Subtransaktion wird jedoch noch nicht vollzogen, vielmehr warten die Knoten auf die endgültige Mitteilung des Koordinators 4. der Koordinator sammelt alle Rückmeldungen auf und informiert die Knoten: falls alle Rückmeldungen Commit lauten, mit der Meldung Commit falls wenigstens eine Rückmeldung Abort lautet, mit Abort 5. die Knoten vollziehen ihre Aktion auf Grund der endgültigen Meldung des Koordinators Zwei-Phasen-Sperrprotokoll: Phase 1: Eine Transaktion belegt jedes Datenobjekt, auf das sie zugreift, mit einer entsprechenden Sperre Phase 2: Nach Freigabe der einer Sperre darf die Transaktion keine weiteren Sperren anfordern d.h. in der ersten Phase werden alle Sperren angesammelt und nach erfogten Änderungen in der zweiten wieder freigegeben. Am einfachsten zu implementieren: Freigabe aller Sperren am Ende der Transaktion Sperren werden in Sperrtabelle vermerkt, Einträge müssen zumindest enthalten Transaktionsnummer gesperrtes Objekt Art der Sperre Zugriff auf Sperrtabelle muss exklusiv erfolgen bei verteilten Systemen könnte zentrale Sperre verwendet werden Vorteil: Synchronisation der Transaktionen wie im lokalen System Nachteile: Kommunikation zum zentralen Knoten sowie Autonomieverlust der übrigen Knoten dezentrale Sperrtabellen: jede Transaktion fordert bei dem jeweiligen lokalen Sperrmanager Sperren an Problem: globale Deadlocks • DRDA Aufgabe 6 (20 Punkte) WS 1996 In der Vorlesung wurde diskutiert, warum man bei verteilten DBMS zur Identifizierung einer Tabelle nicht den Knotennamen derjenigen DB verwenden möchte, an dem die Tabelle zur Zeit gespeichert ist. Versuchen Sie eine kurze Begründung zu geben und erläutern Sie, warum zur Zeit die meisten DBMS-Hersteller dennoch diesen Weg gehen. Die meisten DBMS-Hersteller benutzen zur Identifizierung ihrer verteilten Tabellen heutzutage die Domäne. Die Domäne setzt sich zusammen aus Katalog-, Schemata- und Objekt-Name und ist damit innerhalb einer DB-Umgebung eindeutig. Zudem wird der Knoten über die I-Domäne adressiert. Diese Kombination ist weltweit eindeutig. Wenn sich der Knotenname ändert, entsteht dann aber auch eine neue ID, was ein Problem darstellt. Die DBMS-Hersteller benutzen dieses Verfahren, da als Kommunikationsmedium das I-Net dient. Es wird also auf die I-NetAdressierung aufgesetzt. • XML-Datenbanken • DataWareHouse-Konzept Aufgabe 7 (25 Punkte) 2001 Begründen Sie, warum man bei einem Datawarehouse-Design häufig auf Normalisierung verzichtet. Skizzieren Sie eine dafür geeignete Datenstruktur. Beschreiben Sie möglichst viele Möglichkeiten, Informationen aus dem OLTP-System in ein Datawarehouse zu bringen. • Objekt-Relationale DBMS Aufgabe 3 (20 Punkte) WS 2001 Warum kann man bei den Erweiterungen von Oracle bislang nicht von Objekt-Orientiert, sondern nur von Objekt-Relational sprechen? weil Objekte bislang nur in Tabellen gespeichert werden, nicht als Objekt an sich in der Datenbank liegen. • Objektorientierte DBMS Aufgabe 9 (15 Punkte) SS 2000 Gibt es (bislang noch) Vorteile rel. DBMS gegenüber OODBMS? schnell, weitverbreitet, optimiert, standardisiert, usw. Aufgabe 8 (20 Punkte) WS 2000 Geben Sie Begründungen, warum es zur Entwicklung von OODBMS kam. Wo könnten zur Zeit noch Vorteile von rel. DBMS liegen? Durch den vermehrten Einsatz von Anwendungen im wissenschaftlich-technischen Bereich z.B. CAD, Büro-Informationssysteme, GIS, Multimedia-Systeme usw. - die ebenfalls DBMSUnterstützung verlangen, verschieben sich die Anforderungen: Modellierung komplexer Objekte und Datentypen, ggf. Modellierung von Verhalten, d.h. objektspezifische Methoden, die durch das Datenmodell beschreibbar sind. Aufgabe 7 (10 Punkte) WS 2000 Was bedeutet ,,Objekt-Identität``? Skizzieren Sie ein Beispiel, anhand dessen Sie zeigen können, dass dies in einer rel. DB nicht gegeben ist. Unterstützung der Objekt-Identität: beim relationalen Ansatz ist nicht direkt entscheidbar, ob zwei Objekte "gleich" oder "identisch" sind, in manchen Fällen muss dazu erst ein künstlicher Schlüssel eingeführt werden. Objekt-Identität vermeidet diese Schwierigkeit: gleiche Objekte werden als zwei Objekte mit gleichen Werten erkannt. Im Gegensatz zum "künstlichen" Schlüssel handelt es sich bei Objekt-Identität um eine systemseitig bereitgestellte Eigenschaft. Aufgabe 3 (20 Punkte) SS 1998 Für das Studentensekretariat wird eine Tabelle Stud mit folgender Struktur eingerichtet: Matrikelnummer Char( 7), Name Char(30), HStrasse Char(20), HPLZ Char( 5), HOrt Char(20), ... Um den Zugriff, der alternativ über die Matrikelnummer oder über den Namen erfolgt, zu beschleunigen, soll folgender Index eingerichtet werden: CREATE INDEX IStud ON Stud (Matrikelnummer, Name) Kommentieren Sie den Vorschlag. Die angegebene Lösung stellt keine Optimierung da. Es sollen zwei komplementäre Ziele über einen Index optimiert werden, wat nich jeht. Alternativ sollten zwei einzelne Indexe einerseits über Matrikelnummer und andererseits über Name eingerichtet werden. Aufgabe 2 (30 Punkte) SS 1998 Stellen Sie sich vor, Studenten- und Prüfungssekretariat würden ihre Daten in einer verteilten DBAnwedungung auf zwei vernetzten Rechnern halten. Im Studentensekretariat muß unter anderem auf die Information Matrikelnummer, Name, Heimatanschrift, aktuelle Studienanschrift (mit Gültigkeitsdatum), vorherige Studienanschrift zugegriffen werden können. Die Daten müssen dort auch geändert werden können. Das Prüfungssekretariat muß neben den eigenen Daten nur auf Matrikelnummer, Name zugreifen können. Machen Sie alternative Vorschläge, wie die Daten auf den Rechnern verteilt und Inkonsistenzen ausgeschlossen werden können, und diskutieren Sie Vor- und Nachteile Ihres Vorschlages. Das Studentensekretariat arbeitet auf der Original-Tabelle, wobei Ihnen voller Zugriff ermöglicht wird. Das Prüfungssekretariat erhält ein Replikat dieser Tabelle, allerdings nur der Spalten Matrikelnummer und Name mit lesendem Zugriff plus einer Tabelle mit der Spalte Matrikelnummer und ihren eigenen Daten mit vollem Zugriff. Dies birgt mehrere Vorteile. Es können nun Namensänderungen vom Studentensekretariat vorgenommen werden, ohne das dadurch die Datentabelle des Prüfungsamtes editiert werden muss. Es kann zu keinen Inkonsistenzen kommen, da Änderungen nur aus einer Richtung vorgenommen werden. Der Datenschutz ist gewährt. Nachteile sehe ich momentan keine. Aufgabe 5 (15 Punkte) SS 1998 Was besagt der Transaktionsbegriff? Wie wird er in heute üblichen DBMSen unterstützt? Entstehen durch diese Unterstützung ggf. andere Probleme? Eine Transaktion ist eine logisch zusammenhängende Menge von UpdateOperationen auf der Datenbank, die entweder ganz oder gar nicht ausgeführt werden. Basis der Transaktionen ist wiederum das ACID-Prinzip: - Atomarität Eine Transaktion ist unteilbar. Sie wird ganz oder gar nicht ausgeführt. Müssen Transaktionen abgebrochen werden, wird die Datenbank in den konsistenten Zustand vor Beginn der Transaktion zurückgesetzt. Erst nach Abschluss oder Rücksetzen einer Transaktion ist der geänderte Zustand der Datenbank für andere Nutzer verfügbar. - Konsistenz Transaktionen müssen alle Integritätsbedingungen einhalten oder sie werden zurückgesetzt. - Isolation Transaktionen werden isoliert von anderen Transaktionen bearbeitet. Die Daten, auf denen sie operieren sind immer konsistent. - Dauerhaftigkeit Datenänderungen einer Transaktion nach deren Beendigung bleiben erhalten (auch wenn dann ein Systemabsturz erfolgt.) Es besteht die Gefahr der Deadlocks, dh. dass zwei gleichzeitig ausgeführte Transaktionen darauf warten das jeweils die andere ihre Sperren auflöst. Aufgabe 1 (30 Punkte) SS 1998 Erläutern Sie den Begriff ,,Zugriffspfad``. Welche Komponenten eines DBMS sind dafür zuständig? Welche Vor- bzw. Nachteile hat die Speicherung eines Zugriffspfades? Welche organisatorischen Maßnahmen müssen getroffen werden, wenn ein Zugriffspfad gespeichert wird? Der Zugriffspfad adressiert einen Datensatz auf höhere Ebene. Die mengenorientierte Komponente optimiert den Zugriffspfad entweder regel- oder kostenbasiert. Je nach DBMS kann der Zugriffspfad ermittelt und in der DB gespeichert werden, damit entfällt das Berechnen während der Ausführungsphase. Einzig Rechte müssen noch überprüft werden. Mit der Speicherung des Zugriffspfades sind aber auch Wartungsaufgaben verbunden. Folgende Fragen könnten sich ergeben: Ist der Zugriffspfad noch gültig? Wenn der Datensatz aus der Datenbank entfernt wurde, sollte natürlich auch der Zugriffspfad aus dem Speicher genommen werden. USW. Aufgabe 4 (25 Punkte) SS 1998 Skizzieren Sie, welche Überlegungen in System R dazu führten, daß die Knoten, an denen sich Tabellen derzeit befinden, nicht spezifiziert werden müssen Aufgabe 4 (15 Punkte) SS 1996 Wozu dient das COMMIT-Statement? Warum und in welcher Form muß COMMIT für den Einsatz in einer verteilten Datenbank-Anwendung erweitert werden? ...Um eine Transaktion zu bestätigen... siehe unten Aufgabe 3 (20 Punkte) WS 1997 Warum muß in SQL eine Anweisung wie COMMIT bereitgestellt werden? Begründen Sie, warum für verteilte DBMS die urspüngliche Wirkung des Kommandos nicht mehr ausreicht und erläutern Sie die Wirkung des geänderten Kommandos. Ein lokales Commit kann in einer globalen DB-Umgebung zur Entscheidungsfindung nicht benutzt werden, da es global nicht ausreicht wenn ein Knoten der Transaktion zustimmt. Zur globalen Entscheidungsfindung werden zum Beispiel Mehrheitssysteme oder auch Einstimmigkeitssysteme benutzt. Das üblicherweise verwendete Protokoll ist das Zwei-Phasen-Commit-Protokoll. Dieses Protokoll kennzeichnet für jede Transaktion einen Knoten besonders aus, wobei derjenige Knoten "Koordinator" ist, an dem die Transaktion gestartet wird. Abschluß der Transaktion: 6. der Koordinator schickt an alle an der Transaktion beteiligten Knoten die Meldung Prepareto-commit 7. die Knoten informieren daraufhin den Koordinator, ob sie die Transaktion lokal durchführen können (Commit) die Transaktion verwerfen müssen (Abort) 8. die jeweilige Subtransaktion wird jedoch noch nicht vollzogen, vielmehr warten die Knoten auf die endgültige Mitteilung des Koordinators 9. der Koordinator sammelt alle Rückmeldungen auf und informiert die Knoten: falls alle Rückmeldungen Commit lauten, mit der Meldung Commit falls wenigstens eine Rückmeldung Abort lautet, mit Abort 10. die Knoten vollziehen ihre Aktion auf Grund der endgültigen Meldung des Koordinators Aufgabe 5 (10 Punkte) SS 1998 Warum reicht für ein verteiltes DBMS nicht die Funktionalität des Commit für nicht verteilte DBMSe aus, um Transaktionen zu gewährleisten? Ein lokales Commit kann in einer globalen DB-Umgebung zur Entscheidungsfindung nicht benutzt werden, da es global nicht ausreicht wenn ein Knoten der Transaktion zustimmt. Zur globalen Entscheidungsfindung werden zum Beispiel Mehrheitssysteme oder auch Einstimmigkeitssysteme benutzt. Aufgabe 5 (15 Punkte) WS 1999 Gilt die Beziehung AVG(sp) = SUM(sp)/COUNT(sp)? Begründen Sie Ihre Aussage. Diese Beziehung gilt nicht, da das Statement Count(sp) nicht zulässig ist. Eine CountAnweisung kann nur auf alle Datensätze einer Tabelle angewendet werden und nicht auf eine Ergebnismenge. Aufgabe 7 (25 Punkte) SS 1999 Warum kann ein Query-Optimizer bei einer AND-Verknüpfung Indexe einsetzen, bei einer ORVerknüpfung hingegen (in der Regel) nicht? Zwei Tupel T1(1,0) und T2(1,1) sind angesichts einer OR-Verknüpfung gleichwertig, bei einer AND-Verknüpfung ist allerdings T2 besser als T1, wodurch eine Reihenfolge ablesbar wird. Eine Reihenfolge festlegen zu können , ist Voraussetzung um einen Index einzurichten. Aufgabe 8 (25 Punkte) SS 1999 In einem Regallager wird pro Lagerplatz, der durch Regalnummer (R_NR) und Fachnummer (F_NR) eindeutig gekennzeichnet ist, höchstens eine Ware gelagert. Die Ware wird durch eine Warennummer (WID) eindeutig gekennzeichnet. Jede Ware wird, sofern vorhanden, an nur einem Lagerort gelagert. Die Information wird in einer Tabelle gehalten, die durch CREATE TABLE LAGER ( R_NR SMALLINT, F_NR SMALLINT, WID CHARACTER( 5) UNIQUE, MENGE SMALLINT, .... PRIMARY KEY (R_NR, F_NR), FOREIGN KEY (WID) REFERENCES ...) vereinbart ist. Um direkten Zugriff sowohl über Regal und Fachnummer als auch über die Warennummer zu erhalten, wird folgender Index vereinbart: CREATE INDEX ILAGER ON LAGER (R_NR, F_NR, WID) Ihr Kommentar? Aufgabe 1 (10 Punkte) WS 2000 In einer rel. DB ist eine Tabelle test folgendermaßen vereinbart: CREATE TABLE test ( schluessel INT PRIMARY KEY, wert INT UNIQUE ). Was geschieht, wenn nach dem Anlegen der Tabelle mit folgenden zwei Anweisungen Daten in die Tabelle eingefügt werden sollen: INSERT INTO test VALUES ( 1, NULL ) INSERT INTO test VALUES ( 2, NULL ) Begründen Sie Ihre Aussage. Schon beim Einfügen des ersten INSERT-Statements wird uns das DBMS eine Fehlermeldung liefern („Einstelliges Tupel erwartet“). NULL ??? Aufgabe 2 (20 Punkte) WS 2000 Eine rel. DB enthält eine Tabelle mit folgender Definition: CREATE TABLE demo ( sp1 INT NOT NULL, sp2 INT NOT NULL, w1 CHAR(120), w2 CHAR(120), PRIMARY KEY ( sp1, sp2 ) ) Der DB-Administrator entscheidet sich aus gewissen Gründen dafür, diese Tabelle vertikal zu zerlegen. Beantworten Sie bitte folgende Punkte: 1) Wie sieht die neue Struktur aus? 2) Was muss der DB-Admin machen, damit die SQL-Anweisungen in den Anwendungen weiterhin funktionieren? 3) Wo sind besondere Probleme zu erwarten? 4) Welche Möglichkeiten bietet Ihnen eine neuere Oracle-Version diesbezüglich? 1) Mit der vertikalen Zerlegung entstehen zwei Tabellen die jeweils die Spalten SP1 und SP2 als Primary Key und die Spalte w1 bzw. w2 haben. 2) Der DB-Admin sollte falls möglich benutzerabhängige Views zum Bearbeiten der Tabellen einrichten. 3) Lösungsansatz wird derzeit von relationalen DBMS nicht unterstützt. 4) Referenzen? Aufgabe 2 (15 Punkte) WS 2001 Warum stellen rel. DBMS die LOCK-Anweisung bereit? Die Lock-Anweisung dient zum Sperren von Datensätzen. Dabei soll verhindert werden das zum Beispiel zwei DB-User gleichzeitig den selben Datensatz manipulieren. Aufgabe 2 (15Punkte) WS 1996 Sie stehen vor dem Problem, eine Anwendungsentwicklung mit Hilfe eines relationalen DBMS durchzuführen. Dabei soll eine Abhängigkeit vom jeweiligen DBMS-Hersteller weitgehend vermieden werden. Worauf sollten Sie achten, was sollten Sie vermeiden? Bei der Anwendungsentwicklung sollte der Datenbankzugriff als Modul gekapselt werden und auf das Standard SQL92 aufbauen, wobei keine DBMS-Optimierungen eingebaut werden sollten. Als Alternativen zur Umsetzung der Module stehen JDBC (objektorientiert) und CLI zur Verfügung. Aufgabe 1 (20 Punkte) SS 1996 Was bedeutet ,,referentielle Integrität``. Diskutieren Sie diesen Begriff und seine Bedeutung für den logischen Entwurf einer Datenbank. Referential integrity is a feature of Oracle that ensures that all references to external objects within each database object are valid. Was muß ein DB-System aufweisen, damit zusätzlich allgemeine Geschäftsregeln durch das DBSystem überwacht werden können. Aufgabe 2 (20 Punkte) SS 1996 Wie muß man bei der Implementation einer Datenbank vorgehen, wenn allgemeine Geschäftsregeln überwacht werden sollen, auch wenn das DB-System dies nicht unterstützt? Aufgabe 1 (25 Punkte) WS 1997 Ein bekanntes DBMS wies in einer vorhergehenden Version folgendes Verhalten auf: bei großen Tabellen betrug die Laufzeit der Anweisung SELECT MIN(sp1), MAX(sp1) FROM tabelle ein Vielfaches der Laufzeit der Anweisungen SELECT MIN(sp1) FROM tabelle und SELECT MAX(sp1) FROM tabelle sp1 sei eine numerische Spalte der Tabelle tabelle, auf die ein Index errichtet ist. Versuchen Sie, dieses Verhalten verständlich zu machen. Aufgrund der Anwendung eines Query-Optimizers auf diese Tabelle wird die Anfrage auf das Minimum bzw. Maximum optimiert, welches die Einzelanfragen stark begünstigt. Bei der gleichzeitigen Suche nach Min und Max wird der Optimizer so ausgehebelt, das eines der beiden Elemente erst nach dem kompletten Durchlaufen der Tabelle gefunden werden kann. Aufgabe 1 (25 Punkte) SS 1997 In der Phase des logischen Designs einer Datenbank haben Sie eine Tabelle erhalten, die einen aus drei Spalten P1, P2 und P3 zusammengesetzten Primärschlüssel sowie 20 weitere Spalten SP1 bis SP20 enthält. Folgende Informationen bzgl. des zu erwartenden Anwendungsprofils sind im Hinblick auf diese Tabelle bekannt: Ca. 45% aller Zugriffe auf diese Tabelle benötigen neben dem Primärschlüssel nur die Spalten SP1 bis SP5. Weniger als 2/3 der Zugriffe sind Anfragen. Bei Anfragen wird zu 60% SP1 und zu 30% die Spalte SP2 als Sortierungskriterium benutzt. Ca. 35% aller Zugriffe benutzen neben dem Primärschlüssel nur die Spalten SP10 bis SP15, bei 70% aller Anfragen wird dabei auf eine Sortierung der Spalte SP15 zurückgegriffen. Ca. 25% aller Zugriffe benötigen außer dem Primärschlüssel nur die Spalten SP14 bis SP17, alle Anfragen benutzen SP15 und SP16 als gemeinsames Sortierungskriterium. Die restlichen Zugriffe benötigen alle Spalten, neben SP1, SP2, SP15 und SP16 werden auch Spalten SP3 oder SP4 als Sortierkriterium benutzt. Welche Entscheidungen würden Sie daraus hinsichtlich der physischen Implementation fällen? Begründen Sie Ihre Entscheidung. Aufgrund der hauptsächlich auftretenden lesenden Zugriffe würde ich die Tabelle in sortierte Tabellen aufsplitten und nicht normalisieren. Durch auftretende Inkonsistenzen werden schreibende Zugriffe sehr teuer. Eventuell lassen sich dann die SP15 und SP16 aufgrund des gemeinsamen Sortierkriteriums in einer Spalte zusammenfassen. Eine physische Verteilung der Tabellen auf mehrere Platten oder Cluster-Knoten könnte die Geschwindigkeit erhöhen. Aufgabe 2 (20 Punkte) SS 1997 Referentielle Integrität wird heute überlicherweise von jedem DB-System unterstützt. Erläutern Sie diesen Begriff. Geben Sie ein sinnvolles Beispiel für eine Regel, die über die üblicherweise von einem DB-System unterstützten Regeln hinausgehen und begründen Sie, warum man dennoch von einem DB-System erwarten sollte, auch die von Ihnen als Beispiel aufgestellte Regel zu unterstützen. Zeigen Sie Wege auf, bei Implementation einer DB-Anwendung diese Regel unabhängig vom Anwendungsprogrammierer bzw. Endanwender zu überwachen, auch wenn das DBMS dies nicht unterstützt. Aufgabe 7 (10 Punkte) SS 2000 Nicht jeder theoretisch änderbare View wird auch durch die rel. DBMS als änderbar akzeptiert. Welche Maßnahmen stellt diesbezüglich Oracle bereit? Ändernde Views können von einem rel. DBMS nicht akzeptiert werden, wenn sie Joins beinhalten. Oracle kann nur änderbare Views auf eine normalisierte Tabelle verwalten. Aufgabe 4 (20 Punkte) SS 1999 Warum ist nicht jeder View änderbar? Geben Sie ein Beispiel eines prinzipiell nicht änderbaren Views. Typischerweise akzeptieren kommerzielle DBMS höchstens solche prinzipiell änderbaren Views als änderbar, die sich nur auf eine Basistabelle beziehen. Welche Möglichkeit bietet Oracle an dieser Stelle? Falls Inkonsistenzen in der Basistabelle auftreten kann es zu Problemen kommen ( Tabelle ist normalisierbar ). Views mit Joins auf nicht normalisierte Tabellen sind theoretisch nicht änderbar, da Datensätze nicht löschbar sind, wenn nicht alle Abhängigkeiten aufgelöst werden können. Oracle kann nur änderbare Views auf eine normalisierte Tabelle verwalten. Aufgabe 5 (15 Punkte) WS 1997 Warum können Sie prinzipiell nicht erwarten, daß jeder VIEW einer Tabelle Änderungen zuläßt? Begründen Sie dies und bilden Sie ein Beispiel. Falls Inkonsistenzen in der Basistabelle auftreten kann es zu Problemen kommen ( Tabelle ist normalisierbar ). Beim Löschen von einzelnen Datensätzen kann es vorkommen dass Abhängigkeiten nicht aufgelöst werden können. Aufgabe 1 (20 Punkte) SS 1999 Geben Sie ein Beispiel für einen auch theoretisch nicht änderbaren View. Unter welchen Voraussetzungen lassen die bekannten DBMS Änderungen eines Views zu? Geben Sie ein Beispiel für einen theoretisch änderbaren View, der in der Regel nicht von einem der üblichen DBMS geändert werden kann. Views mit Joins auf nicht normalisierte Tabellen sind auch theoretisch nicht änderbar, da Datensätze nicht löschbar sind, wenn nicht alle Abhängigkeiten auflösbar sind. Änderbare Views werden von derzeitigen DBMS unterstützt, solange sie keine Joins beinhalten, also nur auf eine Basistabelle zugreifen. Theoretisch wäre eine View mit Join auf normalisierte Tabellen änderbar. Aufgabe 2 (20Punkte) WS 1998 Geben Sie an, unter welchen Voraussetzungen die bekannten DBMSe Änderungen eines Views zulassen. Geben Sie ein Beispiel für einen View, der nicht änderbar ist sowie für einen theoretisch änderbaren View, der von den üblichen DBMS nicht geändert werden kann. Änderbare Views werden von derzeitigen DBMS unterstützt, solange sie keine Joins beinhalten, also nur auf eine Basistabelle zugreifen. Theoretisch wäre eine View mit Join auf normalisierte Tabellen änderbar. Views mit Joins auf nicht normalisierte Tabellen sind auch theoretisch nicht änderbar, da Datensätze nicht löschbar sind, wenn nicht alle Abhängigkeiten auflösbar sind. Aufgabe 5 (25 Punkte) WS 1998 Eine Geschäftsregel eines Versandhauses lautet: Die Bestellung eines Kunde darf nur dann angenommen werden, wenn der Wert der bestellten Ware und die von früheren Bestellung außenstehenden Bestände 500,00 DM nicht überschreiten und Eine Bestellung im Werte über 100,00 DM darf nur angenommen werden, wenn der Kunde älter als 18 Jahre ist. Diskutieren Sie die Implementation einer solchen Geschäftsregel beim Einsatz heute gängiger relationaler DBMSe. Bei den verschachtelten DBMS-Anfragen können Widersprüche und Situationen auftreten die ein Query-Optimizer nicht optimieren kann. Zudem sind Joins so teuer, daß man in einem Datawarehouse große Ansichtstabellen erstellen würde.