web-dev-qa-db-ja.com

ソフトウェアでSQLサーバーを使用している場合、各クライアントにSQLサーバーをインストールする必要がありますか?

C#(または基本的に.Net)でソフトウェアを開発する場合、どのクライアントにもVisualStudioをインストールしません。クライアントには、.Net Framework(1.0、1.1、2.0、3.0など)がインストールされている必要があります。これで問題ありません。

同様に、VC2008でアプリを作成する場合は、Visual C++ 2008ランタイム(MSサイトから無料で入手可能、約4〜5Mb)が必要です。したがって、基本的には、ランタイム環境が必要です。しかし、SQL Server 2008ランタイムはありません(または私はそれを認識していませんか?)。

それで、私の質問は、私のソフトウェアがSQL Server 2008を使用している場合、それが機能するためにクライアント側でどのランタイム(または他のもの)が必要になるかということです。

また、もう1つ、展開で使用できると思われるSQL Server Expressエディションがあるようですが、ソフトウェアが5、10、または20Mbの場合、ギグについてインストールする必要があることを知っていると、ちょっと重いようです。ユーザーはそれを実行できます。

最後に、SQL Server 2008 Developer Edition(私はそうですが、エンタープライズ版はわかりません)を使用していて、クライアントにSQL Server Expressをインストールした場合、ソフトウェアでExpressでサポートされていない機能が使用されていても、問題は発生しません。版? (データベースの数、同時接続など)。

そう?それにはどのランタイムが必要ですか?また、SQL Server Expressをインストールすることが唯一のオプションである場合、Express Editionでサポートされていない機能を使用しているとどうなりますか?確かに、各クライアントに開発者版のフルインストールを続けることはできません!

編集:これが役に立った場合、私の現在のプロジェクトはライブラリ管理システムであり、クライアント(ライブラリアンのコンピュータ)にインストールされます私がこれを作っている人のために)、それでここではサーバークライアントのケースはありません。では、彼のコンピューターにsql expressをインストールする必要がありますか?また、YvesRが彼の回答で指摘したように、そのリンクには3つのエディション(メインエディション)しか表示されていませんが、 http://msdn.Microsoft.com/en-us/library/cc645993%28v = SQL.110%29.aspx は、より詳細な比較を示しています。それで、私が今説明したこの特定のシナリオでは、クライアントのマシンにエディションをデプロイしてエクスプレスするだけで十分でしょうか?

さて、Express Editionで利用できないいくつかの関数について私が言ったことについて、 http://msdn.Microsoft.com/en-us/library/cc645993(v = SQL.110).aspx#CrossBoxScale = Express Editionがサイズ10Gbのデータベースに制限されていることを示しています。これで、上記のシナリオでは十分すぎることがわかりましたが、他の場合にそれ以上が必要な場合はどうなりますか? Express Editionよりも、どのように展開すればよいのでしょうか。

最後に、 http://www.Microsoft.com/sqlserver/en/us/get-sql-server/how-to-buy.aspx は、CompactとDeveloperの2つのエディションを示しています。開発者ですが、このコンパクト版とは何ですか?そしてもっと重要なのは、なぜこれらが一緒にされたりリストされたりしないのですか ここ

編集2:その4Gb、制限、10Gbではありません。 10GbはSQLServer 2008 R2 Express以降、4GbはSQL Server 2008Expressにあります。
marc_s:ありがとうございます!

12
Razort4x

SQL Serverデータベースを使用してアプリケーションにデータを永続化する場合は、

a。クライアントがLAN経由で中央のSQLServerに接続するクライアントサーバーインフラストラクチャ

b。または、クライアントにインストールされたSQL Serverエディションを使用します(これは私が推測したいものです)。これには、SQL Server ExpressエディションまたはMSDE(デスクトップエディション)のみを使用できます。

詳細については、を参照してください。このブログ投稿 http://searchsqlserver.techtarget.com/tip/SQL-Server-2005-Express-vs-Desktop-Engine-MSDE またはgoogle for it、MSDEに関するMS自体からの多くの情報。

編集:2012年以降、MSDEはなくなりましたが、SQL Server 2012ExpressはMSDEと同様のモードをもたらします。ここを参照してください: http://www.Microsoft.com/sqlserver/en/us/editions/2012-editions/express.aspx

そして、ここで見ることができるように: http://www.Microsoft.com/sqlserver/en/us/editions.aspx 、使用できない関数は存在しないはずです。デスクトップアプリケーションimho。

7
YvesR

OK、少しバックアップしましょう。各ソフトウェアクライアントに独自のローカルデータベースを用意する必要がありますか?この場合、クライアントにデータを保存する方法ははるかに簡単です(1つの方法として、ファイルへのシリアル化をお勧めします)。

各クライアントを中央データベースに接続する必要がある場合は、.netコアライブラリ以外のランタイムコンポーネントは必要ありません。

3
tom redfern

インストールされている.NETフレームワーク(とにかくすべての.NET実行可能ファイルに必要)以外に、データベースアクセスに必要なクライアントランタイムはありません。

データベースをクライアントと同じマシンに配置する場合、無料のオプションは次のようになります。 SQL ServerExpressまたはSQLite。

2
BrokenGlass

Windowsアプリケーションの2つの方法は次のとおりです。

  1. コンピューターをサーバーとして割り当てずに、各クライアントが個別に使用するデスクトップアプリケーション。 SSMSとクライアント用のアプリケーションをインストールするだけです。更新/削除/挿入操作は個別に実行されます。

  2. クライアントサーバーアプローチでは、SSMSをインストールし、DBをコンピューターに接続します。このコンピューターは、クライアントをサーバーとして機能させます。次に、exeファイルを任意のクライアントコンピューターにインストールし、クライアントがIPを使用してサーバーに接続されていることを確認します。

1
Shamal Sabah