• 検索結果がありません。

隠蔽

ドキュメント内 HiRDB Version 10 解説 (ページ 150-154)

勤続年数が 10 年以上の社員の社員番号と氏名を検索する SQL は,次のように記述できます。

3.5.3  隠蔽

この SQL の実行では,t_従業員型の値に対しては,t_従業員型に定義されたルーチン「報酬」が実行さ れ,t_営業部員型の値に対しては,t_営業部員型に定義されたルーチン「報酬」が実行されます。

なお,上記の SQL のように,アプリケーションではルーチンが多重定義されているかどうかを意識しない でルーチンを呼び出せます。また,多重定義によってルーチンを追加した場合でも,アプリケーションを 変更しないで SQL を実行できるようになります。

例えば,t_従業員型のルーチン「報酬率」について PROTECTED を指定することが考えられます。こ れによって,t_従業員型のサブタイプ t_営業部員からは,属性「入社年月日」を直接参照することな く,「報酬率」の処理内容(入社年度から勤続年数を算出し,その値を基に報酬率を算出していること など)を知らなくても,ルーチン「報酬率」を実行でき,報酬率を算出できます。

PUBLIC

PRIVATE,PROTECTED のような限定はなく,その抽象データ型やサブタイプ以外の抽象データ型 の定義内やアプリケーションからも,属性の値へのアクセス及びルーチンを使用できます。

例えば,ルーチン「勤続年数」のようにアクセスに制限が不要な場合に,PUBLIC を指定することが 考えられます。

隠蔽レベルと抽象データ型の値の属性へのアクセス及びルーチンの使用可否を次の表に示します。

表 3‒9 隠蔽レベルと抽象データ型の値の属性へのアクセス及びルーチンの使用可否

隠蔽レベル アクセス元

その抽象データ型の定 義内

サブタイプの抽象 データ型の定義内

左記以外の抽象デー タ型の定義内

アプリケーション

PUBLIC ○ ○ ○ ○

PROTECTED ○ ○ × ×

PRIVATE ○ × × ×

(凡例)

○:抽象データ型の属性の値へのアクセス及びルーチンを使用できます。

×:抽象データ型の属性の値へのアクセス及びルーチンを使用できません。SQL エラーとなります。

ある抽象データ型 T に対する,隠蔽レベルとアクセス可否の関係を次の図に示します。

3. データベースの論理構造

図 3‒43 隠蔽レベルとアクセス可否の関係

抽象データ型を定義した表の作成,設計方法については,マニュアル「HiRDB システム導入・設計ガイ ド」を参照してください。抽象データ型を定義した表のデータ操作方法については,マニュアル「HiRDB UAP 開発ガイド」を参照してください。

3. データベースの論理構造

4 データベースの物理構造

この章では,データベースの物理構造(セグメント及びページ)について説明します。

ドキュメント内 HiRDB Version 10 解説 (ページ 150-154)