- ベストアンサー
DBMSの信頼性等について
とある学校の生徒のデータを整理して検索等するシステムを構築したいということで調査を依頼されたのですが、DBMSに何を使用するかでいきなり躓いております。 OracleやSQLServer(のプロセッサライセンス)を使用しようとすると高価過ぎると言われ、じゃあMySQLかPostgreSQLを使ってみようかと思うのですが、私自身にそれらの使用経験がなく、無料ということでやはり一抹の不安があります。(今のところ、どちらかというとMySQLの方が良いように考えています) そこで質問なのですが、MySQLかPostgreSQLというのは業務関連にも十分に信頼が置け、耐え得るものなのでしょうか? 見識のある方、使用のご経験のある方、おられましたら回答お願いします。 ※ 使用を想定しているクライアント数は最大で100程度で、通常の業務に使用するような常時アクセスがあるようなものではなく、必要な時に検索或いは入力する、平均すれば1クライアントあたり1日で1~2アクセス程度になるぐらいと想定しています。システム自体も簡易なものになる予定です。 サーバはWindowsかLinux、アプリはブラウザベースで使用、開発言語はPHPかJSP 等で問題なく、何をどれにするかはDBMSによって開発及び管理運用が少しでも楽になる方策を取りたいと考えており、それぞれどの場合にどれを選択するかは自分の中では問題はありません。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
あまり話題になってないようですが、Oracle 10g Express Editionという無償バージョンのOracle Databaseがあります。以前から、オラクルでは、Developer Editionという試用はできても商用利用ができないバージョンはありましたが、これは商用利用もOKです。 制限としては、「1CPU、最大1GBのメモリなど」が設けられるものの、Flashback Query機能やPL/SQL native compilation機能、Password management機能などは提供されますし、.NET stored procedure supportやGlobalization support、JDBC drivers、PL/SQL、SQL*Plusといった開発に利用する機能もそのほとんどが提供されます。 10gになってからは、インストールも早くなりましたし、お手軽にネットからブラウザを使ってDB更新できるツールも用意されています。とくにバックアップは、Recovery Manager (RMAN)によりオンラインバックアップがとても楽になってます。 とはいえ、一歩踏み込むと、やはり「お勉強」が必須の世界でしょうけど、信頼性はまあ十分でしょう。(実際にはパッチが何度も必要だったりということもあるようですが) たぶんこのソフト無償提供は「Oracleユーザ・技術者を増やしたい」って意図があるのだと思います。初心者プログラマがMySQLとかPostgreSQLに慣れてしまえば、将来のOracle市場が狭められる可能性がありますからね。 なお導入環境には、それなりにパワフルなマシンが要求されますので、「古いマシンが余っているから、これを流用して・・・」っていうのは難しいですね。
その他の回答 (3)
- qaz_qwerty_me
- ベストアンサー率19% (214/1115)
多分 RDBMSは初心者ですよね? RDBMSは初心者なら、SQLiteがお勧めです。理由は、Oracleなどが典型的ですが、RDBMSの管理だけで大変です。インストール前のディスク容量の見積り、運用開始以後のスペース不足になっている領域の監視&スペース拡張、そして障害時の対応etc. しかし、行ロックの信頼性を考えたらOracleらしいです。 Oracle以外は管理したことがないので分かりませんが ^ ^; Oracleと比べるとMySQLは、管理といえる業務はないに等しいくらいに超軽量ですが、SQLiteはMySQLより更に軽量というか・・・RDBMSと呼べないほどに超・超軽量です。 しかし、コマンドレベルの操作でも、PHPなどのプログラム言語からもOracleとほぼ同じSQLで操作できます。 要は管理業務がゼロというのがSQLiteです。 RDBMS管理を考えずにアプリケーションに集中できるのがSQLiteだからお勧めします。 まずは、テーブル定義等のデーターベース設計とPHPなどの勉強に集中してプロトタイプを作成し、その後にMySQLなどに移行するのが良いと思います。 PDOというI/Fを利用するとdbのオープン/クローズ処理以外は、MySQL、Oracleなどの主要なRDBMSに移行しても修正が必要ないプログラミング( SQL )ができるので検討してみて下さい。 SQLiteでの注意点は、型がないので日時は正しく変換しないとムチャクチャな値になることと、外部参照をできない点です。 MySQLやPostgreSQLを利用するなら、有償の管理ツールがあるので、それを導入すれば少しは安心できるのではないでしょうか? Oracleなどには、チューニング・ツールなどを優秀なツールがありますが・・・Oracle本体に劣らず高額なものも多いので、費用と人材に余裕のある環境以外では大変ですよ ^ ^; > 私自身が基本的に有償のものしか使ったことがないので、フリーというだけで意味不明な抵抗感があるというのもあります。 MySQLは違いますが、PostgreSQLはUCBで開発された血統の正しいソフトですから安心できますよ。 また、インストールは、多少 大変かもしれませんが、運用時にエラーが発生するのは限界に近い状態で運用すると意味不明のエラーを発生するらしいですが、御質問の環境では心配ないと思います。 性能評価とチューニングは重要で、一般的にインストール時を『100』とすると、適切にINDEXを張るなどのソフト的なチューニングで『10』、更にハード( メモリー&CPUの増設 )的にチューニングして『1』とい感じで最低でも100倍は早くなります。 > 業務用では余り使われてないのかな、業務用には余り向いてないと・・ MySQLやPostgreSQLの能力に限界を感じてOracleなどに移行するサイトも多いと思いますが、一般的な用途であればMySQLやPostgreSQLで何の問題もないと思います。 私が管理していたOracleは、数千個のテープルを持ち24時間・365日の運用を要求されたのでOracle以外の選択はないというか、MySQLやPostgreSQLで大丈夫だと責任を持てる人がいない! ということです。
お礼
どちらかというと初心者というよりも最近の事情をよく知らない、というのが正確なところじゃないかなと自分では思ってます。5~6年前から全く違う業界にいるので最近の事情にはかなり疎いみたいなんですよ。 それが今回ひょんなことから依頼されてしまい、さて色々調べるか、となってるところです。 DBの設計管理云々に関しては、以前にLinux+Oracleを中心にそれなりに色々やっていたので、まぁ大丈夫だろ(むしろ楽になってるっぽい)などと高を括ってたりします。 (ちなみに私が言う「意味不明のエラー」への恐怖心は、当時の特にWindows+SQLServerで色々あった経験則から来ています) 確か当時もMySQLやPostgreSQLはあったと思いますが、Oracleさえ使っていれば取りえずは殆ど全てにおいて事足りていたのと、MySQLやPostgreSQLは趣味レベルでやるにはいいんだろうけどぐらいの認識で、業務には使えないと思って見向きもしませんでした。(だから余計に今の抵抗感があるのですが) 例えばqaz_qwerty_me様言われるところの「行レベルのロック」にしても、信頼性が落ちたりそもそも出来なかったりするのは、感覚的に「それを当たり前にやるOracle」を中心に考えてしまう私にすれば恐怖でしかないのです。 とは言え、今のMySQLやPostgreSQLを殆ど知らない時点で初心者と同じなのかも知れません。^^; 現在鋭意調査中です。(笑 > SQLite > 型がない せっかくお勧めいただいたのですが、型がないのはちょっと気持ち悪いです。(ということを言うこと自体、もしかしたら古い人間なのかも知れませんけども汗) 取り敢えずこれは遠慮しておたいと思います。 貴重なご意見ありがとうございました。
- qaz_qwerty_me
- ベストアンサー率19% (214/1115)
> クライアント数は最大で100程度 > 1日で1~2アクセス程度 同時接続数とデーター件数などがレスポンスに影響しますが・・・、上記の想定が正しければRDBMSと名前の付くソフトならどれでも問題はないと思います。 極論はPHP5からバンドルされたSQLiteでも問題はないのではないでしょうか? MySQL、PostgreSQLとOracleなどの有償版の比較をしているようですが、想定している範囲ならOracleなどの有償版の必要はないです。 ただし運用管理に自信がなく誰かに頼みたい&費用も充分あるならOracleはお勧めですし、機能的にも他のRDBMSに負けることはないと思います。 PHPでアプリを構築するなら、PHP5+SQLiteでお手軽に作成してみては如何ですか?
お礼
業務アプリであれば殆ど全てにおいてそうなんですが、学校関係ということもあってこれは特にレスポンスよりもデータの信頼性・保守性及びセキュリティに重きを置きます。 具体的には、例えば訳のわからんエラー、というよりDBMSそのものやOS及びその設定等との兼ね合いによるバグ等を起因とするような意味不明なエラーがもし発生した場合、自分で対応出来るのか(文献・ドキュメント類の充実度)、出来なかった場合は外部に依頼する等すれば殆どの場合改善出来るのか、データの安全性はOracleやSQLServerと比較して変わらないと考えていいのか、また正しい手順を踏んでいるにも関わらず問題が発生してしまうような確率・頻度はOracleやSQLServerに比較してどの程度であるのか、等、概ねそういったことに一抹の不安を抱えております。 勿論、テスト環境内で嫌というほどテストは重ねますが、余りに問題があるようだとまた振り出しに戻ってしまうので、事前に問題点や使用感等をお聞かせいただければ、と思い質問させていただきました。 MySQLやPostgreSQLの文献やサイト等は勿論調査はしているのですが、殆どが大丈夫・問題ない等の記述しか見られず自分の中ではかえって不安を煽ったりもしています。(○○に多少の問題がある等の記述があった方が、問題が最初からわかっているという点で変に安心感があったりします・笑) また、実際に業務用に使用してどうだったというような経験談的な記述も今のところ余り見られないので(発見出来てないだけかも知れませんが)、やはり業務用では余り使われてないのかな、業務用には余り向いてないと考えてもいいのかも知れない、などとついつい悪い方向へ考えてしまい、色々サイトを見てる最中にふと思い立ってどなたかのご意見を伺いたいと思い質問してみた、という次第です。 私自身が基本的に有償のものしか使ったことがないので、フリーというだけで意味不明な抵抗感があるというのもあります。 言葉足らずの部分があったかも知れず、申し訳ありませんでした。 qaz_qwerty_me様の回答としては「問題ない」と理解しました。 ご回答ありがとうございました。
- chukenkenkou
- ベストアンサー率43% (833/1926)
Q&Aサイトとして有名な「Yahoo!知恵袋」は、PHP+MySQLで構築されているようです。たまにMySQLのエラーが、そのまま利用者に表示されるといったケースがありました。 「知恵袋」は相当なトラフィック量でしょうから、人材やサーバをそれなりにお金を掛けて配置すれば、それなりに信頼性も確保したシステムが構築できるということでしょう。 MySQLに関しては、パッチ等の情報収集やトラブル時のソース解析などを有償で請け負っている会社もあります。
お礼
> 「Yahoo!知恵袋」は、PHP+MySQLで構築 そうなんですか、それは知りませんでした。 Yahooほどの大手が使ってるとなれば取り敢えず大きな問題はなさそうですね。 ご回答ありがとうございました。
お礼
何と。そんなのがあるとは知りませんでした。日本のサイトしか見てなかったですよ。^^ 早速調べてみます。ありがとうございました。