Klausur DABS SS16 Korrekturhilfe

Werbung
Datenbanksysteme
Klausur, Studiengang Wirtschaftsinformatik
Sommersemster 2016
Prof. Dr. Michael Friedrich
Name:
Matrikelnummer:
Klausur Datenbanksysteme
Sommersemster 2016
Datum: 21.07.2016
Bearbeitungszeit: 90min
Maximal erreichbare Punktzahl: 90
Tragen Sie auf jedem von Ihnen bearbeiteten Aufgabenblatt ihren Namen und ihre
Matrikelnummer ein! Nur Blätter mit Ihren Namen und Ihrer Matrikelnummer
werden bewertet!
Verwenden Sie einen blauen oder schwarzen Stift — keinen Bleistift und keinen
Rotstift!
Bitte notieren Sie Ihre Antworten ausschließlich auf dem Aufgabenblatt! Bei Bedarf
benutzen Sie die Rückseite! Bei Bedarf stehen zusätzliche Blätter bei der Aufsicht
bereit. Für Skizzen und Entwürfe steht ebenfalls die Rückseite zur Verfügung.
Entwürfe, die nicht gewertet werden sollen, sind durchzustreichen.
Bei jeder Aufgabe steht jeweils die Anzahl der Punkte, die für diese Aufgabe
vergeben werden.
Die Aufgaben sind zufällig angeordnet und demnach nicht thematisch nach
Vorlesungsinhalten gruppiert.
Viel Glück und viel Erfolg.
Seite 1 von 7
Datenbanksysteme
Klausur, Studiengang Wirtschaftsinformatik
Sommersemster 2016
Prof. Dr. Michael Friedrich
Name:
Matrikelnummer:
1
Grundlagen (12 Punkte) ........................................................................ 2
2
Indexe (12 Punkte) .............................................................................. 2
3 Welche Arten von Schlüsseln kennen Sie? Erläutern Sie die einzelnen Schlüssel
kurz. (8 Punkte) ........................................................................................ 3
4
Transaktionen (13 Punkte) .................................................................... 3
5
Normalisierung (8 Punkte) ..................................................................... 3
6
Warenlager (10 Punkte) ........................................................................ 4
7
Erstellen Sie die Relationen aus folgendem ER-Diagramm: (14 Punkte) ....... 6
8
Erstellen Sie ein ER-Modell (13 Punkte) ................................................... 7
1
Grundlagen (12 Punkte)
1.1 Was ist ein Kreuzprodukt? (2 Punkte)

Die Verbindung aller Tupel aus einer Relation mit allen Tupeln aus der zweiten Relation.
1.2 Was ist ein Outer Join? (3 Punkte)

Verbindung zweier Relationen bei denen es nicht unbedingt einen Join Partner geben muss.
Es werden anstelle eines Join Partners dann NULL Werte eingefügt.
1.3 Erläutern Sie die Begriffe DB, DBS und DBMS. (3 Punkte)

DB Strukturierte Daten

DBMS Software zum Management von DBs

DBS = DBMS + DB
1.4 Erläutern Sie die Begriffe DDL und DML (4 Punkte).
2
Indexe (12 Punkte)
2.1 Wie verändert ein Index das Ergebnis einer SQL Query? (2 Punkte)

gar nicht. Es darf auch keine Änderung der Ergebnismenge statt finden. Laufzeit kann
anders sein.
2.2 Ein Foreign Key referenziert meistens einen Primary Key einer
anderen Relation. Warum ist das gut? Was muss man beachten,
wenn die Zielspalte des FK kein PK ist? (4 Punkte)

PK hat Index, daher kann der Constraint beiim Einfügen und Update schnell geprüft
werden.

Index auf der Zielspalte des FK anlegen.
Seite 2 von 7
Datenbanksysteme
Klausur, Studiengang Wirtschaftsinformatik
Sommersemster 2016
Prof. Dr. Michael Friedrich
Name:
Matrikelnummer:
2.3 Ihre Datenbankanwendung ist langsam. Wie wählen Sie optimale
Kandidaten für Indexe aus und warum legen Sie nicht auf jede Spalte
der Tabellen einen Index? (6 Punkte)

Index nur auf Spalten, die 1. Bei Anfragen oder Joins verwendet werden und 2. sich bzgl.
Inhalt eigenen (Selektivität, möglichst nahe an unique).

3
4
Indexe benötigen Speicherplatz und müssen bei Insert update delete gepflegt werden.
Welche Arten von Schlüsseln kennen Sie? Erläutern Sie die
einzelnen Schlüssel kurz. (8 Punkte)

Superschlüssel

Schlüsselkandidat

Primärschlüssel

Alternativschlüssel

Fremschlüssel
Transaktionen (13 Punkte)
4.1 Erläutern Sie den Begriff ACID (8 Punkte)

Atomicity

Consistency

Isolation

Durability
4.2 Was machen die Befehle commit und rollback? (2 Punkte)
4.3 Was ist ein Deadlock? (3 Punkte)

Zwei Transaktion warten auf Ressourcen der jeweils anderen Transaktion. Die angeforderte
Ressource wird aber auch von der jeweils anderen bereits gesperrt.
5
Normalisierung (8 Punkte)
Gegeben sei folgende Tabelle. Lösen Sie die problematischen Konstrukte auf. Das
neue Schema reicht aus. Sie müssen nicht die Inhalte übertragen. Denken Sie an
die Fremdschlüssel!
Artikel
Name
Vorname
Straße
Hausnummer
PLZ
Pan
Peter
Traumgasse
3
Pan
Peter
Traumgasse
Pan
Peter
Panther Rosa
Rot
Bestellung
Artikel
Menge
Preis
99999 Nirgendwo
1
1234
1
1.99
3
99999 Nirgendwo
1
2345
1
1.99
Traumgasse
3
99999 Nirgendwo
1
3456
1
1.99
Elisenstraße
33
11111 Blaustein
2
1234
2
1.99
Seite 3 von 7
Ort
Datenbanksysteme
Klausur, Studiengang Wirtschaftsinformatik
Sommersemster 2016
Prof. Dr. Michael Friedrich
Name:
Matrikelnummer:
Bestellungen
KNR
Bestellung
Artikel
Menge
1
1
1234
1
1
1
2345
1
1
1
3456
1
2
2
1234
2
Kunden
KNR
Name
Vorname
Straße
Hausnummer
PLZ
1
Pan
Peter
Traumgasse
3
99999 Nirgendwo
2
Panther Rosa Rot Elisenstraße
33
11111 Blaustein
Artikel
Artikel
Preis
1234
1.99
2345
1.99
3456
1.99
Jede Tabelle 2 Punkte)
FK: (2 Punkte)
Bestellungen(KNR) -> Kunden(KNR)
Bestellungen(Artikel) -> Artikel(Artikel)
Eventuell auch noch PLZ und Ort normalisieren (+2 Punkte)
6
Warenlager (10 Punkte)
Gegeben seien folgende Statements um Tabellen an zu legen.
Seite 4 von 7
Ort
Datenbanksysteme
Klausur, Studiengang Wirtschaftsinformatik
Sommersemster 2016
Prof. Dr. Michael Friedrich
Name:
Matrikelnummer:
CREATE TABLE STORAGE(id NUMBER PRIMARY KEY, description NVARCHAR2(100));
CREATE TABLE stock(id NUMBER, place NUMBER REFERENCES STORAGE (id),
amount NUMBER, PRIMARY KEY (id,place));
INSERT INTO STORAGE VALUES (1,'Lager 1');
INSERT INTO STORAGE VALUES (2,'Lager 2');
INSERT INTO stock VALUES (123,1,25);
INSERT INTO stock VALUES (123,2,10);
INSERT INTO stock VALUES (234,2,10);
INSERT INTO stock VALUES (345,1,5);
COMMIT;
6.1 Schreiben Sie eine SQL Abfrage, die die Beschreibung des
Lagerplatzes (storage) und die dort gelagerte Gesamtanzahl an
Artikeln aus gibt. (4 Punkte)

SELECT description, SUM(amount)

FROM STORAGE INNER JOIN stock ON (stock.place = storage.id)

GROUP BY storage.id, description;
6.2 Welche Indexe sind bei obigen Tabellen vorhanden und warum? (4
Punkte)

PK Indexe

sonst keine

Zur effizienten Prüfung auf Unique, ansonsten müsste bei jedem Insert / Update ein full
table scan gemacht werden.
6.3 Beschreiben sie den Typ der folgenden Unterabfrage (2 Punkte):
SELECT *
FROM STOCK
WHERE amount = (SELECT MAX(amount) FROM STOCK);

skalare, unkorrelierte Unteranfrage
Seite 5 von 7
Datenbanksysteme
Klausur, Studiengang Wirtschaftsinformatik
Sommersemster 2016
Prof. Dr. Michael Friedrich
Name:
Matrikelnummer:
7
Erstellen Sie die Relationen aus folgendem ER-Diagramm: (14
Punkte)
Datentypen können weggelassen werden. Denken Sie an die Foreign Keys. Lösen
Sie eventuell unnötige Relationen auf.
Name
ID
MatrikelNR
M
Prof
Student
Note
Name
Semester
N
1
schreibt
prüft
M
N
Projektarbeit
ID

Prof = {ID, Name)

Projektarbeit = {ID, Titel, Prof, Note);

Student = {Matrikelnummer, Name, Semester }

schreibt = {Matrikelnummer, PAID}

FK Projektarbeit(Prof) -> Prof(ID)

FK schreibt(PAID) -> Projektarbeit(ID)

FK schreibt(Matrikelnummer) -> Student(Matrikelnummer)

Seite 6 von 7
Titel
Datenbanksysteme
Klausur, Studiengang Wirtschaftsinformatik
Sommersemster 2016
Prof. Dr. Michael Friedrich
Name:
Matrikelnummer:
8
Erstellen Sie ein ER-Modell (13 Punkte)
Erstellen Sie ein ER-Diagramm mit Kardinalitäten aus folgenden Informationen. Es
handelt sich um die Grundlagen einer Terminverwaltung:







Termine haben eine Uhrzeit, eine Beschreibung und eine Dauer.
Jeder Termin ist mindestens einer Person zugeordnet.
Jede Person kann mehrere Termine haben.
Personen werden durch ihre Personalnummer identifiziert und haben auch
Namen und Raumnummer.
Terminen können auch weitere Ressourcen (z.B. Raum oder Beamer)
zugeordnet sein.
Ressourcen können gleichzeitig immer nur einem Termin zugeordnet sein.
Ressourcen haben eine ID und eine Beschreibung.
Entitytyp 3 Punkte, Beziehungstyp 2 Punkte
Personal
nr
Uhrzeit
Person
Raumnr
M
N
hat
N
Name
benötigt
Ressource
Beschrei
bung
Termin
M
ID
Seite 7 von 7
Dauer
Beschrei
bung
ID
Herunterladen