2016-10-10 65 views
-1

我想教我自己的关系代数。我遇到了这个问题,并且想要明白它的含义。了解关系代数

(。=ℎ.ℎ)(×ℎ×_)

∧(=ℎ。)

⋀(。=。)

∧(_> 30 )其中,该部分从第一线被示出为上标

(×ℎ×_)

+0

通常,对关系代数选择/限制运算符的调用被写为一个下标条件,然后是一个关系值。你给出的表达没有任何意义。似乎所有的∧s都应该是条件的一部分。看来你已经解析了你给出的错误。你能给我们一个链接,照片或准确描述你给的东西吗? PS有*许多* RA,不同的运算符,甚至不同的关系,所以你需要找到这个写入的定义。(这是一个相当SQL-ish变体。) – philipxy

+0

请解释部件你确实认为自己明白,并确定你不明白的部分。 – philipxy

回答

0
select * from ((Orders inner join Shipment on Orders.oid = Shipment.Oid) 
inner join Order_Item on Orders.Oid = Order_Item.Oid) 
where Order_Item > 30 ; 

σ=选择

χ=跨产品

内加入做跨产品我们的表。 我该如何解释,我无法做出决定。

1

这是一个选择,这意味着您将只选择满足括号内条件的行。在这种情况下,您有多个条件,所有以^开头的条件都是SELECT()运算符的条件。

Orders,Shipment和Order_Item是您正在处理的表格。

你首先做了这些表的产物,这意味着你正在把每个表的每个元组与其他元组的所有元组合在一起。

之后,您将执行select操作,获得数量大于30的所有订单,这些订单已在订购当天发货。

+1

谢谢。那么剩下的列会是什么?它们将是所有三个表格(订单,装运和订单项目)中的列? – SummerDays

+0

难道没有一种更有效的方法来为此编写代数吗? – SummerDays

+0

@SummerDays 1.你必须告诉我们你的限制操作符被定义为什么样的关系。你从哪里得到这个表达?否则,我们不得不猜测,因为从给出的语法中不清楚。 2.在这方面定义“有效”。通常情况下,DBMS通过评估涉及代数运算符和值的组合的相同值表达式,以及非代数运算符和值以及状态(例如,重新排列表达式,例如使用索引)来计算表达式的值。 “效率”则取决于DBMS实施者所做的保证。 – philipxy