Hitachi

ノンストップデータベース HiRDB Version 10 解説


3.5.3 隠蔽

「従業員」についての情報では,個人的な内部情報(例えば,操作「報酬」で査定処理するための情報や,属性「入社年月日」の値など)は,直接アプリケーションからはアクセスできないようにすることが好ましいと考えられます。その理由を次に示します。

〈この項の構成〉

(1) 隠蔽レベル

HiRDBでは,抽象データ型の属性及びルーチンの宣言で隠蔽レベルを指定して,それらへのアクセスを制御できます。

隠蔽レベルには次に示す三つのレベルがあります。

  • PRIVATE

    その抽象データ型の定義内だけで,属性の値へのアクセス及びルーチンを使用できます。

    例えば,t_従業員型の属性「入社年月日」についてPRIVATEを指定することが考えられます。

    PRIVATEを指定するときには,サブタイプの定義内やアプリケーションから,その属性へのアクセス及びルーチンを使用できないということを意識して,指定する必要があります。

  • PROTECTED

    その抽象データ型の定義内及びその抽象データ型のサブタイプの定義内だけで,属性の値へのアクセス及びルーチンを使用できます。

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

  • PUBLIC

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

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

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

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

隠蔽レベル

アクセス元

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

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

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

アプリケーション

PUBLIC

PROTECTED

×

×

PRIVATE

×

×

×

(凡例)

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

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

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

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

[図データ]

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



目次