3

我被困在“SQL 和关系理论”一书的某一点上,它与关系属性可以采用的类型有关。问题是这样的:

关系属性可以是任何类型的规则有例外,其中一个是如果关系 R 是 T 类型,则 R 的属性本身不能是 T 类型。

为什么?是不是因为关系 R 将属于“关系 [名称]”类型,所以属性不能属于这种类型?

4

2 回答 2

1

这是因为定义这样的关系会立即创建无限递归,甚至在您尝试将任何数据放入其中之前。关系的标题必须是有限的。

于 2012-12-17T02:06:28.990 回答
1

考虑这样的事情:

create table address {
    id int,
    name varchar(20),
    details address -- the address relation has an attribute that is another of itself
}

定义将无限递归。

于 2012-12-17T05:12:42.480 回答