Fragen_aus_alten_DB_Klausuren

Werbung
Fragen aus alten Klausuren:
Aufgabe 1 (20 Punkte)
Wie können SQL-Anweisungen in einen Quelltext (z.B. PL/I, COBOL, Pascal usw.)
eingebettet werden? Wie arbeitet der dazu benötigte Precompiler?
Aufgabe 2 (25 Punkte)
Beschreiben Sie den Zugriff auf eine Datenbank mit JDBC. Insbesondere soll wiederholt mit
wechselnden Parametern eine Abfrage SELECT * FROM tab WHERE regal = ? auf eine
Tabelle mit den Character-Spalten nr, fach, regal, ware durchgeführt werden.
Aufgabe 3 (15 Punkte)
Warum sind in relationalen DBMS Indexe in der Regel als Bäume und nicht als HashVerfahren implementiert? Gibt es ggf. auch bei Bäumen gewisse Probleme?
Aufgabe 4 (25 Punkte)
Begründen Sie, warum man die von Oracle vorgenommenen Erweiterungen des RDBMS als
,,objekt-relational`` und nicht als ,,objekt-orientiert`` bezeichnen muss.
Aufgabe 5 (25 Punkte)
Skizzieren Sie die Möglichkeiten, die Performance eines Datenbank-Servers hinsichtlich einer
bestehenden DB-Anwendung zu verbessern.
Anmerkung: eine reine Stichwort-Sammlung ist nicht erwünscht, diskutieren Sie jeden
Vorschlag mit einem/ein paar kurzen Sätzen.
Aufgabe 6 (20 Punkte)
Warum werden Trigger unterstützt? Beschreiben Sie Einsatz sowie die Ihrer Meinung nach
wichtigsten Grundlagen.
Aufgabe 7 (15 Punkte)
Was ist ein Deadlock? Was sieht der SQL-Standard zur Vermeidung von Deadlocks vor,
welche Mittel stellen die Hersteller von relationalen DBMS zur Verfügung?
Aufgabe 8 (40 Punkte)
Diskutieren Sie folgenden Ansatz und nehmen Sie Stellung:
Bei der Implemenatition der Indexverwaltung, die als Binary Trees
verwirklicht werden, verzichtet der DBMS-Hersteller darauf, nicht mehr
benötigte Index-Pages freizugeben.
1) Begründen Sie die Überlegung des DBMS-Herstellers.
2) Welche Konsequenzen hat das z.B. für folgende Situation: in einem Transaktionsorientierten System sollen die Transaktionen durch einen Timestamp gekennzeichnet werden.
Es ist mit hohem Transaktionsaufkommen zu rechnen. Drei Monate alte Transaktionen
werden, um Platz zu sparen, komprimiert und aus der Datenbank entfernt.
Aufgabe 9 (20 Punkte)
Welche Berechtigung gibt es für den DRDA-Ansatz, da ja ODBC bereits lange etabliert ist?
Aufgabe 10 (15 Punkte)
SQL92 (full level) fordert eine einheitliche Struktur für das Data Dictionary. Wie können
DBMS-Hersteller dies verwirklichen, ohne ihre speziellen DBMS-Fähigkeiten und Strukturen aufgeben zu müssen?
Aufgabe 11 (20 Punkte)
Was ist Ihrer Einschätzung nach die Zielrichtung von Lotus Notes? Ist es ein Werkzeug, um
rel. DBMS abzulösen?
Aufgabe 12 (15 Punkte)
In der Regel wird Information aus einem OLTP-System in ein Data-Ware-House
übernommen. Wie kann dies geschehen? Zeigen Sie mehrere Möglichkeiten auf.
Aufgabe 13 (25 Punkte)
Zugriffe auf eine Datenbank, die von Ihnen administriert wird, werden ein paar Wochen,
nachdem die gesamte Anwendung installiert wurde, merklich langsamer. Dabei hat sich nichts
an den Anwendungen, die auf die Datenbank zugreifen, geändert.
Welche Überlegungen stellen Sie an?
Aufgabe 14 (15 Punkte)
Es wird eine spezielle Anwendung für die Datenbank geplant, die (in großen Zeitabständen)
gestartet werden und dabei mehrere große Tabellen ,,updaten`` soll. Wie kann sichergestellt
werden, dass diese Anwendung deadlock-frei und möglichst effizient laufen kann? Was für
Folgen hat Ihr Vorschlag für die Zeitpunkte, zu denen diese Anwendung gestartet werden
sollte?
Aufgabe 15 (25 Punkte)
Beschreiben Sie, wie in Embedded SQL, in CLI und in JDBC der Zugriff auf eine
Ergebnistabelle erfolgt.
Aufgabe 16 (25 Punkte)
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 17 (15 Punkte)
Warum stellen rel. DBMS die LOCK-Anweisung bereit?
Aufgabe 18 (20 Punkte)
Warum kann man bei den Erweiterungen von Oracle bislang nicht von Objekt-Orientiert,
sondern nur von Objekt-Relational sprechen?
Aufgabe 19 (20 Punkte)
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?
Aufgabe 20 (20 Punkte)
Was versteht man unter ,,Replikation``, wie kann dies sinnvoll eingesetzt werden?
Aufgabe 21 (10 Punkte)
Welche Spalten bzw. Spaltenkombinationen sind für die Einrichtung eines Indexes besonders
geeignet? Warum sollte man nicht beliebige Indexe einrichten?
Aufgabe 22 (25 Punkte)
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.
Aufgabe 23 (30 Punkte)
Vergleichen Sie Embedded SQL und CLI. Vor- und Nachteile, Einsatz, ...
Aufgabe 24 (20 Punkte)
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?
Aufgabe 25 (20 Punkte)
Wie werden Transaktionen bei verteilten rel. DBMSen unterstützt?
Aufgabe 26 (30 Punkte)
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 27 (10 Punkte)
Wie erfolgt in JDBC der Zugriff auf die Sätze einer Ergebnistabelle? Skizzieren Sie das
Vorgehen.
Aufgabe 28 (15 Punkte)
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 29 (15 Punkte)
Zur Beschleunigung des Zugriffes werden Indexe eingesetzt. Warum ist dann die Aussage ,,je
mehr Indexe, desto besser`` falsch?
Aufgabe 30 (10 Punkte)
Nicht jeder theoretisch änderbare View wird auch durch die rel. DBMS als änderbar
akzeptiert. Welche Maßnahmen stellt diesbezüglich Oracle bereit?
Aufgabe 31 (25 Punkte)
Was sind ,,Optimistische Synchronisationsverfahren``? Gibt es Situationen, in denen Sie diese
Verfahren für besonders geeignet halten?
Aufgabe 32 (15 Punkte)
Gibt es (bislang noch) Vorteile rel. DBMS gegenüber OODBMS?
Aufgabe 33 (10 Punkte)
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.
Aufgabe 34 (20 Punkte)
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?
Aufgabe 35 (15 Punkte)
Wozu werden Sperrtabellen von einem DBMS eingesetzt? Was ist bei einem
verteilten DBMS der Vor- und Nachteil einer zentralisierten Sperrtabelle?
Welchen Nachteil hat in diesem Falle der Einsatz rein lokaler
Sperrtabellen?
Aufgabe 36 (25 Punkte)
Wozu dienen ,,Optimistische Synchronisationsverfahren``? Warum werden sie
nicht standardmäßig in allen DBMS-Implementationen eingesetzt?
Aufgabe 37 (25 Punkte)
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.
Aufgabe 38 (25 Punkte)
Wozu dient Normalisierung? In welchen Situationen darf Normalisierung
(geplant!) vernachlässigt werden?
Aufgabe 39 (10 Punkte)
Was bedeutet ,,Objekt-Identität``? Skizzieren Sie ein Beispiel, anhand
dessen Sie zeigen können, dass dies in einer rel. DB nicht gegeben ist.
Aufgabe 40 (20 Punkte)
Geben Sie Begründungen, warum es zur Entwicklung von OODBMS kam. Wo könnten
zur Zeit noch Vorteile von rel. DBMS liegen?
Aufgabe 41 (10 Punkte)
Warum muss JDBC die Klasse ResultSet bereitstellen?
Aufgabe 42 (20 Punkte)
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.
Aufgabe 43 (20 Punkte)
Was ist ein Trigger? Welche Bedeutung hat der für Oracle spezifische Trigger INSTEAD OF?
Aufgabe 44 (20 Punkte)
Was versteht man unter ,,dynamischem SQL``? Worin liegen die besonderen Probleme? Ist
dynamisches SQL in jeder Umgebung einsetzbar?
Aufgabe 45 (10 Punkte)
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?
Aufgabe 46 (10 Punkte)
Wie kann bei der Installation einer DB-Anwendung auf Datenschutz geachtet werden?
Aufgabe 47 (15 Punkte)
Was bewirkt ein COMMIT? Beschreiben Sie dies zunächst für die einfache Form, sodann für
den Fall des Zwei-Phasen-Commits.
Aufgabe 48 (25 Punkte)
Warum kann ein Query-Optimizer bei einer AND-Verknüpfung Indexe einsetzen, bei einer ORVerknüpfung hingegen (in der Regel) nicht?
Aufgabe 49 (25 Punkte)
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 LABER (
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 50 (15 Punkte)
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 51 (15 Punkte)
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 52 (15 Punkte)
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 53 (40 Punkte)
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 Query-Optimizer 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?
Aufgabe 54 (20 Punkte)
Was wird durch die Anweisung COMMIT bewirkt?
Aufgabe 55 (15 Punkte)
Gilt die Beziehung AVG(sp) = SUM(sp)/COUNT(sp)? Begründen Sie Ihre Aussage.
Aufgabe 56 (15 Punkte)
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.
Aufgabe 57 (15 Punkte)
Was ist Verteil, wenn ein Precompiler einen Zugriffsplan erstellt und speichert, was ist der
Nachteil dieses Vorgehens?
Aufgabe 58 (25 Punkte)
Die Schnittstelle CLI bietet Vorteile gegenüber Embedded SQL. Versuchen Sie diese Vorteile
darzustellen.
Aufgabe 59 (30 Punkte)
Erläutern Sie den Begriff ,,Zugriffspfad``. Welche Komponenten eines DBMS sind dafür
zuständig? Welceh Vor- bzw. Nachteile hat die Speicherung eines Zugriffspfades? Welche
organisatorischen Maßnahmen müssen getroffen werden, wenn ein Zugriffspfad gespeichert
wird?
Aufgabe 60 (30 Punkte)
Stellen Sie sich vor, Studenten- und Prüfungssekretariat würden ihre Daten in einer verteilten
DB-Anwedungung 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.
Aufgabe 61 (20 Punkte)
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.
Aufgabe 62 (15 Punkte)
Beschreiben Sie mit der Normalisierung verträgiche Methoden, um in einem RDBMS den
Zugriff auf Daten zu beschleunigen.
Aufgabe 63 (15 Punkte)
Was besagt der Transaktionsbegriff? Wie wird er in heute üblichen DBMSen unterstützt?
Entstehen durch diese Unterstützung ggf. andere Probleme?
Aufgabe 64 (15 Punkte)
Beschreiben Sie, wie eine Applikation mit eingebetteten SQL-Anweisungen auf
,,Exceptions`` des DBMS reagieren kann.
Aufgabe 65 (15 Punkte)
Worin liegen die Probleme, dynamische SQL-Anweisungen zu schreiben? Was versteht man
überhaupt unter diesem Begriff?
Aufgabe 66 (20 Punkte) Welche Überlegungen muß der DBA bzgl. der
Sicherungsstrategie anstellen. Gibt es diesbezüglich etwas, das vor bzw. zur Installationszeit
des DBMS festgelegt werden muß?
Herunterladen