我正在尝试自学关系代数。我遇到了这个,想确切地理解它的含义。
𝜎(𝑂𝑟𝑑𝑒𝑟𝑠.𝑜𝑑𝑎𝑡𝑒= 𝑆ℎ𝑖𝑝𝑚𝑒𝑛𝑡.𝑆ℎ𝑖𝑝𝑑𝑎𝑡𝑎) ( 𝑂𝑟𝑑𝑒𝑟𝑠×𝑆ℎ𝑖𝑝𝑚𝑒𝑛𝑡×𝑂𝑟𝑑𝑒𝑟_𝐼𝑡𝑒𝑚)
∧(𝑂𝑟𝑑𝑒𝑟𝑠.𝑜𝑖𝑑=𝑆ℎ𝑖𝑝𝑚𝑒𝑛𝑡.𝑂𝑖𝑑)
⋀(𝑂𝑟𝑑𝑒𝑟𝑠.𝑂𝑖𝑑=𝑂𝑟𝑑𝑒𝑟𝐼𝑡𝑒𝑚.𝑂𝑖𝑑)
∧(𝑂𝑟𝑑𝑒𝑟_𝐼𝑡𝑒𝑚.𝑄𝑡𝑦>30)
第一行的这部分显示为上标:
(𝑂𝑟𝑑𝑒𝑟𝑠×𝑆ℎ𝑖𝑝𝑚𝑒𝑛𝑡×𝑂𝑟𝑑𝑒𝑟_𝐼𝑡𝑒𝑚)
这是一个选择,意味着您将仅选择满足括号内条件的行。在这种情况下,您有多个条件,^ 前面的所有条件都是 SELECT (𝜎) 运算符的条件。
Orders、Shipment 和 Order_Item 是您正在处理的表。
您首先要做这些表的乘积,这意味着您要获取每个表的每个元组,并将其与其他表的所有元组相结合。
选择后,得到所有数量大于30个且当天发货的订单。
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 ;
σ = 选择
χ = 叉积
内连接对我们的表进行了叉积。 我该怎么解释,我无法决定。