【发布时间】:2018-12-03 22:49:52
【问题描述】:
有两种关系:
预测(cname,etype)
措施(etype,提供者)
cname - 预计未来灾难的城市名称。
etype - 事件类型。地震、海啸……
提供者 - 警察、救护车...
我需要使用域关系演算编写一个查询,它应该找到一个提供者,为米兰的所有预测事件提供服务。
到目前为止我有这个:
{<P> | ∃et <et,P> ∈ Measures ^ ∀ ev (<'Milano', ev> ∈ Prediction
⟹ ∃pr(ev,pr) ^ pr=P)}
我不确定。可以吗?还是有什么问题?
【问题讨论】:
-
请提供您的教科书名称和版本——DRC 有很多变体。 (还要澄清量词的范围和运算符的解析/优先级。)请阅读点击谷歌搜索“stackexchange homework”并显示您的步骤组成您的查询,理由是参考您的教科书。否则,我们将不得不做这项工作,而不仅仅是检查它,我们不能说你在哪里做对或错,解释你应该做什么只是用定制的教程重写教科书并为你做功课。
-
您的问题陈述对“all”有一个典型的模棱两可的用法:如果 Milano 中没有预测事件怎么办——您希望查询返回所有提供者,还是不返回? (关于“所有”的含义和如何明确的问题在各种关系划分和替代查询的演示中得到解决。)为了清楚准确地表达自己,始终使用“for some (value for) x”/“there exists ( x 的值”和“所有(x 的值)”/“每个(x 的值)”。请澄清。 PS您不希望查询找到“提供者”,而不是“提供者”吗? PS“
∃pr(ev,pr)”没有意义。
标签: relational-division domain-calculus