DBMSにはRDBMS以外にもさまざまな種類が存在する。どのDBMSを使用するかを決める前に、それぞれの長所と短所を知っておくことが大切だ。RDBMSをはじめとする主要DBMSを解説する。
データベース管理システム(DBMS)は業務システムや分析システムの中核だ。データの処理、保存、管理、アプリケーションやエンドユーザーへのデータ提供といった、一連のデータ管理を担う。
現在広く使われているのが、データをテーブル形式で管理する「リレーショナルデータベース管理システム」(RDBMS)だ。RDBMSはクエリ(データベース操作)言語「SQL」を用い、データの一貫性と信頼性を重視したトランザクション(一連の処理をまとめて実行すること)を実現する。そのため、業務アプリケーションで扱う定型的なデータの処理に適している。
ただしRDBMSにもデータ構造の厳密性や維持コストといった課題がある。ビッグデータの処理が求められるようになってから、これらの課題はより顕著になった。そうした課題に対処するために、RDBMS以外のDBMSが次々と誕生している。
企業はRDBMSをどう活用してきたのか。RDBMS以外の選択肢には何があり、それぞれの強みは何か。以下で、RBDMSを含む主なDBMSの種類を見ていこう。
かつてDBMSといえば、RDBMSがほぼ唯一の選択肢だった。だがビッグデータやIoT(モノのインターネット)、データストリーミング(リアルタイムデータ処理)といった新しい技術の台頭によって、用途別に代替となるDBMSが登場した。とはいえ市場規模やシステム導入の規模から見ると、現在もRDBMSが主流だ。
RDBMSは1970年代後半に商用化された。業務処理や分析処理など、多岐にわたるアプリケーションにおいてデータの管理、操作、保護を実現している。
1990年代半ば以降、RDBMSは基幹システム向けDBMSの中心的存在となった。主要製品としては「Oracle Database」「Microsoft SQL Server」「IBM Db2」がある。クラウドサービスへのシステム移行が進む中、「Amazon Web Services」(AWS)や「Google Cloud」といったクラウドサービスが、「MySQL」「PostgreSQL」「MariaDB」などのオープンソースDBMSのクラウド版を提供しており、RDBMS市場で存在感を増している。
データ分析基盤となるデータウェアハウス(DWH)の普及後も、RDBMSは広く採用されている。Oracle、Microsoft、IBM、SAP、Teradataなどのベンダーが提供する従来のDWHに加え、クラウド版DWHとして列(カラム)指向ストレージを採用して分析処理を最適化した「Amazon Redshift」「BigQuery」「Snowflake」なども台頭してきた。
RDBMSは順応性、安定性、信頼性に優れる。大小さまざまな企業における使用実績が、その成熟度を裏付けている。特筆すべき特徴は「ACID特性」(原子性:Atomicity、一貫性:Consistency、独立性:Isolation、永続性:Durability)の保証だ。全てのトランザクションの完了を保証し、障害時には以前の状態に復旧(ロールバック)できる仕組みによって、データの一貫性を維持する。
このように優れた特徴を持つRDBMS以外のDBMSにも、企業は目を向けるようになったのはなぜか。それは大規模なWebアプリケーションでのデータ処理やビッグデータ活用、AI(人工知能)技術の普及によって、RDBMSの限界が見えてきたからだ。こうした変化の激しい状況では、融通が利くデータ構造、弱い一貫性、低い処理負荷を特徴とする他のDBMSが適する場合がある。RDBMSの安定性と信頼性を実現するためには、相応のコストが必要になる点も一因だ。
NoSQLは2000年代半ばに登場した。当初は「SQL不使用」を意味していたが、さまざまなベンダーがNoSQLでSQLクエリを実行できるようにしたことで、「Not Only SQL」(SQLに限定されない)という意味で定着した。RDBMSが厳密なスキーマ(データベースの定義情報)を必要とするのに対し、NoSQLはデータベース内の各要素(エンティティ)が同じ構造を持つ必要がない。あいまいな構造や、時間とともに変化する可能性のあるデータを扱う場合、RDBMSよりNoSQLの方が適する場合がある。
RDBMSとNoSQLの重要な違いの一つは、データの一貫性と整合性の確保方法だ。ほとんどのNoSQLは「結果整合性」を採用している。これは、分散型データベースのノード(サーバ)間でデータが常に一貫している必要はなく、更新が落ち着いた時点で整合性を確保するモデルだ。一部のベンダーは、NoSQLでもRDBMSのような完全なACID特性を実装している。ただし一般的に、NoSQLはRDBMSよりも緩やかな整合性モデルを採用することで、処理の高速化を図っている。
これらの特徴によって、NoSQLは非構造化データや半構造化データ、さまざまな形式のデータが入り交じったデータセット、スパース性が高いデータの大量処理など、RDBMSが苦手とする操作に対処できる。スパース性が高いデータとは、データベース内の要素の多くが空値のデータを指す。
特定のデータ処理に適したNoSQLだが、トランザクションの一貫性と整合性のデータの内容や特徴を整理して検索しやすくする「インデックス化」、クエリ実行の容易さではRDBMSに及ばない場合がある。NoSQLは単一の種類のDBMSを指すものではなく、主に以下の4種類に分類される点にも注意が必要だ。
これらの各タイプにはそれぞれ適した用途があり、それぞれ長所と短所を持つ。
インメモリDBMSはメインメモリDBMSとも呼ばれ、ストレージではなく主にメモリにデータを保持するDBMSだ。これによって、データベース内の情報に素早くアクセスできるようになる。
主なインメモリデータベースの用途としては、高速なスループット(データ伝送速度)が必要なアプリケーションがある。データをメモリに保持することで、磁気ディスクの機械的な動作、シーク時間(目的のデータが格納されている位置に磁気ヘッドが移動する時間)、バッファー(一時的な記憶領域)へのデータ転送といった過程が不要となり、データ入出力レイテンシ(遅延)を削減できる。インメモリDBMSは一般的にストレージにデータを格納するDBMSよりも単純なアルゴリズムを使用し、CPU命令数が少なくなりやすい。そのため、オーバーヘッド(処理にかかる余分な負荷)の削減も可能だ。
インメモリデータベースは独立した製品カテゴリーではない。「SAP HANA」「Oracle TimesTen In-Memory Database」「Volt Active Data」「SingleStore」などはインメモリのRDBMSである一方、Aerospike、RedisはインメモリのNoSQL DBMSの例だ。Oracle、Microsoft、IBMといったベンダーは、それぞれの主力RDBMS製品にインメモリ機能を実装している。
マルチモデルDBMSは、複数のデータモデルを扱えるDBMSだ。ドキュメント型とキーバリュー型を組み合わせたものなど、一部のNoSQL製品がマルチモデルDBMSに該当する。「Azure Cosmos DB」やMarkLogic Serverのように、当初からマルチモデルDBMSとして開発されたものもあれば、アップグレードの一環としてマルチモデルDBMSになったものもある。リレーショナルデータに加えてドキュメント型やグラフ型などのNoSQLデータを扱えるようになったRDBMSもある。
次回も引き続き、主要なDBMSの概要と、企業がDBMS製品を導入する際に検討すべき項目を紹介する。
米国TechTargetの豊富な記事の中から、開発のノウハウや技術知識など、ITエンジニアの問題解決に役立つ情報を厳選してお届けします。
Copyright © ITmedia, Inc. All Rights Reserved.
お知らせ
米国TechTarget Inc.とInforma Techデジタル事業が業務提携したことが発表されました。TechTargetジャパンは従来どおり、アイティメディア(株)が運営を継続します。これからも日本企業のIT選定に役立つ情報を提供してまいります。
いよいよ米国で禁止へ 「トランプ大統領」がTikTokを救う可能性は……?
ドナルド・トランプ氏は2024年の米大統領選挙で当選後、TikTok売却法案について方針を明...
「プロダクトレッドグロース」が非SaaS企業にも重要である理由とは?
製品・サービスそのものが成長を促すプロダクトレッドグロース(PLG)が注目されている。...
インフルエンサーをAIが淘汰? BoseのCMOが語るこれからのブランド戦略
Bose初のグローバルマーケティング責任者であるジム・モリカ氏が、感情に訴えるマーケテ...