Vorlesung Datenbanken II B Nachklausur

Ähnliche Dokumente
Datenbanken II B: DBMS-Implementierung Klausur

Vorlesung Datenbanken I Endklausur

Vorlesung Datenbanken I Zwischenklausur

Datenbanken II B: DBMS-Implementierung Musterlösung zur Klausur

Vorlesung Datenbanken II Endklausur

Oracle Datenbank - Tuning

Vorlesung Datenbanken II A Klausur

Data Dictionary for Oracle

Vorlesung Objektorientierte Programmierung Klausur

Datenbanken II A: Datenbank-Entwurf Klausur

Vorlesung Dokumentation und Datenbanken Klausur

Logische Programmierung & Deduktive Datenbanken Klausur

Vorlesung Datenbanksysteme Endklausur

Vorlesung Datenbank-Entwurf Klausur

Prakt. Datenbankprogrammierung. Sommersemester Was sind Constraints? I,11: Verwendung von Constraints. Festlegung von Constraints

Vorlesung Datenbanken I Nachklausur

DOAG Regionaltreffen TABLE REORG. Klaus Reimers. Leiter Beratung & Entwicklung, ORDIX AG, Paderborn

Online Table Shrink. Freigabe von ungenutztem Speicherplatz. Autor: Ralf Durben, ORACLE Deutschland GmbH

Erzeugen von Constraints

Tabellen und Indizes Reorganisieren, aber wann?

DOAG Index Tuning

Automatisierung von Tabellen- und Index-Reorganisationen

Datenbank Objekte (Tabellen, Segemente, Extents, Blöcke)

Oracle Database 12c Was Sie immer schon über Indexe wissen wollten

Vorlesung Grundlagen des World Wide Web Klausur

Vorlesung XML und Datenbanken Klausur

Fakultät für Informatik & Wirtschaftsinformatik DB & IS II - WS Metadaten. Andreas Schmidt Metadaten 1/17

In diesem Abschnitt wollen wir uns mit der Architektur von Datenbank Managements Systemen beschäftigen.

Fakultät für Informatik & Wirtschaftsinformatik DB & IS II - SS Metadaten

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

Wiederholung VU Datenmodellierung

Metadaten oder Metainformationen sind Daten, die Informationen über Merkmale anderer Daten enthalten, aber nicht diese Daten selbst (Wikipedia)

Grundlagen der Informatik III ERM-Modell Thema: Grundlagen der Datenbanken

Datenschutz: Zugriffsrechte in SQL

Introduction to Data and Knowledge Engineering. 6. Übung SQL

Wiederholung VU Datenmodellierung

Oracle 9i Einführung. Performance Tuning. Kurs. Teil 8 Indizes. Universität Hannover. Installation. Index-Typen. Anhang.

Die InnoDB Storage Engine. Handy aus?

DB I S. 1 Referentielle Aktionen [10 P.] Gegeben sei folgende Datendefinition:

Row Chaining & Row Migration Alte Bekannte - immer noch aktuell! DOAG 2014 Datenbank Dierk Lenz

Logischer Entwurf. Stufen der Entwicklung einer Datenbank. Inhalt. Übersicht. 1. Datenbank - Entwurf ( ER - Diagramm)

Gliederung. 1) Speicherplatz-Zuordnung und -Verwaltung 2) Indizes 3) Explain Plan 4) Join-Operationen 5) Der Optimizer 6) Parallelisieren

Grundlagen von Datenbanken

12. Datenschutz: Zugriffsrechte in SQL Datenschutz: Zugriffsrechte in SQL

Im Folgenden möchten wir Ihnen einige Beispiele aufzeigen, wie ALTER TABLE gemäß SQL92 verwendet wird:

Übersicht der wichtigsten MySQL-Befehle

Tablespaces und Datendateien

3. Architektur eines DBS (Oracle)

Oracle 10g Einführung

Seminar 2. SQL - DML(Data Manipulation Language) und. DDL(Data Definition Language) Befehle.

Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin

Universität Augsburg, Institut für Informatik Wintersemester 2008/2009 Prof. Dr. W. Kießling 03. Februar Semesterklausur

Datenbanken Vertiefung Wintersemester 2014/ Matrikelnummer: Hinweise. Unterschrift

Wintersemester 2016/ Matrikelnummer: Hinweise. Unterschrift

Oracle 9i Einführung Performance Tuning

Üben von DDL und DML. Ergebnis:

Vorlesung Objektorientierte Programmierung Klausur

1 Relationenalgebra [8 P.] Gegeben seien die folgenden Relationenschemata: Hafen(HNR, Ort, Grundsteinlegung)

MySQL-Befehle. In diesem Tutorial möchte ich eine kurze Übersicht der wichtigsten Befehle von MySQL geben.

Index Rebuild. DOAG Konferenz , Nürnberg. Martin Hoermann

DBS: Administration und Implementierung Klausur

Universität Augsburg, Institut für Informatik WS 2007/2008 Prof. Dr. W. Kießling 18. Jan Dr. A. Huhn, M. Endres, T. Preisinger Übungsblatt 12

Performance in der Oracle Datenbank von Anfang an

Oracle 9i Einführung Performance Tuning

Semesterklausur Wiederholung

Oracle 10g Einführung

Datenbanksysteme I WS 18/19 Teillösung Übungsblatt 4-6

Physische Datenorganisation

technische universität dortmund Fakultät für Informatik LS 8 Speichern von Daten Prof. Dr. Katharina Morik

Index Rebuild. DOAG Konferenz , Nürnberg DOAG Konferenz , Nürnberg Martin Hoermann Martin Hoermann

Warum wird mein Index nicht benutzt?

Dieser Foliensatz darf frei verwendet werden unter der Bedingung, dass diese Titelfolie nicht entfernt wird.

Philipp Nebel, 05 IN. Speicherung von Datenbank-Objekten in Oracle

Oracle 9i Einführung Performance Tuning

A Datendenition in SQL ( Punkte)

Erzeugung und Veränderung von Tabellen

Physische Datenbankdefinition in. Arthur Bauer

Zusatzskript Datenmanagement: physische Strukturen B+- und B*-Baum B+-Baum

Technische Background Info und Trivadis Scripts

Tablespaces und Datendateien

Abfragen (Queries, Subqueries)

Klausur PI Datenbanken II vom Name: Praktische Informatik (Krägeloh)

Aufgabe 4 : Virtueller Speicher

SQL. SQL: Structured Query Language. Früherer Name: SEQUEL. Standardisierte Anfragesprache für relationale DBMS: SQL-89, SQL-92, SQL-99

Prüfung Algorithmen und Datenstrukturen I

quick documentation Inhalt Datenmodellierung

Kurs. Teil 7 UNDO-Management. Universität Hannover. Agenda. Einführung. Nutzung RBS Oracle 9i Einführung Performance Tuning.

Prozessarchitektur einer Oracle-Instanz

ACCESS SQL ACCESS SQL

Relationales Datenbanksystem Oracle

Architektur moderner Datenbanksysteme

... Datenintegrität verwalten

Finalklausur zur Vorlesung Datenbanksysteme I Wintersemester 2003/2004 Prüfer: Prof. R. Bayer, Ph.D. Datum: Zeit: 16.

Ausgabe: Abteilungen Summe der Fehltage einer Abteilung. Nur für Mitarbeiter deren Fehltage < 3 Nur Abteilungen deren Fehltage-Summe > 1

Semesterklausur. Hinweise:

Anwendungsentwicklung Datenbanken SQL. Stefan Goebel

Klausur Datenbanken Wintersemester 2009/2010 Prof. Dr. Wolfgang May 2. Februar 2010, Uhr Bearbeitungszeit: 90 Minuten

Grundlagen von SQL. Informatik 2, FS18. Dr. Hermann Lehner (Material von Dr. Markus Dahinden) Departement Informatik, ETH Zürich

Transkript:

Prof. Dr. Stefan Brass 28. März 2007 Institut für Informatik MLU Halle-Wittenberg Vorlesung Datenbanken II B Nachklausur Name: Matrikelnummer: Studiengang: Aufgabe Punkte Max. Punkte Zeit 1 (Datenspeicherung) 4 8 min 2 (RAID-Systeme) 3 5 min 3 (B + -Bäume) 6 10 min 4 (Buffer-Manager) 6 9 min 5 (Speicherbedarf) 6 10 min 6 (Data-Dictionary-Anfrage) 6 9 min 7 (Oracle-QEP) 5 9 min Summe 36 60 min Hinweise: Bearbeitungsdauer: 75 Minuten Skript, Bücher, Notizen sind erlaubt. Notebooks, PDAs, etc. dürfen nicht verwendet werden. Mobiltelefone ausschalten (oder bei Aufsicht melden). Bitte schreiben Sie weder mit Bleistift noch mit Rotstift! Die Klausur hat 13 Seiten. Bitte prüfen Sie die Vollständigkeit. Bitte benutzen Sie den vorgegebenen Platz. Wenn Sie auf die Rückseite ausweichen müssen, markieren Sie klar, dass es eine Fortsetzung gibt. Tauschen Sie keinesfalls irgendwelche Dinge mit den Nachbarn aus. Notfalls rufen Sie eine Aufsichtsperson zur Kontrolle. Bei der Aufgabe zum Ankreuzen sollten Sie wenigstens raten, wenn Sie die richtige Lösung nicht wissen. Es ist jeweils genau eine Antwort pro Teilaufgabe richtig. Fragen Sie, wenn Ihnen eine Aufgabe nicht klar ist!

Vorlesung Datenbanken IIB Nachklausur 2 Beispiel-Datenbank (für Aufgabe 3, 5 und 7) Eine Videothek verwaltet die Daten Ihrer Mitglieder und Filme sowie deren Ausleihe in einer Datenbank. Die erste Tabelle enthält Informationen zu den Mitgliedern und deren Aufnahmedatum: MITGLIEDER MNR VORNAME NACHNAME ADRESSE TEL DATUM 10001 Hans Meier Müllerstr. 2,... 0123/456789 01.05.1999 10403 Jens Müller Hauptstr. 201,... 0123/987654 20.03.2006 10516 Jan Benker Mühlgasse 1a,... 012435/6789 06.01.2007 Eine zweite Tabelle enthält Informationen zu den Filmen: FILM FNR TITEL BESCHREIBUNG FSK KATEGORIE JAHR 1234 Das Schweigen der Lämmer Hannibal... 16 Thriller 1986 1235 Rain Man Tom Cruise... 12 Drama 1988 1236 Fantastic Four Nach einem... 12 Fantasy 2005 In der dritten Tabelle werden die vorhandenen Kopien der Filme mit ihrem Status (vorhanden, reserviert, ausgeliehen, defekt,... ) verzeichnet: FILMKOPIE FNR KNR STATUS 1234 1 vorhanden 1235 1 ausgeliehen 1235 2 vorhanden 1236 1 ausgeliehen 1236 2 ausgeliehen 1236 3 reserviert Die vierte Tabelle enthält die Daten zur Ausleihe der Filme: AUSLEIHE MNR DATUM FNR KNR RÜCKGABE 10001 21.01.2007 1234 1 25.01.2007 10516 12.02.2007 1235 2 15.02.2007 10403 26.03.2007 1236 1

Vorlesung Datenbanken IIB Nachklausur 3 Aufgabe 1 (Datenspeicherung) 4 Punkte Bitte kreuzen Sie die jeweils richtige Antwort an (genau eine pro Teilaufgabe). a) Wieviele zugriffe benötigen Sie unter Oracle maximal, um nach einem Index- Zugriff (ROWID ist bekannt) ein Tupel einer Tabelle vollständig zu lesen, wenn das Tupel gerade nicht mehr in einen passt und deshalb migriert ist? 1 zugriff 2 zugriffe 3 zugriffe 4 zugriffe b) Die Segmente einer Oracle-Tabelle werden mit folgenden beim Anlegen der Tabelle festgelegten Parametern verwaltet: 100KB für initial und next, pctincrease ist 50. Welcher der folgenden Werte gibt dann die Größe der Tabelle an, nachdem das vierte Extent zugewiesen wurde? 225KB 325KB 350KB 575KB c) Wieviele Blöcke werden unter Oracle einem Segment mit einer Extent-Größe von 10 Blöcken (initial und next) mindestens zugewiesen, wenn darin eine Tabelle mit einer Größe von 15 Blöcken gespeichert ist? 15 Blöcke 16 Blöcke 20 Blöcke 21 Blöcke 25 Blöcke c) Welche der folgenden physischen Strukturen entspricht in einer Oracle-Datenbank der logischen Struktur des Tablespace (bezogen auf die Abbildung vom logischen ins physische Schema der Datenspeicherung)? Datendatei Segment Extent

Vorlesung Datenbanken IIB Nachklausur 4 Aufgabe 2 (RAID-Systeme) 3 Punkte a) Sie betreiben Ihre Festplatten in einem RAID-System Level 5 mit 4 Platten und haben darauf die Datenblöcke A bis L gespeichert. Bei einem Systemabsturz sind einige der Blöcke zerstört worden. Geben Sie an, wie das RAID-System die fehlenden Blöcke berechnet, indem Sie die Blöcke und die dazu notwendigen Operationen in Form einer Gleichung in die zu den Blöcken gehörigen freien Plätze eintragen (z.b. X = M + Q, wenn X aus der Parität von M und Q berechnet würde). Die Operation XOR soll dabei durch ein + bezeichnet werden: b) Welchen der folgenden RAID-Level würden Sie für die Redo-Log-Dateien wählen, wenn das DBMS die Daten gleichzeitig nur in eine Datei schreibt? Ihnen sind Sicherheit, Leistung und Preis wichtig (in dieser Prioritätsreihenfolge). RAID-0 (Striping) RAID-1 (Spiegelung) RAID-5 (Paritätsblöcke)

Vorlesung Datenbanken IIB Nachklausur 5 Aufgabe 3 (B + -Bäume) 6 Punkte Betrachten Sie den folgenden B + -Baum mit mindestens einem und maximal 3 Einträgen pro Knoten als Unique-Indexbaum über der Spalte FNR der Tabelle FILM (siehe Schema auf Seite 2): Bei den Lösungen der folgenden Aufgaben genügt die Angabe der Wurzel und des Teilbaumes davon, bei dem eine Änderung stattfindet. Gehen Sie bitte bei jeder Teilaufgabe vom oben abgebildeten ursprünglichen Baum aus. a) Geben Sie (vom oben angegebenen Baum ausgehend) den resultierenden B + -Baum nach der folgenden Operation an: INSERT INTO FILM VALUES (781, King Kong,, 12, Action, 1976)

Vorlesung Datenbanken IIB Nachklausur 6 b) Geben Sie (vom oben angegebenen Baum ausgehend) den resultierenden B + -Baum nach der folgenden Operation an: INSERT INTO FILM VALUES (1237, La Vie En Rose,, 12, Drama, 2007) c) Geben Sie (vom oben angegebenen Baum ausgehend) den resultierenden B + -Baum nach der folgenden Operation an: DELETE FROM FILM WHERE FNR = 1234

Vorlesung Datenbanken IIB Nachklausur 7 Aufgabe 4 (Buffer-Manager) 6 Punkte Simulieren Sie die Arbeit eines Buffer-Managers (Cache für Datenbank-Blöcke), der nach den LRU-Prinzip arbeitet. Er hat vier Buffer-Frames (Plätze im Cache), die aktuell die folgenden Blöcke enthalten: Cache-Frame A Cache-Frame B Cache-Frame C Cache-Frame D 4 3 7 1 LRU-Queue: (vorne) A (hinten) Im Moment sind die Blöcke 1, 3 und 7 gepinnt (markiert durch das Kreuzchen oben rechts). Es sei vorausgesetzt, dass alle Blöcke auf der Platte schon in der aktuellen Version stehen. Ebenso seien im folgenden nur Lesezugriffe betrachtet. Wie ändert sich die Situation bei folgenden Aufrufen des Buffer-Managers? Füllen Sie die Zeichnung jeweils vollständig aus (entsprechend dem Beispiel oben), d.h. markieren Sie nicht nur die Änderungen (das könnte eventuell mehrdeutig sein). Nehmen Sie an, dass die Aufrufe in a), b) und c) jeweils nacheinander erfolgen. a) Unpin 7. Der wurde nur gelesen, nicht verändert. Cache-Frame A Cache-Frame B Cache-Frame C Cache-Frame D LRU-Queue: (vorne) (hinten) b) Unpin 1. Gehen dabei von Ihrem Ergebnis aus a) aus. Der wurde nur gelesen, nicht verändert. Cache-Frame A Cache-Frame B Cache-Frame C Cache-Frame D LRU-Queue: (vorne) (hinten)

Vorlesung Datenbanken IIB Nachklausur 8 c) Pin 10. Gehen dabei von Ihrem Ergebnis aus b) aus. Cache-Frame A Cache-Frame B Cache-Frame C Cache-Frame D LRU-Queue: (vorne) (hinten)

Vorlesung Datenbanken IIB Nachklausur 9 Aufgabe 5 (Speicherbedarf) 6 Punkte Berechnen Sie den Speicherplatz, der für die Tabelle FILM(FNR, TITEL, BESCHREIBUNG, FSK, KATEGORIE, JAHR) notwendig ist. Nehmen Sie zur Vereinfachung der Rechnung an, dass BESCHREIBUNG als Typ VARCHAR(4000) definiert ist und in allen Zeilen die tatsächliche Länge 300 hat. Außerdem seien FNR und JAHR immer eine vierstellige und FSK immer eine zweistellige ganze Zahl. TITEL ist vom Typ VARCHAR(100) mit der durchschnittlichen Länge 15 und KATEGORIE ebenfalls vom Typ VARCHAR(100) mit der durchschnittlichen Länge 7. Der Header ist 90 Byte groß. Die größe ist 4K (4096 Byte), PCTFREE ist 10, und PCTUSED ist 65. Die Tabelle enthält 5230 Tupel. (Selbstverständlich können die Ergebnisse sich hier von den in den anderen Aufgaben genannten Größen unterscheiden.) Geben Sie bitte unterhalb der eigentlichen Antwort jeweils noch eine kurze Rechnung/Erklärung an. a) Wieviel nutzbaren Speicherplatz hat jeder (größe minus Header und Platzreserve)? b) Wieviel Platz braucht jedes Tupel (inklusive dem Eintrag im Row-Directory)? c) Wie groß sollten Sie also den INITIAL Extent deklarieren (in Blöcken), wenn Sie wollen, dass die Tabelle genau hineinpasst? (Kein zu viel, kein zu wenig.) Denken Sie auch an den Segment-Header.

Vorlesung Datenbanken IIB Nachklausur 10 Aufgabe 6 (Data-Dictionary-Anfrage) 6 Punkte Sie wollen herausfinden, ob es in Ihrer Datenbank Fremdschlüssel zwischen Tabellen unterschiedlicher Besitzer gibt. D.h. Sie suchen zwei Tabellen unterschiedlicher Besitzer, in denen eine Spalte der einen Tabelle auf eine Spalte der anderen Tabelle verweist. Gehen Sie dabei davon aus, dass der Besitzer eines Constraints gleich dem Besitzer der Tabelle ist, zu der das Constraint gehört. Geben Sie eine dazu passende Anfrage an das Data-Dictionary an. Listen Sie dazu den Besitzer, den Tablespace, in dem die Tabelle liegt sowie den Tabellen- und Spaltennamen der Tabelle auf, die den Fremdschlüssel enthält. Folgende Data-Dictionary-Tabellen könnten eventuell für die Anfrage relevant sein: DBA_TABLES mit den Spalten OWNER, TABLE_NAME, TABLESPACE_NAME, CLUSTER_NAME, IOT_NAME, PCT_FREE, PCT_USED, INI_TRANS, MAX_TRANS, INITIAL_EXTENT, NEXT_EXTENT, MIN_EXTENTS, MAX_EXTENTS, PCT_INCREASE, FREELISTS, FREELIST_GROUPS, LOGGING, BACKED_UP, NUM_ROWS, BLOCKS, EMPTY_BLOCKS, AVG_SPACE, CHAIN_CNT, AVG_ROW_LEN, AVG_SPACE_FREELIST_BLOCKS, NUM_FREELIST_BLOCKS,... DBA TAB COLUMNS mit den Spalten OWNER, TABLE NAME, COLUMN NAME, DATA TYPE, DATA TYPE MOD, DATA TYPE OWNER, DATA LENGTH, DATA PRECISION, DATA SCALE, NULLABLE, COLUMN ID, DEFAULT LENGTH, DATA DEFAULT, NUM DISTINCT, LOW VALUE, HIGH VALUE,... DBA_TABLESPACES mit den Spalten TABLESPACE_NAME, BLOCK_SIZE, INITIAL_EXTENT, NEXT_EXTENT, MIN_EXTENTS, MAX_EXTENTS, PCT_INCREASE, MIN_EXTLEN, STATUS, CONTENTS,... DBA_CONSTRAINTS mit den Spalten OWNER, CONSTRAINT_NAME, CONSTRAINT_TYPE, TABLE_NAME, SEARCH_CONDITION, R_OWNER, R_CONSTRAINT_NAME, INDEX_OWNER, INDEX_NAME, STATUS,... DBA_CONS_COLUMNS mit den Spalten OWNER, CONSTRAINT_NAME, TABLE_NAME, COLUMN_NAME, POSITION Es ist Platz für die Lösung auf der nächsten Seite.

Vorlesung Datenbanken IIB Nachklausur 11 Lösung zu Aufgabe 6 (Data-Dictionary-Anfrage)

Vorlesung Datenbanken IIB Nachklausur 12 Aufgabe 7 (Oracle-QEP) 5 Punkte Der Besitzer der Videothek (siehe Schema auf Seite 2) möchte sich alle aktuellen Filme (ab 2006) anzeigen lassen, die im Moment nicht ausgeliehen werden können, da alle Kopien z.b. ausgeliehen, reserviert oder defekt sind (es existiert keine Kopie mit Status vorhanden ). Für diese Filme möchte er dann entsprechend mehr Kopien anschaffen. Dazu stellt er die folgende Anfrage an die Datenbank: SELECT F.FNR, F.TITEL, F.JAHR FROM FILM F WHERE JAHR >= 2006 AND NOT EXISTS (SELECT * FROM FILMKOPIE K WHERE K.FNR = F.FNR AND K.STATUS = vorhanden ) Geben Sie für die obigen Anfrage einen Oracle-QEP (Query Execution Plan) an. Der Auswertungsplan soll möglichst gut sein. Sie können die Existenz folgende Indexe voraussetzen: CREATE UNIQUE INDEX IND1 ON FILM(FNR) CREATE INDEX IND2 ON FILM(TITEL) CREATE INDEX IND3 ON FILM(JAHR) CREATE INDEX IND4 ON FILM(KATEGORIE) CREATE UNIQUE INDEX IND5 ON FILMKOPIE(FNR, KNR) CREATE INDEX IND6 ON FILMKOPIE(STATUS) Sowohl die Tabelle FILM als auch die Tabelle FILMKOPIE sind sehr groß, so dass sich der Einsatz eines Index generell lohnt. Es gibt nur sehr wenige aktuelle Filme, welche die obige Bedingung an des Jahr erfüllen. Dagegen gibt es sehr viele Filmkopien, welche zur Zeit den Status vorhanden besitzen. Die Filmkopien sind weder nach der Filmnummer noch nach dem Status sortiert, also fast zufällig verteilt. Von den aktuellen Filmen sind in den meisten Fällen schon recht viele Kopien angeschafft worden, auf jeden Fall mehr als von älteren Filmen. Sie können den QEP entweder wie im Skript als Baum zeichnen, oder wie in SQL*Plus tabellarisch ausgeben. Es ist Platz für die Lösung auf der nächsten Seite.

Vorlesung Datenbanken IIB Nachklausur 13 Lösung zu Aufgabe 7 (Oracle-QEP)