月刊ビジネスコミュニケーションによるエキスパートブログ
HOME | ABOUT |
atom rss2.0

« previous next »

三大DBMSへの挑戦 (その1)

2006.03.22|オープンソースソフトウェア このエントリーをはてなブックマークに追加Yahoo!ブックマークに登録この記事をクリップ!BuzzurlにブックマークBuzzurlにブックマーク

今回は、オープンソースソフトウェア(OSS)のデータベース管理システム(DBMS)についての記事を紹介しよう。2006年2月6日のBusinessWeek onlineの記事「Taking On the Database Giants」の中からいくつかの話題を拾ってみたい。副題は「新興OSS企業がOracleやIBMやMicrosoftと張り合えるだろうか? 辛い戦いになるが、顧客も既存のDBMSの代替製品を求め始めている。」というものである。この記事を読むための準備として、まずは今回のテーマであるデータベース、その中でも現在主流となっているリレーショナル・データベース(RDB)についてその歴史を紐解いてみよう。

CoddのRDB発明

IBMのEdgar F. Coddが1969年にIBM Research Reportで、さらに翌1970年にACMの論文において提唱したリレーショナルデータモデルがRDBの起源であり、OSSも含めた今日のDBMS製品の熾烈な競争のスタートポイントである。RDBの特長の一つは、プログラムとデータを分離したことであり、DBMSのユーザやアプリケーションがデータを検索するために、前もってデータの構造を知っている必要性をなくした点にある。この論文に基づいて、1973年からIBMでSystem Rプロジェクトが開始された。もちろん、System Rの「R」はRerationalを意味する。同じ頃、カリフォルニア大学バークレイ校(UCB)では、System Rプロジェクトの論文に触発されたMichael Stonebrakerらによって、独自のRDBMSプロジェクトであるINGRES(INteractive Graphics REtrieval System)の開発がNSFなどからの資金提供によって開始された。ちなみに、データベース言語のSQL(Structured Query Language)は、1974年にIBMのSystem RプロジェクトのDonald D. Chamberlinが定義したSEQUEL(Stored English QUEry Language)から発展したものである。

このように先進的なRDBの理論はIBMで発明されたものであるが、IBMによるRDBMSの製品開発は遅れた。これには次のような理由がある。IBMでは多額の先行投資による成果として1969年に1,000万行からなる階層型DBMSのIMSを発表していた。このIMSがその後20年間にわたって大成功を収めたために、Coddの理論はすぐにはIBMで採用されなかったのである。

RDBMSビジネスの第1ラウンド

そのような状況にLarry Ellisonが登場する。Amdahlを解雇されAmpexにいたEllisonは、上司らと1977年にSoftware Development Laboratories(1979年にRelational Software Inc.、さらに1983年にOracle Corp.と改名)を設立し、System Rの仕様に基づいてDECのVAX上でC言語を用いてRDBMSの開発を進めた。そして、CIAからの受注によって1979年に世界初の商用RDBMSをUNIX上に開発した。一方、RDBMS本家であるIBMは、System Rの研究活動に基づいて1981年に小型メインフレーム向けOSのVSEの上で走行するRDBMSとしてSQL/DSを製品化したが、IMSの収益を保護するために意思決定支援システムと位置づけで販売された。さらに1983年には大型メインフレーム向けOSのMVSの上で走行するDB2 for MVSが発表された。しかし、1980年代初頭に始まったUNIXの普及と相まって、C言語で書かれ高い移植性をもつOracleは毎年倍々に売上を伸ばしていき、OracleがRDBMSの第1ラウンドの勝者となったのである。IBMのRDBMSは自社のメインフレーム上でしか動かないものであった。このように1980年頃というのは、コンピュータ業界において垂直統合ビジネスから水平分業ビジネスへの大きなターニングポイントとなっていたのだ。

INGRESとその子孫

StonebrakerのINGRESはプロトタイプ開発の繰り返しによって徐々に進化し、そのソースコードは多くの大学に普及していき、1980年までに1,000コピーが配布された。これはOSSコミュニティの開発手法そのものである。このソースコードをベースにいくつかの商用RDBMSが生まれている。以下に述べるSybase、SQL Srever、Informix、商用Ingresなどである。さらに、オブジェクト指向の考え方を採り入れたPOSTGRESやその商用製品であるIllustraなどを生んだ。また、UCBの学生がTandem Computersに就職し、そこでNonStop SQLに進化していくシステムを開発している。

1984年に、当時のINGRESプロジェクトのチーフプログラマであったRobert Epsteinが学生たちとSybase Inc.を設立した。その後、Sybase SQL Serverを発表し、クライアント/サーバのRDBにフォーカスしたことにより成功し、1980年代末から1990年代半ばにかけて、Ingres Corp.を抜いてOracleに次ぐ第2位のRDBMSベンダーになった。1988年にはMicrosoftと共同でOS/2用のSQL Serverを開発し、また、Sybase SQL ServerをWindows NT用に移植したMicrosoft SQL Server 4.2を開発したが1993年には提携を解消した。その後、Sybase SQL Serverは混乱を避けるためにSybase Adaptive Server Enterprise(ASE)に製品名を変更した。Sybaseは1990年代半ばにInformixに抜かれて以降は極度の低迷に陥った。現在は、買収した子会社のiAnywhere SolutionsやAvantGoとともにモバイルDBのリーダーとなっている。

一方、Microsoftは6.0以降のMicrosoft SQL Sreverを独自でリリースした。SQL Server 7.0以降の開発においては、IBMのSystem RプロジェクトやDECのRdb、さらにTandemのNonStopSQLの開発で活躍し、DBMSとトランザクション処理の研究者として著名なJim Grayを招聘して精力的に開発を進め、現在ではOracle、IBMに次いで第3位の座を獲得した。

1980年にRelational Database Systems(1988年にInformix Software, Inc.に改名)を設立したRoger SipplとLaura KingはISAMをベースにした独自のRDBMSを製品化していたが、SQL市場の立ち上がりに注目してINGRESを改造し、1981年にInformixをリリースした。1980年代後半からはUNIXとSQLの普及によって徐々に成長したが、1988年にスプレッドシートWingZをもつInnovative Softwareを買収して時価総額の半分を失うという大失敗を犯した。しかし、1989年にPhil WhiteをCEOに迎えてからはUNIX市場で爆発的に成長した。1994年にはUNIXデータベースサーバ市場にフォーカスし、スケールアップとスケールアウトの技術が、SMPシステムの普及とサーバOSとしてのUNIXの普及によって大ヒットとなり、1990年代半ばにはSybaseを抜いてOracleに次ぐ第2位の地位を確保した。また、次に述べるORDBMS技術にも積極的に投資し、1996年にはIllustra Information Technologiesを買収した。Stonebrakerはこの後、2000年までInformix SoftwareのCTOを務めた。しかし、まだキャズムを超えていなかったORDBMSにあまりに力を入れ過ぎたために失速し、2001年にはIBMに買収された。その後、Informixのコア技術はDB2製品群に統合されている。

INGRESの生みの親であるStonebrakerはINGRESを商用化するために、1980年にRelational Technology, Inc.(後のIngres Corp.)を設立しており、1982年には商用Ingresがリリースされた。以降、1980年代末にSybaseに抜かれるまでOracleに次ぐ第2位の座を守ったが、1990年にはASK Group, Inc.によって買収された。さらに、1994年にはComputer Associates, Inc.が、ASK Groupを買収した。

1984年に、StonebrakerはオブジェクトリレーショナルDBMS(ORDBMS)を提唱した。ORDBMSは、RDBMSの高速性を保ちながら、RDBMSでは対応仕切れない複雑なデータを処理できるようにオブジェクト指向の特徴を採り入れたDBMSのことである。1985年からは、このORDBMSの実現をめざして、INGRESの後継という名前をもつPOSTGESの開発が始まった。1992年には、StonebrakerがPOSTGRESを商用化するためにIllustra Information Technologiesを設立した。

さて、1995年にはUCBのAndrew YuとJolly Chenが、POSTGRES 4.2をSQL互換にし、かつ軽量化したPostgres95をリリースした。翌年には、彼らの卒業によりBruce MomjianらがPostgres95の開発を引き継ぎ、PostgreSQLと改名した。そして、1997年にはPostgreSQLとしての初のリリースであるPostgreSQL 6.0を発表している。

MySQL

1979年に、スウェーデン企業TcX DataKonsultのMichael "Monty" WideniusがUNIREGというDBMSを社内用途に開発した。その後、徐々に進化し改良されてきたUNIREGをベースにし、WebシステムのバックエンドDBとしてのMySQLの開発が1994年に始まり、1995年にSQLインタフェースをもつMySQL 1.0が完成した。以降、TcX DataKonsultで開発が進められたが、2000年にはMichael WideniusとDavid AxmarkがMySQL ABを設立した。このとき、ライセンス形態はTcX独自のライセンスから、GPLか商用ライセンスのいずれかを選ぶデュアルライセンスの形態に変更された。MySQLという名前の由来は謎のままにされているが、ディレクトリやライブラリやツールの名前に接頭辞「my」をずっと使っていることや、Wideniusの娘がMyという名前であるというのは事実である。

Firebird

DECでRDBMSの開発をしていたJim Starkeyは1984年にGroton Database Systemsを設立し、1986年にInterBaseをリリースした。InterBaseの特長は3つある。1つは、InterBase 7をフルでインストールしてもディスク上で40MBというコンパクトさである。2つ目は、フルタイムのDB管理者を必要としないということ。3つ目は、マルチユーザ環境におけるDB性能を向上させるMVCC(multiversion concurrency control)をいち早く採用したことである。この時点で他のDBMSでは同時実行制御のためにロック機構を使用していたが、InterBaseは更新トランザクションを実行中に参照トランザクションが待たされることなく実行できるMVCCを実装した。ちなみに、PostgreSQLは6.0からMVCCを採用している。また、MVCCの実装方式にも追記式やロールバック・セグメント方式といった種類があり、PostgreSQLは追記式、OracleやMySQL(InnoDB)はロールバック・セグメント方式を採用している。

その後、InterBase製品は、dBASEで有名だったAshton-Tateに売却されたが、1991年にBorlandがAshton-Tateを買収した。2000年にBorlandはInterBase 6をオープンソースにしたが、独自にアップデートしたその後のバージョンについてはプロプライエタリに戻して、現在も開発を進めている。そのオープンソース化されたInterBase 6はコードクリーニングされ、Firebirdと改名されてFirebird Foundationの管理のもとで開発が進められている。

その2につづく

以上のようにRDBの歴史を調べて書いてきたが、やはり37年もの歴史があるのでかなり端折ってはいるのだが、ここまででかなり長くなってしまった。本題のBusinessWeek onlineの記事についてはまだ一行も解説できていないが、それは「その2」で書いていくことにする。

【ご注意】本ブログの中で述べている見解は、引用部分を除いて、すべて田中個人の見解であり、株式会社NTTデータの見解ではありません。

Latest