2

如果我有以下表格并且我在关系代数中执行R1/R2,结果是A值为1还是3的表格?我有点困惑,因为我知道3将是一个结果,因为它包含5和1,但结果1有B的附加值,除了匹配的,所以这也包括在内,为什么?关系代数 - 除法

 R1   R2 
    +---+---+ +---+ 
    | A | B | | B | 
    |---|---| |---| 
    | 1 | 1 | | 5 | 
    | 1 | 2 | | 1 | 
    | 1 | 3 | +---+ 
    | 1 | 4 | 
    | 2 | 3 | 
    | 2 | 4 | 
    | 3 | 5 | 
    | 3 | 1 | 
    | 1 | 5 | 
    | 5 | 7 | 
    | 5 | 8 | 
    +---+---+ 
+2

取决于您是否想要使用剩余分区或精确分区的分区。参见[Divided We Stand:关系部门的SQL](http://www.simple-talk.com/sql/t-sql-programming/divided-we-stand-the-sql-of-relational-division/) 。在关系代数中,AFAIK的余数是[通常的解释](http://coronet.iicm.tugraz.at/Dbase1/scripts/rdbh06.htm)。 –

+0

@MartinSmith,这就是我曾经想过的,关系代数与余数运算分割。只是想检查! – mark

回答

2

在关系数据库中划分的定义为:
R1(Y,X)DIVIDE R2(X)= R1 [Y] MINUS((R1 [Y] TIMES R2)减去R1)[Y]

记住R1 [Y]是“Y上的PROJECT R1”的另一种形式。
所以结果是{1,3}