Eyes, JAPAN Blog > データベースの歴史とその最新技術

データベースの歴史とその最新技術

warashina

この記事は1年以上前に書かれたもので、内容が古い可能性がありますのでご注意ください。

databases

皆さまは「データベース」という語の起源をご存知でしょうか。
「データベース」という語は、データ (情報断片) + ベース (基地) の二語からなる複合語で、直訳すると「データ基地」という意味になると思います。
この言葉が最初に使われ始めたのは、第二次世界大戦頃だと言われており、当時の米軍は敵国の情報を各々の基地に分散して保管していました。
しかしこの保管方法だと、ある敵国の情報を得るときに、その情報がどの基地にあるかをまず調べなければならず、余計な手間が掛かってしまいます。
そのため、米軍は敵国の情報を一箇所にまとめることにしました。
そして、データ専用の基地「データベース」ができ、それがきっかけとなって「データベース」という語が生まれたと言われています。
本日は、このデータベースの歴史について、簡単にお話ししたいと思います。

コンピュータの世界に、「データベース」が登場したのは 1963 年で、GE (General Electric) 社から IDS (Integrated Data Store) というデータベースが商品として発表されました。
データベースが登場する前は、データ管理にはファイルが使われていましたが、ファイルはアプリケーションに依存するという問題があり、特にデータ量が大きくなると扱いにくくなります。
そのため、データ管理を独立したソフトウェアとして扱い、アプリケーションから切り離すことにし、そのデータ管理をするソフトウェアはデータベース管理システム (DBMS) 、このシステムに管理されるデータの集まりはデータベースと呼ばれることになり、大規模化した情報の管理手段として登場しました。
そして後の 1960 年代後半にネットワーク型データモデルと、IBM 社 の階層型データベース管理システム IMS が発表され、一気にデータベースの関心が高まってきました。
この二つのデータモデルは、発表された当初は注目されていましたが、1980 年代にリレーショナルデータベース管理システム (RDBMS) が実用化されてからは、RDBMS に関心を奪われてしまいます。

この RDBMS は万能で、ユーザからのデータアクセスやトランザクションを捌くフロントエンドの役割からビジネスデータの解析等を行うバックエンドの役割までこなすことができ、データ管理の定番として長年使われ続けています。
しかし、Web が社会の情報基盤として使われるようになると、データ量やアクセス数が凄まじい勢いで増加し、これによって RDBMS がボトルネックになることが多くなりました。
これは、RDBMS が多くのサーバに分散してデータを保管したり、処理することが困難である、つまり、スケールアウト面に問題があるためです。

この問題を解決すべく、二つのデータベースが登場しました。
一つは、2006年に登場した Google の Bigtable で、もう一つは、Amazon の Dynamo です。
後者の方は、2007 年に登場しました。
これらは、RDBMS が備えている一貫性 (Consistency) と可用性 (Availability) のうち、どちらか一つを犠牲にする代わりに、RDBMS には無い分割耐性 (Partition Tolerance) を備えていて、データの保管や処理を多くのサーバに分散できるスケールアウト可能なデータベースでした。
これらのデータベースは、上記の問題に悩ませていた多くの人々に影響を与え、これらをもとにしたスケールアウト可能なデータベースの開発が活発化し、2009 年 6 月にそれらの内容を取り上げた「NoSQL meetup」というイベントが開催されました。
そこから「NoSQL (Not Only SQL) 」という言葉が広まり、主に分割耐性を持つスケールアウト可能なデータベースをそう呼ぶようになりました。
そして現在は、超大規模なデータを扱うシステムの定番になりつつあります。

ここまでで、かなり大雑把にデータベースの起源からクラウド基盤に用いられている最新のデータベースまでを書いてきましたが、現在卒研生でクラウド基盤技術の応用について研究している私は、最新のデータベース以外はほとんど使っていません。
そのため、過去のデータベースのことを知らなくても、研究を進める上ではあまり問題にはなりません。
では、何故このようなことを調べたかと言うと、その技術についての「何故」を解消し、より深く理解したかったからです。
このシステムは「何故」このような設計になっているのだろう、「何故」こういったことが実現できるのだろう、といった問いは多くの場合、その技術のルーツを辿っていく過程で解決します。
そして、それによってその技術とその「凄さ」について正しく理解することができるのだと思います。

これは、その技術についての背景を学ばないと正しく理解できないとも言えると思います。
例えば、クラウドコンピューティングという分野では先程紹介したデータベースを含め、多くの情報基盤が次々とリリースされていますが、どの技術にも「凄い」、「速い」といった評価が付きます (当たり前だと思いますが) 。
しかし、この分野においての「凄い」は、既存の技術よりも大くのデータを管理できる、スケールアウトできる、といったもので、限定された場面でしか「凄く」ないことがほとんどです。
そのため、それよりも前の技術である RDBMS の方が活躍の場面が多いというのが現状です。

つまり、最新技術の「凄い」という言葉を聞いただけで、実際の研究やプロダクトに組み込んでしまった場合、思った以上のパフォーマンスが出ず、失敗に終わる可能性は高いと言えます。
最新技術の「凄い」を客観的に見るためにその歴史を学んでみては如何でしょうか。

和良品 (歴史未履修で卒業したことは内緒なんだ)

Comments are closed.