スタートページ> (主張・講演Web教材歴史データベース

データベースの歴史(概要)

シリーズの構成
1 データベースの歴史(概要-全体の流れ)
2 階層型データベースとネットワークデータベース
3 関係データベース
4 オブジェクト指向データベース
5 XMLデータベース
6 多次元データベースとデータウェアハウス
7 インメモリデータベースと列指向データベース
付 年表


データベースそのものはデータの持ち方だけであり、特別な技術を伴うものではない。そのデータをアクセスするための言語やそれを解釈して実行するためのソフトウェア、データの一貫性や可用性を保つためのシステムが必要になる。それをデータベース管理システム(DBMS:Database Management System)という。
 また、データベースを実現するには、DBMSの理論だけでなく、それをソフトウェアとして作成する必要があるし、それはOSや言語に影響をうける。さらにハードウェアに実装する必要がある。
 ここでは、それらを含めてデータベースという。
 なお、ここでは次の略語を用いる。
・HDB(hierarchical database):構造型データベース →説明
・NDB(network database):ネットワークデータベース →説明
・RDB(relational database):関係データベース →説明
・OODB(object-oriented database):オブジェクト指向データベース →説明
・XMLDB(XML database):XMLデータベース
・MDDB(multi-dimensional database):多次元データベース →説明
・CODB(columnar storage):列指向データベース
・IMRD(in-memory database):インメモリデータベース


データベースの種類による世代

第一世代:RDB以前

第二世代:RDB/SQL

利用者にとって、RDBはSQLで操作するのだから、SQLの仕様がRDBであるといえる。この仕様は優れていたので、規格化する以前に業界標準のようになる。以降のRDB製品のほとんどはSQLを用いている。

第三世代:ポストRDB

RDBは広く使われるとともに、その限界が指摘されるようになり、1990年代初頭から新しいデータベースが多数出現してきた。
1998年に、カルロ・ストレッツィ(Carlo Strozzi)は「NoSQL」という言葉を作った。SQLではない、すなわち伝統的なRDBではないデータベースのことである。
 しかし、RDB/SQLは全体的には優れたデータベースであり、実際の製品ではRDBと共存することが多く「Not only SQL(RDB)」程度にとらえるのが適切であろう。

オブジェクト指向データベース(OODB:object-oriented database)

OODBは、次のような要請に応えるデータベースである。純粋にOODBとして開発したものもあるが、従来のRDBを拡張してOODB機能を取り込んだORDB(object-relational database:オブジェクト関係データベース)が多い。

XMLデータベース(XMLDB:XML database)

XMLとは、HTMLのようなマークアップ言語である(説明: 「マークアップ言語」「XMLの例」)。 1998年にW3CによりXMLの標準仕様が策定された。

 当初は、データをXMLで記述していても、それをデータベースに格納するにはRDBが広く用いられていたが、XMLデータをそのまま蓄積したほうが検索や加工に便利な場合がある。それをアクセスするための方法も標準仕様になってきた。それを実装したのがXMLDBである。

XMLは、人間にも読めコンピュータでの処理にも向いている特徴がある。そのため、XMLは企業間でのデータ交換の標準にもなっている。また、データ構造が画一化できないデータをRDBにするのは不適切であり、文書データなどのデータベースはXMLDBにすることが多い。

多次元データベース(MDDB:multi-dimensional database)
データウェアハウス(DWH:data warehouse)

RDBは動的結合により多様なキーで結合できるが、多くの検索処理では、商品、得意先、年月など特定の項目を検索キーにしている。それならば、それらの項目をキーとしたデータベースにすればよい。商品、得意先、年月の3項目ならば、観念的には3次元のマトリクスのように見える。それで「多次元」データベースという。
 当初からMDDBとして実装したものと、実体はRDBなのだがインデクスを工夫してMDDBのように操作できるようにしたものがある。

インメモリデータベース(IMRD:in-memory database)
列指向データベース(CODB:columnar storage)

どちらもRDBのデータ圧縮、処理速度の向上を図る手段である。新しいデータベースというより、新しいRDB実装方式というのが適切かもしれない。

IMRDは、すべてのデータをメモリ内に格納するデータベースである。データだけでなく、インデクスや一時領域もメモリ内に置くことにより、ディスアクセスせずに処理できる。処理時間が極度に短くすることができる。特に、OLAPに適している。

CODBは、列指向データベース、カラムナデータベース(Columnar Storage)ともいう。通常のRDBは、テーブルの行をレコードとして格納する。それに対してCODBでは、列の値をまとめてファイルシステム上の近い場所に格納する。
 格納配置の違いであるが、このほうがデータの圧縮効果が高く、大量データでの少数データを検索更新する処理効率がよいとされている。すなわち、OLAPに向いている。

2000年代後半からのCODB・IMDB製品の実現に関連して、巨大ベンダーによるデータベースベンダーの買収が本格的に行われるようになった。

(注)分散データベース(distributed database)

これはデータベースの種類ではない。データベースの格納配置に関する用語で、複数のハードウェアに格納されているデータベースを一つの管理システム(DBMS)で処理する技術である。

この技術はデータベースの初期から重視され、コンピュータ構成環境の変化とともに発展してきた。現在では分散データベースが当然の環境になっている。


有名データベース企業の経緯

1990年代のデータベース業界では、Oracle、Informix、Sybaseが3強であった。
現在では、Oracleだけが残り、InformixはIBM、SybaseはSAPに買収されてしまった。
現在でのデータベース3強は、Oracle、IBM、Microsoftで、日本ではそれに富士通、日立が続いている。

Oracle

Informix

Sybase


データベース活用の歴史的変化

「新しいデータベースが出現して、以前のデータベースが消滅した」のではない。現在でもデータベースの主流はRDBだし、特定の分野ではIMSが使われている。すしろ「特定の用途分野に対応するために、新しいデータベースが出現した」と理解すべきなのだ。

ここでは、日本の通常の(先駆的ではない)大企業におけるビジネス系システムでのデータベース活用を歴史的に振り返る。そのイメージを下図に示す。

~1970年代前半:「データベース以前」の状況

日本の大企業が本格的にコンピュータを導入し始めたのは1960年代中頃である。ミニコンピュータは研究部門や技術部門に限定されており、システム部門が関与するビジネス系システムは汎用コンピュータに限られていた。
 1970年代前半までは基幹系システム構築の時代であった。商品マスタや得意先マスタは、販売システムや会計システムでも使う。販売システムの納品データは会計システムでの売掛金データになる。縦割りの個別システムではなく、全社的に統合した観点からシステムを構築すべきであり。その観点から、データをプログラムから分離して管理することが重要だとの認識はあった。

1960年代末にはIBMのIMSやCODASYL型NDB仕様が発表され、データベースへの関心やある程度の知識はもっていたが、それを用いたシステム構築をする企業はIBMユーザでもほんの一部だった。一般企業では、マスタはVSAMファイル、データはSAMファイルを用いており、「データベース以前」の状況だった。

日本のユーザ企業では、コッドのRDB提唱(1969年)やIBMでのSEQUEL言語(1974年)などは、ほとんど知られていなかった。

1970年代後半:NDBによるシステム構築

1974年に、富士通・日立・日本電気がNDBを発表した。日本の大企業では、汎用コンピュータはIBMと国内3社で独占されており、これでNDBが身近なものになってきた。
 この頃には既存システムの改訂時期にもあたり、新システムをNDBをベースに再構築する企業が増加した。

RDBに関しては、汎用コンピュータでの実装以前であり、話題として知っている程度であった。未来技術としての認識だったのである。

1980年代前半:NDBの反省とRDBへの期待

富士通AIM/RDB(1982年)、IBM DB2(1983年)、日立 RDB1(1984年)など、汎用コンピュータでのRDBが提供されるようになった。

1970年代末から、通常の大企業でもエンドユーザがTSSで汎用コンピュータを操作できる環境になった。基幹系システムで収集・蓄積したデータを整理して、エンドユーザが任意の切り口で検索加工する利用形式-情報検索系システム-(後のデータウェアハウス)が注目されるようになった。
 ここでの特徴は、切り口がアドホックに変わることである。静的結合のNDBは不向きであり、動的結合のRDBに期待が寄せられた。

この頃になると、NDBで構築した基幹系システムが問題になってきた。システム改訂をするたびにデータベースを手直ししなければなえらない。専門知識を必要とするし複雑なので、データベース担当者でないとできない。担当者以外が行うと仕様書と実装が乖離してブラックボックスになってしまう。
 その反省からRDBへの期待が高まった。

しかし、当時の通常の大企業が使っていた汎用コンピュータは、RDBを使うにはあまりにも性能が貧弱dで、処理に時間がかかり使いものにならなかったのである。
 多くの企業がテスト段階であきらめてしまった。小規模な情報検索系での利用や、それを用いてRDBの学習をした程度であった。なかには、情報検索系のデータをミニコンピュータに転送して使うような例もあったが、長続きしなかった。

1980年代後半:「情報検索系にはRDB、基幹系にはNDB」

1980年代の後半になると、汎用コンピュータの性能が向上し、小規模ならばRDBが使えるようになった。しかし基幹系システムでは困難で「情報検索系にはRDB、基幹系にはNDB」という状況が続いた。

基幹業務系にRDBが活用されるようになったのは、1980年代の末頃である。しかし、この頃には汎用コンピュータによる集中処理からクライアントサーバ系による分散処理へのダウンサイジングが始まった。
 オープン環境になると、汎用コンピュータに代わりサーバがデータベースを搭載するようになる。米国では以前からUNIXを対象にしたデータベースメーカー製品が広く用いられていたが、この環境になってますます活発になった。それらのほとんどはRDBであった。

1990年代前半:RDBの全盛、DWH概念の普及

日本でのダウンサイジングは中途半端な状況であった。LAN化は進み、オープン環境でのグループウェアなどの利用は進んだが、基幹系システムは依然として汎用コンピュータで行われていた。この頃になると、新規のシステムはRDBが用いられ、NDBは既存システムが残るだけになる。奇妙なことだが、日本ではこの頃がRDBの全盛時代なのである。

MDDBに関しては、インモンのDWH提唱(1992年)やコッドのOLAP提唱(1993年)は、いち早く話題になった。しかし、MDDB製品を導入することは稀であり、従来の「情報検索系システム」を「データウェアハウス」へと表現を変えて、普及に拍車をかけた程度の影響であった。皮肉なことに、この分野ではRDBの利用が定着したのである。逆にいえば、RDBが実用化したのでDWHが急速に普及したともいえる。
 汎用コンピュータをDWHとして用い、必要なデータをパソコンにダウンロードして、Excelで加工・編集するのが通常の利用方法だった。DWH的な利用が増大し、汎用コンピュータでの基幹系業務が圧迫されることが問題になり、部門サーバでのデータマートが必要になってきた。

DWHで話題になったのは超並列プロセッサである、テラデータがNCRになり、日本NCRは活発なキャンペーンをした。これもDHWの(概念の)普及に貢献した。しかし、あまりにも高価だったので、通常の企業では手が出せなかった。

製造業(特に組立工業)ではOODBの導入が行われた。RDBはフラットな2次元表であり、多様な異なる属性をもつ部品や製品の生産システムには、無駄が多く使いにくいものだった。それを解決するのにOODBが適している。

日本ではユーザ企業と汎用コンピュータメーカーとの関係が密接で、そのメーカーのデータベースを採用するのが大多数であった。そのため、データベースのシェアは汎用コンピュータのシェアとほぼ一致しており、富士通、IBM、日立の順であった。
 それに対して世界的には、オープン環境での利用が多く、その分野では、Oracle、Infomix、Sybaseが3強になっていた。

1990年代後半:ユーザ企業でのデータベースへの関心低下

ダウンサイジングの環境整備が一段落した。インターネットが普及しはじめた。IT部門でもUNIXやWindows利用が当然のことになった。
 このような環境で、部門内データウェアハウス、すなわちデータマートにSQL Serverなどを採用するユーザ企業が増えてきた。サーバを対象としたデータベースが利用されるようになった。そこでは利用者が簡単に使える環境がパッケージになっていり、開発プラットフォームも提供されるので、IT部門としてデータベースの種類などに留意する必要は低下したきた。
 この環境ではMDDBが利用される。もっともユーザ部門ではMDDBを用いているという意識ではなく、Excelの兄貴分として知らずに使っていた。Microsoft Accessもデータベースソフトとしてではなく、Excelの機能拡張としての認識だった(現在でもそうだろうが)。

基幹系の分野では、SAPのR/3など、ERPパッケージの導入が始まる。ダウンサイジングへの移行、BPRの実現、西暦2000年問題対処などを一挙に解決しようとした。
 ERPパッケージの導入により、自社独自仕様による個別システムの開発は急速に減少した。IT部門は情報システムの開発提供者からシステムの選択利用者へと立場が変わったのである。

このように、ユーザ企業にはデータベースは「見えない」存在になり、データベースそのものへのへの関心は急速に低下した。データベースはベンダ側の問題になったのである。
 ベンダ企業ではOODBやMDDBの製品化が進んだ。
・OODB:Oracle 8(1997年)、富士通 Jasmine(1997年)、日立 HiRDB 5(1999年)
・MDDB:MetaCube ROLAP Option(1997年)、Essbase(1998年)

2000年代前半:ポストRDBの普及

ベンダ側としては、データベースを搭載したプラットフォームの多機能性、処理速度の高速性が重要になる。それに呼応して、ポストRDBと称されるデータベースが続出した。
OODB:Microsoft SQL Server 2000、Oracle XML DB(2001年)
XMLDB:NeoCore XMS(2002年)、EsTerra(2003年)、IBM、DB2 OLAP Server(2005年)
CODB:Prevayler(2001年)
IMDB:Oh-Pa 1/3(2005年)、Oracle TimesTen In-Memory Database(2005年)

2000年代後半~:各種データベースの統合

競争はますます激化する。ベンダ1社では対応できず専門会社を買収して、その技術を自社製品に組み込むアライアンス製品が多くなる。有名で大規模なな買収を掲げる。
IBM:Infomix買収(2001年)、Netezza買収(2010年)
Oracle:Hyperion買収(2007年、OODB)、サン・マイクロシステムズ買収(2010年)
SAP:Sybase買収(2010年)

この結果、2010年代後半では、Oracle、IBM、Microsoftがデータベースの3強となった。日本ではこれに富士通と日立が続いている。

2000年代後半には、クラウド環境の普及に伴い、従来のプレイヤー以外の参入が始まった。
・2007年 Salesforce、Apex(統合パッケージにOODB採用)
・2008年 SAP、ABAP(統合パッケージにOODB採用)
・2010年 SAP、 HANA
・2010年 EMC Greenplum Data Computing Appliance
SAPやSalesforceは、ERPパッケージの巨人で、EMCはストレージ分野の巨人である。ともにクライド分野に進出している。彼らは巨大なソフトウェア会社であるが独自のデータベース開発はしてこなかった。それがデータベース専門の企業を買収するとにより、自社のクラウドサービスの基盤にしたのである。
特にHANAは、IBM、HP、富士通などハードウェア各社がそれを搭載する製品を発表しており、業界地図を変えるかもしれない。

このような経緯の間に、もはやRDB、OODB、MDDBなどの区別は不明瞭になり、むしろデータベース・サーバ・ソフトウェアとして統合してとらえるのが適切な環境になってきた。

特殊な分野に組込みソフトがある。容量が小さいメモリ内で高速に処理できるデータベースが要求されOODBやIMDBが適している。このような利用は以前から行われていたのであるが、スマートフォンの普及、特にオープンソースOSであるAndroidの発表により、改めて注目され高度な発展をしている。


参考URL