您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

是否可以在关系代数,域和元组关系演算中表示所有SQL查询

是否可以在关系代数,域和元组关系演算中表示所有SQL查询

您的查询有点模棱两可。确实是要找到所有X城中每个人的经理以及每个员工的经理?

正如dportas指出的那样,这在RA中是完全可行的。

这是如何做 :

获取X城市中所有雇员的集合。将其称为EMPX。

获取所有经理的集合。叫那个MGRS。

使两者的笛卡尔积。称之为MGRS_EMPX。

减去表的实际值(适当地向下投影到所需的属性),该值表示哪些管理者管理哪个员工。这种差异保留了实际存在的经理的所有组合以及位于X中的雇员,但该经理不管理该雇员的情况。

将该差异投影到manager属性上。这关系告诉你哪个经理存在,从而存在在X市一些员工是 不是管理员负责管理。

从MGRS中减去此关系。显然,此关系告诉您存在哪些经理,从而使X城中不存在不受该经理管理的员工。

将对否定性量词的否定重写为通用量将显示这正是您想要的结果:NOT EXISTS(EMP:EMP在X中,而EMP由MGR管理)=== FORALL EMP:NOT(EMP在X中。由MGR管理的AND EMP)=== FORALL EMP:(EMP不在X中,或者EMP由MGR管理)=== FORALL EMP :(如果EMP在X中,则EMP由MGR管理)。

所有这些都是完美的代数运算。

(练习:看看如果X城根本没有员工,会发生什么情况。)

SQLServer 2022/1/1 18:52:43 有406人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶