データベースについての小話
開発部の大島です。
今回は少し難しいですが、「データベース」についてのお話です。
まずは基本となるところからですが、現在“権”などで使われているデータベースは「リレーショナル・データベース(以下RDB)」と呼ばれる仕組みで動いています。ポイントは「リレーショナル(関連づいた)」という部分です。
少し例示しましょう。登記情報を取得したとします。ここでは「いつ、どの物件」という情報を保管しなければいけません。つまり、「1:9月1日、東京都○○区、1-1」といった形です。次に照会番号を取得していた場合はそれも保管する必要があります。こちらは、「A: 登記情報1、000-000」といった形です。
例の中で「登記情報1」というキーワードが出ていることに気づいてもらえたでしょうか? これは、「関連づいている“登記情報1”」を利用することで照会番号も一緒に利用可能ということをあらわしています。つまり、「登記情報1」を利用すれば、「東京都○○区」と「000-000」が同時に扱えるのです。
さて、RDBは上で述べたように関連をもって色々なことを記載できることから、現在の基本的なデータベースとして発展してきました。しかし、これも問題がないわけではありません。一番大きな問題は「形が決まったものしか格納できず、拡張が容易ではない」ということです。これがなぜ問題かというとWebデータのように決まった形のないデータの保管には向いていなかったということです。
そこでどうにか保管する手段はないかと考え出されたのが「NoSQL」という新しい手法です。「SQL」は先に述べたRDBを意味し、「No」がついている点が名は体をあらわしています。
ちなみに「NoSQL」は、データベースはRDBだけじゃないんだ!
それ以外のデータベースも盛り上げよう!!という意気込みから「Not Only SQL」と呼ばれているようです。
NoSQLの仕組みは色々ありますが、基本的な構造は簡単です。「キーワード、データ」これを管理するだけです。
先と同じように具体例をだすと
(登記情報1、9月1日)
(登記情報1、東京都○○区)...
こうしておけば登記情報1を欲しいと思えば「キーワード:登記情報1」の情報を全部取得すれば大丈夫となりますし、保管する情報が増えたとしても新たなペアを追加するだけで保管が可能となります。
Googleなどの検索用データにはこのような形でデータ管理されているものが使われていると言われています。そして、最近ニュースなどでよく聞かれる「ビッグデータ」もこの「キーワード、データ」で取得されたものの集合体です。ですので、最近なら「東京オリンピック、東京オリンピックエンブレムが撤回された」などが保管されているのでしょう。
NoSQLはWeb技術の広がりとともに発展している方式です。RDBにはRDBの、NoSQLにはNoSQLのそれぞれ良い点悪い点があり、どちらが優れているといったものではありません。今後、ニュースなどで「ビックデータ」という話題が出た際などには今回の話を少し思い出してもらえると幸いです。