database - 我的关系代数正确吗?

标签 database relational relational-algebra

我有一个数据库作业,我必须为两个问题创建一些关系代数。我对其中的大部分感觉还不错,但当我尝试从连接到另一个表的表中投影属性时,我只是感到困惑。

例如,这是正确的吗?

Q1) 列出没有调用电话的事件的详细信息,以便接待员知道 哪些事件仍需要调用。

RESULT <-- PROJECT<STUDENT.FirstName, STUDENT.LastName, STAFF.FirstName,
STAFF.INCIDENT.LastName, INCIDENT.DateTimeReported, 
INCIDENT.NatureOfIllness(SELECTINCIDENT.DecisionMade = 
  ''(Staff RIGHT JOIN<STAFF.StaffID = INCIDENT.StaffID>
(INCIDENT LEFT JOIN<INCIDENT.StudentID = STUDENT.StudentID>(STUDENT))))

我试图解释为关系代数的 SQL 是:

SELECT 
  s.FirstName, s.LastName, st.FirstName, st.LastName
  , i.DateTimeReported, i.NatureOfIllness
FROM Student s 
RIGHT JOIN Incident i ON s.StudentID = i.StudentID  
LEFT JOIN Staff st ON st.StaffID = i.StaffID
WHERE i.DecisionMade = ''

如有任何建议,我们将不胜感激。

最佳答案

如果全部使用 LEFT JOIN 编写,通常(当然也有一些异常(exception))更容易阅读和理解 sql:

SELECT s.FirstName, s.LastName, st.FirstName, st.LastName, i.DateTimeReported, i.NatureOfIllness
FROM Incident i
LEFT JOIN Student s ON s.StudentID = i.StudentID
LEFT JOIN Staff st ON st.StaffID = i.StaffID
WHERE i.DecisionMade = ''

关于database - 我的关系代数正确吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/418186/

相关文章:

database - 什么是投影?

sql-server - 自动生成 SQL Server 数据库架构图

php - 将 php 中的多行更新到 mysql?

c# - 无法识别的数据库格式

math - 元组关系演算或关系代数语法验证程序?

c - 关于 C 中的关系运算符的问题?

relational-database - 如果没有共同属性,则自然联接

php - SQL 查询执行时间过长

database - 是否所有关系数据库设计都需要用于多对多关系的联结表或关联表?

sql - 关系代数 - 恰好找到两个值