CHAPTER 1: はじめに




1.1 概要

Empressは、1983年以来、 データベースアプリケーションの融通性を大きく向上する ユーザー定義関数(UDFs)の追加により、、 クエリ言語および4GLの範囲(機能)を拡張するための 機能を開発者に提供してきました。 ユーザー定義関数は、 計算および字句解析関数をはじめ、洗練したパターンマッチング、 統計のための計算処理、イメージおよびサウンドデータの処理などを行うために 標準 C プログラミング言語で書くことができます。 現在、パーシステント・ストアード・モジュールと呼ばれる ユーザー定義関数の上位レベルのインターフェイスは、 ANSI 標準委員会によって定義されていますが、 Empressは、この機能を標準が定義される前から提供しています。 Empressは、以下の2つのユーザー定義関数のインターフェイスをサポートします。

  1. データ辞書に定義するSQL パーシステントストアードモジュール(SQL/PSM)(ダイナミックリンク)

  2. カーネルレベルでキーワードテーブルに関数名を定義するEmpressライブラリ(スタテックリンク)

ユーザー定義関数の使用は、Empressの組み込み関数と同様で、 Empress SQLEmpress 4GLEmpress Report Writer Empress Hypermediaから呼び出すことができ、 また、mrの expression ルーチンによる式の構築を通して C プログラムからも使用することができます。

このマニュアルでは、ユーザー定義関数の追加による Empress機能拡張の方法と SQL/PSM と Empress ライブラリメソッドの使用手順を説明します。

このマニュアルを通して、以下の規約が使用されます。



1.2 SQL パーシステントモジュールとしてのユーザー定義関数

パーシステントモジュールは、SQL-92 ANSI/ISO 標準への2番目の追加で、 ANSI/IEC 9075-4:1996 「Information Technology - Database Languages - SQL - Part 4: Persistent Stored Modules.」 に定義されています。 これは、強力なアプリケーション開発ツールをはじめ、 SQL3 のオブジェクト指向機能のための基盤サポートも提供します。 Empressの パーシステントストアードモジュール機能は次の実装に基づいています。

Empress パーシステントストアードモジュールは、 ユーザー定義関数およびプロシージャ、トリガーを含む、 動的なローダブルライブラリのセットです。 関数およびプロシージャ(これらはルーチンとして関係付けられます。)は、 モジュールとしてデータベースに格納され、また、 スキーマ(テーブル)のオブジェクトとして格納されます。 これらのモジュールは、データベースに格納されるように永続的で、 非永続的なメディアであるメモリーに格納されることとは反対になります。

パーシステントモジュールは、SQL文から 関数およびプロシージャを発行することができるように Cホスト言語で記述します。 また、 簡単にPSM オブジェクトの追加、更新、削除するための 新しいData Definition Language (DDL)文を 追加しました。

1.3 カーネルレベルでのEmpress ライブラリとしてのユーザー定義関数

カーネルへの直接のUDF の定義は、PSM 実装の下層においての ユーザー定義関数を作成するEmpressの方法になります。 PSM は、非常に簡単であり、UDFを作成する方法として好ましいにもかかわらず、 Empressは、カーネルレベルインターフェイスを利用できるものとし、 このインターフェイスを使用することを好むユーザーのためのドキュメント を提供します。 カーネルレベルインターフェイスが維持されることはまた、 パーシステントストアードモジュールの内部実装に興味をもつ ユーザーに役に立ちます。

開発者に次のことを許可するEmpressディストリビューションに含まれる 4つのソースファイルのテンプレートがあります。

ソースファイルは、 ユーザー定義関数の定義のための必要なエントリを含めるために 修正することが必要になります。 Empressが関数を認識するために修正されたソースファイルは、 コンパイルする必要があり、 これにより生成されたオブジェクトファイルは、 Empressライブラリにアーカイブされ、いくつかの実行モージュールは 再ビルドする必要があります。