Relationenalgebra und SQL |
03.12.2018, 03:19 | Auf diesen Beitrag antworten » |
Incipiens | Relationenalgebra und SQL Meine Frage: Hallo! Ich knabbere gerade an einer Übung, die ich demnächst abgeben muss und komme nicht so richtig weiter. Hier erst einmal die Aufgabe: Betrachten Sie zur Lösung der Aufgaben folgendes Schema: Student (MatrNr, Name, Semester) Vorlesung (VorlNr, Titel, PersNr) Professor (PersNr, Name) hoert (MatrNr, VorlNr) a) Formulieren Sie folgende Fragen als Ausdrücke der Relationenalgebra: (i) Erstellen Sie eine Liste mit Namen aller Studenten, die die Vorlesung mit der Vorlesungsnummer 3320 hören. (ii) Welche Studenten (MatrNr, Name) hören mehr als eine Vorlesung? b) Formulieren Sie die folgenden Anfragen in SQL: (i) Geben Sie eine Liste der Teilnehmer (MatrNr) der Studenten aus, die mindestens eine Vorlesung bei Prof. ?J. Smith? hören. Die Ausgabetabelle soll die Spaltenüberschrift ?Teilnehmer? besitzen. (ii) Lösen Sie mit einer Unterabfrage: Welche Studenten (Name, MatrNr) des dritten Semesters hören keine Vorlesung bei dem Professor mit der PersNr 987? Meine Ideen: a) (i) Hier habe ich denke eine Lösung, aber ich bin nicht sicher, ob die richtig ist: pi[Name](Student) u sigma[VorlNr=3320](hoert) (ii) Bei dieser komme ich gar nicht weiter, weil mir nicht einfällt, wie ich da überhaupt herangehen soll, zu überprüfen, ob eine Matrikelnummer bei mehreren Vorlesungsnummern vorkommt. Da stecke ich hierbei fest: pi[MatrNr, Name](Student) b) (ii) Hier habe ich etwas versucht, habe aber das Gefühl, dass ich da Blödsinn hingeschrieben habe: CREATE TABLE Teilnehmer ( MatrNr INTEGER SELECT MatrNr FROM hoert WHERE VorlNr = ( SELECT VorlNr FROM Vorlesung WHERE PersNr = ( SELECT PersNr FROM Professor WHERE Name IS 'J. Smith') ) ) (ii) Und auch hier habe ich keinerlei Ahnung, wie ich in SQL etwas ausschließen soll. |
|
|
Verwandte Themen
Die Beliebtesten » |
|
Die Größten » |
|
Die Neuesten » |
|