RDBMSとNoSQLを徹底比較!特徴からそれぞれのメリット・デメリットまで、わかりやすく解説!
RDBMSは誕生当初破壊的イノベーションと言われる様なデータベースで、今もなお多くの企業で利用されています。しかし情報量やデータ量の増加に伴いより適した形のデータベースシステムとして誕生したのがNoSQLです。本記事ではそんなRDBMSとNoSQLの特徴からそれぞれのメリット・デメリットなど分かりやすくまとめてみます。
目次
RDBMSからNoSQLへ
RDBMSは階層型データベースが主流だった1960年代に誕生し、1970年からは多くの企業がRDBMSを利用したサービスを開発し、データベースの主要システムの座を奪いました。しかし時代が経つにつれてRDBの処理が重かったり、分散性がなかったりという点に不満視する声が広がり、今のニーズにあったデータベースシステムがあっても良いのではないか?という声からNoSQLが誕生しました。
RDBMSとは
RDBMSはRelational Database Management Systemの略で、その名の通り関連性のあるデータを表形式( Excelのように)で紐づけて管理するデータマネジメントシステムです。データベースのやりとりにはSQLという言語が使用されます。
RDBMSでは表形式のデータをテーブル、項目をカラムと呼びます。例えば商品についてデータをまとめているテーブルが有ったとして、その中に商品番号・商品名・商品IDというカラムを作成し、データを格納するという感じです。
各カラムは別のテーブルと紐づける事が可能で、上の例を使うと商品IDと商品の販売店舗テーブルを紐づける形です。
このようにデータの定義や関係性を厳格に行う事で複雑なデータ構成にもが対応する事ができます。
NoSQL
NoSQLとは
NoSQLはNot only SQLの略で、RDBMS以外のデータベースシステムを表す際に使用されます。RDBMSが対応しきれなかったような所を改善するために開発されており、SQL言語を使用しなくてもデータベースを使用する事が出来ます。
一般的にNoSQLはキー・バリュー型のデータベースを指して使用される事が多いです。キー・バジュー型はその名の通りキーに値が付いたシンプルなデータベース構造で、商品1=りんご、商品2=みかん、といった感じです。
他にもXMLやJSONといったデータ構造を容易に変更することができるドキュメント型のものなど、様々なサービスが有ります。
RDBMSとNoSQLの違い
NoSQLはRDBMSが対応できない部分を改善するために生み出されたため、2つは大きく違います。
RDBMSは複雑なデータベースでも厳格に設計できるような仕組みになっており、格納されたデータを処理するためにSQL言語が使用されます。一方NoSQLはSQL言語を使用しなくても一般のプログラム言語でデータを呼び出せるような自由な設計になっています。
これは、RDBMSとNoSQLが誕生したきっかけにも関係してくるのですが、両者には処理速度やデータの分散化といた分野で得意不得意が有ります。
次の項目からそれぞれのメリットとデメリットを紹介し、より具体的にそれぞれの違いについて説明しますが、両者の違いについて分かりやすいように表でまとめてみます。
RDBMS | NoSQL | |
分散性 | × | ◯ |
拡張性 | × | ◯ |
一貫性 | ◯ | × |
検索 | ◯ | × |
\ IT転職のプロが無料でサポート! /
それぞれのメリットとデメリット
RDBMSのメリット
- データ処理の一貫性が保証されている
- 処理コストを低減させる事が可能
- 複雑なデータ構成での検索や集計を正確に引き出すことができる
RDBMSはデータ処理の一貫性が保証されているというメリットがあります。
データベースの処理が正常に行われた場合結果が表示され、処理が正常に行われない場合は処理前の状態に戻ります。この処理についてエンドユーザーは確認する事ができず、結果のみを確認する事が出来ます。
また複数のテーブルを連結されてデータベースを構成する事で、追加・削除・更新といった処理コストを低減させる事が可能になります。
更に複雑なデータ構成での検索や集計もSQL言語を使用することで正確に引き出すことができます。
NoSQLのメリット
- データの処理速度が早い
- 拡張がしやすい
NoSQLはデータの処理速度が早いというメリットが有ります。
NoSQLはデータの一貫性やバリデーションといった機能を排除し、サーバーを水平分散できるようにしました。そのためデータの処理速度を比較的早くすることが可能になりました。
また、データが大規模になってきてもサーバーを水平分散させる事ができることから必要な分だけ自由に拡張する事ができる様になります。
度々出てきている水平分散とは、1つの仕事を複数台のコンピューターが協力して行う事ができるようにすることです。
RDBMSのデメリット
- 書き込み部分のスケールアウトが出来ない
- 拡張のコストが大きい
- 大規模データの場合処理速度が遅くなる
RDBMSはスケールアウト(分散性)・拡張性・処理速度の点でデメリットが有ります。
まずスケールアウトですが、データテーブルを別々のサーバーに分けると一貫性を保つ事が出来ないため、書き込み部分を分散させることは出来なくなっています。
次に拡張性ですが、データの読み込み部分は拡張する事が容易ですが、書き込み部分を拡張させるには技術的な側面と時間的な側面のコストがかかります。
最後に処理速度ですが、大規模なデータを扱う様になると処理速度が遅くなってしまうという難点が有ります。
NoSQLのデメリット
- データの一貫性が保証されていない
- 複雑な検索は出来ない
NoSQLはデータの一貫性や検索能力においてデメリットが有ります。
RDBMSはデータの一貫性を保つためにACIDというデータの不整合が置きない技術が実装されています。一方のNoSQLは水平分散させることができるように一貫性は諦めた仕様になっています。
またNoSQLではSQL言語を使用する事ができないため、複雑な検索が出来ません。
データで見る市場規模
RDBMSが不動の人気
NoSQLが発表された当時は、RDBMSの市場を徐々に侵食していく予想されていましたが、データを見ると現在も依然としてRDBMSを利用している企業が多いようです。
現在データベースエンジンは345個以上ありますが、データベースの人気について調査しているDB-EMGINESによると2019年4月の時点で依然として人気なデータベースシステムの上位4つはRDBMSで、5位にNoSQLの代表格であるMongo DBが登場してきています。
このことからRDBMSは今でも不動の人気を誇っていると言えるでしょう。
2008年から2016年頃にかけてのNoSQLの伸びは確かに高かったのですが、2017年頃から伸びも緩やかになり、データベースシステムのシェアトップ10の内7つがRDBMSで3つがNoSQLといった感じで落ち着いています。
RDBMS | NoSQL | |
人気率 | 75% | 25% |
上位トップ10の人気製品 | 7個 | 3個 |
オープンソースか商用か
2013年頃までは商用のデータベース製品への人気が65%と高かったのですが、2019年になると52%まで下げ、逆にオープンソースの製品が35%から50%近くまで上昇する結果になっています。
下にオープンソースと商用の人気製品のランキングをそれぞれまとめてみました。
オープンソース | 商用 | |
1 | MySQL | Oracle |
2 | PostgreSQL | Microsoft SQL Server |
3 | Mongo DB | IBM Db2 |
4 | Redis | Microsoft Access |
5 | Elasticsearch | Splunk |
これは、オープンソース製品の質の向上や様々なデータベースシステムの誕生が起因していると思いますが、データベースのジャンルによっては80%以上の製品がオープンソースで提供されているというデータも出ています。
最近はTime Series DBMSの人気が上昇?
ここ2年の間にネット上でよく検索されているデータベースシステムにTime Series DBMSというものが有ります。
日本語では時系列データベースと言いますが、その名の通り時系列でデータを保存したり処理したりすることに特化したデータベースシステムになります。
時系列データベースはジャンルとしてはNoSQLになりますが、興味を持っている人が増えているカテゴリーなため今後の動向に注目です。
まとめ
- RDBMSは関連性のあるデータを表形式で紐づけて管理しSQL言語で操作するデータマネジメントシステム
- NoSQLはRDBMS以外のデータマネジメントシステムで、SQLを使用しなくても良い
- RDBMSはデータの一貫性が保たれており、複雑なデータ操作が出来る
- NoSQLは処理速度が早く、分散処理や拡張もしやすい
RDBMSとNoSQLについて出来るだけ噛み砕いて説明しましたが、データシステムについてはイメージしづらいことも有り理解することがもしかすると難しかったのではと思います。
改めて簡単に要約するとRDBMSはとにかく「データの一貫性」を重要視しており、NoSQLは
「柔軟性や早い処理速度」を重要視しているということです。
最近では、RDBMSもNoSQLで出来るような性能を付随したり、NoSQLもRDBMSで出来るような機能をつけたりと切磋琢磨した改善努力を行なっています。
あわせて読みたい関連記事
この記事を読んでいる人におすすめの記事