6.7 オブジェクト・ビューに対するオブジェクト識別子

オブジェクト・ビューの中で、行オブジェクトを指すポインタ(REF)を作成できます。ビューのデータは永続的に格納されるわけではないため、オブジェクト識別子として使用される個々の値を指定する必要があります。オブジェクト識別子を使用すると、オブジェクト・ビューにおけるオブジェクトを、オブジェクト・キャッシュ上で参照し、確保することができます。

このビューがオブジェクト表またはオブジェクト・ビューに基づいている場合には、すでに各行に対応付けられたオブジェクト識別子があり、これを再利用できます。このためには、WITH OBJECT IDENTIFIER句を省略するか、またはWITH OBJECT IDENTIFIER DEFAULTを指定します。

ただし、行オブジェクトをリレーショナル・データから合成する場合は、他の値セットを選択する必要があります。

主キーに基づいたオブジェクト識別子を指定できます。この場合、行オブジェクトを識別する一意のキーの集合が、そのオブジェクトの識別子になります。値が重複すると、オブジェクト参照時に問題が発生することもあるため、これらの値はビューから選択された行内で一意である必要があります。

  • WITH OBJECT IDENTIFIER句を使用して作成されたオブジェクト・ビュー

    WITH OBJECT IDENTIFIER句を使用して作成されたオブジェクト・ビューは、主キーから導出されたオブジェクト識別子を持ちます。

    たとえば、「オブジェクト・ビューのシングルレベル・コレクション」で説明したオブジェクト型dept_tおよびオブジェクト・ビューdept_viewの定義について考えます。

    基礎となるリレーショナル表にdeptnoが主キーとして入っているため、各部門行は一意の部門番号を持ちます。このビューでは、deptno列がオブジェクト型のdeptno属性になります。ビュー・オブジェクト内でdeptnoが一意であることがわかれば、これをオブジェクト識別子として指定できます。

  • WITH OBJECT IDENTIFIER DEFAULT句を使用して作成されたオブジェクト・ビュー

    WITH OBJECT IDENTIFIER DEFAULT句を指定した場合、オブジェクト識別子は、基礎となる表またはビュー定義に応じてはシステム生成または主キー・ベースになります。

関連項目: