DBMSとは
DBMSとは、データベース(DB)をコンピュータで取り扱う際に必要とされる構築から管理・運用まで行うためのソフトウェアを指します。分かりやすく言うと、データの集合体であるデータベース(DB)を使えるようにしたり、保全したりするソフトウェアのことを表します。
DBMSは、データベース管理システム(DataBase Management System)の略で、読み方が気になりますが、そのままデー・ビー・エム・エスあるいはディー・ビー・エム・エスのようにアルファベット読みするだけです。
そもそもDBとは
データベース(DB)とは、情報を蓄積したり検索したりする機能を有するデータの集合体を指します。主にコンピュータシステムで利用します。データベースをコンピュータで利用可能にしたものを、データベースシステムと言うこともあります。
DBMSとDBの違いは?
データベース管理システム(DBMS)とデータベース(DB)の違いですが、データベースは蓄積されたデータの集合体、あるいはその保存されたデータ領域やファイルを指します。データベース管理システムは、そのデータベースを作成したり検索したりするための管理ソフトウェアを指します。
図書館に例えて言うと、図書館に陳列されている図書の集まりがデータベースで、その図書を陳列する棚割りや検索のシステムがデータベース管理システムに相当します。
DBMSの利用目的と用途
データベース管理システム(DBMS)の利用目的は、その処理能力と検索効率にあります。ちょっとした資料は、表計算ソフトで足りますが、その量がどんどん増えたり項目を追加していくと必要な情報がすぐに見つけにくくなってしまいます。
データベース管理システムは、小規模なものから大規模なものまで対応し、データ件数が膨大なものは人手に頼るより桁違いに効率的です。近年の電子データ管理にもうってつけで、ECサイトや小売の顧客データや売上管理、銀行取引など多岐に利用できます。データが増大するにつれてデータ分析による需要予測等にも威力を発揮します。
DBMSの機能
DBMS(データベース管理システム)は、データベースをコンピュータで利用する際に必要とされるデータベースの構築ならびに管理・運用機能を有するソフトウェアです。提供される機能は、データベースをコンピュータで効率的に利用する際に必要です。詳細は以降で解説していきます。
データベースの構築
構築機能により、データベースをコンピュータシステムに初期設定し、利用できる状態にします。具体的には、コンピュータシステムへの導入作業を行い、初期設定時に必要となるシステム資源を割り当てるとともに、データベースをあらかじめ作成してデータ作成などのリクエストを受付できる状態にします。
データベースの管理
管理機能により、システム構成に依存しない論理構造を用いて設計したデータベースを、設計内容に基づいて管理することができます。
具体的には、データベースの操作に必要とされるデータの作成や更新、検索や抽出、および削除の機能を提供し、リクエストを処理します。データを処理するうえでは、データ処理の不正を防止するとともに、データの一貫性ならびに完全性を確保します。
データベースの運用
データベースの運用機能として、保守や保全を行うことが可能です。具体的には、コンピュータのシステム資源やデータベース領域について、運用時のモニターならびにロギングを行います。障害を検知するとともに、障害発生の影響を最小にするために、データのバックアップ・リカバリー機能などを提供します。
DBMSの種類
データベースはいくつかのデータモデルが定義されており、データモデルに即したデータベース管理システムがあります。
データモデルとはアプリケーション開発の効率を高めるために、データの格納や利用方法を定義しモデル化したものです。代表的なデータモデルとしては、リレーショナルデータモデル・オブジェクトデータモデルや階層型データモデル・ネットワーク型データモデルなどが挙げられます。
現在、データベースとして主に活用されているのは、リレーショナルデータベース、オブジェクトデータベース、NoSQLデータベースなどがあります。階層型データモデルとネットワーク型データモデルのデータベースは、現在は淘汰され利用されていません。具体的なデータベースについては、以降で解説していきます。
リレーショナルデータベース
リレーショナルデータベース(RDB)は、データの項目を整理し、論理的にテーブル(表)とレコード(行)・カラム(列)で表示されるモデルです。現在リレーショナルデータベースがデータベース管理システムとして最も利用されています。
リレーショナルデータベース管理システム(RDBMS)はSQLを用いた主流のデータベース管理システムであり、種類が豊富です。代表的なDBMSソフトウェアは、Oracle DatabaseやMySQL・Microsoft SQL Serverなどがあります。
オブジェクトデータベース
オブジェクトデータベース(ODB)は、オブジェクト指向プログラミングで用いるオブジェクト形式でデータを取り扱うモデルです。オブジェクトデータモデルを取扱い可能としたオブジェクトリレーショナルデータベース(ORDB)も提供されています。
NoSQLデータベース
NoSQLはNot only SQLの略で、SQLを使わないデータベース管理システムを総称したものです。SQLはリレーショナルデータベースで用いられる言語を表しているため、リレーショナルデータベース以外のデータベース管理システムをNoSQLと言います。開発言語には、SQL言語以外が採用されており、キーバリュー型・JSON・XMLなどが用いられます。
代表的なDBMSソフトウェアは、Apache CassandraやApache HBase、Redis、MongoDB、Amazon DynamoDBなど多彩なベンダーから提供されています。特にMongoDBやRedisは、注目の高まりとともに利用者も増加しています。
その他
すでにお話ししたデータベース以外でも、用途に特化した形で提供されているものもあります。例えば、列指向データベースは、データウェアハウスの検索効率を高めるために同一列を一括で処理します。カード型データベースでは、1枚のカードをレコードとして格納し、住所録や商品データに用いています。
DBMSの代表例
ここでは、DBMS(データベース管理システム)の代表例について解説していきます。リレーショナルデータベース、オブジェクトデータベース、NoSQLデータベースの3分類について、実際に用いられているデータベース管理システムを順に解説していきます。
Oracle Database
Oracle Databaseは、リレーショナルデータベースのデータベース管理システムで、オラクル社の製品です。Oracle Databaseは、世界初の商用RDBMSとして登場しました。従来は、基幹系業務システムとして利用されていましたが、現在はPCからメインフレームまでカバーし、人気があります。
【参考】:Oracle Database
Oracle Databaseは最も古くから製品提供がされていたこともあり、標準SQLに準拠していない独自仕様が多く含まれます。そのため、オラクル社固有のスキルを持つデータベース技術者も、市場ニーズが高い状況です。
MySQL
MySQLは、リレーショナルデータベースのデータベース管理システムで、GPL(GNU General Public License)に基づくオープンソースソフトウェアです。MySQLは会社買収を経て、現在オラクル社のオープンソース製品となっています。無料コミュニティ版と企業向けEnterprise Serverの2本立てで提供されています。
【参考】:MySQL.com
MySQLは、Webアプリケーションソフトウェアスタックである、LAMP(Linux、Apache、MySQL、Perl・PHP・Python)の代表的コンポーネントです。そのため導入実績が豊富にあり、多くのWebサイトで採用されています。
Microsoft SQL Server
Microsoft SQL Serverはリレーショナルデータベースのデータベース管理システムで、マイクロソフト社によって開発されました。小規模なシステムから企業向け大規模システムまで対応可能です。
【参考】:SQL Server
Microsoft Windows上で.NET Frameworkを利用できますので、Windows環境に強みがあります。現在はLinuxやDocker Engineを用いたクロスプラットフォームに力を入れています。自社クラウドコンピューティングサービス向けには、Azure SQLを提供しており連携性も十分です。
PostgreSQL
PostgreSQLは、オブジェクトリレーショナルデータベースのデータベース管理システムで、MySQLに次いでオープンソースDBMSとして人気を誇ります。稼働プラットフォームは、Linux系システムのほか、Windows・macOS Serverまで多岐に渡ります。
PostgreSQLは比較的小規模から中規模のシステムの実績が多いですが、実証済みのアーキテクチャにより高性能・高機能・高可用性に力を入れており、拡張性が高いほか実用機能も網羅しています。 【参考】:PostgreSQL
IBM Db2
IBM Db2は、オブジェクトリレーショナルデータベースのデータベース管理システムで、IBMにより開発提供されています。稼働プラットフォームはメインフレームからUNIX系およびLinux系システム、Windowsと幅広く提供されています。特に自社製のメインフレームやオフコンでの利用ユーザは非常に多く、安定した人気を獲得しています。
【参考】:IBM Db2
MongoDB
MongoDBは、NoSQLデータモデルのデータベース管理システムです。ドキュメントと呼ばれる構造的データを、JSONに似たデータ形式で管理します。これにより、データ作成のスキーマにとらわれず、データ量と処理性能のスケーリングに対応します。
【参考】:MongoDB
Redis
Redisは、NoSQLデータモデルのデータベース管理システムです。オープンソースソフトウェアのインメモリデータデータベースとして、メモリ上にデータを展開し、高速性を実現したデータベースです。キーバリュー型の記述形式となります。
【参考】:redis
用途に応じてDBMSを選択しましょう
DBMSは、データモデルに応じていくつかの分類があることが分かりました。実際に使用するデータの形式や特徴、今後の需要に応じてDBMSを選択すると、データの検索や更新・蓄積などを効率的に行うことができます。
DBMSの共通知識が得られたら、更なるスキルアップとして個々の製品知識を吸収することをおすすめします。
編集部オススメコンテンツ
アンドエンジニアへの取材依頼、情報提供などはこちらから