Klausur Datenbanken - WS 2008 - Fakultät für Informatik und

Werbung
Hochschule Karlsruhe – Technik und Wirtschaft
Wintersemester 2008/2009
Fakultät:
Seite 1/13
Fakultät für Informatik und Wirtschaftsinformatik Semester:
Prüfungsfach: Datenbanken I
Dozent:
Dr. Peter Steininger
Hilfsmittel:
Ein handgeschriebenes DIN-A4-Blatt
Name:
Fachnummer:
Zeit:
BC3 D4
IB 330 IB 331.a
90 Minuten
Matrikelnummer:
Hinweise: Tragen Sie unbedingt Ihren Namen und Ihre Matrikelnummer ein!
Die angegebenen Punktzahlen sind gleichzeitig als maximale Bearbeitungszeit aufzufassen.
Orientieren Sie sich beim Antworten an dem Freiraum, der jeweils nach der Aufgabenstellung
freigelassenen ist. Falls Ihnen der Platz – wegen einer Streichung zum Beispiel – nicht ausreicht,
verwenden Sie bitte die Rückseiten der Aufgabenblätter.
Das verwendete Datenmodell und dessen Daten sind im Anhang angegeben!
1.
Aufgabenblock zum Thema „DBMS im Allgemeinen“ – 10 Punkte
1.1 Wofür steht die Bezeichnung SQL?
1.2 Wofür steht die Bezeichnung DBMS?
1.3 Skizzieren Sie die Unterschiede und Vorteile eines DBMS im Vergleich mit einer dateibasierten
Eigenentwicklung zur Verwaltung von Daten.
Wintersemester 2008/2009
Prüfungsfach:
2.
Datenbanken I
Seite 2/13
Matrikelnummer:
Aufgabenblock zum Thema „Architektur“ – 15 Punkte
2.1 Erläutern Sie die Abkürzung „ACID“, jeden bezeichneten Begriff und deren jeweilige
Bedeutung für ein DBMS.
Wintersemester 2008/2009
Prüfungsfach:
Datenbanken I
Seite 3/13
Matrikelnummer:
2.2 Erläutern Sie ein vier- bzw. dreistufiges Client-Server-Architekturmodell. Benennen Sie
die einzelnen Architekturblöcke.
Wintersemester 2008/2009
Prüfungsfach:
3.
Datenbanken I
Seite 4/13
Matrikelnummer:
Aufgabenblock zum Thema „Datenbankabfragen“ – 15 Punkte
3.1 Schreiben Sie zu den angegebenen Ausgaben die entsprechende SQL-Anweisung
3.1.1 Ausgabe der Produkte, Preise und der Warengruppe sortiert nach Preis.
Produkt
Preis
Warengruppe
------------------------------------ -------------------------------------------------Birne
3,34
Papier
Elmex
3,12
Zahnpasta
Bohnen
2,35
Tiefkühlprodukt
Papiertaschentücher
1,99
Papier
Erbsen
1,59
Tiefkühlprodukt
Apfel
1,29
Obst
Erdbeer
0,99
Obst
3.1.2 Ausgabe der Warengruppen mit deren Umsätzen, sortiert nach Warengruppen
strWarengruppenName
-------------------------------------------------Obst
Papier
Tiefkühlprodukt
Zahnpasta
Umsatz
--------------------27,75
5,97
6,36
6,24
Wintersemester 2008/2009
Prüfungsfach:
Datenbanken I
Seite 5/13
Matrikelnummer:
3.2 Datenveränderung – 10 Punkte
3.2.1 Sie stellen fest, dass ein Artikel der falschen Warengruppe zugeordnet ist. Korrigieren
Sie diesen Fehler
strWarenName
strWarengruppenName
----------------------------------------------------------------------Birne
Papier
3.2.2 Erläutern Sie kurz, warum dieser Veränderung keine Auswirkung auf das modellierte
Datenmodell hat
3.3 Die Filialleitung will wissen welche Artikelgruppen noch nicht verkauft wurden. Schreiben
Sie die SQL-Anweisung, die folgendes Ergebnis liefert:
Warengruppen ohne Umsatz
-------------------------------------------------Honig
Marmelade
Wintersemester 2008/2009
Prüfungsfach:
4.
Datenbanken I
Seite 6/13
Matrikelnummer:
Aufgabenblock zum Thema „DBMS und Daten“ – 15 Punkte
4.1. Was ist die „Zugriffslücke“ in einem DBMS?
4.2. Welche Verfahren nutzen DBMS um die Zugriffslücke zu egalisieren?
4.3 Welche Probleme entstehen in einem DBMS durch Verfahren zur Reduzierung der
Zugriffslücke?
Wintersemester 2008/2009
Prüfungsfach:
Datenbanken I
Seite 7/13
Matrikelnummer:
4.4 DBMS nutzen Transaktionen und erlauben diese mittels ROLLBACK zurück zu nehmen.
Beschreiben Sie bitte den Vorgang, den ein DBMS für folgende Transaktion durchführt.
Nehmen Sie dabei bitte Bezug auf die „betroffenen“ Daten und deren Behandlung
BEGIN TRAN;
UPDATE wetterdaten...;
UPDATE wettervorhersage...;
ROLLBACK;
Wintersemester 2008/2009
Prüfungsfach:
5.
Datenbanken I
Seite 8/13
Matrikelnummer:
Aufgabenblock zum Thema „Programmieren von DBMS mit Java“ – 20 Punkte
5.1 Gegeben sei folgendes SQLJ-Programm, welches für einen gegebenen Verkäufer die
Verkäufe mit Warengruppe ausgeben soll. Grundlage für diese Aufgabe ist das erweiterte
Datenmodell mit der Ergänzung der Verkäufer.
package MakeMeReady;
import java.sql.*;
import sqlj.runtime.ref.DefaultContext;
import javax.swing.JOptionPane;
//
// Frage 5.2
//
#sql iterator Sales (String intMenge, String strWarenName, float mPreis,
float Warenwert);
//
// Frage 5.4
//
public class Exam
{
public static void main(String[] args)
{
try {
String dburl="jdbc:oracle:thin:"+"@10.10.10.10:1521:XYZ";
String dbdriver="oracle.jdbc.driver.MyDBMSDriver";
Class.forName(dbdriver).newInstance();
DefaultContext context=new DefaultContext(
DriverManager.getConnection(dburl));
DefaultContext.setDefaultContext(context);
System.out.println("Alle Verkäufe:");
//
// Frage 5.4
//
Wintersemester 2008/2009
Prüfungsfach:
Datenbanken I
Seite 9/13
Matrikelnummer:
System.out.println("\n\nMitarbeiter '" + args[0] +"' hat verkauft:");
//
// Frage 5.5
//
}// try
catch (Exception e1)
{
e1.printStackTrace();
} // e1
} // main
} // class MakeMeReady
Wintersemester 2008/2009
Prüfungsfach:
Datenbanken I
Seite 10/13
Matrikelnummer:
5.2 Wozu dient die Zeile bei Kommentar // Frage 5.2 ?
5.3 Was macht der SQLJ-Vorübersetzer aus einem „#sql iterator“?
5.4 Schreiben Sie den Iterator und eine SQL-Anweisung, die alle Verkäufe in folgender Art
ausgibt:
intMenge
----------2
5
10
2
10
2
3
strWarenName
mPreis
Warenwert
----------------------------------------- --------------------Erbsen
1,59
3,18
Erdbeer
0,99
4,95
Apfel
1,29
12,90
Erbsen
1,59
3,18
Erdbeer
0,99
9,90
Elmex
3,12
6,24
Papiertaschentücher 1,99
5,97
5.5 Schreiben Sie den Iterator und eine SQL-Anweisung, die für einen vorgegebenen
Mitarbeiter alle Verkäufe wie im folgenden Beispiel ausgibt:
strWarenName
strWarengruppenName
intMenge
------------------------------------------------------------------ ----------Apfel
Obst
10
Erdbeer
Obst
10
Wintersemester 2008/2009
Prüfungsfach:
Datenbanken I
Seite 11/13
Matrikelnummer:
5.6 Folgendes Programm in JDBC wird von javac ohne Fehlermeldung übersetzt.
Bei der Benutzung erhält der Anwender eine Exception mit einer Meldung, in der auf
einen Invalid descriptor index Bezug genommen wird.
Wo liegt der Fehler?
Erläutern Sie den Fehler ihn und korrigieren Sie den Quelltext.
public class falsch {
class.Forname(„sun.jdbc.odbc.JdbcOdbcDriver“);
Connection con =
DriverManager.getConnection (“jdbc:odbc:azamon”, “dba”, “sql”);
Statement stmt = con. createStatement();
ResultSet rs = stmt.executeQuery (“select count(*) from Books”);
rs.next();
System.out.println(“Anzahl der Bücher:“ + rs.getString(0));
stmt.close();
con.close();
}
Wintersemester 2008/2009
Prüfungsfach:
Seite 12/13
Datenbanken I
Anhang
Datenbankschema für Aufgabe 3
tbl_Waren
tbl_Verkauf
Column Name
Data Type
Allow Nulls
Column Name
Data Type
id
int
id
int
strWarenName
varchar(100)
dtDate
datetime
mPreis
money
fk_Waren
int
fk_Warengruppe
int
intMenge
int
tbl_Warengruppe
Column Name
Data Type
id
int
strWarengruppenName
varchar(50)
Allow Nulls
Daten der Tabellen:
tbl_Waren
id
----------1
2
3
4
5
6
7
strWarenName
----------------------------Papiertaschentücher
Erdbeer
Erbsen
Bohnen
Elmex
Birne
Apfel
mPreis
--------------------1,99
0,99
1,59
2,35
3,12
3,34
1,29
tbl_Verkauf
id
----------1
2
3
4
5
6
7
dtDate
----------------------2009-01-10 19:47:29.227
2009-01-10 19:47:36.680
2009-01-10 19:47:46.403
2009-01-10 19:47:54.440
2009-01-10 19:48:04.110
2009-01-10 19:48:13.113
2009-01-10 19:48:24.153
fk_Waren
----------3
2
7
3
2
5
1
intMenge
----------2
5
10
2
10
2
3
tbl_Warengruppe
id
----------1
2
3
4
5
6
strWarengruppenName
-------------------------------------------------Papier
Obst
Marmelade
Honig
Zahnpasta
Tiefkühlprodukt
fk_Warengruppe
-------------1
2
6
6
5
1
2
Allow Nulls
Wintersemester 2008/2009
Prüfungsfach:
Seite 13/13
Datenbanken I
Datenbankschema (erweitert) für Aufgabe 5
tbl_Waren
tbl_Verkauf
tbl_Mitarbeiter
id
id
id
strWarenName
dtDate
strVerkaeufer
mPreis
fk_Waren
fk_Warengruppe
intMenge
fk_Mitarbeiter
tbl_Warengruppe
id
strWarengruppenName
Daten der neuen und veränderten Tabelle:
tbl_Verkauf
id
----------1
2
3
4
5
6
7
dtDate
----------------------2009-01-10 19:47:29.227
2009-01-10 19:47:36.680
2009-01-10 19:47:46.403
2009-01-10 19:47:54.440
2009-01-10 19:48:04.110
2009-01-10 19:48:13.113
2009-01-10 19:48:24.153
fk_Waren
----------3
2
7
3
2
5
1
intMenge
----------2
5
10
2
10
2
3
fk_Mitarbeiter
-------------101
103
100
105
100
101
102
tbl_Mitarbeiter
id
----------100
101
102
103
104
105
strVerkaeufer
-------------------------------------------------Claudia
Hans
Dieter
Maria
Simone
Elly
Herunterladen