某电影资料数据库包含以下4个关系

  • 演员A(no,name,address,gender,birthday)

    • 包括属性:演员编号,演员姓名,演员地址,演员性别,演员出生日期;
  • 电影公司C(cno,cname,address,tel)

    • 包括属性:电影公司编号、公司名称,公司地址,公司电话;
  • 电影M(mno,name,len,year,cno)

    • 包括属性:电影编号,电影名称,电影长度,电影制作年份,电影公司编号;
  • 上映信息I(ino,mno,idate,price)

    • 包括属性:上映信息编号、电影编号、上映时间、电影票价;
  • 电影演员关系表R(rno,mno,ano,rrole,rtime)

    • 包括属性:关系编号、电影编号、演员编号,演员在电影中饰演角色名称,演员在电影中出现时间(分钟);

电影、演员、电影公司、上映信息、电影演员关系表分别由电影编号(mno)、演员编号(no)、电影公司编号(cno)、上映信息编号(ino)、关系编号(rno)唯一标识,其中上映时间日期格式为yyyy-MM-dd

用关系代数表达下面操作:

(1) 用关系代数和SQL语句查询所有“北影”电影公司制作的电影名称和电影主演的姓名,主演要求在电影中出现的时间大于40分钟。

关系代数:

π M.name, A.name (M ⨝ C.cno = M.cno ∧ R.mno = M.mno ∧ R.ano = A.no ∧ R.rtime > 40 ∧ C.cname = '北影' ∧ A.name IS NOT NULL)

SQL语句:

SELECT M.name, A.name 
FROM M 
JOIN C ON C.cno = M.cno 
JOIN R ON R.mno = M.mno 
JOIN A ON R.ano = A.no 
WHERE R.rtime > 40 AND C.cname = '北影' AND A.name IS NOT NULL

(2) 用关系代数和SQL语句查询所有电影公司制作的电影名称、制作年份和电影票价,按票价降序排序,只取前10条记录。

关系代数:

π M.name, M.year, I.price (M ⨝ I.mno = M.mno) ↓I.price[10]

SQL语句:

SELECT M.name, M.year, I.price 
FROM M 
JOIN I ON I.mno = M.mno 
ORDER BY I.price DESC 
LIMIT 10
某电影资料数据库关系代数和SQL语句查询示例

原文地址: https://www.cveoy.top/t/topic/osCT 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录