Datenbanken-Frageste..

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