FACHHOCHSCHULE MANNHEIM. Hochschule für Technik und Gestaltung. Beispielklausur zur Vorlesung:

Größe: px
Ab Seite anzeigen:

Download "FACHHOCHSCHULE MANNHEIM. Hochschule für Technik und Gestaltung. Beispielklausur zur Vorlesung:"

Transkript

1 FACHHOCHSCHULE MANNHEIM Hochschule für Technik und Gestaltung DBA Bachelor Fakultät Informatik BEISPIELKLAUSUR Beispielklausur zur Vorlesung: Datenbanken (DBA) im Bachelor-Studiengang Informatik, Fakultät Informatik Ich wünsche Ihnen viel Erfolg! Name, Vorname (in Druckbuchstaben): Matrikelnummer: Unterschrift: WICHTIGE HINWEISE! Legen Sie einen gültigen Ausweis und einen gültigen Studentenausweis auf den leeren Platz neben sich Schreiben Sie mit Füller (keine rote Tinte) oder mit Kugelschreiber. Schreiben Sie die Lösung zu einer Aufgabe auf das vorgesehene Blatt oder auf die Rückseite der vorherigen Aufgabe. Sollte der Platz nicht reichen, benutzen Sie eins der zusätzlichen leeren Blätter am Ende der Klausur. Geben Sie unbedingt einen Verweis auf dieses Blatt an und kennzeichnen Sie dieses Blatt als zu der entsprechenden Aufgabe gehörig. Es sind keine Hilfsmittel erlaubt, also keine Taschenrechner, Skripte, Bücher, eigenen Blätter, Tipp-Ex etc. Die Klausur ist nicht in einzelne Blätter zu zerlegen. Lose Blätter werden nicht gewertet. Jeder Täuschungsversuch wird mit 0 Punkten = Note 5.0 gewertet. Insgesamt können 87 Punkte erreicht werden, zum Bestehen sind 38 Punkte erforderlich. Aufgabe Punkte Gesamtpunkte: Note: Seite 1

2 AUFGABE 1 Beantworten Sie in wenigen Worten bzw. mit knappen Sätzen die folgenden Fragen: (20 Punkte) a) Wie nennt man die Eigenschaft, die besagt, dass Änderungen im konzeptuellen Schema einer Datenbank keinen Einfluss auf externe Schemata haben? b) Was bedeutet ACID? c) Wie nennt man die Daten des Datenbankkatalogs? d) Auf welchem Datenmodell basiert das Datenbanksystem IMS? e) Wie heißen die Ebenen der ANSI-SPARC-Datenbankarchitektur? f) Woran erkennt man, dass ein Relationenschema in 2. Normalform vorliegt? g) Was ist ein Fremdschlüssel? Seite 2

3 h) Welche Vorteile birgt das objekt-relationale Datenmodell gegenüber dem relationalen Datenmodell? i) Was ist ein Superschlüssel? j) Welche Basis-Operationen enthält die relationale Algebra? k) Warum sollte man keine anonymen Integritätsregeln verwenden? l) Was ist der Unterschied zwischen einem Inner-Join und einem Outer-Join? m) Wie lautet die Anweisung, die den Inhalt der Tabelle Mitarbeiter t_ma löscht? n) Durch welche Anweisung kann eine Transaktion beendet werden? o) Welche Funktion erfüllt der SELECT-Operator in Bezug auf die relationale Algebra? Seite 3

4 p) Welche Vorteile bringt die Verwendung von ODBC gegenüber der Verwendung von hersteller-spezifischen Lösungen? q) Zwischen welchen Normalformen ist die BCNF einzuordnen? r) In der Tabelle Mitarbeiter t_ma sei das Attribut Gehalt spezifiziert. Formulieren Sie eine Anfrage, die das gezahlte Durchschnittsgehalt berechnet, ohne die Aggregatfunktion AVG zu verwenden. s) Wie lautet die Anweisung, die die Tabelle t-ma (Inhalt und Struktur) löscht? t) Können Aggregatfunktionen geschachtelt werden (Begründung)? Seite 4

5 AUFGABE 2 Geben Sie die folgenden SQL-Statements an: (10 Punkte) a) Definieren Sie in SQL die Tabelle Mitarbeiter t_ma mit den Attributen Personalnummer, Name, Vorname, Gehalt, Wohnort, Alter, Abteilungsnummer, wobei a. Personalnummer der Primärschlüssel ist und jedes Mal von selbst eins hoch zählen soll, b. der Name stets spezifiziert sein muss, c. das Gehalt mindestens 510,85 betragen muss, d. als Wohnort Mannheim angenommen wird, falls nichts anderes eingetragen wird, e. Abteilungsnummer der Schlüssel der Tabelle Abteilungen t_abt ist. a) Gegeben seien die beiden Tabellen Projekte t_proj mit den Attributen ProjektId, Projekt- Name und Projektdauer sowie die Tabelle für die Beziehung arbeitet_an t_arb_an mit den Attributen PersonalNr und ProjektId. Formulieren Sie eine SQL-Anfrage, die die Namen der Projekte liefert, an denen mehr als drei Mitarbeiter beteiligt sind. Seite 5

6 AUFGABE 3 Zeichnen Sie ein ER-Diagramm für die folgende vereinfachte Hochschulwelt. Geben Sie ebenfalls die Kardinalitäten an. Es gibt Studiengänge (Informatik-Bachelor, Informatik-Diplom, Mathe-Diplom, Elektrotechnik- Diplom, Elektrotechnik-Bachelor, Informatik-Master,...), Hochschulen (FH Mannheim, GhK, TUM, LMU, TU-Berlin, FU-Berlin, Humboldt-Univ.,...) und Länder (Hessen, Bayern, Berlin,...). Ein Studiengang SGang ist eindeutig durch einen Studiengangsbezeichner (SGBez), z.b. Inf-BSc, Mathe-Dipl, E-Tech-Dipl,... festgelegt. Bei denen, die ein Master-Abschluß anbieten, ist das Datum der Akkreditierung (Akkred) eingetragen, sonst nichts. Ein Studiengang wird in der Regel von mehreren Hochschulen angeboten. Dazu gehört die Anzahl der Studierenden (Studzahl) in diesem Studiengang an dieser Hochschule, soweit von der Hochschule gemeldet. Hochschulen sind eindeutig durch ihr Kürzel (UniID), z.b. Ghk, LMU,... gekennzeichnet. Daneben haben sie einen vollen Namen (UName), also Universität Gh Kassel, Ludwig- Maximilians-Universität München,... und eine Stadt (UStadt) in der sie liegen. Hochschulen bieten viele Studiengänge an, jede mindestens einen. Jede Hochschule gehört zu genau einem Bundesland, bzw. einem Stadtstaat (Baden- Württemberg, Berlin, Hamburg und Bremen sind sog. Stadt-Staaten, im folgenden wie Bundesländer behandelt). Länder werden mit 2 Buchstaben (LKenn) abgekürzt (Bayern = BY, Hessen = HE, Berlin = BE), haben daneben einen vollen Namen (LName) und eine Landeshauptstadt (LHaupt). (15 Punkte) Seite 6

7 AUFGABE 4 In Anlehnung an das Hochschulbeispiel aus Aufgabe 3 seien die folgenden Relationenschemata gegeben, wobei Schlüssel unterstrichen sind. UStadt und LHaupt verwenden den gleichen Wertebereich. SGang(SGBez, Akkred) BietetAn(SGBez, UniID, StudZahl) Hochschule(UniID, UName, UStadt, LKenn) Land(LKenn, LName, LHaupt) (15 Punkte) a) Was leistet die folgende SQL-Abfrage? SELECT UName FROM Land, Uni WHERE Land.LHaupt <> Uni.UStadt AND Land.LKenn = Hochschule.LKenn; b) Wie lautet die SQL-Abfrage, die alle Ländernamen liefert von den Ländern, die in ihrer Landeshauptstadt keine Hochschule haben? c) Wie lautet die SQL-Abfrage, die alle Städtenamen (UStadt) liefert mit der Anzahl der Hochschulen, die darin liegen, z.b. 3 bei Berlin, 2 bei Mannheim, 1 bei Kassel. Seite 7

8 AUFGABE 5 Gegeben seien die Relation MITARBEITER(PersonalNr, Name, Gehalt, Wohnort, AbteilungsNr) und die Relation ABTEILUNGEN (AbteilungsNr, Name, AbteilungsOrt). Formulieren Sie in der relationalen Algebra die Frage nach den Namen der Mitarbeiter, deren Arbeitsort (Sitz der Abteilung) an ihrem Wohnort ist. (6 Punkte) AUFGABE 6 Beantworten Sie folgende Fragen und begründen Sie Ihre Aussagen kurz (6 Punkte) a) Unter welchen Umständen kann ein Attribut einer Tabelle, das einen Fremdschlüssel zu einer anderen Tabelle darstellt, den Wert NULL annehmen? b) Geben Sie ein Beispiel für eine inhaltlich sinnvolle Tabelle an, in der ein Attribut sowohl Primär- als auch Fremdschlüssel ist. Seite 8

9 c) In der Tabelle S(A, B) ist A Primärschlüssel und B Fremdschlüssel zu einer Tabelle T(B, A). In T ist B Primärschlüssel und A Fremdschlüssel zur Tabelle S. Definieren Sie die Tabellen in SQL, wenn A, B und C vom Typ INTEGER sind. AUFGABE 7 Gegeben seien die folgenden Sachverhalte: 1) In einer Fachhochschule gibt es Dozenten (Dozentinnen sind mit gemeint), die durch Vornamen und Nachnamen genauer gekennzeichnet sind. 2) In dieser Fachhochschule gibt es verschiedene Studienfächer, die durch ein eindeutiges Kürzel und eine lange Bezeichnung gekennzeichnet sind. 3) An der Durchführung eines Studienfaches wirken jeweils ein Dozent oder mehrere Dozenten mit, ein einzelner Dozent wirkt an der Durchführung eines oder mehrerer Studienfächer mit. 4) Zu jedem Studienfach gibt es genau einen Fachsprecher aus dem Kreis der Dozenten. Dozenten können Fachsprecher für mehrere Studienfächer sein oder auch nur für ein Studienfach oder für gar keines. Im ersten Ansatz führte dies zur folgenden Tabelle, die aber offensichtlich Redundanzen enthält: Fachkürzel Fachbezeichnung Dozent-ID Dozent- Nachname Dozent- Vorname Fachsprecher- ID Versuchen Sie, den Inhalt der Tabelle so auf mehrere Tabellen aufzuteilen, dass die Redundanzen vermieden werden. Zeichnen Sie die Tabellen nach dem Muster der oben dargestellten Tabelle. Geben Sie jeder Tabelle einen geeigneten Namen und tragen Sie die Seite 9

10 Namen der Tabellenfelder ein. Zum Zeichnen der Tabellen können Sie sich der nachfolgenden Tabellenskelette bedienen. Ein Trennstrich ist im Tabellenskelett vorgeben, weitere Attribute sind durch Striche im Tabellenskelett voneinander zu trennen. Die Anzahl der gegebenen Tabellenskelette hat keine Bedeutung, vielleicht benötigen Sie weniger oder Sie müssen selbst noch welche zeichnen. (15 Punkte) Seite 10