SQL Server Expressの共有について

タグの編集
投稿者 橋本  (社会人) 投稿日時 2020/11/28 16:00:03
はじめまして。

この度、社内業務システムを開発する事になったのですが、
SQL Server Express を 開発用PC(OS=Windows10)にインストールし、データベースを作成、
システムを開発(開発言語=VB2019を考えています)後、
開発したシステムを使い社内LAN上の他PC(OS=Windows10 数台程度)からそのデータ
ベースに接続することは可能でしょうか?

投稿者 魔界の仮面弁士  (社会人) 投稿日時 2020/11/28 16:44:50
可能か不可能かと言われれば可能ですね。

CPU コア数の上限や、データベースサイズの上限、割り当てメモリ量の制限、
バックアップや分析機能等々で制限がありますが、それらを許容できるのであれば、
Express を使う事に問題は無いでしょう。



ところで、(開発時ではなく)運用時には、その SQL Server をどこで実行させますか?
もしも Windows 10 上で稼働させるというのであれば、ライセンス上 NG です。

あるいは Linux や Windows Server 上で有償版 SQL Server を稼働させる目的なら、
開発には Express ではなく、Developer エディションの利用をお奨めします。
投稿者 橋本  (社会人) 投稿日時 2020/11/28 16:58:10
魔界の仮面弁士様

ありがとうございます。

開発PC Windows10上での稼働・実行はライセンスNGなのですね。
サーバーでの運用しかないということでしょうか・・

できればもう一つお伺いしたいのですが、例えばWindows Storage Server を購入し
そこにSQL Server Express を入れデータベースを作成し、社内LAN上の他PCから 
接続することは可能でしょうか?  

投稿者 魔界の仮面弁士  (社会人) 投稿日時 2020/11/28 18:45:18
ライセンス絡みの話になるので、詳細はサーバーの販売ベンダー様にもご確認ください。


> 開発PC Windows10上での稼働・実行はライセンスNGなのですね

Windows 10 上の SQL Server を開発目的で使うのは構いませんが、
それを運用目的に利用することはできません。
これは SQL Server Express の制限ではなく、Windows OS 側の制限です。

下記の [2. インストールおよび使用権] - [c. 制限] - [(v)] の禁止条項をご覧ください。
https://www.microsoft.com/en-us/Useterms/Retail/Windows/10/UseTerms_Retail_Windows_10_japanese.htm


> 例えばWindows Storage Server を購入し
Storage Server はファイル共有を目的としたものです。
そのため本来は、データベースサーバーへの流用ができません。

しかしながら、SQL Server Express Edition などの非エンタープライズ製品であれば例外的に、
Storage Server 上での利用が認められています。なので、今回の選択肢となりえますね。

なお、今後スケールアップして、SQL Server Standard Edition などに置き換える可能性まで
視野に入れる場合には、Windows Storage Server ではなく、Windows Server Essentials を
使うことができるでしょう。

https://www.microsoft.com/en-us/Useterms/Retail/WindowsServer2019/Essentials/Useterms_Retail_WindowsServer2019_Essentials_Japanese.htm

https://www.microsoft.com/en-us/UseTerms/Retail/WindowsStorageServer2016/StandardAndWorkgroup/UseTerms_Retail_WindowsStorageServer2016_StandardAndWorkgroup_Japanese.htm
投稿者 橋本  (社会人) 投稿日時 2020/11/28 19:02:43
魔界の仮面弁士様

お世話になります。

予算の都合上サーバーの導入は難しそうなのですが、将来を考えSQL Server Standard Editionの導入も視野に再度検討してみたいと思います。

お忙しいところ大変参考になるお話、ありがとうございました。
投稿者 るきお  (社会人) 投稿日時 2020/11/29 08:42:00
>予算の都合上サーバーの導入は難しそうなのですが
クラウドを使う手もありますよ。

Azureで、データ用ストレージ 5GBでSQL Databaseをサーバーレスで稼動させると月額 500円程度で済む場合もあるようです。
https://docs.microsoft.com/ja-jp/azure/azure-sql/database/serverless-tier-overview
https://azure.microsoft.com/ja-jp/pricing/calculator/?service=sql-database

※私はこのプランでシステムを構築・運用したことはなく、机上の情報だけを見てこの投稿を書いています。

AWSや、GCPでもSQL Serverが使用できます。
自分でインストールして使用するSQL Serverとは機能の差異はありますが、標準的な機能はほぼ使用できます。
MySQLで代用できるのであれば選択肢も広がります。

ネットワーク通信やバックアップ用のストレージなどは別途料金がかかりますので、ここからさらにプラスアルファされます。

ただ、クラウドならではの注意点などもあります。たとえば、クラウド上にデータベースを置くと社内の他のシステムとの連携をどうするか、SQL Serverのバージョンアップやアップデートの適用をどうするか、バックアップはどうするかなどです。いろいろと調査や追加コストが発生する場合もあります。
投稿者 (削除されました)  () 投稿日時 2020/11/29 13:12:11
(削除されました)
投稿者 葉月  (社会人) 投稿日時 2020/11/29 14:04:34
数台のPCで使うだけならAccessのデータベースなんかどうでしょう。
(複雑なSQL文は不要と仮定しています)

下記のURLをよかったら参考にしてください。
https://www.biz.ne.jp/matome/2005126/
投稿者 魔界の仮面弁士  (社会人) 投稿日時 2020/11/30 10:12:34
> 数台のPCで使うだけならAccessのデータベースなんかどうでしょう。

横から済みません。Access を使うにあたり、2 つ注意点が。


🔸 一つは【費用】の問題。

SQL Server Express や Oracle Express は、開発も運用も無料で利用できるライセンス形態です。
SQL Server Developer の場合は、開発のみ無料です(実環境での本番利用は不可)。

一方、Microsoft Access を使うには開発ライセンスが必要となります。
新規に購入するとなると割高になるかもしれません。

運用に関しては、開発したものを無償の Access ランタイム版で動作させることが可能なので、
コンパイル配布すれば利用者側のライセンス購入は不要に出来ますが、
ランタイム版を使って開発できるわけでは無い点に注意が必要です。


費用面は購入経路によっても異なってきますが、Microsoft から直接購入の場合、
永続型である Access 2019 単体製品版 (1人用, 2台まで) の場合で 16,284円、
Excel 等も含んだ Office Professional 2019 (1人用, 2台まで) の場合は 65,784円。

サブスク型の Microsoft 365 Personal (1人用, 5台まで) の場合は、
「12,984円/年」または「1,284円/月(初月無料)」という金額が必要となっています。

もちろん利用者全員が既に Access を所有している場合は、この問題をクリアできますね。



🔸 もう一つは【信頼性】の問題。

SQL Server は「サーバー上でデータ処理される」仕組みですが、それに対して
Access は「実行クライアント上でデータ処理される」ファイル共有型データベースです。

トランザクションの遅延書き込みや、OS のライトキャッシュの問題もあり、
ネットワーク共有による複数ユーザーからの同時接続には向いていません。

Access データベースファイル共有環境上で使おうとすると、ある程度のノウハウも
必要なため、今回のケースでは個人的にはお奨めできかねます。

ただし共有フォルダー上で用いるのではなく、スタンドアロン サーバー上で
使うようなケースであれば、この問題をクリアできる可能性があるでしょう。

あるいは、データそのものは SQL Server で管理しておき、Access は、そのデータを
閲覧・編集・印刷するフロントエンドツールとして利用するような運用形態であれば、
上記の信頼性の問題をクリアできます。

https://support.microsoft.com/ja-jp/office/03822632-da43-4d8f-ba2a-68da245a0446