質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

MongoDB

MongoDBはオープンソースのドキュメント指向データベースの1つです。高性能で、多くのリトルエンディアンシステムを利用することができます。

NoSQL

NoSQL(not only SQL)は、リレーショナルデータベース管理システムとは異なるデータベースシステムを指す言葉です。

Q&A

6回答

24956閲覧

データベースのライセンスについて

seri

総合スコア422

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

MongoDB

MongoDBはオープンソースのドキュメント指向データベースの1つです。高性能で、多くのリトルエンディアンシステムを利用することができます。

NoSQL

NoSQL(not only SQL)は、リレーショナルデータベース管理システムとは異なるデータベースシステムを指す言葉です。

0グッド

2クリップ

投稿2017/04/10 06:42

編集2017/04/10 11:56

サーバの勉強をし始め、データを管理するにはMongoDBやMySQLのような組み込みの機能を使うのが一般的だと最近知ったのですが、これらを商用で利用する場合のライセンスはどうなっているのでしょうか

いくつかサイトを見てみたのですが、これって黙って商用に使っていいのでしょうか・・・

http://anond.hatelabo.jp/20140722001658
http://www.mongodb.jp/mongo/licence

補足:
function(){
//MongoDB内を検索する処理
}
とゆうMongoDBのファイルに関与する関数が有るとします。

例えばアプリケーション(クライアント所有アプリ)から、サーバ内のMongoDBを呼び出す際に
サーバ側に上の関数を配置するのはOKだけど、
クライアントアプリ内に直接上記関数を入れるのはNG

とゆう解釈でしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答6

0

まず、GPLもAGPLも、料金を取ってのプログラムの再配布を明示的に認めています。たとえば、RHELは「オープンソースのソフトウェアを、対価を取って提供している」例です(もちろん、同じソースコードからCentOSのように無償配布版を作ることもできます)。

MySQL(GPL)の場合、少なくとも「自社でWebサービスを作って、プログラム自体は再配布しない」という場合には、特にソースの公開が必要になることはありません。

GPLは「複製や頒布、改変以外の活動はこの契約書ではカバーされない」ものであって、サーバサイドで動かしているだけでソフトウェアを第三者に頒布しない分には、特段の制約はかかりません(逆を返せば、AGPLにはそのような場合にもユーザーへのソースコード提供が必要となります)。

投稿2017/04/10 07:58

maisumakun

総合スコア145183

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ahodana

2017/05/21 23:02

RHELはサポートライセンス料金ですよ。
guest

0

maisumakunさんが書かれている通りAGPLではインターネット経由で利用される場合もソースコードの公開が義務付けられますが、MongoDBはそれを回避するための接続ドライバを公式にApacheライセンスで提供しているので、これを使用すれば問題ありません。

GPL/AGPLの扱いに関しては、こちらに詳しく解説されています。

漢のコンピュータ道 受託開発とGPL

--追記--

GPL v2のFAQで参考になりそうなもの

A company is running a modified version of a GPL'ed program on a web site. Does the GPL say they must release their modified sources?

-> The GPL permits anyone to make a modified version and use it without ever distributing it to others. What this company is doing is a special case of that. Therefore, the company does not have to release the modified sources.

If a library is released under the GPL (not the LGPL), does that mean that any program which uses it has to be under the GPL?

-> Yes, because the program actually links to the library. As such, the terms of the GPL apply to the entire combination. The software modules that link with the library may be under various GPL compatible licenses, but the work as a whole must be licensed under the GPL.

You have a GPL'ed program that I'd like to link with my code to build a proprietary program. Does the fact that I link with your program mean I have to GPL my program?

->Yes.

GPL v3の解説ですが、詳しくはこちらのIPAの資料も参考になるかと
GNU GPL v3 解説書

投稿2017/04/10 08:49

編集2017/04/11 03:29
SVC34

総合スコア1149

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

SVC34

2017/04/11 03:31 編集

GPL v2のFAQで参考になりそうなもの -- 回答本文に移動 --
guest

0

MySQLはGPLと商用のデュアルライセンスです。
GPLも商用で利用すること自体は全く問題が無くて、問題はソースコードの公開義務があるかどうかという点ですよね。

GPL v3の解説を読むと、プロパゲート(GPLのライセンス伝搬)について書かれていますが、改変したソフトウェアを内部的に使用する(ソフトウェア本体を頒布しない)場合には、GPLライセンスによるソースコードの公開義務を負う必要はありません。

ソースコードやオブジェクトコードを配布する場合には公開の義務が出てくるので、javascriptについては注意が必用ですが、もともとjsは公開状態なので問題ないのかな?

投稿2017/04/10 08:46

編集2017/04/10 09:01
nullbot

総合スコア910

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

組み込み型データベースとサーバークライアント型データーベースでは大きく考え方が違います。MongoDBやMySQLはサーバークライアント型であり、組み込まれていない場合が多く、通常、一緒に配付すると言うこともありません。

まず、ライセンスの制約がきつくなる組み込み型です。SQLite、Oracle Berkeley DB、dbm等です。SQLiteは何の制約もなくなるようにパブリックドメインとなっていますが、Oracle Berkeley DBはAGPLまたは商用ライセンスというデュアルライセンスになっており、商用ライセンスを購入せずに組み込んで配付する場合はAGPL汚染を受けます。

しかし、サーバークライアント型だと様相が異なります。これはHTTPサーバーとブラウザの関係に似ています。サーバーとクライアントが公開されたプロトコルやAPIに基づいてデータをやり取りする場合、サービスを提供する側(サーバー)のライセンスにそのサービスを利用する物に対する規程※が存在しない限り、サービスを利用する側(クライアント)がライセンスの影響を受けることはありません。AGPLであるWebアプリケーションは数多く存在します(例えば、最近流行りのMastodonとか)が、それらを見るためのブラウザもAGPLでないといけないというのは聞いたことが無いと思います。なぜなら、ネットワーク上でのサービスの提供を持ってサーバー側のソフトウェアの役目は完了しており、公開されたAPIに従ってそれを利用するクライアント側のソフトウェアは関係が無いとされるからです。

※ 例として、Microsoft SQL Serverはネットワークで利用するクライアントのソフトウェア側にも使用ライセンスが伝搬します。そのため、直接利用するソフトウェアが一つであっても、間接的な物を含めた最終的な利用者数またはデバイス数でクライアントライセンスを購入する必要があります。

MySQLもMongoDBも同じで、ネットワーク上のどこかにあるMySQLサーバーやMongoDBサーバーを利用するだけのアプリケーションであれば、ブラウザと同じでその制限を受けることはありません。そのアプリケーションが利用しているのは公開されているAPIのみであり、実際に接続するサーバーがMySQLなのかMongoDBなのか、または互換性のある全く別の物(たとえばMySQLの代わりにMairaDBを用いる)なのかは関係無いため、特定のサーバー製品に引っ張られる必要が無いのです。

しかし、ここで安心してはいけません。MySQLやMongoDBを一体化して配付し、一体化して利用するような場合はライセンスの影響を受けます。上の話は、あくまでどこかのそういうサービスをアプリケーションが勝手に利用するという話です。しかし、インストーラーで専用のMySQLまたはMongoDBをインストールして、セットアップして、そのアプリケーション専用にしてしまうと、アプリケーションに組み込まれていると判断されます。

重要なのは、リンクしているとかそういう話ではなく、独立しているかどうかです。ネットワークを通じてサービスを利用するという場合は独立して作成し、独立して配付することが容易です。ですが、あくまで容易という話であって、一体化して配付し、専用の物として利用してしまう場合は製品全体に組み込まれていると判断され、それぞれが独立しているとは見なされません。

なお、データベース本体ではなく、公開されたAPIを用いて接続するためのドライバーは制限が緩いライセンスの場合が多いですので、そちらは組み込まれても問題にならないことがほとんどです。

投稿2017/05/21 22:30

raccy

総合スコア21735

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

MySQLについて分かった範囲で修正します。

OSSのソースの改変・流用時にGPL、AGPLなど、OSSのライセンスへの遵守が生じる点がぼやけている様に思われましたので、以下に、小生の、見解を記しみます。

「MongoDBやMySQLの利用に際し」MongoDBやMySQLの

  1. ソースコードの改変無し:->自由に利用可能。
  2. ソースコードの改変有り:->GPL、AGPLなど、OSSのライセンスに従う必要が有る。
  3. ソースコードの流用有り:->GPL、AGPLなど、OSSのライセンスに従う必要が有る。
  4. ライブラリを動的に利用:->自由に利用可能。
  5. ライブラリを静的にリンク:->GPL、AGPLなど、OSSのライセンスに従う必要が有る。

例えばアプリケーション(クライアント所有アプリ)から、サーバ内のMongoDBを呼び出す際に

サーバ側に上の関数を配置するのはOKだけど、
クライアントアプリ内に直接上記関数を入れるのはNG

上の関数MongoDBやMySQLのソースコードでないのなら、サーバ側もクライアントアプリ内もOKです。
上の関数MongoDBやMySQLのソースコードの流用なら、「配置も入れるのも」OKです。が、GPL、AGPLなど、OSSのライセンスに従う必要が有ります。

ただし、MySQLはデュアルライセンス故、
MySQL - ライセンス早分かり

  1. アプリケーションプログラムのソースを公開して良いとするならば、無償版を使用。

MySQL Community Server
2. アプリケーションプログラムのソースを公開を否とするならば、有償版を購入。
MySQL Editions

追記:
上記関数

  • ODBCやJDBCなどに、動的にアクセスする場合は上記「4.」が適用される。(通常はこれ)
  • ODBCやJDBCなどに頼らず、MongoDBと通信するプログラムを自作する場合は上記「5.」が適用される。(普通(絶対?)、やらない。)

補足:
例えば、maisumakunさんの示された
GNUアフェロGPLの理由

の冒頭に、

GNUアフェロ一般公衆ライセンスは通常のGNU GPLバージョン3を改変したバージョンです。これには一つ要求が加わっています。サーバで改変したプログラムを動かし、そこでそのプログラムとほかのユーザに通信させる場合、サーバはユーザにそこで動いている改変バージョンに対応するソースコードのダウンロードも許可しなければいけない、というものです。

とあります。

  1. 通常はGPL、AGPLで、当然ソースコードが公開されているバイナリーコードを『実行して・させて』利用していると思います。この場合、個人・組織内・公開・商用(販売)のいかなる利用形態に於いても、自由に利用出来ます。

  2. GPL、AGPLのソースを「1文字」でも『改変』し、「公開・商用(販売)」した場合に、改変履歴が分かる様に、ソースコードを公開しなければなりません。

  • 本件の様な「MongoDBのような組み込みの機能を使う」つまりは「改変なし」の場合には、上記「1.」に該当します。

では上記「2.」に該当する例としては、たとえば、

  • WordPressの素の機能では、希望する機能が足らないので、WordPressのphpソースコードを「改変」して機能追加・変更して公開サーバで運用する場合には「WordPressの公開ソースコードとは異なる」事になるので、上記「2.」に該当します。

投稿2017/04/11 00:13

編集2017/04/11 04:12
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

SVC34

2017/04/11 02:36 編集

改変したソースコードはGPL派生物の一形態でしかありません。GPLバイナリをリンクし利用するプログラムもまたGPLの派生物とみなされます。 --引用元が適切でなかった(LGPLのものであった)ので差し替え-- MySQLが採用するGPL v2のFAQに以下の通り記載されています。 If a library is released under the GPL (not the LGPL), does that mean that any program which uses it has to be under the GPL? Yes, because the program actually links to the library. As such, the terms of the GPL apply to the entire combination. The software modules that link with the library may be under various GPL compatible licenses, but the work as a whole must be licensed under the GPL. See also: What does it mean to say a license is “compatible with the GPL”? -------------------------------------------------------------- データベースの場合は、接続ドライバがGPLかどうかということが問題になります。MongoDBがわざわざドライバをApacheライセンスで提供しているのもこのためです(もともとMongoDBは商用利用を防ぎたくてAGPLを採用したわけではない)。また、A5:SQL Mk-2ではMySQL標準のドライバを使用せず独自開発しています。 https://plaza.rakuten.co.jp/matsunopage/diary/201011300000/ なお、ライブラリのリンクでもGPL派生物とみなされると商用利用等が難しくなってしまうので、これを緩和するためGPLリンク例外やLGPLが別途定められています。
退会済みユーザー

退会済みユーザー

2017/04/11 02:04

>MySQLに接続するために、プロプライエタリアプリケーションからMyODBC(GPLのMySQL用ODBCドライバ)を使うと、Oracle(MySQLの著作権者)ではこれをGPL違反と判断するようです。 MyODBCを使うだけで「GPL違反」ですか。では、誰もMySQLは使えないという事なんですかね? 今は、MariaDBに置き換わっているが、MariaDB自体はGPL v2、ODBC,JDBCはLGPLの様。 詳細を把握するには、Licenceの英文全文の解読が必要ですね。
SVC34

2017/04/11 02:44 編集

maisumakunさんやnullbotさんも回答されているとおり、「使用する」ことには何も問題ありません。GPLが適用されソースコード開示が義務付けられるのは、プログラムを「頒布する」場合です。 >MySQLに接続するために、プロプライエタリアプリケーションからMyODBC(GPLのMySQL用ODBCドライバ)を使うと、Oracle(MySQLの著作権者)ではこれをGPL違反と判断するようです。 MyODBCを使用するソフトウェアがGPLと互換性のないライセンスの下有償・無償問わず「頒布」されている場合、GPL違反となるのは事実です。A5:SQL Mk-2は誰でもダウンロードし利用できる状態になっているため、MyODBCを使用すれば頒布とみなされGPLを適用する必要があります(GPLを適用すれば違反ではない)。
m.matsubara

2017/05/21 13:24

A5:SQL Mk-2作者です。若干今更かもしれませんが、自分の解釈です。 https://plaza.rakuten.co.jp/matsunopage/diary/201011300000/ >MySQLに接続するために、プロプライエタリアプリケーションからMyODBC(GPLのMySQL用ODBCドライバ)を使うと、Oracle(MySQLの著作権者)ではこれをGPL違反と判断するようです。 これについてですが、当時Oracle社に電話にて確認を行いました。MyODBCを「使える」プロプライエタリアプリケーションを配布する時点で、GPL違反との回答をいただきました。 ごれを厳密に適用しようとすると、数多のODBC接続ツール、ひいてはMicrosoft ExcelあたりまでもがGPL違反ということになってしまうと思います。 …が、流石にそれは無理があるようにも思います。ODBCのような汎用のインターフェースのライブラリは、GPLにはそもそも向かない(無理がある・矛盾がある)と考えます。この辺のことを嫌ってMariaDBはLGPLになっているのではと考えます。 ちなみに、A5:SQL Mk-2では独自開発の接続ライブラリではなく、Devart社のUniDACというライブラリ(プロプライエタリのライブラリ)を使用しています。こちらもかつては libmysql.dll (GPL)経由の接続もサポートしていた(A5:SQL Mk-2からは使わない)ようですが、最新版では libmysql.dll経由の接続は使えなくなったようです。
guest

0

基本的に商用での使用はライセンスが必要でしょう。ただ、MySQLなんかはオープンソースなので、自分の作ったソフトをソースごと公開なら商用で使ってもいいよ、とあったような気がします。各メーカーそれぞれのDBライセンス形態を検索すると出てきます。

投稿2017/04/10 07:05

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yuba

2017/04/10 07:45

-1 大変申し上げにくいのですが、「でしょう」「気がします」だけの回答は質問者にとってもあとから検索してきた人にとってもノイズです。「検索してみれば」とお書きですが、その検索結果にこの無意味な回答が入ってきてしまうわけですよ。明確な答えをお持ちでないのなら回答すべきではありません。
退会済みユーザー

退会済みユーザー

2017/04/10 07:56

何も憶測で回答しているわけではなく、これまでの業務実績から一般論を述べています。もしこれがノイズ、と考えるなら以後気を付けます。
miyahan

2017/05/21 17:22

>これまでの業務実績から一般論 それを人は憶測と呼びます
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問