A−VXのデータベース(1)
- 1.A−VXに載っているデータベース
-
A−VXには標準で、A−VX RDBという名前のデータベースが載っています。
リレーショナルデータベースなので、SQL文も普通に使用できます(あまり使いませんけど・・)し、テーブルとかビューもあります。普通のデータベースです。シンプルですが一通りの機能は持っています。
テーブル設計も項目を洗い出して、属性を決めて、コード化して、正規化する・・のように、Oracleとかのオープン系のRDBと全く同じ手法です。
それではA−VX RDBの特徴は何かというと、A−VXと頭についているように、A−VXというOS(というかミドルウェア?)と親和性が高いということ。A−VX上で使用するならば、A−VX RDBが一番しっくりきます。
もう一つはCOBOLからは、SQLを使わずに、普通のファイルのようにREAD/WRITE文で読み書きできるということです。実際A−VXのCOBOLプログラムは、たいていの場合、SQLではなくREAD/WRITE文でデータベースにアクセスしているようです。
はるか昔、まだRDBが無い頃、オフコンを含めてコンピュータのソフトウェアは普通のファイル(順編成とか索引編成とか)を使ってデータ処理を行っていました。つまり普通のファイルに対してREADやWRITEするようなプログラムが既にたくさんあったということです。
RDBができたとき、もしSQLでしかアクセスできなかったとしたら、これらのたくさんのプログラムをRDB用に変更するには、全てSQL用に書き直さなければなりません。これはプログラムの構造も変えなければならないのでものすごく大変です。そこで普通のファイルからRDBにデータを移してもプログラムを修正する必要がないよう(あるいは最低限の修正で良いよう)に、普通のファイルのようにアクセスできるようになっているようです。
はるか昔、昭和時代(A−VX RDBができる前)には、PALETという名前のデータベースもありましたが、これは今はありません。
- 2.A−VX以外からA−VX RDBを使用する
-
A−VX RDBは、A−VX上のソフトウェアからは普通に利用できます。
A−VX以外からA−VX RDB内のデータにアクセスする手段も用意されています。
まず、A−VX RDB/FILEアクセスキット+RDB/FILEアクセスコントロールで、VBやVC++で作ったプログラムやExcelやAccessのVBAでアクセスできます。例えば、Excelに直接A−VX RDBからデータを取り込んで処理するといったことも可能です。
A−VX RDBサーバやA−VX/RDBアクセスソフトウェアとPC RDBサーバというソフトを使うと、ODBCやJDBCでA−VX RDBにアクセスできます。A−VXの世界では比較的メジャーなイーストのSkylinkというソフトは、これらを使って、A−VX RDBにアクセスしています。
DBレプリケーションという機能を使うと、OracleやSQLServerとデータの同期ができる(但し、A−VXからオープン系DBへの片方向のみ)、A−VX RDB→Oracle→Windowsとかのソフトウェアのようにデータをアクセスできるとか、バッチを組んで#NFCNVやFilvertというソフトでWindows側にデータを出力してからオープン側で処理するとか、A−VXの標準機能であるサーバファイルアクセス機能を使って、A−VX COBOLでWindows側にデータを出力するプログラムを自作するとか、いろいろな方法があります。
他に使えそうなソフトもA−VX/APアクセスオブジェクトとか、RDB/EUF−WEBとか、BizConnectorとか、RDB/FILEアクセスコントロールforWEBとか、NT*A−VX RDB連携ユーティリティとか似たような名前のソフトがいっぱいあって、全部は私も把握していません。
なお、以上に挙げたソフトウェアは、ほとんど別売りのソフトウェアです。A−VX RDB自体は、A−VX本体に付属していますが、それを利用するソフトウェアは別売りになっていて、それで儲けるというビジネスモデルみたいです。
- 3.A−VX RDB以外のデータベースを使用する
-
ちょっと面倒ですが、A−VX内のプログラムからA−VX RDB以外のデータベースをアクセスできます。
例えば、別サーバのOracleやSQLServerです。
OpenDatabaseAccessKitを使うと、A−VXのCOBOLで作ったプログラムからOracleやSQLServer上のデータにアクセスできます。(このOpenDatabaseAccessKitというものも別売りのソフトです。)
ただこれは実際に運用してみると手間がかかって結構面倒みたいです。