【发布时间】:2013-03-11 21:44:00
【问题描述】:
假设我有以下关系:
Academic(academicID (PK), forename, surname, room)
Contact (contactID (PK), forename, surname, phone, academicNO (FK))
我正在使用 Java,我想了解符号的用法。
Π( relation, attr1, ... attrn ) 表示将 n 个属性投影到关系之外。σ( relation, condition) 表示选择符合条件的行。⊗(relation1,attr1,relation2,attr2) 表示在命名属性上连接两个关系。relation1 – relation2 是两个关系之间的差异。relation1 ÷ relation2 将一个关系除以另一个关系。
我见过的示例使用三个表。我想知道当只涉及两个表(学术和联系人)而不是三个(学术、联系人、拥有)时的逻辑。
我正在使用这个结构:
LessNumVac = Π( σ( job, vacancies < 2 ), type )
AllTypes = Π( job, type )
AllTypes – LessNumVac
我如何构造代数:
列出学术“约翰”拥有的所有联系人的姓名
【问题讨论】:
-
有很多 RA(关系代数)。它们在运算符甚至关系是什么方面都不同。提供操作员定义和您的参考。例如教科书名称、版本和页码。