0. はじめに
以前NoSQLに関する記事を執筆し、そこでどのようなデータがRDBおよびNoSQLに格納できるのかをご紹介しました。
それではRDB登場以前はどのようにデータが格納されていたのでしょうか?
今回はRDBの歴史を振り返ることで、データ格納モデルの変遷を追います。
目次
- RDB登場前 ―ネットワーク型DBと階層型DB
- RDBの概念と開発
- これからのRDB
- 終わりに
1. RDB登場前 ―ネットワーク型DBと階層型DB
ご存じの方も多いかもしれませんが、データベースという言葉の起源はアメリカ軍の軍事用語です。「データ収集/利用基地」という意味で元々は「data base」と2語に分けていたようですが、ハイフンつなぎの「data-base」を経て、現在の「database」という表記になりました。
データベースの概念は1959年にW.C.MaGee氏が発表した『Generalization: Key to successful electronic data processing』(概括:電子データ処理を成功させる秘訣) という論文で提示されました。
Magee氏はこの中で「source file(源泉ファイル)」という概念を提唱し、データ重複の回避とシステム拡張の効率化のため、source fileにコンピュータ上の様々なデータを集約する、という考えを述べています。加えてこの論文にはセキュリティやデータの保守など、現在のDBに欠かせない技術の必要性も説かれています。
この時点ですでに当時の人々は「同じデータをあちこちに持っていると管理が大変である」と感じていたのではないでしょうか。
そして1964年になると、世界最初の商用DB「IDS(Integrated Data Store)」がアメリカの企業GE(General Electric)によって開発されました。
このDBはネットワーク型と呼ばれるタイプで、データが網目のように表現されました。このネットワーク型の利点として、複数の親データへのアクセスが可能であることで冗長性を排除できる、ということが挙げられます。その反面、構造が複雑になるため、データ構造を理解していないとプログラム開発が難しいという課題がありました。
(※現在IDSというと侵入検知システム/ Intrusion Detection Systemが一般的かもしれませんが、それとは別のものです。)
そして上記とは別に、1966年には階層型DBと呼ばれるIMS(Information Management System)の開発がIBMで始まり、1968年にリリースされます。これは1961年から実施されていたアポロ計画(有人月面着陸計画)において、サターンVロケット(サターンロケット)やアポロ宇宙船の膨大なパーツの整理/目録作成ために開発されました。なお、IMSは現在も世界中で利用されている現役の階層型DBです。
階層型DBは会社の組織図のようにデータをツリー構造で表現するという特徴があります。基本的に親ノードと子ノードが「1対多」の関係を持つことで目的のノードへのルートが限定的なり、検索が早くなる点がメリットです。
しかし同じデータが複数の親を持ちたい場合、重複登録が必要であることがデメリットでした。またネットワーク型DBと同様に、データ構造の理解がプログラム開発に不可欠であるという課題がありました。
これらのことから①重複登録が不要、②データ構造に依存せずプログラム開発が可能であることが、RDB登場以前に人々がDBに求めていたことだと考えられます。
2. RDBの登場
1969年になるとイングランド生まれのIBMのプログラマ、Edgar Frank “Ted” Coddが『A Relational Model of Data for Large Shared Data Banks』(大規模共有データバンクのためのデータ関係モデル)という論文を社内報に発表しました。
その中でCoddは①データをハードウェアから独立させて格納するべき、②非手続き言語を使用してデータにアクセスするべき、③データは行と列からなるテーブル構造に収めるべき、という考えを示しました。
しかし当時IBMは先述のIMSに力を注いでいたため、Coddのアイデアを採用しませんでした。そのためRDB開発は1970年にCoddが改訂した論文を社外に発表したことで、その理論に興味を持った外部の人々の手によってスタートします。
ライバルたちがCoddの理論を元にしたDBを開発していることから、IBMも1974年にはRDBの開発に乗り出し、1975年にSystem Rを発表します。これが世界最初のRDBとされていますが、あくまで研究目的で開発されたものであり、販売には至りませんでした。
そして1979年、遂に世界初の商用RDBであるOracle DatabaseがLarry Ellisonらの手によってリリースされます。そこから様々なRDBが開発され、1980年代後半にはRDBはビジネスの場で本格的に利用されるようになりました。
RDBが具体的に形になったことで、プログラマは階層型やネットワーク型で意識しなければならなかった「データの位置」という概念から解放され、データの操作が格段に容易になりました。
また階層型やネットワーク型で課題となっていた点も、重複排除や一元管理の為のルールによって解消されました。
3. これからのRDB
このように操作の容易性やデータの一貫性を保つということから、商用データベースの80%を占めるほどRDBは現代社会には欠かせない存在となりました。またRDBでは扱いにくかった不定形データ(バイナリファイルや画像/音声といったマルチメディアデータなど)を格納するために、BLOB(Binary Large OBject)というデータ型で格納できるようになり、あらゆる情報のストレージとしての性格を強めています。
他にもあらゆるものが電子化する動き化加速していることからも、RDBにおけるセキュリティの重要性は高まっていると言えるでしょう。
しかしビッグデータへの対処がRDBは難しい、という現状があります。
そのため、現在はRDBと合わせてNoSQLの利用も広まっています。
NoSQLに関しては、以下の記事をご覧ください。
4. 終わりに
いかがだったでしょうか。
以前BIツールの歴史について調べた際に、誰にとっても使いやすいものになっていくよう進化する流れがありましたが、DBも同様にどのようにデータを整理すれば使いやすいのかを考えたことで、上記のようなDBが開発され、RDBの誕生に至ったのだと思いました。
現在はRDBでは補いきれない部分をNoSQLでカバーする、という使い方も増えてきているようですが、それとはまた異なる画期的な発明が生まれることを純粋に楽しみにしています。
弊社ではDBのデータを直接参照できるBIツールを取り扱っております。
ご興味のある方は、ぜひ↓の公式ホームページもご覧ください!