データフォー

データフォー
初回リリース2001
安定版リリース
3.0 / 2012年2月 (2012年2月
書かれたC#
プラットフォーム.NET フレームワーク
タイプデータベースサーバー
ライセンスBSD
Webサイトalphora.com / dataphor

Dataphorは、オープンソースの真のリレーショナルデータベース管理システムRDBMS)と、それに付随するユーザーインターフェース技術です。これらを組み合わせることで、高度な宣言型ソフトウェアアプリケーション開発が可能になります。Dataphor Serverは独自のストレージエンジンを搭載していますが、仮想DBMS(フェデレーションDBMS)として動作させることも可能です。つまり、他のデータベースエンジンをストレージとして利用することも可能です。

Dataphorは、どのSQL製品よりもリレーショナル原理に準拠していることで高く評価されています。[ 1 ]

概要

Dataphorの目的は、複雑なソフトウェアアプリケーションの構築と保守における自動化のレベルを向上させることです。元々はフレームワークと呼ばれていましたが、Dataphorは独自のプログラミングおよびユーザーインターフェースパラダイムを備えた、よりソフトウェア開発プラットフォームとしての機能を提供します。

Dataphorは、大きく分けてDataphorサーバーとDataphorフロントエンドの2つのコンポーネントに分かれています。Dataphorサーバーの目的は、アプリケーションデータの定義、操作、整合性のための標準化された言語とランタイムを提供することです。フロントエンドは、ユーザーインターフェースの動的な生成と、WindowsまたはWebシンクライアントにおけるその表示を担います。

Dataphorは、SQLがリレーショナルモデルの重要な原則に違反している可能性があるため、 SQLを主要なデータベース言語として採用していません。DataphorのD4言語は、 Christopher J DateHugh DarwenのTutorial Dの原則に基づいていますが、 Pascalのような命令型構文を採用しています。

Dataphorは真のリレーショナルモデルを標榜していますが、SQLに見られるNULLの概念を取り入れています。これはリレーショナルモデルでは禁忌であると主張する人も多くいます。しかしながら、NULLと欠損情報の管理については、依然として議論が続いています。

Dataphor Serverのデータ管理機能に加え、DataphorにはWindowsおよびWebの「シン」クライアントを介してユーザーインターフェースを表示するためのツールが含まれています。Dataphorは、Dataphorコンパイラのリレーショナル推論機能を活用し、データモデルから完全なGUIフォームを直接生成することを可能にします。Dataphorのユーザーインターフェースの「生成」におけるユニークな点は、単なるベーステーブルではなく、任意のリレーショナル式(クエリ)に基づいて生成できることです。

真に関係性のある

Dataphorはリレーショナル原則への理論的準拠を目指しています。彼らは第三宣言の原則に忠実であり続けようと努めていますが、第三宣言が目指していたものから逸脱している箇所もいくつかあります。しかし、それはCoddの12のルールに違反するものではありません。例えば、彼らはヌル値を含んでいますが、彼らはヌル値を体系的に扱っていると主張しています。[ 2 ]

SQLに基づいて構築された多くのシステムは、コッドのルール9「論理データ独立性」の観点で見事に失敗していますが、Dataphorアプリケーションは論理レイヤーの変更に応じて自動的に変更されます。例えば、システムに新しい列が追加された場合、ユーザーが閲覧または編集できるように新しいフィールドを追加開発する必要はありません。

Dataphorに関する専門家の意見

ヒュー・ダーウェンは「The Askew Wall」と題した講演の中で、注目すべきプロジェクトとしてD4について言及しています。[ 3 ]クリス・デイトは、Dataphorを第三の宣言を実装しようとする製品として言及しています。[ 4 ]ファビアン・パスカルは、Dataphorを「真のリレーショナル」[ 5 ]であり、「SQLよりも優れている」[ 1 ]と呼んでいます。

歴史

1999年、POSシステム開発会社Softwise Incは、同じコードを何度も繰り返し記述していることに気づき、データベースアプリケーションを自動化するツールを探していました。しかし、求める機能を持つアプリケーションが見つからなかったため、社内にAlphoraという部門を設立し、開発者の一部にそのようなツールの開発を依頼しました。そのツールがDataphorです。これは、IBM Business System 12以来初の真のリレーショナルDBMSと言われています。Dataphorの開発は2000年直前に開始され、2001年にバージョン1.0がリリースされました。

2008 年初頭、Alphora の名前と Dataphor 製品は、 2007 年に Softwise を退社した Dataphor の元設計者によって設立されたDatabase Consulting Groupに買収されました。買収後、Dataphor はBSD ライセンスの下でオープンソースとして再ライセンスされました。

テクノロジー

DataphorはMicrosoft .NET Frameworkを活用し、完全にC#で記述されています。以下は、Dataphorの様々な技術コンポーネントの概要です。

データファーサーバー

Dataphor Server には、次のようなコンポーネントがあります。

  • 呼び出しレベルのインターフェース - セッション管理、プロセス スケジューラなど。
  • データ ディクショナリ カタログ - すべてのテーブル、ビュー、演算子、制約、参照、およびその他のスキーマ オブジェクトが含まれます。
  • D4 スキャナー、パーサー、エミッター、およびコンパイラ。
  • D4 ランタイム - リレーショナルおよびスカラー処理を含む
  • ストレージ統合層 - SQLのさまざまな方言へのリアルタイム翻訳

言語

Dataphorは「RealSQL」と呼ばれるSQLフレーバーをサポートしていますが[ 6 ] 、 Dataphor内での使用にはD4が推奨言語であり、DDLDMLステートメントをサポートしています。D4クエリは、演算子名を記述したリレーショナル代数式のように見えます。例えば、

SQL文同等のD4ステートメント
SELECT*FROMUserselect User
SELECT*FROMUserNATURALJOINDepartmentselect User join Department
SELECTDISTINCTNameFROMUserselect User over { Name}
構文

D4 はPascalに似た構文を持っています。D4 のサンプルコードは通常UpperCamelCaseで記述されており、これは Pascal やDelphiシステムでも広く使用されています。

ほとんどのクエリ言語と同様に、D4にはデータ定義言語(DDL)とデータ操作言語(DML)があります。また、D4には手続き型コード用の 命令型言語もあります。

データ定義言語

DataphorのDDLは他のDBMSと多くの類似点を持っていますが、明らかにPascal風の工夫が施されています。制約など、多くのDDL操作ではリレーショナル宣言文を使用できます。これは、 SQLで使用される手続き型の操作よりも優れていると多くの人が考えています。

データ操作言語

DML 構文は一見SQL構文に似ているように見えるかもしれませんが、D4 はリレーショナル代数と密接な関係があるため、構文の定義がより明確になり、ほとんどのユーザーは SQL よりも DML 構文を好みます。

命令形言語

D4の命令型言語は、多くの点でPascalと非常によく似ています。最大の違いは、D4ではDDL文とDML文を通常の手続き型コード内で実行できることです。

歴史

D4は、その言語を使用するシステムである、似た響きのDataphorにちなんで名付けられました。これらの名前が決定されてからしばらく経った後、開発者たちはTutorial Dを発見し、それがD4という名前と偶然一致していることに気付きました。Tutorial DとThe Third Manifestoを発見して以来、開発者たちはThe Third ManifestoをDataphorとD4の開発の指針として活用してきました。それ以来、ヒュー・ダーウェンは「The Askew Wall」と題した講演の中で、D4を注目すべきプロジェクトとして言及しています。[ 3 ]

フェデレーテッドストレージエンジン

Dataphorは独自のストレージエンジンを搭載していますが、他のRDBMSに接続してストレージエンジンとして使用することもできます。Dataphorは以下のDBMSをストレージエンジンとして使用できます。

Dataphorは、Oracle、IBM Db2、Microsoft SQL Server、PostgreSQL、MySQLなどのストレージエンジンに、単一の統一言語でアクセスできます。[ 8 ]

フロントエンドライブラリ

Dataphor Frontendライブラリは、動的に生成されたフォーム、または事前に設計された静的フォームの提供を可能にします。このライブラリは、Form(「library」と「name」)やDerive(「D4式」と「form type 」)といったD4関数(D4では演算子と呼ばれます)の標準セットとして公開されます。生成されたフォームは、Dataphor Form Document(DFD)と呼ばれるXML方言で記述されます。フォーム記述は高レベルで、クライアントプラットフォームに依存しないユーザーインターフェースの一般的な記述で構成されています。

データフォリア IDE

Dataphoria は、以下の統合開発環境です。

  • D4の編集
  • D4のアドホック実行
  • フォームの作成、編集、カスタマイズ(継承)
  • ライブラリの管理
  • 実行計画の分析

Windowsクライアント

Dataphor Windowsクライアントは、特定のアプリケーション向けに事前にプログラムされていないという意味でシンクライアントです。WindowsクライアントはDataphorサーバーへの接続を確立し、そこから(D4を介して)フォーム定義を要求し、アプリケーションデータの操作を調整します。DFDドキュメントは、 DFDの 概念的なDOMを維持しながら、具体的なWindowsフォームコントロールに解釈されます。

ウェブクライアント

Dataphor Webクライアントは、ASP.NET Webアプリケーションとして実装されたDataphorクライアントの基本実装です。Windowsクライアントと同様に、WebクライアントはDataphorサーバーのインスタンスに接続し、フォームとデータを要求します。ただし、DFDをWindowsコントロールに同期させるのではなく、Webクライアントはブラウザに表示されるHTMLをレンダリングします。このように、Web「クライアント」はDataphorサーバーに対してはクライアントですが、エンドユーザのWebブラウザに対してはサーバーです。

参考文献