リレーショナル属性が取ることができる型に関連する本「SQL and Relational Theory」のある時点で立ち往生しています。質問はこれです:
関係属性はどのような型にもなり得るという規則には例外があり、そのうちの 1 つは、関係 R が型 T である場合、R の属性自体が型 T であってはならないというものです。
なんで?リレーション R が「リレーション [name]」タイプになるため、属性をこのタイプにすることはできませんか?
リレーショナル属性が取ることができる型に関連する本「SQL and Relational Theory」のある時点で立ち往生しています。質問はこれです:
関係属性はどのような型にもなり得るという規則には例外があり、そのうちの 1 つは、関係 R が型 T である場合、R の属性自体が型 T であってはならないというものです。
なんで?リレーション R が「リレーション [name]」タイプになるため、属性をこのタイプにすることはできませんか?
これは、そのような関係を定義すると、データを入れようとする前であっても、即座に無限再帰が作成されるためです。リレーションの見出しは有限でなければなりません。
次のようなことを考えてみましょう:
create table address {
id int,
name varchar(20),
details address -- the address relation has an attribute that is another of itself
}
定義は無限に再帰します。