TOPサーバ構築・運用> オープンソースのデータベースってあるの?
はじめてのオープンソース
たかはしもとのぶの「はじめてのオープンソース」

第4回:オープンソースにもデータベースってあるんですか?

著者:たかはしもとのぶ   2007/10/4
前のページ  1  2  3  次のページ
オープンソースのデータベースってあるの?

森君 森君    え!データベースって、ものすごーく値段が高いって教わりましたよ。先生が「豪邸が建ちます」とかいってたし。オープンソースって、データベースまで進出してるんですか?
金子さん    当たり前でしょ。すとーるまん様のおつくりになられたものは、どこにでも存在するの。これを「すとーるまん様の遍在」っていうのよ、知らないの?

もとのぶ先生 もとのぶ先生    (すとーるまん様の遍在って……、そんな言葉は聞いたことないんだけど)

   ええと、オープンソースのデータベースとして有名なのは、「MySQL(マイシーケル/マイエスキューエル)」と「PostgreSQL(ポストグレスキューエル、略してポスグレ)」になるかな。ちなみにいわゆる商用データベースとしては、SQL Server以外にもOracle(オラクル)やDB2がある、というより、シェアとしてはOracleが圧倒的に多いね。
データベースの種類など
図1:データベースの種類など

   PostgreSQLとMySQLを比べると、PostgreSQLは一通り機能を実装している。MySQLは機能は若干劣るけど、代わりに高速というのが一般的なイメージかな。もっとも最近ではMySQLにもトランザクション機能をもつInnoDBが実装されたんで昔ほど機能の差はなくなってきている。一方、MySQLでトランザクション機能がないMyISAMを使うと、非常に高速に処理ができるので参照だけのデータベースには便利だね。ただ国内では、日本語化が先行したことやコミュニティの活動が活発なこともあって、PostgreSQLが優勢かな。海外だと圧倒的にMySQLなんだけどね。

   こうしたオープンソースのデータベースも、OracleやSQL Serverみたいな商用データベースも基本的なSQLの文法は同じ。だから今回の研修の課題くらいだったら、どっちでもある程度は大丈夫。

   ただ商用データベースでは、大量のデータを処理しないといけない時に備えて、CPUが何十個もあったり、データが何TBもあるような大規模な環境でもきちんと動作するようにいろいろ工夫されてたり、もしもの時に備えてのバックアップやリカバリの機能も充実している。クラスタといって、万一データベースサーバが停止したときに、別のデータベースサーバが処理を引き継げるようにする機能も充実してるね。

森君    うーん、でも基本的なデータベースとしての機能には、そんなに差がないんですよね。それなのに、片や豪邸が建つ値段のオラクル、片や無償のオープンソース、ってどうもわかったようなわからないような感じで……。

もとのぶ先生    こういう例ならわかるかな。データベースって、データを格納したり必要に応じて検索したりするのが役割だっていうのは習ったよね。

森君    はい

もとのぶ先生    データの中身が預金情報だったとしよう。で、もしデータベースの問題で「数時間お金を引き出せません」とかなったら困るよね。

森君    もちろん!

もとのぶ先生 もとのぶ先生    ほかにも「ハードディスクが壊れたときにデータがなくなっちゃった」とか「取り引きの量が多くなったら、データベースの処理が追いつかなくなっちゃった」とか、どれも絶対あってほしくはないよね。

   こういう非常に重要な仕事を「ミッションクリティカル」っていうんだけど、先生が豪邸が建つっていった商用データベースは、こうした用途に使うことまでも想定しているんだ。

   基本的なデータベースとしての機能ではオープンソースのデータベースもそん色ないと思うけど、ミッションクリティカル用途で必要とされる万一の際にもデータの消失を引き起こさないための仕組みや、とても高負荷な環境でもきちんと動作させるための仕組み、それから以前も説明したけど、いわゆるサポートの面では商用データベースに一日の長があるって状況かな。24時間365日なにかあったら、すぐに技術者が現場に急行できるようなサポート体制を整えているのが普通だからね。もちろん、豪邸?が建つようなお金を払うからこそ実現できるわけだけど。
森君    ってことは、研修で使ったSQL Serverも、ウン千万円払って買ってるんですか?

もとのぶ先生    さすがにそれはないかな。

   商用データベースも、もちろんピンからキリまである。SQL Serverだって、一番安く入手すると10万円前後からあるかな。作成できるデータベースの大きさとか、付属ツールとかが制限されてるけど、大半の機能はフルセット版と同じだね。オラクルにも、同じように安い製品があるよ。

森君 森君    うーん、結局商用データベースは安いのから高いのまでいろいろあって、安いのは高い製品の機能限定版って感じで、オープンソースのデータベースは機能限定版ぐらいの感じですかね。
もとのぶ先生    うーん、まぁそうともいえるかな。オープンソースのデータベースも頑張ってきてはいるけどね。

森君    でも、やっぱりデータベースは商用のやつを使ったほうが安全っぽいですね。オープンソースのデータベースなんて、使ってるひといるんすか?

金子さん 金子さん    あのねぇ……、オープンソースのデータベースが安全じゃないなんて、誰もいってないんですけど。確かにミッションクリティカルな用途では、若干及ばないかもしれないけど、そこまでの高信頼性、高可用性を必要としない身近なところでは、結構使われてるのよ。
森君    そうなんですか、聞いたことけど。

金子さん    部署で使ってるスケジュール管理ソフト、スケジュールの情報はPostgreSQLに入ってるんですけど。それに、「LAMP」のMはMySQLってこの間説明しなかったかしらねぇ。

もとのぶ先生    まぁまぁ。確かにMovable Type、WordPress、Nucleus CMS、OpenPNE、XOOPS……といった、情報共有系のツールはオープンソースのデータベースを使っているケースが多いね。これは、そんなに高い負荷をかけることもないし、データの信頼性も、まぁさっきのミッションクリティカルというレベルではない、というあたりかな。

   でもそれだけじゃなくて、日本を代表するオンラインショップの楽天がMySQLを使ってたり、徐々にではあるけど大規模システムの事例も増えてきてるよ。

   オープンソースだけに、ソースコードの内容を熟知していれば自分で直せるっていうのもあるから、万一トラブルが発生したときに最後まで責任もって対応できるしね。商用のデータベースだと、ベンダーさんに対応をお願いできるけど、いい方かえるとベンダーさんが、契約上これ以上対応できませんといわれちゃうとどうしようもないって側面もあるから。

森君 森君    であれば、なんでみんなオープンソースのデータベースを使わないんですか。
もとのぶ先生    さっき言ったように、そもそものミッションクリティカルに必要な機能の整備や、長年そうした環境で動作してきたっていう実績は圧倒的に商用データベースのほうが上。それにオープンソースだからソースコードの内容を誰でも見られるとはいっても、じゃぁ森君が「いまMySQLでトラブルが発生したので、ソースコードをみて原因を突き止めて」っていわれても困るよね。

森君    ええ、まぁそうですけど。

もとのぶ先生 もとのぶ先生    だれでもソースコードをみる権利があるからといって、実際きちんと理解できる人はそう多くないし、当然だけどそういう人たちをいっぱい雇えばお金も掛かるってことかな。商用データベースは確かに買うだけでお金掛かるけど、代わりにトラブルの対応とかもお願いできるからね。そういう意味では一長一短あるよね。
本記事はフィクションであり、実在の人物には一切関係ありません。

前のページ  1  2  3  次のページ


たかはしもとのぶ
著者プロフィール
たかはしもとのぶ(高橋基信)
1970年生まれ。1993年早稲田大学第一文学部哲学科卒。同年NTTデータ通信株式会社(現:株式会社NTTデータ)に入社。
クライアント・サーバシステム全般に関する技術支援業務を長く勤める。UNIX・Windows等のプラットフォームやインターネットなどを中心とした技術支援業務を行なう中で、接点ともいうべきMicrosoftネットワークに関する造詣を深める。
現在は「日本Sambaユーザ会」スタッフなどを務め、オープンソース、Microsoft双方のコミュニティ活動に関わるとともに、各種雑誌への記事執筆や、講演などの活動を行なっている。


INDEX
第4回:オープンソースにもデータベースってあるんですか?
  データベースは難しくない?
オープンソースのデータベースってあるの?
  オープンソースのデータベースを使うのって、とっても難しいんじゃない?