从我的架构中检索正确的数据

时间:2017-01-22 23:14:43

标签: relational-database relational-algebra

enter image description here

我想检索教授超过1门课程的教师姓名

我真的被困在怎么做,我所知道的是我需要考虑课程架构并对其进行操作,我可以就pi(投影),sigma(条件),rho(rho)得到一些建议吗?重命名)等(不是我任何特定的数据库语言)?

1 个答案:

答案 0 :(得分:1)

由于这是家庭作业,你基本上需要阅读&通过教科书的绝对介绍文本&关于关系模型基础知识的练习关系代数,我给出了一些适合你的任务的指导性问题。

关系(给定或查询结果)带有谓词,即由属性参数化的语句模板。关系保存了从其谓词中生成真实语句的元组。 PKs&查询不需要FK。

元组的关系表达式是什么......

teacherid 标识的人教授由 cid 标识的课程,该课程名为 name ? (答案:课程。)
teacherid 教授名为 name cid ? (答案相同。为什么?)
teacherid 教授 cid cid 被命名为名称? (答案相同。为什么?)

(我们可以从您的作业查询中推断出课程和教师的谓词是指人员,或者您无法获得教师姓名。)

t 教授名为 n c
t 教授 c 名为 n AND c = 101?
t 教授 c 名为 n t 占用 o

t 教授一些名为某个名字的课程? 对于某些 c t 教会 c 命名一些名字? (答案相同。为什么?)
对于某些 c t 教会 c 命名的东西AND c = 101? (为什么我们需要FOR SOME?)

ids学生而不是接受一些老师讲授的课程?
有些学生需要通过 t t 教某些课程吗?

因此:我们使用逻辑运算符和给定谓词为我们想要的元组组成一个查询谓词。然后我们得到一个表达式,通过将逻辑运算符转换为关系运算符并将给定谓词赋予给定关系来计算它们。 (为了使用AND NOT(MINUS)或OR(UNION),重新排列以获得具有相同属性的两个关系可能是乏味的。)

请参阅this

  

检索教授超过1门课程的教师姓名

你想要元组,其中属性名称是一个人的名字,对于某些两个值,该人教授第一个课程,他们教授第二个课程,这些价值/课程不一样。