Abfragen in einer objektorientierten Datenbank
-
26-10-2019 - |
Frage
Das Folgende ist a scheme
Für eine Datenbank in einer objektorientierten Einstellung. Jede Beziehung wird zu einer Sammlung von Objekten. Ein Student ist eine Person und eine Fakultät ist auch eine Person. Diese werden als gerichtete Kanten mit der Bezeichnung "ISA" angezeigt. Alle anderen gerichteten Kanten zeigen Referenzattribute. Beachten Sie, dass das Vorschriften des Vorbereitungsattributs im Kurses eine Reihe von Referenzen sind.
Hier ist die Abfrage, die ich nicht herausfinden kann, wie ich schreiben soll:
Umstrukturieren Sie die Einschreibungssammlung von studentID neu. Rufen Sie für jeden Schüler den Ausweis und eine Note des Schülers ab. Die Note sollte eine Beziehung sein, die bestehen aus CourseCode
und LetterGrade
Attribute.
Wenn ich neu organisiert, bin ich mir ziemlich sicher, dass es nur bedeutet, die Informationen in dieser Reihenfolge abzurufen und keine Aktualisierungen der Datenbank durchzuführen.
Lösung
Denn nicht alle Felder werden ordnungsgemäß verwiesen und die Anweisungen sind ein bisschen ... nun, fehlt ich, ich werde ein paar Annahmen treffen. Nämlich:
Die Schülertabelle verfügt über ein Feld namens "studentID", das eine 1 zu 1 -Beziehung zum ID -Feld in der Personentabelle ist.
"Reorganize" bedeutet "Select" .. ungerade Phrasierung das.
Abgesehen von der Personentabelle folgen alle anderen IDs normale Namenskonventionen. Bedeutung,
<TableName>Id
. Zum Beispiel ist die primäre ID in der Schülertabelle studentid"Lettergrade" in der Frage bezieht sich tatsächlich auf das Feld "Note" in der Registrierungstabelle.
Alle Felder, die in dem Wort "Info" enden, sind Fremdschlüssel für das äquivalente Feld, das in "ID" endet. Zum Beispiel: Einschreibung.StudentInfo Maps an student.studentid
Etwas im Sinne von
SELECT S.StudentID, E.Grade, C.CourseCode
FROM Student S
INNER JOIN Enrollment E on (E.StudentInfo = S.StudentId)
INNER JOIN Offering O on (O.OfferingId = E.OfferingInfo)
INNER JOIN Course C on (C.CourseId = O.CourseInfo)
ORDER BY S.StudentId