FACHHOCHSCHULE MANNHEIM FACHHOCHSCHULE MANNHEIM

Werbung
FACHHOCHSCHULE
MANNHEIM
DBA
– Bachelor –
Hochschule für Technik und Gestaltung
– Fakultät Informatik –
B EISPIELKLAUSUR
Beispielklausur zur Vorlesung:
Datenbanken (DBA) im Bachelor-Studiengang Informatik,
Fakultät Informatik
Ich wünsche Ihnen viel Erfolg!
Name, Vorname (in Druckbuchstaben):
____________________________________________________________________________
Matrikelnummer:____________________ Unterschrift:______________________________
W ICHTIGE H INWEISE !
¾ 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
1
2
3
4
5
6
7
Punkte
Gesamtpunkte: _______________
Note: _______________
– Seite 1 –
DBA, Beispielklausur
A UFGABE 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 –
DBA, Beispielklausur
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 –
DBA, Beispielklausur
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 –
DBA, Beispielklausur
A UFGABE 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, ProjektName 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 –
DBA, Beispielklausur
A UFGABE 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, ElektrotechnikDiplom, 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, LudwigMaximilians-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 (BadenWü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 –
DBA, Beispielklausur
A UFGABE 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 –
DBA, Beispielklausur
A UFGABE 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)
A UFGABE 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 –
DBA, Beispielklausur
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.
A UFGABE 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
DozentNachname
DozentVorname
FachsprecherID
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 –
DBA, Beispielklausur
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 –
Herunterladen