オープンソースデータベースを選ぶ理由
OSC2006-Niigata
A-2 11:00-11:45

Firebird日本ユーザー会
木村明治(KIMURA, Meiji)
キムラデービー 代表(http://kimuradb.com)

Agenda 本ドキュメントの目的 オープンソースデータベース御三家
 Firebird/MySQL/PostgreSQL 商用RDBMS Express版
 適用部分詳細
 まとめ～OSSDBを選ぶ理由 とりあえず使ってみよう！

2006/06/17

Copyright(c) 2006 Firebird日本ユーザー会

2

本ドキュメントの目的 ここらへんを知ってもらう オープンソースデータベース御三家って？
 Firebird/MySQL/PostgreSQLって？
 無料なら、商用無償版でいいんじゃないの？
 なんでオープンソース使うの？

ここらを説明 そしてピン！ときた人にはOSSDBを使ってもらう！
2006/06/17

Copyright(c) 2006 Firebird日本ユーザー会

3

オープンソースデータベース御三家って？

MySQL
50%

PostgreSQL
50%日本ではMySQL vs PostgreSQLのイメージだが…
2006/06/17

Copyright(c) 2006 Firebird日本ユーザー会

4オープンソースデータベース御三家って？
でもワールドワ
イドでは
MySQL vsFirebird

EDC, 2005, OpenSource RDBMS調査結果
Other
4%

SAP DB
1%

MySQL
40%

Firebird
39%

MとFとPで「オープンソースデータベース御三家」

Gnu SQL
2%

Berkley DB
3%

PostgreSQL
11%と呼びましょう！

情報提供: Evans Data Corporation
http://www.evansdata.com/n2/pr/releases/EDCDB05_01.shtml
2006/06/17

Copyright(c) 2006 Firebird日本ユーザー会

5

Firebirdって？
【現在RC版】【無償】【機能的にほぼ同一】InterBase
4.x Linux,
FreeBSD版

InterBase6.0
OpenSource版

InterBase
4.x商用版【有償】

InterBase
5.x

InterBase
6.0

Firebird
1.0InterBase
6.5【日本未発売】Firebird
1.5InterBase
7.0, 7.1

起源は商用RDBMS InterBase一時オープン化されたソースから分岐
現在はそれぞれ別の進化をとげる
2006/06/17

Copyright(c) 2006 Firebird日本ユーザー会

Firebird
2.0InterBase
7.5

6ＭｙＳＱＬって？
 エンジンはUNIREG, I/FはmSQLが祖先。

 1979年にスエーデンのTcX DataKonsult社で開発された
UNIREG.
 1994年にWEBシステムのバックエンドDBとしてUNIREGベース、mSQLとAPI互換。

 1996年ごろ一般に公開。
 1998年日本ユーザML開始→2000年にMyNAに。(MySQL 3.20->3.23)
 2001年 MySQL 4.0(2003年stable)
 2003年 MySQL 4.1(2004年stable)
 2003年 MySQL 5.0(2005年stable)
2006/06/17

Copyright(c) 2006 Firebird日本ユーザー会

7

ＰｏｓｔｇｒｅＳＱＬって？
 四つのスタートポイント 1977年 INGRES(UCB)商用INGRESへ発展。その後オープンソースへ。
 1986年 POSTGRES(UCB)商用ILLUSTRA。
その後Infomix->IBMへ。
 1994年 Postgres95(UCB)直系祖先。
 1996年 PostgreSQL 6(postgres.org) 日本ユーザー会(JPUG)スタート。

 四つ目のスタートから現在に至る。

 2000年 PostgreSQL 7
 2005年 PostgreSQL 8（最新版は8.1.4)

2006/06/17

Copyright(c) 2006 Firebird日本ユーザー会

8その他のOSSDB SAP DB
 今のMaxDB, 昔のADABAS。
 Berkley DB 日本では知名度低いが、海外で組込によく使われる。
 Oracleに買収された。(InnoDBほど話題にならず)
 MySQLのBDB Ingres
 CAがオープンソース化。盛り上がりに欠ける。
 SQLite PHP5のデフォルトDB(PHP4のときはMySQLだった)
 Applicationと同一プロセス動作のライブラリ。
2006/06/17

Copyright(c) 2006 Firebird日本ユーザー会

9商用無償版って？
SQL Server Oracle
Express

IBM DB2
Express-C

最大DBｻｲｽﾞ 4GB

4GB

無制限

最大ﾒﾓﾘｻｲ 1GBｽﾞ
最大CPU数 1

1GB

4GB

12

各社発表資料より作成
すぐに上限、DBサイズ(DB2除く)
Win/Linuxプラットフォームのみ提供(MSはWinのみ)商用有償版への呼び水
2006/06/17

Copyright(c) 2006 Firebird日本ユーザー会

10商用無償版って？ MSの場合
SQL Server MSDE
Express
2000

最大DBｻｲｽﾞ 4GB
1GB
最大ﾒﾓﾘ２GB
2GB

各社発表資料より作成

IBM DB2
Express-C
無制限
4GB

サポートOS Win2kSP4 左記のＯＳ＋ WinNT4,2
WinXPSP1 Ｗｉｎ９８，Ｍｅ k, WinXP
Win2003
Win2003 ＷｉｎＮＴ４
負荷制限なしありなし
最大CPU数 1
2006/06/17

2
Copyright(c) 2006 Firebird日本ユーザー会

211

商用無償版って？ 一口コメント
 MS SQL Server Express: Win小規模なら実用的。
 Windowsのみだが、MSDE7->2000で実績ある。
 Win9x, WinNTは未サポート。

 Oracle Database XE: 開発・仕様確認程度。
 まだβ版、日本語版が出ていない。
 不具合時パッチもでない。

 IBM DB2 Express-C: 制限少ないが、開発者も少ない。
 有償版のDB2 UDB Expressと紛らわしい。
 再配布に登録が必要。
2006/06/17

Copyright(c) 2006 Firebird日本ユーザー会

12

適用部分詳細 いくつかシナリオ考えてみました。
 シナリオ１
 自作アプリケーションのストレージ部分
 シナリオ２ A: 商用旧バージョンRDBMSの移行
 B: 現用の商用RDBMS移行
 シナリオ３
 A: Webアプリケーション一般
 B: Webアプリケーションパッケージ化
2006/06/17

Copyright(c) 2006 Firebird日本ユーザー会

13

自作アプリのストレージ部分
 自作のアプリを作ります。
 とりあえずのデータストレージに使えます。
 候補

 Firebird
 SQLite (MySQL)

2006/06/17

Copyright(c) 2006 Firebird日本ユーザー会

14基本単一ファイル【ディレクトリを指定】
配下に各種ファイルを作成。

【ファイルを指定】指定ファイルにデータ格納。

【例】一般的なRDBMS.
PostreSQL, MySQL, Oracle等【例】Firebird, Microsoft Access,SQLite等

2006/06/17

Copyright(c) 2006 Firebird日本ユーザー会

15

組込構成とC/S構成【Embedded:組込構成】
同一プロセスで動作。

【C/S構成】
独立したプロセスで動作。

クライアントクライアント

ライブラリ

サーバー

データベースファイル

データベースファイル

・通常のRDBはどちらかの構成しかとれない
・MySQL/Firebirdではどちらの構成もとることができる
2006/06/17Copyright(c) 2006 Firebird日本ユーザー会

16アプリケーションI/F (Firebirdの例)
Java
アプリ
JayBird

ネイティブ
Borland社
アプリ
開発ツール
IBObject
ODBC
FIBPlus .NET Provider
IBX, MDO IBPP,直接Web
アプリ
PHP
PythonPerl

C言語クライアントライブラリfbclient.dll
ワイヤ・プロトコル

2006/06/17

Firebird

Copyright(c) 2006 Firebird日本ユーザー会

17商用旧バージョンRDBMSの移行
 規模もトラフィックもある程度見えている現用シス
テム→バージョンアップする必要性に乏しい。
 旧版のサポートや、サポートOSは更新されない
 埋め込みSQL, ODBCをつかったものであれば、最悪自分でもコードメンテナンスができるOSSDBへ。
 候補
 オープンソースデータベース御三家

2006/06/17

Copyright(c) 2006 Firebird日本ユーザー会

18現用の商用RDBMS移行
 商用RDBMSのフル機能の移行は不可能。
 フル機能を使いこなしているのは希なので、適用範囲を限れば可能。実際に使われる事例が増えてきた。
 はてなや楽天のMySQLの事例。
 日経SYSTEM(旧:日経システム構築)各種記事。
 PostgreSQL 8.0の性能(2005/07)
 商用DBからMySQLへの移行(2005/09)
 PostgreSQLクラスタリングツール(2005/12)

 PostgreSQLは事例が表に出にくいが、確実に使われている。

2006/06/17

Copyright(c) 2006 Firebird日本ユーザー会

19

Webアプリケーション一般
 一番知られている形。
 LAMPやLAPP。
 自社内だけで使う場合や、ソフトウエアそのものではなく、サービスを提供するだけなら、MySQLのGPLライセンスで使用可能。
 レンタルサーバなどでも、最初から使えるようになっている場合が多い(ただしバージョンは限られる)

2006/06/17

Copyright(c) 2006 Firebird日本ユーザー会

20

Webアプリケーションのパッケージ化 ＬＡＭＰ(Linux+Apache+MySQL+PHP)

 Web上や、社内でサービスしているだけならOK!
 アプリケーションとして売り出すにはMySQLではライセンス(FPL)料金必要

 Mの代替としてのF(irebird)やP(ostgreSQL) MPLバリエーションのIPLライセンス(Firebird)、BSDライセンス(PostgreSQL)で、提供形態にかかわらずライセンス料金は不要！

2006/06/17

Copyright(c) 2006 Firebird日本ユーザー会

21

OSSDBを選ぶ理由、選ばない理由
 選ぶ理由 「フリー」それによる新たな使用形態
 商用製品よりさらに広いマルチプラットフォーム
 ソリューションの一部としてのハンドリングのしやすさ 選ばない理由 サポート 最先端の機能 ムーブメント

2006/06/17

Copyright(c) 2006 Firebird日本ユーザー会

22

Firebirdを選ぶ理由、選ばない理由
 選ぶ理由 小さくはじめて Win9xでも動作する
Win9xでも動作する 軽いフットプリント、小さな容量、インプロセスも可能
軽いフットプリント、小さな容量、インプロセスも可能 「完全な」フリー
「完全な」フリー 大きく育つ C/Sに移行も可能、マルチプラットフォームC/Sに移行も可能、マルチプラットフォーム
 メンテナンスコストも低い
メンテナンスコストも低い 選ばない理由
 大規模、そしてその上への機能、事例不足
 日本語情報、技術者の不足
2006/06/17

Copyright(c) 2006 Firebird日本ユーザー会

23

MySQLを選ぶ理由、選ばない理由
 選ぶ理由 WebのバックエンドDBとしての実績・事例豊富
 レンタルサーバーなどで容易に使用可能
 PHP4のデフォルトDBになるなど、Webとの親和性が高い 選ばない理由 適用形態により、FPLライセンスが必要。
 リリース形態。発表からstableまでのタイムラグ。
2006/06/17

Copyright(c) 2006 Firebird日本ユーザー会

24

PostgreSQLを選ぶ理由、選ばない理由
 選ぶ理由扱うＳＩｅｒが多い。
機能が豊富(大規模・エンタープライズ向けのものも)日本語情報の提供がはやい。
開発やリリースの速さ。

 選ばない理由Windowsネイティブ対応の日がまだ浅い。
開発やリリースの速さゆえの、バージョン選定とメンテナンス。
個人が気軽にはじめるには敷居が高くなりはじめている。

 後はヒロシさんに聞いてみよう！
2006/06/17

Copyright(c) 2006 Firebird日本ユーザー会

25とりあえず使ってみよう！
 雑誌付録CDなどによく収録されている
 DB Magazineには、それぞれ最新安定版が。

 Windowsネイティブ版もあるし、VMWare
Player, Virtual Server /R.2を使うという手もある。
 一台のパソコンでC/S環境も作れる。(マシンパワーは必要だけど)2006/06/17

Copyright(c) 2006 Firebird日本ユーザー会

26