5

我不确定以下两种关系是否适合联合:

R: <- schema name
B
1
2
2
3
3

和:

Q: -< schema name
A  B
5  1
6  1
4  2
3  4

我想做工会:QU R. 我可以吗?结果是什么?

4

4 回答 4

7

联合运算符要求这两个关系是联合兼容的。这意味着它们需要具有相同的属性集。请注意,这个概念比共享相同数量的属性略远。这是因为它还考虑了属性的内容。

这并不意味着两个属性应该具有相同的名称,而是两个属性应该具有相似的“数据类型”,而且我真的在这个示例中远离关系代数。在关系代数中没有这样的东西,但我认为如果你有编程背景,你会很容易通过思考这个概念来获得它。

EG:考虑以下关系:

  • (名字,姓氏)
  • 国家(名称、人口)

在这种情况下,Person 和 Country 不是联合兼容的,因为它们不共享同一组属性,即使它们共享相同数量的属性。

于 2013-03-13T03:12:02.283 回答
1

事实上,这两个关系对于联合是不兼容的:它们具有不同数量的属性。经过更多研究后找到了答案。

于 2013-03-12T20:06:24.090 回答
0

如果两个表具有相同数量的属性(列)并且对应的属性具有相同的数据类型(int、char、float、date 等),则称两个表是联合兼容的。对应属性是指两个关系的第一个属性,然后是第二个,依此类推。

union compatible:
A: (First_name (char), Last_name(char), Date_of_Birth(date))
B: (FName(char),LName(char),DOB(date))
两个表都有 3 个属性并且日期类型相同。

不兼容:
A: (First_name (char), Last_name(char), Date_of_Birth(date))
B: (FName(char),LName(char),PhoneNumber(number))

(第三个属性不同。)

于 2015-08-21T19:40:32.230 回答
0

在此处查看Union Compatibility的更详细定义

在您的情况下,您提到的两个关系不是Union Compatibility,因为它们没有相同数量的属性[模式R有一个属性,模式Q有两个属性]
所以你不能申请对这些模式的 UNION 操作。

于 2018-09-03T04:20:54.120 回答