Title: Relationale Algebra 2023
Course: Das relationale Datenmodell

Feedback shared by this category's questions, if right: Die Antwort ist richtig.
Feedback shared by this category's questions, if partly right: Die Antwort ist teilweise richtig.
Feedback shared by this category's questions, if wrong: Die Antwort ist falsch.

Q: STUDENT (SSN, Name, Major, Bdate)
- SSN
- Name
- Major
- Bdate
A: SSN
If partly right: Die Antwort ist teilweise richtig. Überlegen Sie, welche Eigenschaften mindestens notwendig sind, um einen Studenten eindeutig zu erkennen. Die Kombination dieser Eigenschaften muss immer einzigartig sein.
If wrong: Die Antwort ist falsch. Überlegen Sie, welche Eigenschaften mindestens notwendig sind, um einen Studenten eindeutig zu erkennen. Die Kombination dieser Eigenschaften muss immer einzigartig sein.

Q: COURSE (CourseId, Cname, Dept)
- CourseId
- Cname
- Dept
A: CourseId
If partly right: Die Antwort ist teilweise richtig. Überlegen Sie, welche Eigenschaften mindestens notwendig sind, um einen Kurs eindeutig zu erkennen. Die Kombination dieser Eigenschaften muss immer einzigartig sein.
If wrong: Die Antwort ist falsch. Überlegen Sie, welche Eigenschaften mindestens notwendig sind, um einen Kurs eindeutig zu erkennen. Die Kombination dieser Eigenschaften muss immer einzigartig sein.

Gegeben sei folgendes Schema einer Datenbank des Studierendensekretariats einer amerikanischen Universität
(vgl. Elmasri/ Navathe: Fundamentals of Database Systems, 2004).

COURSE ENROLLMENT
STUDENT(SSN, Name, Major, Bdate)
COURSE(CourseId, Cname, Dept)
ENROLL(SSN, CourseId, Quarter, Grade)
BOOK(Book_ISBN, Book_Title, Publisher, Author)
BOOK_RECOMMENDATION(CourseId, Quarter, Book_ISBN)

Wählen Sie für jede Relation das oder die passenden Attribute für den Primärschlüssel aus:

Q: ENROLL (SSN, CourseId, Quarter, Grade)

Gehen Sie davon aus, dass man sich in einen Kurs erneut einschreiben muss, wenn man durchgefallen ist.
- SSN
- CourseId
- Grade
- Quarter
A: SSN; CourseId; Quarter
If partly right: Die Antwort ist teilweise richtig. Überlegen Sie, welche Eigenschaften mindestens notwendig sind, um eine Kurseinschreibung eindeutig zu erkennen. Die Kombination dieser Eigenschaften muss immer einzigartig sein.
If wrong: Die Antwort ist falsch. Überlegen Sie, welche Eigenschaften mindestens notwendig sind, um eine Kurseinschreibung eindeutig zu erkennen. Die Kombination dieser Eigenschaften muss immer einzigartig sein.

Q: BOOK_RECOMMENDATION (CourseId, Quarter, Book_ISBN)
- CourseId
- Quarter
- Book_ISBN
A: CourseId; Quarter; Book_ISBN
If partly right: Die Antwort ist teilweise richtig. Überlegen Sie, welche Eigenschaften mindestens notwendig sind, um eine Buchempfehlung eindeutig zu erkennen. Die Kombination dieser Eigenschaften muss immer einzigartig sein. Stellen Sie sich vor, ein Buch wird jedes Semester für denselben Kurs genutzt und überdenken Sie Ihre Antwort.
If wrong: Die Antwort ist falsch. Überlegen Sie, welche Eigenschaften mindestens notwendig sind, um eine Buchempfehlung eindeutig zu erkennen. Die Kombination dieser Eigenschaften muss immer einzigartig sein. Stellen Sie sich vor, ein Buch wird jedes Semester für denselben Kurs genutzt und überdenken Sie Ihre Antwort.

Q: BOOK (Book_ISBN, Book_Title, Publisher, Author)
- Book_ISBN
- Book_Title
- Publisher
- Author
A: Book_ISBN
If partly right: Die Antwort ist teilweise richtig. Überlegen Sie, welche Eigenschaften mindestens notwendig sind, um ein Buch eindeutig zu erkennen. Die Kombination dieser Eigenschaften muss immer einzigartig sein.
If wrong: Die Antwort ist falsch. Überlegen Sie, welche Eigenschaften mindestens notwendig sind, um ein Buch eindeutig zu erkennen. Die Kombination dieser Eigenschaften muss immer einzigartig sein.

Gegeben sei folgendes Schema einer Datenbank des Studierendensekretariats einer amerikanischen Universität
(vgl. Elmasri/ Navathe: Fundamentals of Database Systems, 2004).

COURSE ENROLLMENT
STUDENT(SSN, Name, Major, Bdate)
COURSE(CourseId, Cname, Dept)
ENROLL(SSN, CourseId, Quarter, Grade)
BOOK(Book_ISBN, Book_Title, Publisher, Author)
BOOK_RECOMMENDATION(CourseId, Quarter, Book_ISBN)

Ordnen Sie zu den relationalen Ausdrücken den jeweils passenden Operator zu.

Gegeben sei folgendes Schema einer Datenbank des Studierendensekretariats einer amerikanischen Universität
(vgl. Elmasri/ Navathe: Fundamentals of Database Systems, 2004).

COURSE ENROLLMENT
STUDENT(SSN, Name, Major, Bdate)
COURSE(CourseId, Cname, Dept)
ENROLL(SSN, CourseId, Quarter, Grade)
BOOK(Book_ISBN, Book_Title, Publisher, Author)
BOOK_RECOMMENDATION(CourseId, Quarter, Book_ISBN)

Sie sehen nachfolgend verschiedene Datenbankzustände.

Überlegen Sie jeweils für jedes Tupel, ob es gültig ist und falls nein, warum nicht. Entscheiden Sie selbst, welche Wertebereiche sinnvoll sind.

Hinweis: Die Antworten können mehrfach vorkommen und nicht jede Antwort muss genutzt werden.

Q: Schieben Sie die passende Begründung in das Feld hinter dem Tupel:

OK - Tupel ist gültig
DT - Mindestens ein Wert hat den falschen Datentyp
PK - Der Primärschlüssel wurde bereits verwendet
FK - Fremdschlüssel passt nicht zu Primärschlüssel
NL - Der Primärschlüssel darf nicht NULL sein
WB - Der Wertebereich von mindestens einem Attribut wurde überschritten

Gehen Sie davon aus, dass die Datensätze der Relationen STUDENT und COURSE festgelegt sind.
- Zone 1 | OK
- Zone 2 | DT
- Zone 3 | OK
- Zone 4 | FK
- Zone 5 | PK
Also offered: NL; WB
Feedback: Da diese Aufgabe einigen Diskussionsspielraum bietet, wurde sie nicht bewertet und Sie bekommen hier unsere Musterlösung mit Erklärungen angezeigt. Bei Fragen und Anregungen können Sie uns gerne im Praktikum ansprechen. [Image] Zeile 1 - Alle Daten sind gültig Zeile 2 - Der Datentyp von Grade ist falsch, da dort eine Zahl und kein Wort erfordert wird Zeile 3 - Alle Daten sind gültig (Da SSN, CourseId und Quarter gemeinsam den Primärschlüssel bilden, reicht es, wenn die Kombination eindeutig ist) Zeile 4 - SSN ist ein Fremdschlüssel zur Relation STUDENT, dort gibt es allerdings nicht den passenden Primärschlüssel (49128) Zeile 5 - Der Primärschlüssel ist nicht eindeutig, die Kombination aus SSN, CourseId und Quarter existiert bereits in Zeile 1

Q: Schieben Sie die passende Begründung in das Feld hinter dem Tupel:

OK - Tupel ist gültig
DT - Mindestens ein Wert hat den falschen Datentyp
PK - Der Primärschlüssel wurde bereits verwendet
FK - Fremdschlüssel passt nicht zu Primärschlüssel
NL - Der Primärschlüssel darf nicht NULL sein
WB - Der Wertebereich von mindestens einem Attribut wurde überschritten

Gehen Sie davon aus, dass die Datensätze der Relationen COURSE und BOOK festgelegt sind.
- Zone 1 | NL
- Zone 2 | OK
- Zone 3 | OK
- Zone 4 | OK
- Zone 5 | FK
Also offered: PK; DT; WB
Feedback: Da diese Aufgabe einigen Diskussionsspielraum bietet, wurde sie nicht bewertet und Sie bekommen hier unsere Musterlösung mit Erklärungen angezeigt. Bei Fragen und Anregungen können Sie uns gerne im Praktikum ansprechen. [Image] Zeile 1 - Da Quarter Teil des Primärschlüssels ist, darf der Wert nicht null sein Zeile 2 - Alle Daten sind gültig Zeile 3 - Alle Daten sind gültig Zeile 4 - Alle Daten sind gültig (Ebenso möglich wäre die Aussage, dass "Sommer 21" nicht im Wertebereich liegt) Zeile 5 - Book_ISBN ist ein Fremdschlüssel, zu dessen Wert (693-4938592) es keinen passenden Primärschlüssel in der Relation BOOK gibt

Q: Schieben Sie die passende Begründung in das Feld hinter dem Tupel:

OK - Tupel ist gültig
DT - Mindestens ein Wert hat den falschen Datentyp
PK - Der Primärschlüssel wurde bereits verwendet
NL - Der Primärschlüssel darf nicht NULL sein
WB - Der Wertebereich von mindestens einem Attribut wurde überschritten
- Zone 1 | OK
- Zone 2 | OK
- Zone 3 | WB
- Zone 4 | DT
- Zone 5 | OK
Also offered: PK; NL
Feedback: Da diese Aufgabe einigen Diskussionsspielraum bietet, wurde sie nicht bewertet und Sie bekommen hier unsere Musterlösung mit Erklärungen angezeigt. Bei Fragen und Anregungen können Sie uns gerne im Praktikum ansprechen. [Image] Zeile 1 - Alle Daten sind gültig Zeile 2 - Alle Daten sind gültig (Da Major kein Primärschlüssel ist, darf der Wert null sein) Zeile 3 - Der Wertebereich von Bdate wurde überschritten, da es nur zwölf Monate gibt Zeile 4 - Der Datentyp von SSN ist falsch, da nur Zahlen und keine Buchstaben enthalten sein dürfen Zeile 5 - Alle Daten sind gültig (Da Name kein Primärschlüssel ist, darf der Wert doppelt vorkommen)

Q: Schieben Sie die passende Begründung in das Feld hinter dem Tupel:

OK - Tupel ist gültig
DT - Mindestens ein Wert hat den falschen Datentyp
PK - Der Primärschlüssel wurde bereits verwendet
NL - Der Primärschlüssel darf nicht NULL sein
WB - Der Wertebereich von mindestens einem Attribut wurde überschritten
- Zone 1 | OK
- Zone 2 | DT
- Zone 3 | OK
- Zone 4 | PK
Also offered: NL; WB
Feedback: Da diese Aufgabe einigen Diskussionsspielraum bietet, wurde sie nicht bewertet und Sie bekommen hier unsere Musterlösung mit Erklärungen angezeigt. Bei Fragen und Anregungen können Sie uns gerne im Praktikum ansprechen. [Image] Zeile 1 - Alle Daten sind gültig Zeile 2 - Der Datentyp von Dept ist falsch, da dort eine Zeichenkette gefordert wird (Ebenso richtig wäre, dass der Wertebereich nicht passt) Zeile 3 - Alle Daten sind gültig Zeile 4 - Der Primärschlüssel (CourseId = 4) wurde bereits im Tupel darüber verwendet

Q: Schieben Sie die passende Begründung in das Feld hinter dem Tupel:

OK - Tupel ist gültig
DT - Mindestens ein Wert hat den falschen Datentyp
PK - Der Primärschlüssel wurde bereits verwendet
NL - Der Primärschlüssel darf nicht NULL sein
WB - Der Wertebereich von mindestens einem Attribut wurde überschritten
- Zone 1 | WB
- Zone 2 | OK
- Zone 3 | OK
- Zone 4 | NL
- Zone 5 | OK
Also offered: PK; DT
Feedback: Da diese Aufgabe einigen Diskussionsspielraum bietet, wurde sie nicht bewertet und Sie bekommen hier unsere Musterlösung mit Erklärungen angezeigt. Bei Fragen und Anregungen können Sie uns gerne im Praktikum ansprechen. [Image] Zeile 1 - Der Wert "dreihundert" passt semantisch nicht zum Wertebereich von Book_ISBN, da es keine gültige ISBN ist (synaktisch ist es jedoch gültig) Zeile 2 - Alle Daten sind gültig Zeile 3 - Alle Daten sind gültig (Der Primärschlüssel beinhaltet die ISBN, die einzigartig ist) Zeile 4 - Da die Book_ISBN der Primärschlüssel, und darf der Wert nicht null sein Zeile 5 - Alle Daten sind gültig (Da Book_Title und Author beides keine Primärschlüssel sind, und dürfen die Werte null sein)

Gegeben sei folgendes Schema als Relationendiagramm einer Datenbank des Studierendensekretariats einer amerikanischen Universität
(vgl. Elmasri/ Navathe: Fundamentals of Database Systems, 2004).

[Image]

Sie sehen nachfolgend verschiedene Datenbankzustände.

Überlegen Sie jeweils für jedes Tupel, ob es gültig ist und falls nein, warum nicht. Entscheiden Sie selbst, welche Wertebereiche sinnvoll sind.

Hinweis: Die Antworten können mehrfach vorkommen und nicht jede Antwort muss genutzt werden.

Q: Wenn Sie einen relationalen Ausdruck erzeugen wollen, sollten Sie dabei strukturiert vorgehen.

Sortieren Sie die Teile des Ausdrucks. Beginnen Sie mit dem innen stehenden Element der Anfrage.
- Auswahl der Relationen, ggfs. mit Verbund
- Selektion mit Bedingungen
- Projektion der Attribute
- Gruppierung
A: Auswahl der Relationen, ggfs. mit Verbund / Selektion mit Bedingungen / Projektion der Attribute / Gruppierung
If partly right: Die Antwort ist teilweise richtig. Nehmen Sie eine Sortierung vor, bei der die Ergebnismenge immer weniger Tupel enthält. Hilfe dazu finden Sie im Skript.
If wrong: Die Antwort ist falsch. Nehmen Sie eine Sortierung vor, bei der die Ergebnismenge immer weniger Tupel enthält. Hilfe dazu finden Sie im Skript.

Q: Geben Sie den folgenden Ausdruck in RelaX ein und wählen die ausgegebenen Daten aus:
γ Dept; Anzahl ← count(CourseId) (COURSE)
Der Pfeil kann auch als <- geschrieben werden
- Medien, 4
- Informatik, 3
- Design, 2
- Medien, 2
- BWL, 5
A: Medien, 4 / Informatik, 3 / Design, 2
If right: Die Antwort ist richtig. Die Anfrage zählt die Kurse pro Fachbereich und gibt das Ergebnis aus.

Q: Was sind Operationen der relationalen Algebra?
- Vereinigung
- Differenz
- Projektion
- Selektion
- Umbenennung
- Anordnung
- Prozent
- Modulo
- Verteilung
A: Vereinigung; Differenz; Projektion; Selektion; Umbenennung

Die nachfolgenden Aufgaben beziehen sich auf das Tool RelaX (öffnet in neuem Fenster).

- Rufen Sie die Anwendung in einem separaten Fenster auf.

- Machen Sie sich mit der Funktionsweise des Tools vertraut.
  - Screencast: Erklärung zur Nutzung von RelaX (öffnet in neuem Fenster)
  - Hilfeseite (öffnet in neuem Fenster): Falls Sie noch weitere Erklärungen zu relationalen Ausdrücken benötigen, finden Sie diese auf der Hilfeseite, die ebenfalls über einen Link oben rechts abrufbar ist.
- Versichern Sie sich, dass der Datensatz "DBS1 Student Course Enroll" ausgewählt ist.

Q: Geben Sie den folgenden Ausdruck in RelaX ein und wählen die ausgegebenen Daten aus:

BOOK
- '978-3966450539', 'Java: Kompendium', 'BMU Verlag', 'Neumann'
- '978-3446409446', 'Taschenbuch Datenbanken', 'Carl Hanser Verlag', 'Kudrass'
- '978-3486714036', 'Algorithmen und Datenstrukturen', 'Oldenbourg Wissenschaftsverlag', 'Blum'
- '978-3827317186', 'Workshop Javascript', 'Addison-Wesley', 'Mintert'
- 920148, 'Tom', 'Medientechnik', '2000-05-20'
- '978-0864427465', 'Java', 'Lonely Planet', 'Turner'
- '978-3827428349', 'Software-Architektur kompakt', 'Spektrum Akademischer Verlag', 'Starke'
- '978-3658207045', 'Programmierung in Python', 'Springer Vieweg', 'Steyer'
A: '978-3966450539', 'Java: Kompendium', 'BMU Verlag', 'Neumann' / '978-3446409446', 'Taschenbuch Datenbanken', 'Carl Hanser Verlag', 'Kudrass' / '978-3486714036', 'Algorithmen und Datenstrukturen', 'Oldenbourg Wissenschaftsverlag', 'Blum' / '978-3827317186', 'Workshop Javascript', 'Addison-Wesley', 'Mintert' / '978-3827428349', 'Software-Architektur kompakt', 'Spektrum Akademischer Verlag', 'Starke' / '978-3658207045', 'Programmierung in Python', 'Springer Vieweg', 'Steyer'
If right: Die Antwort ist richtig. Die Anfrage gibt alle Bücher aus, die in der Relation BOOK enthalten sind.

Q: Geben Sie den folgenden Ausdruck in RelaX ein und wählen die ausgegebenen Daten aus:
γ count(SSN) → Anzahl (STUDENT)
Der Pfeil kann auch als -> geschrieben werden
- 42
- 4
- 13
- 14
A: 14
If right: Die Antwort ist richtig. Die Anfrage zählt alle Studierenden anhand ihrer SSN und gibt das Ergebnis aus.

Q: RelaX gibt zu jedem Ausdruck zusätzlich einen Operatorbaum an. Was gibt der relationale Ausdruck an, den dieses Baumdiagramm darstellt?

[Image]
- Alle Noten der Studentin Anna
- Die Noten aller Teilnehmer von allen Kursen, in denen die Studentin Anna eingeschrieben ist
- Alle Studenten, die mit Anna gemeinsam in einem Kurs eingeschrieben sind
- Alle Daten zu den Kursen, in denen die Studentin Anna eingeschrieben ist
A: Alle Noten der Studentin Anna
If partly right: Die Antwort ist teilweise richtig. Gehen Sie den Baum von unten nach oben durch und überlegen jeweils, welche Tupel übrig bleiben.
If wrong: Die Antwort ist falsch. Gehen Sie den Baum von unten nach oben durch und überlegen jeweils, welche Tupel übrig bleiben.

Die nachfolgenden Aufgaben beziehen sich auf das Tool RelaX. Rufen Sie die Anwendung möglichst in einem separaten Fenster auf (das geschieht bei Klick auf den Link automatisch).

Q: Geben Sie den folgenden Ausdruck in RelaX ein und wählen die ausgegebenen Daten aus.
π Name (
σ STUDENT.SSN=ENROLL.SSN (
σ ENROLL.CourseId = 9 (
σ ENROLL.Grade > 50 (
STUDENT x ENROLL
)
)
)
)
- Anna
- Bernd
- Christian
- Daniel
- Tom
- Katharina
- Florian
A: Anna / Christian / Tom / Katharina
If right: Die Antwort ist richtig. Die Anfrage gibt die Namen aller Studierenden aus, die im Kurs mit der ID 9 (Webprogrammierung) eingeschrieben sind oder waren und dort über 50 Punkte erzielt haben.

Q: Geben Sie den folgenden Ausdruck in RelaX ein und wählen die ausgegebenen Daten aus.
π Book_Title, Author (σ BOOK.Book_ISBN=BOOK_RECOMMENDATION.Book_ISBN ∧ BOOK_RECOMMENDATION.Quarter = 'SoSe 2021' (BOOK x BOOK_RECOMMENDATION))
- Java: Kompendium, BMU Verlag
- Taschenbuch Datenbanken, Kudrass
- Algorithmen und Datenstrukturen, Blum
- Workshop Javascript, Mintert
- Java: Kompendium, Neumann
- Taschenbuch Datenbanken, Carl Hanser Verlag
- Algorithmen und Datenstrukturen, Oldenbourg Wissenschaftsverlag
A: Taschenbuch Datenbanken, Kudrass / Algorithmen und Datenstrukturen, Blum
If right: Die Antwort ist richtig. Die Anfrage gibt alle Bücher aus, die im Sommersemester 2021 empfohlen wurden.

Q: Geben Sie den folgenden Ausdruck in RelaX ein und wählen die ausgegebenen Daten aus.
π Dept (
σ COURSE.CourseId=BOOK_RECOMMENDATION.CourseId (
σ BOOK_RECOMMENDATION.Book_ISBN = BOOK.Book_ISBN (
σ Author = 'Neumann' (
COURSE x BOOK_RECOMMENDATION ⨯ BOOK
)
)
)
)
- Medien
- Informatik
- Design
- OOP1
- DBS 1
- SoSe 2021
- Java Kompendium
A: Medien
If right: Die Antwort ist richtig. Die Anfrage gibt alle Fachbereiche aus, in denen es Kurse gibt, in denen Bücher von Neumann empfohlen werden.

Q: Gegeben sei folgendes Schema einer Datenbank des Studierendensekretariats einer amerikanischen Universität
(vgl. Elmasri/ Navathe: Fundamentals of Database Systems, 2004).

COURSE ENROLLMENT
STUDENT(SSN, Name, Major, Bdate)
COURSE(CourseId, Cname, Dept)
ENROLL(SSN, CourseId, Quarter, Grade)
BOOK(Book_ISBN, Book_Title, Publisher, Author)
BOOK_RECOMMENDATION(CourseId, Quarter, Book_ISBN)

Ordnen Sie zu den relationalen Ausdrücken den jeweils passenden Operator zu.

π Name  [...]

σ SSN  [...]

STUDENT x ENROLL  [...]

ρ Vorname ← Name (STUDENT)  [...]

γ count(SSN)-> Anzahl  [...]
A: Projektion; Selektion; Verbund; Umbenennung; Gruppierung