関係データベースとは
RDB(Relational Database:リレーショナルデータベース)の説明は「RDBとSQL」を参照されたい。1980年代から普及し、現在でも最も広く使われているデータベースである。
RDBの特徴
- 静的結合と動的結合
構造型データベースやNDB(ネットワークデータベース)では、データベースを設計するときにデータ間の結合を定めておく静的結合であった。静的結合では、設計時に想定した処理には高速であるが、予期しない結合が必要な処理には再設定が必要になったり、非常に処理が複雑になったりする。
業務を取り巻く環境変化により、情報システムの改訂が頻発するようになり、静的結合データベースの欠点が問題視されるようになってきた。
それに対してRDBでは、実行時にテーブルを結合する動的結合である。想定していなかった処理にも柔軟に対応しやすい。それでRDBへの期待が高まった。しかし、動的結合では処理高率が悪い。RDBの初期ではハードウェア環境では実務に対応できないような状況だった。高速処理が可能になり、広く使われるようになったのは1980年代になってからである。オブジェクト指向データベースや多次元データベースが普及した現在でも最も利用されているのはRDBである。
- RDBとSQL
RDBをアクセスするための言語が必要になるが、当初は各ベンダが個別の言語を用いていた。それでは不都合なので、標準化が求められる。IBMが開発したSQLが広まり、1987年にISO/JISの規格になった。現在では、汎用コンピュータからパソコンに至るまで、ほとんどのRDB用言語はSQLをベースにしている。
ここでは、RDBとSQLを一緒に取り扱うことにする。
主要年表
1969年 コッド RDBに関する最初の論文
1970年 Adavas(Software AG、RDBライクな製品)
1974年 SEQUEL言語(IBM、SQLの前身)
1974年 System R(IBM、最初のRDB実装)
1974年 Ingres(ストーンブレーカー、オープンソースのRDB)
1976年 SEQUELをSQLと改名
1977年 Relational Software Inc (RSI)設立(Oracleの前身)
1979年 Oracle RDBMS(v2)
1980年 Relational Database Systems(RDS)設立(Infomixの前身)
1981年 Informix(INFORMation on unIXを略したRDB)
1981年 SQL/DS(IBM、VSE用RDB)
1981年 Oracle、VAX/VMS用Ingres
1982年 AIM/RDB(富士通、大型汎用機対象の最初のRDB)
1983年 RSIをOracleに改称
1983年 DB2(IBM、代表的なRDB)
1983年 Oracle V3(汎用からパソコンまで移植性が高い)
1984年 RDB1(日立)
1985年 INFORMIX-SQL(SQLベース、CSS環境への布石)
1985年 Codd's 12 Rules
1986年 Sybase Inc設立
1987年 SQL87:SQLのISO/JISの規格化
1988年 RIQS II(日本電気、大型汎用機用RDB)
1988年 MicrosoftとSybase提携
1989年 Microsoft SQL Server
1992年 SQL92(埋め込みSQL、動的SQL)
1993年 MicrosoftとSybase提携解消
1993年 Microsoft SQL Server for Windows
1994年 Infomix 7(InformixのシェアをあげたRDB)
1995年 Symfoware(富士通、オープン系RDB)
1995年 HiRDB(日立、オープン系RDB)
1998年 MySQL(オープンソースのRDB)
2000年 Microsoft SQL Server 2000
2001年 IBM、Infomix買収
1970年代:RDBの始まり
IBMは、コッドの論文やSEQUEL、System Rなどの研究など、RDB研究の先鞭をつけた。それなのに、RDBの製品化は1981年まで行われなかった。社内ではRDBは軽視されていたのである。階層型データベースのIMSが成功していたため、その収益を阻害することを懸念したのが理由だといわれている。
むしろIBMの研究に刺激されたのは社外である。オープンソフトIngresが普及しRDBの研究が活発になった。OracleやInformixなど、後にデータベースのスターになる企業が誕生した。
- 1969年 Codd、RDBの提唱
1970年にIBMのコッド(Edgar Frank Codd)は、 Communications of the ACM誌に論文「A Relational Model of Data for Large Shared Data Banks」を発表し、RDBの概念と利点を示した。これがRDBの最初である。しかし、IBM社内には1969年に発表されたとされている。
- 1971年 Software AG、ADABAS
Software AGは、1969年にピーター・シェーネル(Peter m. Schnell)らにより設立した。現在ドイツでSAPに次ぐ第2位のソフトウェア会社。ADABASは世界で最初に普及した商用RDBだとされているが、リレーショナル(ライクな)データベースというべきである。
- 1974年 IBM、SEQUEL言語開発
- 1974年 System RにRDB搭載
SEQUELはRDB問い合わせ言語、System RはRDBシステムでRDBを搭載してSEQUELでアクセスした。しかし、これらは研究目的のプロトタイプで、System Rも本格的な販売にはならなかった。
SEQUELは、1976年にSQLと改名された。SQLはISOおよびJISの規格になが、それまでに10年かかった。
- 1974年 Ingres初期タイプ
Ingresは、カリフォルニア大学のストーンブレーカー(Michael Stonebraker)が中心になり開発したオープンソースのRDB。そもそもIngresは地理情報データベース(INteractive Graphics REtrieval System)研究プロジェクトだったのだが、IBMの発表を読みRDB研究に切り替えたのだという。
Ingresは大学を中心に広まり、それをベースに多様な発展をする。有名なRDB会社SybaseはIngres開発メンバーが創立した。ストーンブレーカー自身もRTI(Relational Technology)社(後にIngresと改称)の創設に関った。
- 1977年 Oracle社の前身SDL設立
- 1979年 Oracle RDBMS
1977年にラリー・エルソン(Larry Ellison)らはSDL(Software Development Laboratories)を設立。RSI(Relational Software, Inc.)と改称し、1982年にOracleと改称した。
Oracle RDBMS(v2)は、Oracleが最初に製品化したRDB。Olacleは後にデータベースのトッププレイヤーになる。
- 1980年 Informix社の前身RDS設立
- 1981年 Informix
RDS(Relational Database Systems Inc)は、Roger Sippl と Laura Kingによって設立。その製品Informix(INFORMation on unIXの略だという)は、UNIXで動くRDB。RDSは1986年にInformixと改称。Oracleと並ぶプレイヤーに成長する。
1980年代:RDBの普及
一般利用企業でのRDBへの関心
1970年代での日本でのRDBの利用は、先進的大企業か特定業務に限定されており、汎用コンピュータでの集中処理を主としていた一般利用企業でのRDBへの関心は低かった。それがIBMのDB2発表により、RDBを意識するようになった。そして国産コンピュータメーカーがRDBを出すことにより身近なものになった。
この頃になると、NDBで構築した業務システムが、その後の環境変化に伴い、改訂の頻度が多くなってきた。NDBでは属性の追加や変更があるたびにデータベースの再設計が必要になり、改訂作業が面倒だった。改訂に柔軟に対応できるデータベースとしてRDBへの期待が高まった。
また、DSSの発展として情報検索系システムが普及してきた。基幹業務システムで収集蓄積したデータを整理して公開し、エンドユーザが任意の切り口で検索加工する利用形態である。そのニーズに応えるには、動的結合ができるRDBが適していると期待された。
汎用コンピュータのRDB
- 1981年 IBM SQL/DS
SQL/DS(Structured Query Language/Data System)がIBM最初のRDBである。MVSではなくSystem/360のVMで稼働した。
- 1983年 IBM DB2
当時の汎用コンピュータ分野では、IBMが独占状態であり、その動向に他のメーカーや利用企業が追従していた。1981年にはSystem/370-XAアーキテクチャとOS「MVS」を発表、汎用コンピュータ全盛時代の業界標準になった。そのMVSでのRDB「DB2」が発表さらたのだから。当然これも業界標準となり、他社製品はDB2との比較で評価されるような状況になる。
当初は汎用コンピュータだけが対象だったが、1990年代になるとUNIXやWindowsなどのプラットフォームでも動作するようになる。現在でも主要なRDBであり、オブジェクト指向データベースにもなっている。
1980年代になると、富士通や日立などの国産コンピュータメーカーがIBM対抗者になるまでに成長した。国内では富士通がIBMを抜きトップシェアを獲得した。RDBの分野でも、米国と同等な状況になっていた。当時の日本企業はコンピュータメーカーのソフトウェアを使うのが一般的であり、RDBの国内シェアはコンピュータシェアとほぼ一致していたといえる。
- 1982年 富士通 AIM/RDB
AIMは富士通のデータベースシステムの総称である。大型汎用コンピュータのOSであるOSIV/F4 MSPのAIMにRDBを追加した。これはIBMのDB2よりも先であり、汎用大型コンピュータを対象とした世界初のRDBとなった。
- 1983年 DIPS、DEIMS-4
DIPS(Dendenkosha Information Processing System)とは電電公社と富士通・日立・日本電気の共同プロジェクトにより開発した汎用コンピュータシリーズ。DEIMSはそのデータベースでDEIMS-4でRDBに対応した。
- 1984年 日立、RDB1
日立初の大型汎用コンピュータ用のRDB。
1989年にXDM (Extensible Data Manager)
米国とは異なり、日本でのビジネス系の利用は汎用コンピュータ一辺倒だった。期待されたRDBであったが、発表当時の汎用コンピュータは、RDBを円滑に処理するには、あまりにも性能が貧弱だった。発表当時では、処理時間がかかりすぎ、実験段階で放棄したことも多かった。
その後数年すると、環境が改善されたが「情報検索系ではRDB、基幹業務系ではNDB」といわれた。処理効率を重視する基幹業務系ではRDBは使えない。情報検索系でのアドホックな処理でのRDBは魅力なので使っていこうという状況であった、
基幹業務系にもRDBが広く使われだしたのは、COBOLにSQL文が記述できる(規格は1992年のSQL92)ようになった1980年代のかなり後の頃である。皮肉なことに、その頃から汎用コンピュータからオープン環境へのダウンサイジングが始まった。
米データベース各社の動向
汎用コンピュータのRDBはDB2が優勢になった。それに対して、データベース専門各社は、UNIXなどを対象とした分野で製品の強化を図る。これが将来のオープン環境での競争優位の布石になる。
- 1981年 Oracle VAX/VMS用Ingress
- 1983年 Oracle V3
IngressはオープンソースのRDBであり、それをベースに多くの製品が出現した。その代表例がOracleの VAX/VMS用Ingressである。VAXはDECがPDP-11の後継機として1976年に発表したミニコンピュータで、VMSはそのOS。VAXは1980年代にはミニコンピュータの代表的存在になっていた。
Oracle V3はC言語で記述され、汎用からパソコンまで移植性を重視したRDB。
- 1985年 Oracle V5
- 1985年 Infomix-SQL
共に分散クエリやクラスタ表などCSS(Client-Server System)環境での利用を意図したRDB。
1996年にSybaseが参入し急速に成長する。そして、1980年代末頃には、Oracle, Sybase, Infomixの3強時代になる。
- 1986年 Sybase Inc設立
- 1986年 Sybase初版開発
マーク・ハフマン(Mark Hoffman)とボブ・エプスタイン(Bob Epstein)により設立。
Sybaseは、CSS環境での本格的なオンラインRDBとして最初の製品だとされている。
- 1988年 Microsoftと提携、WindowsにSybase SQL Serverを移植
これにより、Sybaseのシェアは急速に拡大する。1993年に提携解消、このソフトはMicrosoftが買い取った。
- 2010年 Sybase社、SAPにより買収
1980年代末頃からダウンサイジングが進んだ。その分野では、Microsoftのサーバ製品が注目を浴びるようになる。RDBそのものというより、それを含めたサーバ機能ソフトがMicrosoftの活動領域である。
- 1988年 Microsoft、Sybasetと提携、WindowsにSybase SQL Serverを移植
- 1993年 Microsoft SQL Server
Sybasetとの連携により、Microsoftはデータベースサーバ分野に参入。1993年に提携は解消するが、Sybase SQL Serverのソースコードを買い取り、独自のMicrosoft SQL Serverとした。
標準化の動向
RDB製品が続出するのに伴い、RDBの概念やアクセス言語の違いが問題視された。
- 1985年 Codd's 12 Rules
RDBの提唱者であるコッドは、1980年代前半に多く出現したRDBが自分の提唱した概念と乖離していると思った。そして、RDBであることの基準を12の規則として発表した。しかし、これはあまりにも厳しい基準であり、すべてを満たすのは、かえって実務的ではないともいわれた。
- 1987年 SQL86:SQLのISO/JIS規格化
IBMが開発したRDBアクセス言語SQLは、広く受け入れられ他社のRDBでもその文法に準拠するようになった。そのような状況に対応してSQLを公式な規格にすることになった。
1986年にANSIが規格化してSQL86とした。IBMのSQLをそのまま採用したといわれるが、共通の基本部分だけに限定された最小限に絞り、規格としての整合性や不備な個所の改訂をして、1987年にISO規格、JIS規格となった。
- 1992年 SQL92(埋め込みSQL、動的SQL)
「埋め込み」とは、COBOLなどの手続き型プログラムのなかにSQLの記述ができるようにしたこと。「動的」とは、SQL文のなかに変数が含まれており。プログラムの実行時に変数の値が決定されること。
1990年代以降
利用企業の対応では、新規開発のシステムはほとんどRDBになり、階層型データベースやネットワークデータベースは特定分野でしか使われない状況になった。
1990年代になると、オブジェクト指向データベースや多次元データベースなどが普及してくる。ネイティブなものもあるが、本体はRDBで、インデクスなどの工夫をして、それらを実現しているもののある。またこれまでに掲げたRDB製品の多くが、それらの機能を取り込んでいる。
そのため、RDBとして記述するのは不適切なので、ここではトピックスを掲げるだけにする。
- 1992年 Access
Accessはパソコン用RDBツールである。1993年のv2.0ではかなり操作機能が改善され、1995年にはWindows95にAccess95が搭載された。
GUI環境やVisual Basicで処理するのが通常であるが、SQLの記述だけでも処理できる。スタンドアロンでのパソコンを対象にしているため、RDB/SQLとしての機能は限定されるが、使いやすく小規模システムの構築に広く普及している。
Access2000以降、Microsoft SQL Server側にデータベースを置き、パソコン側から操作する機能が加わった。
- 1998年 MySQL
著作権はスウェーデンの企業MySQL ABが開発した。オープンソースであるが、同社が著作権をもっていた。2008年に同社はサン・マイクロシステムズに買収され、2010年、さらにサン・マイクロシステムズはオラクルに買収された。
- 2000年代中頃の日本での代表的RDB
商用では、Oracle Database>IBM DB2>Microsoft SQL Server>富士通 Symfoware>日立 HiRDB
オープンソフトでは、PostgreSQL(Ingresの後継OODB)>MySQL
参考URL