以下是scheme
面向对象设置中的数据库。每个关系都成为对象的集合。学生是人,教师也是人。这些显示为标记为“isa”的有向边。所有其他有向边都显示参考属性。请注意,课程中的 PreReq 属性是一组引用。
这是我无法弄清楚如何编写的查询:
按 StudentID 重新组织注册集合。对于每个学生,检索学生的 ID 和成绩。等级应该是由CourseCode
和LetterGrade
属性组成的关系。
通过重新组织,我很确定这只是意味着按该顺序检索信息,而不是对数据库进行任何更新。
以下是scheme
面向对象设置中的数据库。每个关系都成为对象的集合。学生是人,教师也是人。这些显示为标记为“isa”的有向边。所有其他有向边都显示参考属性。请注意,课程中的 PreReq 属性是一组引用。
这是我无法弄清楚如何编写的查询:
按 StudentID 重新组织注册集合。对于每个学生,检索学生的 ID 和成绩。等级应该是由CourseCode
和LetterGrade
属性组成的关系。
通过重新组织,我很确定这只是意味着按该顺序检索信息,而不是对数据库进行任何更新。
因为并非所有字段都被正确引用,并且说明有点......好吧,缺乏,我将做一些假设。即:
学生表有一个名为“StudentID”的字段,它与 Person 表中的 ID 字段是一对一的关系。
“重组”的意思是“选择”。奇怪的措辞。
除了 Person 表,所有其他 ID 都遵循正常的命名约定。意思是,<TableName>Id
。例如,学生表中的主 ID 是 StudentID
问题中的“LetterGrade”实际上是指招生表中的“Grade”字段。
所有以单词“Info”结尾的字段都是以“Id”结尾的等效字段的外键。例如:Enrollment.StudentInfo 映射到 Student.StudentId
类似的东西
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