SQL 解説書

構造タイプ

構造タイプ とは、 データベースに定義されている構造を持つユーザー定義のデータ・タイプのことです。 これには、名前が付けられている一連の属性 が含まれており、 それぞれにデータ・タイプがあります。 構造タイプには、一連のメソッド仕様も含まれています。

構造タイプは表、視点、または列のタイプとして使用することができます。 表または視点のタイプとして使用する場合、その表または視点は、 それぞれタイプ付き表 またはタイプ付き視点 となります。 タイプ付き表およびタイプ付き視点の場合、 構造タイプの属性の名前およびデータ・タイプは、 タイプ付き表またはタイプ付き視点の列の名前およびデータ・タイプになります。 タイプ付き表またはタイプ付き視点の行は、 構造タイプのインスタンスの表示と考えることができます。 列のデータ・タイプとして使用する場合、その列には該当構造タイプの値 (または、 下記のように、そのタイプにサブタイプがあれば、その値) が含まれます。 構造列オブジェクトの属性を取り出して処理するときには、メソッドを使います。

用語: スーパータイプ とは、サブタイプ という、 他の構造タイプが定義されている構造タイプのことです。 サブタイプはスーパータイプのすべての属性およびメソッドを継承し、 さらに属性およびメソッドを定義することもできます。 共通のスーパータイプに関連する構造タイプのセットはタイプ階層 と呼ばれ、 それより上位のスーパータイプを持たないタイプをそのタイプ階層のルート・タイプ と呼びます。

サブタイプという用語は、 タイプ階層において 1 つのユーザー定義の構造タイプおよびその下にあるすべてのユーザー定義の構造タイプを指して用いられます。 したがって、階層内における構造タイプ T のサブタイプは、 T と、T の下にあるすべての構造タイプになります。 構造タイプ T の厳密な意味でのサブタイプ とは、 タイプ階層で T の下にある構造タイプのことです。

タイプ階層内に再帰的タイプ定義を含めることには、いくつかの制限があります。 このため、許可されている特定タイプの再帰的定義を参照するために、 簡単な方法を考える必要があります。 以下の定義が使われます。

いずれかの属性タイプがそれ自体を直接にまたは間接的に使うように、 タイプを定義することはできません。 そのような構成を作成する必要がある場合、参照を属性として使うことを考慮してください。 たとえば、構造タイプ属性では、「管理職」が属性タイプ「従業員」である場合に、 「管理職」の属性を持つ「従業員」のインスタンスというものはあり得ません。 しかし、REF (従業員) のタイプを持つ「管理職」の属性はあり得ます。

他の特定のオブジェクトが、あるタイプを直接または間接的に使っている場合、 そのタイプを除去することはできません。 たとえば、表または視点の列が、タイプを直接または間接的に使っている場合、 タイプを除去することはできません。 タイプの除去を制限する可能性のあるオブジェクトすべてに関しては、 表 27 を参照してください。

構造タイプ列の値は、 可変長文字ストリングの使用制限で指定されている CLOB 値に適用される制限に従います。


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]