DBMS – PostgreSQLではじめるDB入門 http://db-study.com DBの基礎から設計の考え方、実践で役立つ知識などを図解を用いてわかりやすく解説しています。さらにPostgreSQLによりサンプルを交えながらSQLを使いこなすために必要な知識をまとめています。 Sun, 04 Feb 2018 05:24:53 +0000 ja hourly 1 https://wordpress.org/?v=4.9.3 たくさんあるDBMS http://db-study.com/archives/24 http://db-study.com/archives/24#respond Sat, 10 Oct 2015 15:12:19 +0000 http://db-study.com/?p=24 データベースのデータは直接アプリケーションから操作するのではなく、専用のソフトウェアによって操作・管理されます。そのソフトウェアをDBMS(データベース管理システム)と言います。

DBMSは商用ソフトウェアとオープンソースソフトウェア(OSS)があります。今回は、どのようなDBMS製品があるのか、それぞれの簡単な特徴を交えて見ていきます。

商用ソフトウェア

商用ソフトウェアとは商用利用するときは有料となるソフトウェアのことです。主な商用ソフトウェアとして以下の製品があります。

製品名 特徴
Oracle Database 最大のシェアを誇るDBMS。技術者も多く書籍やネットなど情報量が圧倒的に豊富。
IBM DB2 着実にシェアを伸ばし、認知度を高めているDBMS。IBMはWebSphere Application ServerやWebSphere MQなど世界で高い実績を誇る製品が揃っており、ハードウェアを含めインフラ構成全体をIBM製品で統一するシステムもよく見られる。
SQL Server Windowsプラットフォームに特化したMicrosoftのDBMS。Oralceに次ぐシェアを誇り、情報量も豊富。
HiRDB 日立製作所が開発する国産DBMS。公共団体や金融機関などの安定性を望む企業にも数多く採用実績がある。

現在、商用DBMSの中でも大きなシェアを確保しているのは、Oracleの「Oracle Database」、IBMの「IBM DB2」、Microsoftの「SQL Server」であり、これら3製品は商用DBMSの「御三家」ともいえる存在となっています。

国内におけるメーカーシェアは、1位Oracle、2位Microsoft、3位IBM、4位日立製作所という順位に落ち着いているようです。(調査会社ガートナー調べ)

シェア1位の座は昔からOracle Databaseが維持しており、その牙城を崩すことは、MicrosoftやIBMをもってしても困難なのが伺えます。ただ、サーバーOSがWindowsの場合に限れば、SQL Serverが非常に高いシェアとなっています。

国内では、それら御三家に次ぐのが日立のHiRDBになります。ここ近年、SI事業が好調な日立が自社製品のシェアもうまく伸ばしているというところでしょうか。製品のバージョンアップも繰り返し行われ、品質向上とともに、大規模なシステムへの採用実績も着実に伸ばしているようです。
※補足:2017年現在、データベースのシェアは大きく変動しています。2017年現在の動向については以下サイトに記載されています。
http://www.publickey1.jp/blog/17/dbmsawssapibmdbms2017.html

商用ソフトウェアのメリットは(基本的に)品質が高く、メーカーからのサポートが受けられることです。DBMSには高い信頼性や性能が求められます。また、お客様の要件を満たすための機能を持っていなければいけません。そして問題発生時には、その解決のための迅速なサポートも必要です。

それらメリットを得るためには、当然、お金が必要なのですが、DBMS製品は高額であり、はじめて見る方はその価格に目を疑うことでしょう。DBMS製品本体価格もそうですが、オプション製品も合わせると相当です。

特にOracle Databaseは高いです。性能、信頼性、開発効率は高いのですが、Oracleで良い基盤を作ろうとすると、その分コストが膨らんでしまうでしょう。

オープンソースソフトウェア

オープンソースソフトウェア(OSS)の最大の特徴は無償であることです。商用DBMSは非常に高額だということを上述しましたが、OSSはなんと無償で使用できるのです。

オープンソースソフトウェア(以下、OSS)とは、ソースコードが公開され、改良や再配布を行うことが許可されているソフトウエアのことです。

無償だということは、有償の商用DBMSに比べると機能や性能などが圧倒的に劣っており、商用で利用できるレベルではないと思われるかもしれませんが、そうではありません。

確かに以前は、顧客が求める高いレベルの要件をOSSのDBMSは満たせないなどとして、商用DBMSが採用されることが多かったと言えます。ただ、最近では、機能や性能を比較しても、商用DBMSと比べても遜色なくなってきています。

主なOSSのDBMSとしては以下があります。

名称 特徴
MySQL OSS DBMSとしては最大シェアを誇る。とにかく軽いのが特徴。
PostgreSQL オブジェクト関係データベース管理システム(ORDBMS) 。MySQLとよく比較され、市場シェアでは圧倒されているが、近年、PostgreSQLが選ばれるケースが増えている。
SQLite サーバーとしてではなくアプリケーションに組み込んで利用される軽量のデータベース。
Firebird 高度なトランザクション管理機能を有する。ストアドプロシージャやトリガー、UDF(ユーザー定義関数)等の商用データベースに通常備わっている機能を網羅している。

OSSのDBMSの進化により、システムに必要な高い信頼性、機能性、性能を十分満たせるようになりました。小規模・中規模システムではOSSのDBMSで大抵、事足りるでしょう。

近年ではPostgreSQLが注目を集めており、現バージョンでは、マルチコアCPUのサーバー上での性能が大幅に改善され、その性能は商用DBに匹敵するほどです。

商用ソフトウェアとOSSどちらが良いか

ここまで商用DBMSとOSSのDBMSを紹介してきましたが、結局のところどれが一番良いのでしょうか。

どれも一長一短な部分があり、エンジニアによって答えが割れるでしょう。もしかしたら、優秀なエンジニアほど偏った見解を持っているかもしれません。それはそれだけ多くの経験を積んだからには他なりません。ただ、各製品とも短いスパンでバージョンアップを繰り返しており、1年前は問題が多かった製品も最新バージョンでは改善されているかもしれません。

無償だからとOSSのDBMSを採用したとして、初期コストが抑えられたとしても、システムは作ったら終わりではなく、カットオーバー後の運用が待っています。例えば、障害発生時のリカバリ機能などは商用DBMSの方が高機能と言えます。また、メーカーによる有償サポートが受けられるので、問題を解決しやすいです。

それらがないとシステム運用中に置いておかなければならないエンジニアに求められるスキルが上がり、結果、運用コスト(SE費)が高くついてしまう可能性も考えなくてはいけません。

私も過去に、採用したDBMSに要件を満たす機能備わっておらず、「なぜこの製品を採用したんだ」と顧客にこっぴどくお叱りを受けたこともありました。

結局、どれが良いかなんてことはわからないということです。

]]>
http://db-study.com/archives/24/feed 0
データベースの管理方法 http://db-study.com/archives/12 http://db-study.com/archives/12#respond Sun, 04 Oct 2015 04:26:27 +0000 http://db-study.com/?p=12 情報化社会という言葉をご存知でしょうか?

情報化社会とは、情報が諸資源と同等の価値を有し、それらを中心として機能する社会のことです。そのような社会においては、情報は時として、金や銀などと同等、もしくはそれ以上の価値にもなりえるということです。

今日、さまざまなデータが電子化され、さまざまなシステムの上で管理・活用されています。そして、私たちの生活とシステムは切っても切り離せないほど密接に結びついています。

例えば、インターネットバンキングやATMなどの金融システム、あるいは交通、電力といった社会インフラ(社会の中で、生活の基盤をとなるもの)を支えるシステムなど、今やそれらのシステムがなければ私たちの生活が成り立たないといっても過言ではないでしょう。

そうしたシステムは、システムが動作するハードウェアやソフトウェアなどはそれぞれ異なっていますが、ひとつだけ共通している点があります。それは、すべてのシステムが「データ」を取り扱っているということです。

データはシステムによってデータベース化され、データベースからデータを引き出して価値のある情報を作り出します。今日のシステムにおいて、データベースを持っていないシステムは存在しません。データベースは個人情報や機密データを多く含んでいるため、ユーザーからは見えないように隠されていますが、私たちがシステムを利用した際には、その裏でデータベースが使われているのです。
では、データベースはどのように管理されているのでしょう。重要なデータが含まれていたり、不特定多数のユーザーが同時に利用することになるデータベースは整合性を保ちつつ、厳重に管理されなくてはなりません。

そんな重大な役割を担っているのが、DBMS(Database Management System)です。

DBMS

DBMSとは、共有データとしてのデータベースを管理し、データに対するアクセス要求に応えるソフトウェアです。データの入出力はDBMSを介して行われるために、複数のアプリケーションで同じデータを変更して矛盾が発生するようなことを回避できます。

DBMSとは

ユーザーはシステム(データベース)にデータを登録し、さらにそれを引き出して情報を作り出す。この一連のやり取りを仲介しているのがDBMSというわけです。

]]>
http://db-study.com/archives/12/feed 0