小编Cod*_*ein的帖子

使用元组关系微积分查找成绩最高的学生

假设我有一张学生表,其中包含他们的 ID 和成绩:

-----------------
| id  |  grade  |
-----------------
|  1  |    83   |
|  2  |    94   |
|  3  |    92   |
|  4  |    78   |
Run Code Online (Sandbox Code Playgroud)

我如何编写引用最高分的学生的元组关系微积分公式?

我的尝试:

从 SQL 的角度考虑,我会编写一个查询,该查询对表与自身进行笛卡尔乘积,取比其他等级低的每个等级,然后从原始表中减去。但是,在元组关系演算中,不可能在子查询中构建子表,这就是我被卡住的原因。

但是,我在这个方向尝试了一些东西:

{ <id> | ? grade1 ? students (id, grade) ? ? grade2 ? students (id, grade2) ? grade1 > grade2}
Run Code Online (Sandbox Code Playgroud)

我相信这会让我获得较低的成绩,但是我如何从原始学生表中减去所有这些?我不允许将此语句插入到另一个 TRC 查询中。在此先感谢您的帮助!

database-theory relational-theory relational-calculus

6
推荐指数
1
解决办法
8068
查看次数

关系还能有关系吗?

我有以下要求(作为更大系统的一部分)。

parts在数据库中,我需要维护销售这些零件的人员列表suppliers

许多suppliers可以销售相同的产品part,并且每个part可以由许多供应商销售。然而,价格各不相同。

在我的系统中,我应该能够跟踪我们购买特定产品的唯一一个supplierpart

按照我的想法,我需要实体Supplier和上的两个关系Part。一种关系Sells记录特定supplier携带特定part,反之亦然,另一种关系Purchase记录我们part从谁购买。

但是,我不会price两次记录该属性。我认为这将是不好的做法。因此,我问,我可以将一种关系与另一种关系联系起来吗?

我在下面提供了一个示例图。虚线是我不确定的。 ERD 与关系的关系

erd database-design database-diagrams

5
推荐指数
1
解决办法
278
查看次数