Sie sind auf Seite 1von 15

Hochschule des Bundes für öffentliche Verwaltung

Fachbereich Finanzen
Studiengang Verwaltungsinformatik

Erstklausur

Grundlagen von Datenbanksystemen


(M 3, H 1)

Prüfungstag: 22.02.2021

Bearbeitungszeit: 120 Minuten

Umfang: 10 Aufgaben, max. 120 Punkte


Hilfsmittel: Keine Einschränkung

Hinweis: Beachten Sie die Vorgaben, die Regelungen und die Notfallnummer in der Ihnen
bekannten Datei ej2019_digitale_klausuren_vorgaben.pdf.

Lösungsoptionen bei Multiple-Choice-Aufgaben sind mit Großbuchstaben versehen. Wenn


Sie z.B. bei einer Mehrfachauswahlfrage „(a)“ die ersten drei Lösungsoptionen wählen
wollen, so können Sie auf Ihrem Lösungsblatt z.B. „a) A B C“ notieren.
Einfachauswahlaufgaben sind mit = 1 markiert, Mehrfachauswahlaufgaben mit > 1 .

Schreiben Sie vor der Digitalisierung Ihre Kennziffer auf jedes Blatt Ihrer Abgabe. Planen
Sie genügend Zeit für das Digitalisieren und Hochladen Ihrer Arbeitsergebnisse ein!

Wir wünschen Ihnen viel Erfolg!


M 3, Erstklausur 22.02.2021

Aufgabe 1 (20 Punkte)


Gegeben sei das folgende ER-Diagramm:

Erstellen Sie das relationale Datenbankschema für die Entitytypen Schulhof, Schü-
ler und Schule! Vermeiden Sie dabei NULL-Werte und lassen Sie Datentypen
weg!


it S. 2 von 15
M 3, Erstklausur 22.02.2021

Aufgabe 2 (2 Punkte)
Beantworten Sie die folgende Multiple-Choice-Aufgabe!

(a) > 1 Eine Tabelle liegt in der zweiten Normalform vor, wenn folgendes gilt:
A. Die Tabelle liegt in der ersten Normalform vor und es sind bereits
Primär- und Fremdschlüssel vorhanden.
B. Die Tabelle liegt in der ersten Normalform vor und enthält nur ein
Primärschlüsselattribut.
C. Die Tabelle liegt in der ersten Normalform vor, der Primärschlüs-
sel setzt sich aus mehreren Attributen zusammen und kein Nicht-
Schlüsselattribut ist nur von einem Teil des Primärschlüssels abhängig.
D. Die Tabelle liegt in der ersten Normalform vor und kein Nichtschlüssel-
attribut ist durch andere Nichtschlüsselattribute eindeutig bestimmt.


it S. 3 von 15
M 3, Erstklausur 22.02.2021

Aufgabe 3 (37 Punkte)


Bei der Verkostung für den Deutschen Weinpreis sind 20 Weine in die Endausschei-
dung gekommen. Sie werden von 40 Weintestern verkostet. Diese können einem Wein
bis zu 10 Punkte geben. Der Wein mit der aufaddiert höchsten Punktzahl gewinnt
die Goldmedaille.
Es soll ein relationales DBS mit folgendem Schema verwendet werden:
Weintester(t_id char(3), nachname varchar(20) NOT NULL,
vorname varchar(20) NOT NULL)
Bewertung(t_id char(3) → Weintester, w_id char(3) → Wein,
punkte decimal(2) NOT NULL)
Wein(w_id char(3), w_name varchar(20) NOT NULL, rotwein boolean NOT NULL)

Beispielhafte Tabelleneinträge (Tupel) könnten wie folgt aussehen:


Weintester:
t_id nachname vorname
100 Müller Erna
200 Leiten Inga
333 Smith Timo
411 Jenner Karl
Wein:
w_id w_name rotwein
203 Rüdesheimer Silvaner false
201 Freiburger Spätlese false
001 Geisenheimer Bock false
005 Roter Spätburgunder true
006 Iphofener Kalb false
Bewertung:
t_id w_id punkte
100 203 10
200 201 8
100 005 2
333 005 9
Gegeben sei die folgende DDL, um die entsprechenden Tabellen anzulegen:

create table weintester (


t_id char(3) primary key,
nachname varchar(20) not null,
vorname varchar(20) not null
);

create table wein (


w_id char(3) primary key,
w_name varchar(20) not null,
rotwein boolean not null
);


it S. 4 von 15
M 3, Erstklausur 22.02.2021

(a) (9 Punkte) Die DDL zum Anlegen der Tabelle bewertung enthält leider Fehler.
Notieren Sie pro Zeile, um welche Fehler es sich ggf. handelt! Falls die Zeile
keinen Fehler enthält, notieren Sie für diese Zeile entsprechend nichts.
create table bewertung (
(1) t_id char(3) NOT NULL UNIQUE,
(2) w_id varchar(3) NOT NULL UNIQUE,
(3) punkte decimal(2),
(4) primary key (t_id) references weintester,
(5) primary key (w_id) references wein
);
(b) Während die Verkostung in vollem Gange ist, werden mittels DML-Abfragen
einige Zwischenergebnisse ermittelt.
(a) (6 Punkte) > 1 Mit der Hilfe von welchen syntaktischen Konstrukten
kann man das folgende DML-Statement sinnvoll alternativ formulieren?
select w_name, wein.w_id
from wein left join bewertung on wein.w_id = bewertung.w_id
where punkte is null;
A. Subselect mit Aggregation
B. Right join
C. Subselect mit NOT IN
D. Group by mit having
E. Group by ohne having
(b) (9 Punkte) Für welchen Wein (w_id und w_name) wurde bisher die höchste
Punktzahl vergeben und wie viele Punkte sind es? Formulieren Sie die
entsprechende SQL-Abfrage!
(c) (8 Punkte) > 1 Welche Abfragen sind syntaktisch korrekt?
A. select bewertung.w_id, w_name, sum(punkte)
from wein, bewertung
where wein.w_id = bewertung.w_id
group by wein.w_id, w_name
having sum(punkte)>20;
B. select bewertung.w_id, w_name, sum(punkte)
from wein, bewertung
where wein.w_id = bewertung.w_id
group by bewertung.w_id
having sum(punkte)>20;
C. select bewertung.w_id, w_name, sum(punkte)
from wein, bewertung b
where wein.w_id = bewertung.w_id
group by bewertung.w_id, w_name
having sum(punkte)>20;
D. select wein.w_id, w_name, sum(punkte)
from wein, bewertung
where wein.w_id = bewertung.w_id
group by wein.w_id, w_name


it S. 5 von 15
M 3, Erstklausur 22.02.2021

having sum(punkte)>20;
E. select w.w_id, sum(punkte)
from wein w, bewertung
where w.w_id = bewertung.w_id
group by w.w_id,
having sum(punkte)>20;
F. select wein.w_id, w_name, sum(punkte)
from wein, bewertung
where wein.w_id = bewertung.w_id
and sum(punkte)>20
group by wein.w_id, w_name, sum(punkte);
(d) (5 Punkte) = 1 Welche Aussage ist korrekt?
A. Mit dem Zusatz ON DELETE SET NULL beim Fremdschlüsselat-
tribut t_id in der Tabelle Bewertung wird dafür gesorgt, dass
beim Löschen der Bewertungseinträge die Einträge in der Tabelle
Weintester bestehen bleiben.
B. Mit dem Zusatz ON DELETE CASCADE beim Fremdschlüsselattri-
but w_id in der Tabelle Bewertung wird dafür gesorgt, dass beim
Löschen von Einträgen in der Tabelle Bewertung die zugehörigen
Weine gelöscht werden.
C. Mit dem Zusatz ON UPDATE CASCADE zum Attribut t_id in der
Tabelle Weintester wird dafür gesorgt, dass sämtliche darauf
referenzierende Einträge automatisch aktualisiert werden, wenn
das Attribut aktualisiert wird.
D. Alle Auswahlmöglichkeiten sind richtig.
E. Keine Auswahlmöglichkeit ist richtig.


it S. 6 von 15
M 3, Erstklausur 22.02.2021

Aufgabe 4 (5 Punkte)
In einem PostgreSQL-Datenbanksystem wurden die Benutzer (Loginrollen) ANTON
und BERTA mit den notwendigen Informationen angelegt, beide haben die notwen-
digen Rechte, um sich anzumelden. Der Benutzer ANTON hat eine Tabelle tabelle1
angelegt und das SQL-Statement GRANT INSERT, UPDATE, DELETE ON tabelle1 TO
BERTA; ausgeführt.

Geben Sie an und begründen Sie kurz Ihre Entscheidung, ob


(a) (1 Punkt) ANTON neue Datensätze in die Tabelle tabelle1 aufnehmen kann,
(b) (1 Punkt) BERTA neue Datensätze in die Tabelle tabelle1 aufnehmen kann,
(c) (1 Punkt) BERTA eine neue Spalte in die Tabelle tabelle1 aufnehmen kann,
(d) (1 Punkt) BERTA alle Datensätze der Tabelle tabelle1 ändern kann,
(e) (1 Punkt) ANTON die Tabelle tabelle1 löschen kann!


it S. 7 von 15
M 3, Erstklausur 22.02.2021

Aufgabe 5 (7 Punkte)
In PostgreSQL-Datenbanken können für Tabellen so genannte „Indexe“ angelegt wer-
den.
(a) (2 Punkte) Beschreiben Sie nachvollziehbar, worum es sich bei einem „Index“
handelt!
(b) (2 Punkte) Nennen Sie eine Situation, in der ein für eine Tabellenspalte an-
gelegter Index lesend genutzt wird! Erläutern Sie kurz, welchen Vorteil die
Nutzung des Indexes in dieser Situation bringt!
(c) (3 Punkte) Beschreiben Sie eine Situation, in der viele für eine Tabelle an-
gelegte Indexe im Datenbanksystem nachteilig wirken! Begründen Sie kurz,
warum die Indexe in der von Ihnen beschriebenen Situation nachteilig sind!


it S. 8 von 15
M 3, Erstklausur 22.02.2021

Aufgabe 6 (6 Punkte)
Viele relationale Datenbanksysteme, darunter auch PostgreSQL, unterstützen so ge-
nannte „Transaktionen“. Transaktionen helfen bei der Einhaltung der „ACID“-Kriterien
für relationale Datenbanksysteme.
(a) (3 Punkte) Nennen Sie zwei ACID-Kriterien, bei denen Transaktionen die Ein-
haltung der Kriterien ermöglichen beziehungsweise unterstützen und erläutern
Sie jeweils kurz, welche Eigenschaft von Transaktionen ausgenutzt wird!
(b) (3 Punkte) Ein Datenbankbenutzer führt in einer Datenbanksitzung das SQL-
Statement BEGIN READ ONLY ISOLATION LEVEL REPEATABLE READ; aus.
Entscheiden Sie, ob es relevant ist, ob die so gestartete Transaktion mit
COMMIT; oder ROLLBACK; beendet wird und begründen Sie Ihre Entscheidung!
Geben Sie an, welche Bedeutung der Teil ISOLATION LEVEL REPEATABLE READ
des Statements hat!


it S. 9 von 15
M 3, Erstklausur 22.02.2021

Aufgabe 7 (6 Punkte)
Nennen Sie 2 praktische Anwendungen, für die Sie sich die Nutzung einer Dokumenten-
Datenbank vorstellen können!
Begründen Sie bei jedem Beispiel, warum Sie eine Dokumenten-Datenbank für ge-
eignet halten!
Welche Eigenschaft prädestiniert eine Dokumentendatenbank für diese Anwendung?
Nutzen Sie CAP, ACID und BASE zur Begründung!


it S. 10 von 15
M 3, Erstklausur 22.02.2021

Aufgabe 8 (9 Punkte)
Erstellen Sie ein Skript, welches die folgenden Aktivitäten umsetzt bzw. in eine
MongoDB-Datenbank schreibt!
Schreiben Sie jeweils das vollständige Kommando für die MongoShell auf, das:

1. eine Dokumentendatenbank „Abteilung“ erzeugt,


2. die folgenden Sachverhalte in der MongoDB ablegt:
(a) Peter Meier, geboren 22.7.2000, Aufgaben: Abteilungsleiter, DB-Designer
(b) Forschungsreihe 1, Durchführung: Meier, Müller, Schulz,
Tag 1, 23, 45, 555, 1, 47
Tag 2, 9, 7, 222, 6
(c) Literatur, „MongoDB“, Trelle, 27,99€, dpunkt.Verlag, Käufer: Otto
3. den Käufer des MongoDB-Buches im Dokument auf Meier ändert,
4. alle Informationen geordnet ausgibt.


it S. 11 von 15
M 3, Erstklausur 22.02.2021

Aufgabe 9 (8 Punkte)
Die Abbildung 1 zeigt die Visualisierung eines Teils einer Graphdatenbank. Die Da-
tenbank wird im Kontext eines Onlineshops betrieben und speichert das Kauf- und
Surfverhalten der Kunden.

Abbildung 1: Beispielhafter Graph für Aufgabe 9

Es ist dargestellt, welche Kunden (blau) welche Produkte (orange) kauften. Beispiels-
weise kaufte Kunde A die Produkte K, L und O.
(a) (3 Punkte) Geben Sie das Cypher-Statement an, mit dem die Knoten A und L
sowie die Beziehung kauft angelegt werden.

(b) (2 Punkte) Geben Sie das Cypher-Statement an, mit dem abgefragt wird, welche
Produkte der Kunde C bereits kaufte.

(c) (3 Punkte) Geben Sie das Cypher-Statement an, mit dem eine Kaufempfehlung
für einen Kunden generiert werden kann, der gerade das Produkt K in seinen
Warenkorb gelegt hat.
Es sollen also alle Produkte abgefragt werden, die von Kunden gekauft wurden,
die ebenfalls Produkt K gekauft haben.


it S. 12 von 15
M 3, Erstklausur 22.02.2021

Aufgabe 10 (20 Punkte)


Im XML-Dokument kunden.xml (s. Listing 1) sind die Einkäufe eines Onlineshops
gespeichert.
Das zugehörige XML-Schema shopping.xsd, das im selben Verzeichnis wie das XML-
Dokument vorliegt, ist in Listing 2 gezeigt.
Leider sind beide Dokumente unvollständig. Geben Sie die folgenden Elemente sowie
die Zeilen an, zwischen denen die Elemente im jeweiligen Dokument eingefügt werden
müssen.
Achtung: Typdefinitionen sollen sich streng am Instanzdokument orientieren und
die dort angegebenen Kindelemente, deren Reihenfolge sowie Attribute deklarieren.

1 <?xml version="1.0" encoding="utf-8"?>


2 <einkaeufe>
3 <einkauf>
4 <kunde kundennummer="12345">
5 <name>Mustermann</name>
6 <vorname>Max</vorname>
7 </kunde>
8 <lieferadresse>
9 <strasse>Musterstr.</strasse>
10 <hausnummer>1</hausnummer>
11 <plz>12345</plz>
12 <ort>Musterstadt</ort>
13 </lieferadresse>
14 <zahlungsmittel>PayPal</zahlungsmittel>
15 <datum-bestellung>2021-02-15</datum-bestellung>
16 <datum-versand>2021-02-17</datum-versand>
17 <datum-zustellung>2021-02-18</datum-zustellung>
18 <artikel>
19 <artikelnummer>815</artikelnummer>
20 <artikelbeschreibung>T-Shirt, grün (L)</artikelbeschreibung>
21 <anzahl>1</anzahl>
22 <einzelpreis>25.95</einzelpreis>
23 </artikel>
24 <artikel>
25 <artikelnummer>4711</artikelnummer>
26 <artikelbeschreibung>Socken, weiß (44)</artikelbeschreibung>
27 <anzahl>3</anzahl>
28 <einzelpreis>4.68</einzelpreis>
29 </artikel>
30 <artikel>
31 <artikelnummer>1234</artikelnummer>
32 <artikelbeschreibung>Socken, schwarz (44)</artikelbeschreibung>
33 <anzahl>1</anzahl>
34 <einzelpreis>5.13</einzelpreis>
35 </artikel>
36 </einkauf>
37 </einkaeufe>

Listing 1: XML-Instanzdokument kunden.xml zu Aufgabe 10


it S. 13 von 15
M 3, Erstklausur 22.02.2021

1 <?xml version="1.0" encoding="utf-8" ?>


2
3 <xs:schema
4 targetNamespace="http://namespaces.onlineshopping.de/vit"
5 elementFormDefault="qualified"
6 >
7 <xs:element name="einkaeufe" type="einkaeufeTyp" />
8
9 <xs:complexType name="einkaeufeTyp">
10 <xs:choice>
11 </xs:choice>
12 </xs:complexType>
13
14 <xs:complexType name="einkaufTyp">
15 <xs:sequence>
16 <xs:element name="kunde" type="kundeTyp" />
17 <xs:element name="lieferadresse" type="adresseTyp" />
18 <xs:element name="datum-bestellung" type="xs:date" />
19 <xs:element name="datum-versand" type="xs:date" minOccurs="0"/>
20 <xs:element name="datum-zustellung" type="xs:date" minOccurs="0"/>
21 <xs:element name="artikel" type="artikelTyp"
maxOccurs="unbounded" />
22 </xs:sequence>
23 </xs:complexType>
24
25 <xs:complexType name="adresseTyp">
26 <xs:sequence>
27 <xs:element name="strasse" type="xs:string" />
28 <xs:element name="hausnummer" type="xs:string" />
29 <xs:element name="plz" type="xs:string" />
30 <xs:element name="ort" type="xs:string" />
31 </xs:sequence>
32 </xs:complexType>
33
34 <xs:complexType name="artikelTyp">
35 <xs:sequence>
36 <xs:element name="artikelnummer" type="xs:int" />
37 <xs:element name="artikelbeschreibung" type="xs:string" />
38 <xs:element name="anzahl" type="xs:int" />
39 <xs:element name="einzelpreis" type="xs:decimal" />
40 </xs:sequence>
41 </xs:complexType>
42 </xs:schema>

Listing 2: Unvollständiges XML-Schema shopping.xsd zu Aufgabe 10

(a) (5 Punkte) Geben Sie in beiden Dokumenten die notwendigen Namensräume


und Attribute an, um das Dokument gegen das Schema sowie das Schema gegen
das W3C-Schema validieren zu können.

(b) (3 Punkte) Geben Sie die Deklaration des Elements <einkauf> an.

(c) (6 Punkte) Geben Sie die Definition des Datentypen kundeTyp an.

(d) (6 Punkte) Geben Sie die Deklaration des Elements <zahlungsmittel> ein-


it S. 14 von 15
M 3, Erstklausur 22.02.2021

schließlich einer anonymen Typdefinition an, sodass das Element im Instanz-


dokument ausschließlich die folgenden Werte annehmen kann:
• PayPal
• Kreditkarte
• Vorkasse


it S. 15 von 15

Das könnte Ihnen auch gefallen