管理の手引き


すべての表の列を定義する

関係表の列を定義するには、次のようにします。

  1. 列の名前を選択します。

    表の各列の名前は、その表で固有であることが必要です。 列名の選択については、付録 A, 命名規則で詳しく説明されています。

  2. その列に対してどんなデータが有効かを指定します。

    データ・タイプ長さ に、 その列に有効なデータの種類と最大長を指定します。 データ・タイプは、データベース・マネージャーに用意されているデータ型 の中から選択することもできますし、独自にユーザー定義のタイプを作成す ることもできます。 DB2 によって提供されるデータ・タイプおよびユーザー定義のタイプについては、 SQL 解説書 を参照してください。

    データ・タイプのカテゴリーの例としては、数値、文字ストリング、 2 バイト (すなわちグラフィック) 文字ストリング、日時、および 2 進ストリングがあります。

    ラージ・オブジェクト (LOB) データ・タイプは、 文書、ビデオ、イメージ、音声などのマルチメディア・オブジェクトをサポートします。 これらのオブジェクトは、次のデータ・タイプを使用して実現されます。

    ラージ・オブジェクト・サポートをもっと理解するためには、 SQL 解説書 を参照してください。

    ユーザー定義タイプ (UDT) は、 既存のタイプから派生したタイプです。 既存のタイプと似たような特性でありながら、 別個の非互換タイプとみなされるものを定義することが必要となる場合があります。

    構造型 は、 データベースで定義される構造を持つユーザー定義タイプです。 構造型には、 それぞれがデータ・タイプを持つ名前付き属性 の順序列が含まれています。 構造型は、別の構造型のサブタイプ として定義されることがありますが、 この場合この別の構造型をスーパータイプ と呼びます。 サブタイプは、そのスーパータイプのすべての属性を継承し、 追加の属性を定義することもできます。 共通のスーパータイプに関連する構造型のセットはタイプ階層 と呼ばれ、スーパータイプを持たないスーパータイプは そのタイプ階層のルート・タイプ と呼ばれます。

    構造型は、表または視点のタイプとして使用することができます。 構造型の属性の名前とデータ・タイプは、オブジェクト識別子と共に、 このタイプ付き表 または タイプ付き視点 の列の名前とデータ・タイプになります。 タイプ付き表またはタイプ付き視点の行は、 構造型のインスタンスの表示として考えることができます。

    構造型は、表または視点の列のデータ・タイプとして使用することはできません。 アプリケーション・プログラムのホスト変数に、 構造型のインスタンス全体を回復させることもサポートされていません。

    参照タイプ は、構造型のコンパニオン・タイプです。 特殊タイプと同じように、 参照タイプは共通の表示を組み込みデータ・タイプの 1 つと共用するスカラー・タイプです。 この同じ表示は、タイプ階層のすべてのタイプで共用されます。 参照タイプの表示は、タイプ階層のルート・タイプが作成される時に定義されます。 参照タイプを使用する時は、構造型タイプはそのタイプのパラメーターとして指定されます。 このパラメーターは、その参照のターゲット・タイプ と呼ばれます。

    参照のターゲットは、常にタイプ付き表または視点の行です。 参照タイプを使用する時は、効力範囲 を定義します。 効力範囲は、 参照値のターゲット行を含む表 (ターゲット表 と呼ばれる)、 または視点 (ターゲット視点 と呼ばれる) を識別します。 ターゲット表または視点は、参照タイプのターゲット・タイプと同じタイプでなければなりません。 効力範囲付きの参照タイプのインスタンスは、 タイプ付き表またはタイプ付き視点の行 (参照タイプのターゲット行 と呼ばれる) を一意的に識別します。

    ユーザー定義タイプを互いに比較するためのルーチンを呼び出すには、 ユーザー定義関数 (UDF) を使用できます。 UDF は、SQL の組み込み関数によって提供されるサポートに対して拡張および追加を行い、 また組み込み関数が使える所ならどこでも使用できます。 UDF には次の 2 つの種類があります。

    たとえば、「ヨーロッパ式靴サイズ」と「アメリカ式靴サイズ」 という 2 つの数値データ・タイプがあるとします。 どちらのタイプも靴のサイズを表していますが、 大きさの単位が違うために互換性がなく、そのままでは比較できません。 ユーザー定義の関数を呼び出して、靴のサイズをどちらかに変換できます。

    ユーザー定義タイプ、構造型、参照タイプ、 およびユーザー定義関数をもっと理解するためには、SQL 解説書 を参照してください。

  3. どの列に省略時値が必要かを指定します。

    すべての行に意味のある値を入れることのできない列もあります。 これは次の理由によります。

    いずれの場合でも、ヌル値 (列の値が分からないか適用されないことを示す 特殊値) を入れるか、データベース・マネージャーやアプリケーションによ ってヌル値ではない省略時値が割り当てられるようにするか、のどちらかを 選択できます。

    ヌル値および省略時値についての詳細は、SQL 解説書 に説明があります。


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