Hochschule Karlsruhe – Technik und Wirtschaft Wintersemester 2008/2009 Fakultät: Seite 1/11 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 60 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“ – 4 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/11 Matrikelnummer: Aufgabenblock zum Thema „Architektur“ – 8 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/11 Matrikelnummer: Wintersemester 2008/2009 Prüfungsfach: 3. Datenbanken I Seite 4/11 Matrikelnummer: Aufgabenblock zum Thema „Datenbankabfragen“ – 7 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/11 Matrikelnummer: 3.2 Datenveränderung 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 Wintersemester 2008/2009 Prüfungsfach: 4. Datenbanken I Seite 6/11 Matrikelnummer: Aufgabenblock zum Thema „DBMS und Daten“ – 4 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: 5. Datenbanken I Seite 7/11 Matrikelnummer: Aufgabenblock zum Thema „Programmieren von DBMS mit Java“ – 7 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 & 5.3 #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.3 // Wintersemester 2008/2009 Prüfungsfach: Datenbanken I Seite 8/11 Matrikelnummer: System.out.println("\n\nMitarbeiter '" + args[0] +"' hat verkauft:"); // // Frage 5.4 // }// try catch (Exception e1) { e1.printStackTrace(); } // e1 } // main } // class MakeMeReady Wintersemester 2008/2009 Prüfungsfach: Datenbanken I Seite 9/11 Matrikelnummer: 5.2 Was macht der SQLJ-Vorübersetzer aus einem „#sql iterator“? 5.3 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.4 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: Seite 10/11 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 11/11 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