数据库关系代数:如何找到在“环球影城”制作的所有电影中扮演过角色的演员?

Posted

技术标签:

【中文标题】数据库关系代数:如何找到在“环球影城”制作的所有电影中扮演过角色的演员?【英文标题】:Database Relational Algebra: How to find actors who have played in ALL movies produced by "Universal Studios"? 【发布时间】:2016-04-09 10:43:10 【问题描述】:

给定以下关系模式,其中主键以粗体显示:

movie(movieName, whenMade);

演员(演员姓名,年龄);

studio(studioName, location, movieName);

actsIn(actorName, movieName);

您如何找到在“环球影城”制作的每部电影中出演过的演员名单?

我的尝试:

π actorName ∩ (σ studioName=“Universal Studios”工作室) |>

您应该使用笛卡尔积和/或除法吗? :\

【问题讨论】:

这种查询通常用除法来解决。 【参考方案1】:

以下是您应该遵循的两个步骤:

    写一个表达式来查找“环球影城”制作的电影的名字(结果是一个单一属性的关系)

    将关系actsIn除以第一步得到的关系结果。

这应该会给你预期的结果(即与在“环球影城”的每部电影中扮演的演员姓名的关系)。

【讨论】:

以上是关于数据库关系代数:如何找到在“环球影城”制作的所有电影中扮演过角色的演员?的主要内容,如果未能解决你的问题,请参考以下文章

如何用关系代数找到 MAX?

如何制作代数数据类型列表

实现关系代数的语言特性

如何通过关系代数表达参照完整性约束?

关系代数和SQL语言应用:学生参加科研训练项目的数据库

无论如何要为Android中的来电和去电制作我的自定义用户界面吗?