小さな.NETアプリケーションに適したデータベースは何ですか?[閉まっている]


180

.NETでC#を使用して小さなアプリケーションを開発していますが、リソースをあまり使用しない、小さくて軽量なデータベースが必要です。

最もよく知られている軽量のデータベースソフトウェアをいくつか挙げてください。


回答:


192

2016/06/14はい、まだ賛成票を得ています:-/


2014年3月17日私はまだこれに対する賛成票を受け取っています。これが最初に回答された日付に注意してください。リストされている主な3つの項目はまだ完全に実行可能ですが、リストは古くなる傾向があります。リストされていないデータベーステクノロジーが他にもあります。


すぐに認識できる無料のオプションがいくつかあります。

SQL Server Compactのダウンロードには、コードで参照する必要があるADO.NETプロバイダーが付属しています。SQLiteのダウンロードにはない可能性があるため、ここにリンクがあります。

http://sqlite.phxsoftware.com/

3つすべてがSQLを使用しますが、いくつかの制限/癖があります。Management StudioはCompactおよびLocalDBで動作しますが、SQLiteではSQLite Administratorなどの別のUIツールが必要になります。

http://sqliteadmin.orbmu2k.de/

次のようなNoSQLの代替手段があります。

個人的には、他の無料オプションに直面してMS Accessを使用することは避けます。LocalDB、Compact、またはSQLiteで問題が発生することはありません。これらはすべて、小さなRAMで比較的高速に実行される素敵な小さなデータベースです-私が思うMicrosoft製品を好きになることに関する宗教的側面に関する個人的な好み:-)

分離ストレージを使用するように構築されているため、Windows Phoneプログラミング用のSterlingを使用しています。私はRavenDbに関する記事を見ただけですが、それはJSONベースのドキュメントストレージフレームワークであることがわかります。

状況を混同しないようにしてください(SQLite、SQL Server Express LocalDB、またはSQL Server Compact Editionを使用してください)。ただし、他の組み込み/ローカルデータベースがあり、一部はリレーショナルで、その他はオブジェクト指向です。

これらのすべてが無料ではありません。SQL / LINQ /インプロセスのサポートは、それらすべてで異なります。このリストは好奇心のためのものです。

現在はKarvoniteもありますが、コードギャラリーのリンクは壊れています。再び公開されると、WP7開発用にこれを調べます。


11
+1 SQL Server CEの場合。アプリと一緒にSQLサーバーをインストールする代わりに、SQL Server CE dllを使用して、アプリケーションの作業ディレクトリにデータベースファイルを置くことができます。シンプル。
Phil

2
RavenDBは確かにドキュメントデータベースですが、そのAPIは単純な名前と値のペアよりもはるかに強力です。問題は、無料の代替品を探している場合に備えて、商用プロジェクトでは無料ではないということです。
JCallico 2011

@JCallico要約で少し一般化していたことは認めますが、私が言ったことをゴスペルとして理解する人はいないでしょう。
Adam Houldsworth、2011

@Brendan Long、100%標準と言えるSQL実装はありません。
ポップカタリン

1
解答の上部に小さく読みにくいメッセージを残さずに、情報が古くなっていることを説明します。回答を更新したり、回答に追加したりして、今日利用できるオプションの例をいくつか含める方が簡単な場合があります。
James Shaw

58

SQLiteをお勧めします。私が開発したほぼすべてのアプリで使用しています。

小型でコンパクトです。DLLがアプリディレクトリにある必要がありますが、AccessやSQL Serverなどの他のソフトウェアをインストールする必要はありません。また、以下のdanielkzaが述べているように、「SQLiteはパブリックドメインなので、ライセンスについて心配する必要はまったくありません。」それは本当に大きな違いを生むことができます。

あなたは使用することができますSystem.Data.SQLiteまたはCSHARP - sqliteのを SQLかのOleDBのと同じ方法を使用してC#のアプリでそれにアクセスすること。

データベースを編集/管理するためのアプリケーションも必要です。私の意見では、最高のものはSQLite Studioです。ここではカップルより以下のとおりです。
SQLiteの管理者
SQLiteの2009プロ(ページの一番下)
を更新- 7/25/11 - その他のSQLiteのアプリケーション(ここではSOの質問)

SQLiteの詳細:
Wikipediaの
SQLite SQLiteを使用する企業

カスタム関数:さらに、SQLiteコア関数を調べていて、気に入った関数が見つからない場合は、独自のカスタム関数を作成できます。次に例をいくつか示します。SOAnoterの例
から


8
1つ追加:SQLiteはパブリックドメインであるため、ライセンスについて心配する必要はありません。
danielkza '19

@MikeWebb Sqliteは、追加のサービスなどをインストールする必要なくClickOnceアプリケーションで動作しますか?複数の同時ユーザーのネットワーク共有上にある場合は機能しますか?
Prokurors 2013年

1
@Prokurors-SQLiteを実行するために必要なのは、プログラムで使用している言語(C ++、C#など)に対応するDLLファイルだけです。他に必要なサービスやプログラムはありません。また、同時ユーザーがいるネットワークでも動作するはずです。私が作業しているサーバーでコピーを実行しているところ、それはうまくいきます。同時実行性について詳しくは、こちらをご覧ください。sqlite.org
Mike Webb

10

Firebirdの埋め込みは良い選択です

埋め込みバージョンはサーバーの驚くべきバリエーションです。これは、ほんの数個のファイルに収められた、フル機能のFirebirdサーバーです。サーバーをインストールする必要がないため、展開は非常に簡単です。

いくつかの非常に良いドットネットドライバーがあります。


8

公式のマイクロソフトソリューションを使用する場合は、SQL Server Compact。これには、SQLサーバーでレプリケーションを使用できるという利点があります。

SQLiteは、非常にシンプルで小さく、無料で使いたい場合に使用します。これはAndroidが内部データベースに使用するものであるため、非常によくサポートされており、非常に優れた.NETバインディングが利用可能です。

SQLiteの明確な利点の1つは、クロスプラットフォームであることです。したがって、アプリケーションをMono.NETに移植したい場合、データベースの実装に変更を加える必要はありません。

このソリューションではMS Accessは好きではありませんが、多くの人がMS Accessを回答に含めています。独自のフォーマットとプラットフォームに依存するため、制限があります。しかし、それはそれの利点があります。MS Accessのコピーがあれば、データを簡単に操作でき、グラフィカルにクエリを作成してマクロを作成できます。MS Officeの他の部分と簡単に統合できます。

これらすべてのSQLiteは、プラットフォームに関係なく、非常にコンパクトであり、十分に文書化されており、成長している仲間の開発者の軍隊によってサポートされているため、私の推奨事項です。

編集

私はここの誰もが言及するのを忘れた別のオプションがあることに気づきました

リレーショナルテーブルが必要でない限り、ADO.NETを介してデータセットとして読み取られたCSVファイルを使用できます。(何よりもlulzの提案が多いですが、場合によっては適切であり、MSの展開に追加のライブラリを必要としません。


8

.NET 4.0.2以降でプロジェクトをビルドしていて、組み込みデータベースのサポートが必要な場合は、SQL Server Express LocalDBを検討してください

これはExpressファミリに比較的新しく追加されたもので、インストールフットプリントが小さく、管理のオーバーヘッドが少ない(Expressの他のエディションと比較した場合)が、SQL Serverのプログラミング性を維持しています。つまり、Compact Editionとは異なり、LocalDBではSQLと通信するために別のADO.NETプロバイダーをインストールする必要がありません。

詳細については、以下を参照してください。

SQL Express v LocalDB v SQL Compact Edition(MSDNブログ)
SQL LocalDBとSQL Server CE(スタックオーバーフロー)


7

1
または特に.NETの場合は、RavenDB
marc_s

Mongoは素敵ですが、組み込みでは実行されません。別のサーバープロセスを開始する必要があります。これは、OPの目的には少し重いかもしれません。
Mike Woodhouse、

MongodbはSQLをサポートしていません。質問者は、「SQLクエリによってレコードを保存および取得できる場所」を求めています。さらに、mongodbはメモリを大量に消費します。この使用例にはお勧めしません。
Peter Long

4

あなたはSql Server Express Editionその無料として使用することができ、mirroring等のような機能が必要になるまで、そして必要でない限り同等に強力です。これを見てください。


8
「強力なものは何も必要ない」という質問です。SQL Server Expressは、SQL Serverの軽量バージョンではありません。これはデータベースサイズが制限されたバージョンであり、サービスの開始時にユーザーのPCを開始することに大きな影響を与えます。この質問には過剰です。SQL Server Compactがより適しています。
Moog

2

私はdb4oを使用して成功しました。
ファイルベース、大規模なコミュニティ、使いやすい。

http://www.db4o.com/

ライセンスの詳細

無料の一般公衆利用許諾契約書db4oは、デフォルトでGPLの下でライセンスされています。

GPLライセンスは、社内でdb4oを使用する場合や、独自の派生物をGPLに基づくフリーソフトウェアとして開発および配布する場合にも理想的です。

商用ライセンス商用の非GPL製品にdb4oを埋め込む場合は、商用ライセンスが必要です。商用ライセンシーは、プレミアムサービスとサポートにアクセスできます。


2012年にdb4oを6か月間使用しました。オブジェクトモデルの変更後に古いデータにアクセスできないという問題を回避する方法があった場合、私はこの回答を賛成します。私の知る限り、オブジェクトを変更しても古いデータが失われるのを避けるのは困難です。肝心なのは、データのバックアップコピーを常に別のdb4o以外の形式で保存することです(とにかくかなり一般的なルールです)。
Contango 2014年

2

無料のデータベースである必要がない場合に言及されていない代替手段はVistaDBです。これはすべてマネージコードであり、組み込みデータベースに多数の機能を提供し、非常に優れたパフォーマンスを提供します。VistaDBストアドプロシージャの大部分はSQL Server Expressで変更なしに実行されるため、SQL CEとSQL Server Expressの間のかなり良いブリッジです。この時点でも、カスタマーサービスに非常に満足しています。私は仕事でそれを使用しています。開始するサービスはありません。空のDBは約1MBで、DLLもかなり軽量です。ADO.NETプロバイダーなどがあります。私はそれが少し好きだった。

VistaDB


こんにちは!マルチユーザーシナリオで機能しますか?たとえば、このVistaDBをネットワーク共有に保存して、複数のユーザーから同時にアクセスできますか?
Prokurors 2013年

1
これに関しては、いくつかの制限された機能を実行します。明らかに、そのボックスで実行されている真のデータベースをローカルのdbエンジンで置き換えることはできませんが、いくつかのトランザクションオプションを提供します。私たちは、このシナリオで使用することを計画していました。それは、私たちが遭遇した無料のオプションのどれよりもうまく処理でき、顧客はSQLサーバーなどをセットアップする専門知識を持っていない可能性があるためです。sqlceよりも多くの機能を提供しますが、完全なsqlサーバーほどではありません。その真の品質のソフトウェア。
Rig

情報をありがとうございました!そして、彼らの新しい予想バージョン5は非常に有望に聞こえます。Entity FrameworkをVistaDBで試しましたか?多分最初にEFコードでVistaDBファイルを作成しましたか?
Prokurors 2013年

1
私はそうしましたが、これは約3〜4年前です。その時点で私はそれがうまく機能することを発見しました、そしてそれは私の最初のEFの経験でした。今はもっといいと思います。当時の唯一の欠如は、ドキュメントの特定のセグメントがまばらであったことですが、現在の所有者が購入した後の移行中です。
Rig

1
PS:少なくとも、私がそれを使用したときは、デモライセンスを提供する用意がありました。ライセンスコストを確定する前に、ぜひお試しください。
2013年

1

SQL Server Compact Editionは無料であり、サイズが軽く、統合性も優れている


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.