relational-algebra - SQL 到关系代数

标签 relational-algebra

如何为该 SQL 查询编写关系代数?

Select patient.name, 
       patient.ward, 
       medicine.name, 
       prescription.quantity, 
       prescription.frequency
From patient, medicine, prescription
Where prescription.frequency = "3perday" 
  AND prescription.end-date="08-06-2010" 
  AND canceled = "Y"

关系...

处方

  • 处方引用
  • 患者引用
  • 医学引用
  • 数量
  • 频率
  • 结束日期
  • 已取消(是/否))

医学

  • 医学引用
  • 姓名

病人

  • 患者引用
  • 姓名
  • 病房

最佳答案

我只会指出您应该使用的运算符

投影 (π)

π(a1,...,an):结果定义为将R中的所有元组限制为集合{a1,...,an}时得到的集合。

例如,患者表上的 π(姓名) 与 SELECT 姓名 FROM 患者相同

选择 (σ)

σ(条件):选择 R 中满足条件的所有元组。

例如,您的处方表中的 σ(Frequency = "1perweek") 与 SELECT * FROM处方 WHEREFrequency = "1perweek"

叉积(X)

R X S:结果是R和S之间的叉积。

例如,患者 X 处方将为 SELECT * FROM 患者,处方

您可以组合这些操作数来解决您的练习。如果您有任何问题,请尝试发布您的尝试。

注意:我没有包含自然连接,因为没有连接。对于这个练习来说,叉积应该足够了。

关于relational-algebra - SQL 到关系代数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3081213/

相关文章:

sql - 关系代数 - 自然连接 - 一些基础知识

sql - 极限运算符的关系代数

intersection - 关系代数中交集的不同写法

database - 关系代数中的投影

SQL -> 关系代数

relational-database - 关系代数如何选择两个条件?

database - 多值依赖公理

sql - 有没有不依赖 SQL 的 DBMS?

sql - 在 SQL 中,如何执行 "subtraction"操作?

mysql - 从特定范围中选择全部