はじめに
データベースとは、アプリケーションのデータを保存・蓄積するためのひとつの手段です。
大量のデータを蓄積しておいて、そこから必要なデータを抜き出したり、更新したりすることが柔軟に行われるため、多くのデータを必要とするアプリケーションで欠かすことはできません。
今回はそのデータベース機能を、アプリケーションから簡単に扱えるようにした「データベース管理システム(DBMS)」(データベースの検索や整理を行う専門のソフトウェア)のoutputをしていきたいと思います。
NewSQLとは
NewSQLとは、RDBMSとNoSQLの両方の強みを取り入れたデータベースです。
そのためRDBMSの強みをもっているNewSQLは、MySQLやOracle、PostgreSQLのようにクエリーも使えて運用できるため外部結合もでき、複雑なテーブルのデータを連携し出力が可能です。
また、NoSQLの強みも取り入れているため1つのDBで複数台のサーバー同士を連携しスケールさせて大規模な情報を処理することも可能になってきます。
NoSQLは、RDBMSが対応できない部分を改善するために生み出されたため、NoSQLとRDBMSには処理速度やデータの分散化といた分野で得意不得意が有りました。
その両者の悪い部分をなくすためのNewSQLが誕生しました。
RDBMSとNoSQLにどのような特徴があるか見ていくことでその両者の強みを持ったNewSQLの理解が深まりやすいと思うので
RDBMSとNoSQLの紹介をしていきたいと思います。
RDBMSとは
RDBMSは(Relational Database Management System)の略で、関連性のあるデータを表形式で紐づけて管理するデータマネジメントシステムです。データベースのやりとりには、MySQLyやOracle、PostgreSQLのようにSQLという言語が使用されます。
RDBMSでは表形式のデータのまとまりをテーブル、項目をカラムと呼び、商品についてのデータをまとめている場合、商品テーブルを作り、その中に商品番号・商品名・商品IDというカラムを作成し、データを格納するという感じです。
各カラムは別のテーブルと紐づける事が可能で、上の例を使うと商品IDと商品の販売店舗テーブルを紐づける形です。
このようにテーブル同士を関係づけて複雑なデータ構成にも対応する事ができます。
メリットとしては、データ処理の一貫性が保証されている・処理コストを低減させる事が可能・複雑なデータ構成での検索や集計を正確に引き出すことができる、というメリットがあります。
NoSQLとは
NoSQLはNot only SQLの略で、RDBMS以外のデータベースシステムを表す際に使用されます。RDBMSが対応しきれなかったような所を改善するために開発されており、SQL言語を使用しなくてもデータベースを使用する事が出来ます。
一般的にNoSQLはキー・バリュー型のデータベースを指して使用される事が多いです。キー・バジュー型はその名の通りキーに値が付いたシンプルなデータベース構造で、商品1=りんご、商品2=みかん、といった感じです。
他にもXMLやJSONといったデータ構造を容易に変更することができるドキュメント型のものなど、様々なサービスが有ります。
メリットとしては、データの処理速度が早い・拡張がしやすい、というメリットがあります。