RDBMS比較総合スレ 【サーバ】
仕事だとDB選べることは少ないと思うけど、
各機能、SQL対応、方言、コストとかの知識を深めとこう
●主要RDBMS一覧
Oracle
IBM DB2
Microsoft SQL Server
PostgreSQL
MySQL
Firebird 最近のDBMSは個人利用レベルなら無料。
SQL ServerだけWindows版しかないからOS費用(ライセンス費用)が要る MSSQLは結果の件数範囲一発で絞れるようになった? >>3
個人でやるならMySQLかPostgreSQLでいいのでは。 でも仕事では使わせてもらえない。
そこまで使いたいわけじゃないが。 Oracleはマニュアル車。プログラマが最適化できる。
DB2はオートマ車。システム管理者が最適化する。 Oracle = CHAR日時
DB2 = INT日時 SQL Serverは1800年ぐらいからしか入力できない
smalldatetimeにいたっては1900年だから生年月日にも使えない 歴史、教育関係にSQL Serverはお勧め出来ない 実際にはほとんど使う機会のない年代を省いて効率化しようとするMSの姿勢は好きだぜ? 日時型を大小2つに分けてるのに江戸時代も入力できないMSSQL
日時型扱うと紀元前のデータ範囲持っちゃうOracle
ちなみにMySQLも西暦1000年から 大きい範囲が必要なのはマスタだから文字列で十分だよ 調べた。間違ってるかも
入力範囲 date time interval etc
Postgres BC4713〜 ○ ○ ○ 小期間版有
MySQL 1000〜 ○ ○ × Year型有。0000-02-31とかが通る
Oracle BC4713〜 × × ○ 高精度版有
DB2 0001〜 ○ ○ ×
MSSQL 1753〜 × ○ × 小期間版有。米グレゴリオ暦導入後〜
sqlite 型無し文字列か数値で スレ違い BC4713頃に何があったか分からないんだが、誰か覚えてる人いる? 私も気になって・・・
ttp://koyomi.vis.ne.jp/doc/mlwa/200610160.htm
BC4713年にこだわりは無いみたい。
太陽章 (28年周期)
太陰章 (19年周期)
インディクティオ (15年周期)
これらは 7980年周期で近いのが BC4713年だそうです。さらに 7980年遡ってもいいのだけどそこまで遡らなくても歴史上の出来事の記述に問題ないという判断らしい。
MERGEよりMySQLのREPLACEのが便利だな まあ各DBいろいろ変な仕様あるけど
ORACLEの空文字NULLだけは何とかして欲しいTOPだわ Firebirdは西暦100年1月1日から32768年2月29日 >>29
ああ、確かに。
なぜ空白をNULLと見なすかな〜 Oracle 多数派。
DB2 業者がIBM系。
MSSQL MS系。
Postgres フリーで上記DBの代替。
MySQL 軽い。DB側機能要らない。
Firebirdって何がいいの? >>32
>Firebirdって何がいいの?
・Delphiとの親和性が高い
・1DB = 1ファイル
・embedded版はSQLiteみたくインストール不要。(単純にdll等のファイルの配布で済む)
3強DBみたいに扱われるけどDB2ってホントIBM系だけだよな
この板のスレも全然伸びてねえし これからも開発サイドがORMに流れていきそうだから
OracleがSun MySQLに食われるんだろうな >>34
DB2のiSeries版はマジでいいと思うが、PCで動くDB2はあんま使う気しないよなぁ。
もはやDerbyでいいじゃないか?って思えるし。 DB屋(?)の総人口がプログラマやSEに比べて圧倒的に少ないと思うので
コメントが難しいが、SE&PG&DB屋の漏れは、正直「この案件にOracleはいらんだろ」
思う事は多々あるがそこでDrebyとかをお勧めするかは微妙なんだよな。
個人のちょっとしたテスト環境や分析にはよく使うけどさ。>Derby
んまあ、部署単位の案件とか中小規模の会社のシステムでも
運用を工夫すれば十分使えるとは思うよ。 普段オープンつかってる会社がOracle使うなんて単なる客の要望だろ。 普段は別にオープン使ってる会社でもないけど。
鯖はWindowsだし。
WebのバックエンドのDBになぜかOracle使うと言ってきた。
Windowsの鯖なんだから普通にSQLServer使っとけ、と思ったが、
おそらく担当者がOracle信者か営業的数字を挙げたいから提案したか、
そんなトコだ。 SQLServerって普通っていうほど圧倒的シェアか? ただ単にWindows鯖でOracle使う事ないって意味だろ。
UNIXやらで運用しているシステムならともかく。 >>42
新規に始めるならこれほどWindowsにぴったりなDBはない。 MySQLのWin版もGUIツールが日本語されたらゴミ開発者でも扱えそう 別にODBCドライバがあるならGUIはAccessでいいと思う。
RDBやOSの管理を日本語GUIでやりたいなら、iSeries(AS/400)を買っとけ。
商業高校卒業の10代のOLでも扱える。
と言うか某地銀はそんな感じだった。 オープンソースのDB使うなら、SQLServer、OracleもしくはDB2の無償版じゃだめなの?
オープンソースのDB使うメリットって何よ。無償版が無かった頃と違うんだし。
無償版ってそれは開発者向けのお試し版で商利用しちゃダメなケースが
多いはずだが。 >>48
ソースコードが手元にあれば問題解決が早い。
自分専用に最適化したバイナリも作れる。
とにかく小さいのとか、iPhone で動くのとかね。
世界中のユーザがコードレビューをしているから、
ソースコードを読めないしコンパイルもしない
という人にもメリットがある。ベンダーに
ロックインする事も無いから、好きなバージョンを
永遠に使い続けられる。
値段は重要なファクターだけどオープンソース
=無料という訳ではない。仕事で使うなら
サポートフィーが掛かるし人件費も掛かる。
自分できちんと評価してみれば良さが分かるよ。 >>48
Oracleは期間限定、期日を過ぎると再インストールするしかなくなる。
事実上商用には無理。
IBM DB2
IBMは評価版ではなく、1つの製品として「DB2 Express-C」を公開している。
ただしサポートなどは一切無いので、困ったときにどうするかはあなたの会社の腕の見せ所
規模が小さいとか、サポートがいらないなら悪くはないのかもしれないけど、
ここまで手間暇かけて評価版でDB作るくらいだったら、MySQLやPostgreSQLの方が保守にも向いてる。
--
個人で何かしたいなら、別に何でもいいんだけどね。
Windows全盛期のいま、Microsoft SQL Serverとかはちょっと触っておきたい。 DB2もOracleもMSSQLも無償版で商用利用可だろ
Express版なら >>50
昔Postgresで問題が発生したときに追いかけたことがあるが、「ソースがドキュメント」
状態だからそれなりに苦労したぞ。他人のプログラム弄ったことがある人間なら
わかるだろうが、読める=理解できるというわけじゃないからなぁ。
「自分専用に最適化したバージョン」てのも、なんつーか…… >>53
普段ソースを読みなれてない人なら苦労するかもね。
まさか当たりを付けずにいきなりソースを読んだ訳じゃないよね? 今のPostgresならユーザーも多いし資料も多いのでソースを追うって事はあまりないと思うが。
あとDB2のExpressってローカル接続しか許さないと思ったけど、
今は外部からの接続無制限なのか?
アレはホントに評価か勉強に使うモノかと思ったが。 >>54
そうだねw
それなりの規模の他人が書いたプログラムのソースを読んだだけで理解できる
くらいスキルがあれば全然苦労しないんだろうけど。
自分はそこまでの能力はないから、ふつうにデバッガをサーバープロセスに
アタッチして問題箇所を追い込むまで結構大変だったよ。 >>56
今なら DTrace を使うと問題の追跡が楽だよ。 どこもRDBMSの基本機能の制限はなし。
商用利用可。ライセンスの細かいとこは知らんけど基本的に利用制限無しっぽい。
あとSQL Serverは必然的にWindowsのライセンスも守らないといけない。
Oracle 10g Express Edition
1CPU メモリ1GB
DBサイズ 4GB
インスタンス数1
SQL Server 2005 Express Edition
1CPU メモリ1GB
DBサイズ 4GB
インスタンス数制限無し
DB2 Express-C
2コア メモリ2GB
DBサイズ制限無し
インスタンス数制限無し
>開発者、パートナー様あるいはお客様が、無償で信頼性の高いDB2 Express-Cを評価、開発、使用することができます。
>コードはダウンロードして入手可能ですが、製品保証および保守サポートは提供されません。 >>55
DB2 Express-Cをインストールしたとき、Windowsのアカウントを勝手に作ったのはびびった。 Linuxも勝手に作るはずだから、DB2はそういうモノと思うしかないが。
ただUbuntuにDB2入れたら、環境間違えて作るのでちょっとハマった。
DB2はiSeriesで使うのが一番楽だ。 DB2なんてAS400関わってないと使う理由がない まあ、商用RDBを選択するのは、サポートやら安心感を金で買う意味があるのだから、
そういった意味でDB2はAS/400でないとあんま意味ないだろな。
じゃあOracleはどーすんだ?って話になるとビミョーだな。
AS/400に比べるとやっぱサポート弱いし。 >>58見ると、オープンソースよりDB2 ExpressCでいいんじゃね?
とりあえず、DBサイズ制限ないし、2コア、2GBメモリまでなら
小規模なサイトとかなら余裕で耐えられる?
なんというか小規模Webサイト程度(?)に使うならそれこそMySQLや
Postgresの方が制限もまったくないし、使用例や対応アプリも多いと思うのだが。
OSSとの比較としてDB2の方がオプティマイザや自動チューニングの性能、
XML対応やらGUIな管理ツール等や日本語対応(?)やらIBMのサイトの技術資料を
漁れる点とかで、有利な点があるのは解るけどRDBの性格がWebサイト向けと言うよりかは、
社内システム向けだとは思うのだが。
小規模なサイトにベクターインデックスやマテリアライズ照会とかDB連合とかイラネーしなぁ。 アプリケーションの開発機能はやっぱ、商用データベースの無償版の方が上じゃないかな?
最近のMysqlなどはトリガーとかもサポートされてるのかもしれんけど。
PL/SQLやTransact-SQLなどの手続き型言語も、無償版の方がリッチだと思うし。
構造化型とかのオブジェクト・リレーショナル機能も然り。
接続インターフェースのODBC,JDBCドライバや,OLE DB,.NETプロバイダも
有償版と同じだから安定してると思うし。
問題はDBサイズ、CPUコア数とかの制限だな。もうちょっと制限、緩めろよと。
そういや、MySQL、Sunに買収されて今後どうなるのやら。
OpenOffice.org やらと一緒じゃないの >>66
商用の無償版でトラブったときにどう解決するかだね。
金がないから、惜しいから無償版使うわけで、(高額な)サポート代なんて払えないでしょ。
オープンソースDBでも同じかもしれないけど、PostgreSQLとかMLとかコミュニティが
あってそこには優秀な人が結構いるから、質問(相談)できる安心感があると思う。
有志が直ぐにパッチ等を作って公開してくれたりとか、マニュアルにない、実際使ってる人の
生の情報量とかは利用者が多いオープンソースDBの方が上なんじゃない? >>68
トラブルの解決と言ってもOracleにはOTNもあるし、DB2もフォーラムはあるんだが・・・。
あと誤解があるみたいだが、IBMも個別のパッチはマッハでリリースするぞ。
FixPackなんかは数ヶ月毎にリリースだけど、「企業システムはやたらとVerUPしない」
のが多いのでああいうモノではあるし。
それにIBMのdeveloperWorksもオープン系記事満載なのだが。
つかここだとガチの博士級がゴロゴロいるわけだし。
オープンソースつっても企業が大きく貢献(?)してるぞ。
商売っ気があるのは仕方ないにしても。 >>68
コミュニティとか言っても、開発者本人が参加している場じゃなけりゃ
たいして役に立たないからねぇ。Postgresなんかだと英語がハードルになる
人はいると思うよ。 無料で使えて、不具合があったらマッハでパッチがリリースされて、
当然そのパッチは誰でも入手出来て、開発者本人が参加している
日本語のフォーラムがあって、情報が充実しているデータベースが
あるって事? とりあえず、DB2とOracleはそうだったが。
一応会員登録しないといけないページもあるので、無料で会員登録しとくけど。
まあ、IBMとかでサポート契約している方が「その会社環境特別パッチ」を
作ってくれたりもするけど。
これはバグ報告する方が人柱モードでIBMに協力しないとダメだから、
変な期待はしないほうがいい。 Oracle の開発者って日本語喋れたんだな。てっきり外国人だと思ってたよ。 なんつーか、無料につられるクレクレ厨ほどウザいモノはないな。 自分の時間を投資する事を考えたら無料の方が高く付く可能性もあるよね。
取り敢えず始めやすいという意味では無料である事はほぼ必須用件だけど。 ttp://www.mysql-partners-jp.biz/license.html
MySQLってほとんどのケースでライセンス購入しなきゃいけないんだね。
君たちちゃんと購入してる? >>79
>ほとんどのケースでライセンス購入しなきゃいけない
はずれ