【发布时间】:2011-10-19 01:17:33
【问题描述】:
以下是面向对象设置中数据库的scheme。每个关系都成为对象的集合。学生是人,教师也是人。这些显示为标记为“isa”的有向边。所有其他有向边都显示参考属性。注意 Course 中的 PreReq 属性是一组引用。
这是我不知道该怎么写的查询:
按 StudentID 重新组织注册集合。对于每个学生,检索学生的 ID 和成绩。 Grade 应该是由CourseCode 和LetterGrade 属性组成的关系。
通过重新组织,我很确定这只是意味着按该顺序检索信息,而不是对数据库进行任何更新。
【问题讨论】:
-
这似乎缺少一些信息。即,“isa”到底是什么?那是那些表中的一列还是只是关系的名称?换句话说,什么标识符将 Student 表与 Person 表联系起来?我在任何地方都没有看到“StudentID”...
-
@ChrisLively “是一个人”,如“教师是一个人”、“学生是一个人”。大概
Student和Faculty中的每条记录都有一个ID 字段,该字段对应于Person表中的ID,但为了保持简洁,图中未显示。 -
@Jordan:我不知道我是怎么误读的 :)
-
回到我们定期安排的节目:这里没有足够的信息。该图缺少很多信息。 Student 表中的“StudentID”与 person 表中的“ID”是一对一的关系吗?哪个字段将 Enrollment.StudentInfo 映射到 Student?哪个字段将 Enrollment.OfferingInfo 映射到产品?什么字段映射到 Offering.CourseInfo 到 Course?另外,“LetterGrade”在哪里?简而言之,图表上不存在平面的问题名称字段,并且图表不是完整的数据模型。
-
据我了解,Student 和 Person 之间的关系不是“关系”,而是一个 isa,所以这里没有 1-1 或 1-many 的关系。面向对象的数据库与 isa 一起工作的方式是子对象从其父对象继承字段。所以调用 Student.ID 是有效的,因为学生是一个人
标签: mysql object-oriented-database