假设我有以下关系关系代数:一个一对多的关系
Academic(academicID(PK), forename, surname, room)
Contact (contactID(PK), forename, surname, phone, academicNO(FK))
这不是一门功课,我只是想了解使用的符号,下面如果你能帮助我。
Π(relation, attr1, ... attrn)
表示从关系中投射n个属性。
σ(relation, condition)
表示选择符合条件的行。
⊗(relation1,attr1,relation2,attr2)
表示在命名属性上加入两个关系。
relation1 – relation2
是两种关系的区别。
relation1 ÷ relation2
是由另一个关系的划分。
例子我见过使用三张表。我正在和Java合作,只想知道只有两个表(学术和联系)而不是三个(学术,联系人,所有者)的逻辑。
到现在为止,我使用这种结构 “
LessNumVac = Π(σ(job, vacancies < 2), type)
AllTypes = Π(job, type)
AllTypes – LessNumVac.
我如何构造代数..
名单谁是学术‘约翰’所拥有的所有联系人的姓名。
你有没有忘了告诉我们关系'工作'? – Bergi 2013-03-11 21:48:36
没有必要,我只是显示结构。将结果分配给变量LessNumVac等。人们倾向于提出复杂的解决方案,所以这只是为了展示我希望提供帮助的结构。 – MooHa 2013-03-11 21:50:29
那么你的问题是什么?顺便说一句,你的*关系代数*的描述是不完美的,看看[标签信息](http://stackoverflow.com/tags/relational-algebra/info) – Bergi 2013-03-12 11:41:59