Paradox (データベース)

Paradox（パラドックス）は、現在はコーレルが保守している関係データベース管理システム (RDBMS) 。DOS版はAnsa Softwareが開発し、Windows版はボーランドが1992年にリリースした。

 Paradox for DOS 
Paradox for DOSは、Richard SchwartzとRobert Shostakが開発したRDBMSで、1985年に彼らが創業したAnsa Softwareがリリースした。1987年9月、ボーランドがAnsa Softwareを買収し、Paradox/DOS 2.0も入手した。3.5までは1.0からの拡張だが、4.0と4.5はBorland C++で書き直されてGUI対応し、拡張メモリアクセス方法も変更されている。

Paradox/DOSは1980年代末から1990年代初めにかけてそれなりに成功を収めた。当時は dBASEとそのクローンである xBase（FoxPro、Clipper）が市場を占めていた。その他の競合製品としては、Clarion、DataEase、R:Base、Dataflexなどがある。

Paradox/DOS の特筆すべき機能は以下の通り。

 AIエンジンによる視覚的な 例示による問い合わせ (QBE, Query by Example) 実装。
 メモリ利用の効率性 - テーブルやインデックスをキャッシュすることで、最適化に技量を要するxBaseに比べて高速化が簡単であるただし、メモリ管理は初期のVCPI準拠であり、Paradox 4.5はDOSエミュレータやWindows 95などの仮想DOS環境では動作できない。
 画期的なプログラミング言語 Paradox Application Language (PAL) が使える。
 テキストユーザインタフェースのメニューやウィンドウがデフォルトのインタフェースである（dBASEはコマンド行インタフェースがデフォルトで、その上に複雑なメニュー層を実装していた）。

 Paradox for Windows 
Paradox for Windowsは別の開発チームが開発した全く異なる製品である。DOS版の特徴である QBE やデータベースエンジンはDOSからほぼそのまま移植されているが、言語がPALからObjectPALに変わり、フォームおよびレポートの作成にGUIが導入された。ObjectPALは議論の的となったが、PALはキー押下を記録することに基づいていたためWindowsでは全く異なる方式が必須だった。代わりにHyperCardのアイデアに基づいたオブジェクトベースの言語とした。フォーム及びリポートの設計には、デバイス独立なスケーリングを使い、詳細レイアウトのためにズーム可能である。AltoとSmalltalkにならってマウスの右クリックでフォームとレポートに関するプロパティにアクセスできる。これは最近のWindowsプログラムでは一般的なインタフェースである。ObjectPALは視覚的オブジェクトと対応していて、やはり右クリックで見ることができる。プロパティ表示とレイアウトツールは画面上に固定することができる。これはNeXTにならったもので、今ではWindowsプログラムで一般的である。

当初の開発ではC言語でマクロを駆使してオブジェクト指向的なコードを書いていた。その後Turbo C++が利用可能になると、残りはC++で書くようになった。1.0リリースまでの製品マネージャはJoe Duncanだった。開発及び品質保証を含めてチームは総勢30名だった。

Paradox for Windows は Quattro Pro for Windowsと密接に連携したプロジェクトで、1990年春からWindows 3.0のベータ版を使って開発がスタートした。当初の計画より1年間開発が遅れ、1993年初めごろリリース可能となった。遅れた要因は色々あるが、大幅な書き換えであったこと、オブジェクト指向を初めて採用したこと、GUIを導入したこと、新しいオペレーティングシステムを使ったことなどが考えられる。この遅延により、マイクロソフトはAccessをParadoxの数ヶ月前に出荷でき、市場での勝利を得た。

1990年、ボーランドは DOS および Windows 向けの xBase も開発しており、1992年に出荷を予定していた。1992年初めごろ、アシュトンテイトがWindows版の開発が困難な状況に陥ったのを知り、ボーランドは計画を変更してアシュトンテイトを買収し、dBASE の公式な後継を出荷することにした。アシュトンテイト買収にともなってInterBaseを入手したため、ボーランドは Paradox/Windows がInterBaseのデータベースにもアクセスできるようにすることを決め、データベースエンジンとのインタフェースとしてIDAPIを策定した。

この買収によって方針転換が必要になった。Paradoxはこれまで dBASEと競合しており、Paradox/Windowsは開発者指向の市場にシフトすることでdBASEとは異なる方向を目指す方針だった。しかしdBASEを入手したためその方針は適切ではなくなり、より一般の使いやすさを指向した市場を目指すことになった。しかし、既に開発はかなり進んでいて、そこからエントリーレベル市場に転換することは不可能だった。Access は1992年のクリスマスにリリースされ、その市場を獲得した。それでもParadox/Windowsは健闘した。しばらくするとボーランドではアシュトンテイト買収による悪影響が出始めた。多くの製品開発が中止され、痛みを伴うリストラが敢行され、買収の中心であった dBASEプロジェクトも技術的理由で中止となり、ボーランドの売り上げが低下し、早急なdBASE for Windowsの開発が必要となった。ボーランドは幅広い製品を販売するだけの体力を失った。dBASE for Windows がリリースされたときに置換するという方針でParadoxは積極的にはマーケティングされなかった。dBASE for Windowsは1994年にリリースされたが、既に時期を逃していた。

Microsoft AccessはParadox/Windowsよりもずっと低価格で、Word、Excel、PowerPointと共にMicrosoft Office Professionalの一部としても販売された。しかも、FoxPro開発チームの貢献によって性能もよかった。その後のバージョンで使いやすさを改善していったにもかかわらず、Paradoxは徐々にシェアが減っていった。Paradoxは他のボーランド製品と共にWordPerfect社に売却され、WordPerfect の製品として販売され、さらにコーレルが取得してオフィススイートの一部として販売するようになった。dBASE for Windowsは出荷があまりにも遅かったため、dBASEおよびxBaseユーザーは既にほぼ同じインタフェースのMicrosoft FoxBaseに移行していた。ボーランドはInterBase/IDAPIサーバを保持しており、Delphiツール開発に注力するようになり、一部市場では今も根強い人気がある。

 Corel Paradox 
コーレルは1990年代中ごろに Paradoxの権利を取得し、1997年にCorel Paradox 8をリリースした。WordPerfect OfficeスイートのProfessional EditionにもParadoxをバンドルしている。最新版は11.0.0.676で、Office X4 Hot Fix 1およびX5 Hot Fix 1にバンドルされている。

 ユーザー 
Paradoxには多数のユーザーがいて（外部リンクにある）Paradox Communityやニュースグループを中心に活動している。彼らの多くはPC用DBMSとしては Paradoxが一番優れていると信じている。

Paradox/Windowsのプログラミング言語ObjectPALのファンも多いが、PAL/DOSスクリプトからの移行は容易ではない。オブジェクトやイベントのモデルが全く異なるので、PALからObjectPALへの移行にはアプリケーションの全面的な書き換えが必要になる。

 関連項目 
 XBase
 dBASE

 脚注 

上記のVCPI標準は Paradox DOS版 3.5かそれ以前に対応し、それらはWindowsでは動作しない。Paradox DOS 4.0および4.5はWindows 2000以外のWindowsで動作可能。Windows 2000では対応不能なエラーが2種類発生する。

 外部リンク 
 Paradox Community
 Paradox ObjectPAL code snippets
 Paradox File Format
 pxlib Paradoxのデータベースを読み書きするライブラリ
 pxtools ParadoxのデータベースをSQLデータベースに変換するツール
 Paradox Converter Paradoxのテーブルを他の形式に変換するツール
 Paradox DB file viewer

Category:データベース管理システム
Category:デスクトップデータベースアプリケーション開発ツール
Category:DOSのソフトウェア
Category:Windowsのソフトウェア
Category:コーレルコーポレーション
Category:1985年のソフトウェア