如何为该 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/