40

Delphi でデスクトップ アプリを作成しており、組み込みデータベースを使用する予定です。DISQLite3 ライブラリで SQlite3 を使用してプロジェクトを開始しました。それは機能しますが、ドキュメントは少し軽いようです。私は最近 Firebird を見つけました (はい、私はしばらく Windows を使用していませんでした)。これには魅力的な機能とサポートがいくつかあるようです。

各埋め込みデータベースの長所と短所は何ですか? サポートやリソースだけでなく、サイズも重要です。何を使用しましたか、またその理由は何ですか?

4

29 に答える 29

38

私はFirebird2.1Embeddedを使用していて、非常に満足しています。データベースのサイズが実質的に無制限であり(4 GBを超えるデータベースでテストされ、動作します)、データベースファイルがFirebirdServerと互換性があるという事実が気に入っています。データベースの管理と検査に標準のツールを使用できます。配布は、exeフォルダにいくつかのファイルをドロップすることで構成されます。

複数のプログラムからの同時アクセスはサポートされていませんが、複数のスレッドからの同時アクセスはサポートされています(常に1つの「接続」操作のみが進行中であることを確認する限り)。

于 2008-10-21T17:27:51.013 に答える
19

私は多くのプロジェクトでSQlite3を使用しました(ただし、C / C ++およびObjective-Cから)。それは非常に小さく、依存関係はまったくありません。データベースは単一のファイルにあります。

CoreDataとiPhoneで直接サポートされているため、Mac開発者に最適なデータベースです。そのため、(他のすべてのユーザーは言うまでもなく)大きなユーザーベースがあります。

于 2008-10-21T17:41:03.047 に答える
15

FeedDemon で SQLite (DISQLite3 経由) を数か月使用していますが、非常に高速で安定しているため、強くお勧めします。Javier が言ったように、ライブラリのドキュメントは薄いかもしれませんが、SQLite 自体のドキュメントは非常に優れています。

于 2008-10-21T20:48:10.970 に答える
13

私は多くのプロジェクトでDBISAMを使用してきました。外部 DLL を必要とせずに完全に組み込まれています。あなたがリストした他のものとは異なり、それは商用です。ただし、多くの優れた機能があり、非常によく文書化され、サポートされています。まだ試していない後継機があります。

于 2008-10-21T17:45:36.533 に答える
13

見てみましょう、簡単な比較:

SQLite:

  • データベースの動的型付け
  • クロスプラットフォーム ファイル
  • Windows、Linux、Mac などで動作します。
  • パブリックドメイン
  • トランザクションをサポート
  • ファイル システムのセキュリティに依存しており、独自のセキュリティは含まれていません

Firebird 埋め込み:

  • データベースの強い型付け
    • すべての SQL データ型がサポートされているわけではありません
  • クロスプラットフォーム ファイル
    • 組み込みの Firebird は Windows でのみ動作します
    • 埋め込まれた Firebird のファイルは、完全なサーバー バージョンと同じ形式です。
    • 組み込みの Firebird からのファイルを Windows 以外のサーバーにコピーして使用することができます
  • 修正された MPL の下で利用可能 (「私たちのものは私たちのものであり、自由のままにしておく必要があります。あなたのものはあなたのものであり、リリースする必要はありません」)
  • トランザクション、トリガーなどをサポートします。

MySQL 組み込み:

  • SQL 機能のサポートはファイル形式によって異なります
  • (IIRC) クロスプラットフォーム ファイル
  • 使用料を支払わない限り GPL
  • Windows、Linux、Mac で動作
  • オープンソースの群衆に信じられないほど人気が​​あります

組み込みデータベースにも長所と短所があります。これらの長所と短所を、現在行っていることと比較検討して決定する必要があります。

于 2008-12-03T21:01:29.490 に答える
8

組み込みの Firebird は、コードを変更することなく、ハイエンドの機能(ストアド プロシージャ、トリガー、ビュー、等。)。そして、それは真の無料データベースであり、その過程でコードを GPL しません。

于 2008-10-21T17:51:13.497 に答える
6

データベースと Delphi を使用する場合は、AnyDAC を使用することを強くお勧めします。そうすれば、FB または SQLite をシームレスにターゲットにすることができます。

私の好みは、組み込みアプリ用の FB です。トム

于 2011-02-28T11:40:30.040 に答える
5

私は Sybase の Advantage Database Server を使用していますが、R&D マネージャーでもあるため、この投稿は偏っています。:)

WIN32 VCL と VCL.NET の両方にネイティブの Delphi TTable と TQuery コンポーネントがあります。SQL サポートに加えてテーブルへの直接アクセスにより、Advantage は他の多くの Delphi 製品の中でもユニークな存在になっています。Advantage は大きなテーブル (20 億のレコード数によってのみ制限されます) をサポートし、無料のローカル エンジンを備えています。これは、開発用 PC や、クライアント/サーバー機能を必要としない小規模な顧客サイトに適しています。単一の接続プロパティを使用してクライアント/サーバーに切り替えます。その他の変更はありません。

私たちはたくさんのクライアントを持っているので、Delphi の外部のデータへのアクセスも非常に簡単です (.NET データ プロバイダー、ODBC、OLE DB、PHP、Perl、JDBC など)。

主な製品 Web サイト: http://www.advantagedatabase.com 開発者の Web サイト: http://devzone.advantagedatabase.com

于 2008-10-21T19:01:43.930 に答える
5

それは本当にあなたが必要とするものに依存します. シングルユーザー アプリケーションの場合、Firebird Embedded または SQLite がおそらく最良の選択です (価格も妥当です)。一方、多数の複数ユーザーのサポートが必要な場合は、組み込みバージョンではなく通常の Firebird を使用する必要があります (サーバーは簡単にインストールできるため、ここではあまり問題はありません)。

そして、中間のものが必要な場合は、中程度のマルチユーザー アプリケーションの場合、フラット データベースの 1 つが適しています。ComponentAce の Absolute Databaseは、DBISAM、NexusDB、または VistaDB よりも私のニーズに適していることがわかりました。

比較的小さなフットプリント (DLL なし) を残し、単一ファイルのデータベース (私にとっては必須) であり、Unicode、BLOB 圧縮、暗号化をサポートし、フラット データベースの技術的な制限は印象的です。さらに、サポートが必要な場合はほとんどありませんでした。

短所として、ネストされたトランザクションをサポートしていないことに気付きましたが、それ以外は問題ありませんでした。

于 2008-11-17T09:14:09.767 に答える
3

サイズに関しては、SQLite に勝るものはありません。

ドキュメントの欠如について言及するとき、それはDISQLite3のドキュメントだと思います。SQLite ドキュメントは完全です

于 2008-10-21T17:53:52.757 に答える
2

この組み込みデータベースの比較を見てください:http ://sql-db.cz.cc/ 、それは役に立つかもしれません。上記の製品のほとんどがここに表示されます:Advantage、DBISAM、Firebird、MS SQL Server、その他多数:Accuracer、Apollo、ElevateDB、NexusDB、TurboDB。

于 2011-03-10T14:33:29.123 に答える
2

NexusDB を見てください。過去に非常にうまく使用されています。

于 2008-10-21T22:27:13.813 に答える
2

(組み込みの) firebird の問題は、データベースをネットワーク ドライブに置くことができないことです。また、読み取り専用ドライブ (CD/DVD) にデータベースを配置することも困難です。

これらの制限に関するハックについては、Delphi Wiki を参照してください: http://delphi.wikia.com/wiki/Firebird_tipps

于 2008-10-21T20:44:34.830 に答える
2

NexusDB は、組み込みから完全なクライアント/サーバー/リモートまで、あらゆる範囲を提供します。また、SQL2003 に準拠していると思います。いくつかのプロジェクトで使用していますが、これまでのところ非常に満足しています。このように幅広い「スケール」で機能するという事実は大きなプラスです (スケールアップされたアプリ用に別の DB を学習する必要がなく、等)。

于 2008-10-29T09:12:21.690 に答える
1

Web検索を実行して、Delphiアプリケーション用の高速データベースパッケージを見つけました。外部DLLやライブラリを必要とせずに、実行可能ファイルに完全に含まれるようにしたかったのです。私はもともとAidAimによってAccuracerを見つけました。彼らは自分たちのデータベースがどれほど速いかを投稿し、他の同様のパッケージと比較して自分たちの主張を「証明」しました。

私は彼らの主張を信じたかったのですが、他のパッケージのタイミングを見つけるためにもう少しウェブを検索したいと思いました。Delphiのディスカッションフォーラムで、使用するデータベースを尋ねられた投稿を見つけて非常に驚きました。14の異なる提案がありました。レスポンダーの1人は、独自のタイミング比較を行っており、Accuracerが(便利なことに)独自の比較ページから除外していた他のいくつかと比較して、Accuracerが非常に遅いことを発見しました。

この投稿に加えて、私による追加のフォローアップWeb調査により、オープンソースSQLiteプログラムに基づく製品であるDISQLite3に傾倒しましたが、Delphiで非常に迅速に動作するように拡張され、オーバーヘッドが非常に小さく、コマンドベースの呼び出しがあります-私はそれが好きです。現在開発中であり、まもなく公式のDelphi 2009バージョンがリリースされますが、現在のバージョンはD2009で動作するようです。

補遺:11月17日にリリースされたDISQLite3バージョン2.0.0は、D2009をサポートします。

于 2008-10-21T23:48:49.840 に答える
1

コンポーネントエースのアブソリュートDBにハマってます。商用製品 ($) ですが、堅牢で使いやすく、フットプリントが小さく、十分に文書化されています。巨大なマルチユーザー アプリケーションを探している場合、これは適切な方法ではありませんが、マルチユーザーのニーズが少ない (または存在しない) 場合、これは確実なオプションです。

于 2008-10-21T18:28:12.343 に答える
1

SQL Server Express と ADO コンポーネントを使用しています。よく働く。コマンドラインで SQL Server Express インストールを実行して、複雑さをユーザーから隠すことができます。ファイル名でロードしたデータベースを配布することもできます。何百万人もの SQL サーバー ユーザーがいるため、問題の解決策はインターチューブで簡単に見つかります :-)

于 2008-10-21T22:24:30.493 に答える
0

私はDBISAMとkbMemTableをさまざまな機会に使用しました。

私がDBISAMで気に入っているのは、優れた機能を備えており、通常は非常に信頼性が高いことです。私はこれを大規模なデータベース、全文検索、読み取り専用モード、CGI、およびその他の多くの状況で使用しました。

ただし、kbMemTableまたはSQLiteベースのコンポーネントと比較するとかなり大きいです。また、データベース(またはテーブル)ごとに1つのファイルを作成することはできません。状況によっては、これが大きな欠点になります。

kbMemTableは小さく、少量のデータに最適です。もちろん、メモリ内で実行されるため、少量のデータである必要があります。

いくつかのデスクトップアプリで採用したもう1つのオプションは、TWriter/TReaderを使用してオブジェクト階層との間でデータを直接ダンプすることです。これははるかに最小のオプションであり、データベースを使用する場合に比べて途方もなく高速です。データファイルも小さいです。

ただし、これにはあらゆる種類の欠点があります。フィールドを追加/変更する場合は、バージョン管理をコーディングする必要があります。ただし、メモリ内にある場合を除き、さらに複雑で、マルチユーザーサポートがまったくありません。

于 2008-11-09T22:46:20.480 に答える
0

埋め込みが絶対に必要な場合は、DBISAM を調べてください。

于 2008-10-23T00:13:50.460 に答える
0

ScimoreDB を使用しました。ロイヤリティフリーを提供するため、癖があり、データ型に癖があり、インストールの問題があります。これはC#プロジェクトでした。

于 2008-10-21T17:44:23.603 に答える
0

組み込みの Firebird は、私たちの一番の選択でもあります。スイートのUnified Interbase v2.0と一緒です。優れた安定したソリューションです。

于 2008-12-30T21:02:54.650 に答える
0

kbMemTable は良い候補です。メモリ内で実行され、高速でマルチスレッド化されます。以前は無料でした。

Components4Developers

于 2008-11-05T00:27:42.960 に答える
-1

どこまでもファイアバード。すべてがうまく機能し、これまでのところバージョン 2.1 は非常に安定しています。

于 2009-02-14T12:04:28.517 に答える
-1

FireBird は、将来的にマルチユーザーにスケールアップする機会を提供します。または、同時実行が必要な場合 (アプリケーションがマルチスレッド化される場合) に提供します。

シングルユーザーアクセスのみが必要な場合、SQLite は他の追随を許しません。パフォーマンス、利便性、SQL サポート、安定性など、あらゆる面でこれに匹敵するデータベースは他にありません。

于 2009-04-15T05:29:53.993 に答える
-1

うーん、誰も BDE を推奨していません - なぜだろうと思います ;-)

BlackFishSQL も別の可能性ですが、まだ詳しくテストしていません。

于 2009-05-04T00:00:18.073 に答える
-1

Firebird は非常に優れており、フットプリントが小さいため、組み込みを使用でき、多くのユーザー向けに拡張でき、Unicode もうまく機能します。デルファイ 2009 で devart コンポーネントを使用し、デルファイ 6/7 では FIB プラスを使用します (2009 および Unicode 用のバージョン)残念ながらまだ準備ができていません)

于 2009-04-15T08:49:52.093 に答える