Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Praktische Informatik » Datenbanken » Relationenalgebra und SQL » Antwort erstellen » Hallo Gast [Anmelden|Registrieren]

Antwort erstellen
Benutzername: (du bist nicht eingeloggt!)
Thema:
Nachricht:

HTML ist nicht erlaubt
BBCode ist erlaubt
Smilies sind erlaubt
Bilder sind erlaubt

Smilies: 21 von 33
smileWinkDaumen hoch
verwirrtAugenzwinkerngeschockt
Mit ZungeGottunglücklich
Forum Kloppebösegroßes Grinsen
TanzentraurigProst
TeufelSpamWillkommen
LehrerLOL HammerZunge raus
Hilfe 
aktuellen Tag schließen
alle Tags schließen
fettgedruckter Textkursiver Textunterstrichener Text zentrierter Text Hyperlink einfügenE-Mail-Adresse einfügenBild einfügen Zitat einfügenListe erstellen CODE einfügenPHP CODE farbig hervorheben
Spamschutz:
Text aus Bild eingeben
Spamschutz

Der letzte Beitrag
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.