OpenFrame RDBIIの紹介
本書では、OpenFrame RDBII(以下、RDBII)の機能および使用する前の準備について説明します。
1. 概要
RDBIIは、OpenFrameでCOBOLなどの高水準言語でリレーショナルデータベースを索引ファイルとして使用できるようにするモジュールです。RDBIIモジュールを使用すると、富士通のSymfowareの機能のうち、リレーショナルデータベースを索引ファイルとして使用することができます。RDBIIを使用して表やビューなどのオブジェクトを作成すると、これをSQLを使用してリレーショナルデータベースとして直接使用することが可能であり、VSAM索引ファイルとして使用することもできます。
2. RDBIIの機能
RDBIIは、データベースの構成要素を作成または削除する管理機能と、これを索引ファイルとして使用できる機能を提供します。さらに、ユーザーのアクセス権を制限または解除することもできます。
-
データベース構成要素の管理
ユーザーは、データベースの構成要素であるメタデータベース、パブリックデータベース、スキーマ、表、ビュー、そして索引を作成または削除することができます。OpenFrameでは、JYQDDUTYユーティリティを使用して構成要素を作成または削除できます。
-
リレーショナルデータベースを索引ファイルとして使用
表やビューをVSAM索引ファイルとして使用できます。アプリケーションでは、索引ファイルに対してOPEN、READ、WRITE、REWRITE、DELETE、START、CLOSEを実行できます。
-
データベースへのアクセス権を制限または解除
OpenFrameでは、AIMコマンドを使用してデータベースへのアクセス権を制限または解除できる機能を提供します。
3. RDBIIの処理プロセス
アプリケーションからRDBIIへのI/O処理要求は、以下のように処理されます。
-
アプリケーションでRDBII索引ファイルへのI/O処理を要求します。
-
ファイルハンドラーは、OpenFrameに処理を要求します。
-
RDBIIでは、I/Oを処理するためにSQL DML文に変換し、RDBMSに処理を要求します。
-
RDBMSでは受け取ったSQL文を処理し、その結果を返します。

4. RDBIIを使用するための準備
以下は、RDBIIを使用するための準備事項です。
-
メタデータ表の作成
-
RDBIIのためのボリュームの作成
-
EBCDIC順に並べ替える
4.1. メタデータ表の作成
RDBIIでは、RDBIIの構成要素情報を管理するためにRDBMSの表を使用してメタ情報を管理します。RDBIIでは、ユーザーが追加または削除した構成要素に関する情報を、メタデータ表を使用して自動的に管理しています。これらのメタデータ表は、baseinitツールのcreateを実行する場合に生成されます。
以下は、メタデータ表についての説明です。
-
OFM_RDBII_META_MDB
メタデータベースの作成時に指定した情報を管理します。
-
OFM_RDBII_META_PDB
パブリックデータベースの作成時に指定した情報を管理します。
-
OFM_RDBII_META_SCHEMA
スキーマの作成時に指定した情報を管理します。
-
OFM_RDBII_META_TABLE
表の作成時に指定した表の基本情報を管理します。
-
OFM_RDBII_META_TABLE_COLUMNS
表の作成時に指定した表の列情報を管理します。
-
OFM_RDBII_META_VIEW
ビューの作成時に指定したビューの基本情報を管理します。
-
OFM_RDBII_META_VIEW_COLUMNS
ビューの作成時に指定したビューの列情報を管理します。
-
OFM_RDBII_META_INDEX
索引の作成時に指定した索引の基本情報を管理します。
-
OFM_RDBII_META_INDEX_COLUMNS
索引の作成時に指定した索引キー列情報を管理します。
-
OFM_RDBII_META_FILE
索引ファイルの作成時に指定した基本情報を管理します。
-
OFM_RDBII_META_FILE_ACCESS
索引ファイルの作成時に指定したパス情報を管理します。
各表の詳細については、RDBIのメタデータ表を参照してください。 |
4.2. RDBIIのためのボリュームの作成
RDBIIの機能のうち、リレーショナルデータベースを索引ファイルとして処理するには、JYQDDUTYユーティリティを使用して索引ファイルとして作成する必要があります。索引ファイルは、非VSAMファイルとして作成しますが、その際、割り当てるデータセットが一般的な非VSAMデータセットなのか、RDBIIデータセットなのかを判断する必要があります。
RDBIIでは、データセットがOpenFrame環境設定のdsサブジェクトのRDBII_DATASETセクションのRDBII_VOLSERキーに指定したVOLSERに存在していれば、RDBIIデータセットとして処理します。したがって、RDBIIデータセットのためのボリュームが必要となります。詳細については、OpenFrame Base『環境設定ガイド』を参照してください。
$ ofconfig list -n NODE1 -s ds -sec RDBII_DATASET -k RDBII_VOLSER -l
=====================================================================================
NODE : NODE1
SUBJECT : ds
SECTION : RDBII_DATASET
KEY : RDBII_VOLSER
TYPE : 2
DEFAULT_VALUE : RDBII
VALUE : RDBII
AVAIL_VALUE :
DESCRIPTION : Specify RDBII volume. if dataset exist in specifed volume,
it regards RDBII dataset.
=====================================================================================
以下は、RDBIIデータセットであることを明示するために、RDBIIデータセットを格納するボリュームを追加する例です。
volmgr define device -dn 0001 -dt 3380 -ms 2048 volmgr define volume -v RDBVOL -dn 0001
4.3. EBCDIC順にソート
RDBIIでは、基本的にASCIIデータとして処理しています。表の作成時に指定するUNQIUE制約または索引の作成時にASCIIデータを基準にソートします。順次検索を処理するときは、ユーザーが指定したキー情報に基づいて、索引に格納された順序でデータを読み込みます。
EBCDIC順に処理する場合は、表の作成時のUNIQUE制約または索引の作成時にEBCDIC順に作成する必要があり、そのためにはRDBIIを使用する前にいくつかの設定を行います。ただし、途中でKEYSEQを変更することはできません。OpenFrame環境設定のdsサブジェクトのRDBII_DATASETセクションのKEYSEQキーのVAUE項目を変更すると、EBCDIC順に処理することができます。詳細については、OpenFrame Base『環境設定ガイド』を参照してください。
以下は、KEYSEQをEBCDIC順に処理するために環境設定を変更した例です。
$ ofconfig list -n NODE1 -s ds -sec RDBII_DATASET -k KEYSEQ
=====================================================================================
SUBJECT | SECTION | KEY | VALUE
=====================================================================================
ds | RDBII_DATASET | KEYSEQ | EBCDIC
=====================================================================================
ofconfig list -n NODE1 -s ds -sec RDBII_DATASET -k KEYSEQ -l ===================================================================================== NODE : NODE1 SUBJECT : ds SECTION : RDBII_DATASET KEY : KEYSEQ TYPE : 2 DEFAULT_VALUE : ASCII VALUE : EBCDIC AVAIL_VALUE : DESCRIPTION : RDBII KEY SEQUENCE =====================================================================================