这两个关系是否兼容联合作战?

时间:2013-03-12 19:27:58

标签: database relational-database union relational-algebra

我不确定以下两个关系是否与联合兼容:

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

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

我想做联盟:Q U R.我可以吗?结果是什么?

4 个答案:

答案 0 :(得分:3)

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

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

EG:考虑以下关系:

  • (FirstName,LastName)
  • 国家/地区(姓名,人口)

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

答案 1 :(得分:1)

实际上,这两个关系与联合不兼容:它们具有不同数量的属性。经过一些研究后找到了答案。

答案 2 :(得分:0)

如果两个表具有相同数量的属性(列)并且相应的属性具有相同的数据类型(int,char,float,date等),则表示两个表是并发兼容的。相应的属性意味着两个关系的第一个属性,然后是第二个属性 上。

联合兼容:
答:(First_name(char),Last_name(char),Date_of_Birth(date))
B:(FName(char),LName(char),DOB(date))
两个表都有3个属性和相同的日期类型。

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

(第三个属性不同。)

答案 3 :(得分:0)

Check here ,以获取有关Union Compatibility的更详细定义

在您的情况下,您提到的两个关系不是联合兼容性,因为它们没有相同数量的属性[模式R具有一个属性,模式Q具有两个属性]
因此,您不能在这些模式上应用UNION操作。