| ||||||||||||||||||||||||
| 前のページ 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 次のページ | ||||||||||||||||||||||||
| ||||||||||||||||||||||||
| ||||||||||||||||||||||||
| ||||||||||||||||||||||||
| ||||||||||||||||||||||||


