Oracle Database
Oracle Database(オラクル データベース)とは、米国オラクル (Oracle) が開発・販売している、リレーショナルデータベースマネージメントシステム (RDBMS) のことである。Oracle Databaseは世界初の商用RDBMSであり、メインフレームからパーソナルコンピュータまで、幅広いプラットフォームをサポートしている。
目次
現行バージョン (Oracle Database 12c) における特徴
- 行レベルロック
- ページ単位ではなく処理対象の行のみにロックをかけることにより、待ち時間の発生確率を低減している。また、ロックされた行に対する参照は可能であるため処理待ちが発生しない。
- 読み取り一貫性
- SELECTを発行した時点のデータが読み取れることを保障する機能。更新前のデータが格納されているUNDOセグメント(Oracle8iまではロールバックセグメント:一般的にはトランザクションログ、更新前イメージともいう)を参照することで、排他ロックによるブロックを受けずにデータを読み取ることができる。
- 堅牢性
- REDOログ(更新ログ・ジャーナルログ)のアーカイブとその冗長化、Real Application Clusters (RAC) に代表されるノード分散による運用構成の冗長化や、災害対策のためのデータベース遠隔複製機能(スタンバイデータベース・DataGuard)をもち、ダウンタイムの削減やデータ資産消失を防ぐことが可能である。
- 移植性
- データベースエンジン・コアAPI周りはすべてC言語、各種ツール類はほとんどがC言語またはJavaで記述されており、広いプラットフォームでの移植性を誇る。ユーザの開発する応用プログラムも、C言語、C++、COBOL、JavaまたWindowsではODBC等の規格に対応し移植性は良い。
他RDBMSとの互換性
RDBMSのデファクトスタンダードとも位置づけられる製品であるが、古くからの仕様を引きずるあまり、標準SQL規格に準拠していない点が多く、他RDBMSとの移行性は良くない場合がある。他RDBMSとの移行の際に問題となりうる主な点には以下のようなものがある。
- 可変長文字列において空文字列とNULLを区別しない。(正確には空文字列がNULLとして扱われる。例えば、以下の条件式は偽となる。)
''=''
- 比較演算子が通常の演算子としては認識されず、WHERE句の中でしか利用できない。
- 表を必要としないSELECT文でも、必ず何らかの表(通常DUAL表が用いられる)を参照するFROM句を書かなければならない。
- テーブル名や列名、またその別名等に日本語などのマルチバイト文字を使用した場合必ず""で囲む必要があり、そうしないとSQLの動作が保障されず実際に異常な動作をすることが多い。プログラム言語内でSQL文字列をハードコーディングする際に、""で囲むルールを徹底することは非常に困難である。そのためテーブル名、列名、別名等には英数字および一部の記号(_、$、#)のみを使用することが推奨される。
歴史
1977年、ラリー・エリソン、ボブ・マイナー、エド・オーツの3名により、Software Development Laboratories (SDL) が設立された。1979年にSDLは、社名を Relational Software, Inc (RSI) に変更し、その際に初期の商用リレーショナルデータベースとして、Oracle V2を発表した。Oracle V2には、トランザクションの概念はなかったが、基本的なデータベース言語であるSQLを使用することができた。
なお、OracleにVersion 1が存在しないのは、購買層に洗練されたデータベースであることを印象付けるための営業戦略であったといわれている。
1983年、RSIが社名を変更し、Oracle Corporationになる。同年、Oracle version 3がリリースされるが、それは、旧バージョンをC言語により再プログラミングしたものであり、コミットやロールバックといったトランザクションの概念をサポートしたものであった。このバージョンでは、使用可能なプラットフォームをUNIXまで拡張している。
1984年にリリースされた Oracle 4は読み取り一貫性をサポートした。
1985年、徐々にネットワークが進化していく中で、クライアントサーバモデルをサポートする。また、Oracle 5.0は、分散クエリーを搭載した。
1988年、OracleはERPの市場へ参加する。Oracle Financialsと呼ばれた製品は、これまでのOracle Databaseをもとに開発された。また、Oracle 6.0がリリースされ、PL/SQLや行レベルロックなどをサポートした。また、RACの前身であるシェアードエブリシング型のクラスタリングであるパラレルサーバがサポートされた。
1992年、Oracle7 7.0がリリースされる。このバージョンにおいて、パラレルクエリー、完全制約性、ストアドプロシージャ、データベーストリガ、データベースリンク、レプリケーションなどがサポートされた。最終バージョンは7.3.4である。
1997年、オブジェクト指向やマルチメディアに対応したOracle8 8.0がリリースされる。このバージョンにおいて、パーティショニング機能と新しいカラム型LOB (BLOB型,CLOB型) がサポートされた。またROWIDの仕様変更により大容量のデータをサポートするようになった。
1999年には、インターネット上での使用が高まる中、Oracle8i (R8.1.5 ~) をリリースした。このバージョンには、UNIX/LinuxプラットフォームでもインストーラのGUI化や、データベースエンジンにJava仮想マシンを組み込んだ。データベースロケール(i は Internet の略とされている。)。最終バージョンは8.1.7である。
2001年、XMLの入出力など、400もの新しい特徴を有したOracle9i Databaseをリリースする。運用機能の最大の目玉は、パラレルサーバの後継機能として性能と安定性向上を実現したRAC (Real Application Clusters) である。最終バージョンは9.2.0.8となる。
2003年、グリッド・コンピューティングを目指し、グリッド技術を応用したOracle Database 10gがリリースされた。(g は Grid の略とされている。)
2007年 Oracle Database 11gがリリースされた。
2012年 10月1日、サンフランシスコで開催された「Oracle OpenWorld 2012」にて、米Oracleは2013年にマルチテナントデータベース製品「Oracle Database 12c」をリリース予定と発表した。(c は Cloud(クラウド) の略とされている。)
2013年 Oracle Database 12cがリリースされた
製品群
2013年6月時点では、最新リリースとして Oracle Database 12c Release 1(12.1.0.1)が提供されている。
- Oracle RDBMS V6
- 主要な機能拡張:行レベル・ロック、オンラインバックアップ(アーカイブログ機構)、PL/SQL(無名ブロックのみ)
- Oracle7 Server (7.0.x, 7.1.x, 7.2.x)
- 主要な機能拡張:クライアント・サーバ対応 (SQL*Net)、ストアドプロシージャ・トリガーの実装、参照整合性制約の実装
- Oracle7 Server (7.3.1 - 7.3.4.5)
- 主要な機能拡張:データウェアハウス向け機能の実装(ハッシュ結合、ビットマップ索引)、パラレルクエリーによる大規模テーブル検索の高速化、レプリケーション、スタンバイデータベース
- Oracle8 Server (8.0.3 - 8.0.6.3)
- 主要な機能拡張:パーティショニングテーブル、Parallel Server(シェアードディスク型のハイパフォーマンス型クラスタリング)、マルチメディア対応(ビデオ・空間データ)、全文検索機能 (Oracle*Context)、LOB型カラムの追加、オブジェクトリレーショナルデータベース機能(オブジェクト型)の導入
- Oracle8i Database (8.1.5 - 8.1.7.4)
- 主要な機能拡張:JServer/OracleJVM(DBサーバプロセス内で稼動するJava仮想マシン環境)、マテリアライズドビュー、各種グラフィカルユーザインタフェースツール(GUIツール)・インストーラのJavaアプリケーション化、XML対応 (Oracle XDK)
- Oracle9i Database (9.0.1.1 - 9.0.1.4, 9.2.0.1 - 9.2.0.8)
- Oracle Database 10g (10.1.0.2 - 10.1.0.5, 10.2.0.1 - 10.2.0.5)
- Oracle Database 11g (11.1.0.6 - 11.1.0.7, 11.2.0.1 -)
- 性能チューニングやバックアップ・リカバリなどの運用管理の自動化、災害対策機能の強化、非構造化データの処理性能向上、グリッド機能の向上
- Oracle Database 12c (12.1.0.1 - )
- クラウドで有効な「マルチテナント」機能の搭載。
関連製品
- Oracle Database Lite : PDA等の極小リソースでも稼動するモバイルデータベース。実際のデータはOracle Databaseに格納されている。
- Oracle Application Server : Java EE に準拠したウェブアプリケーションサーバ。WebサーバについてはApacheをOracleが改良したものである。
- 中核となる Java EE コンテナのOC4J(Oracle Containers for Java)は、Orion Application Serverをベースとしている。
- Oracle Developer : ウェブに対応したOracle独自の4GLアプリケーション開発・実行環境 (Forms/Reports)
- Oracle Designer : リポジトリベースの統合CASE環境
- Oracle E-Business Suite (旧名:Oracle Applications) : Oracle Database実行環境とForms/Reports環境をベースとした、ウェブ対応のERP製品群
- Oracle JDeveloper : Java/ウェブアプリケーション開発のための統合開発環境 (IDE)
- Oracle Application Express : ブラウザで作るブラウザウェブアプリケーション開発ツール
- Oracle Collaboration Suite : グループウェア、ファイルサーバ
- Oracle Content Management SDK
- Oracle Identity Management
- Oracle OLAP Server : H-OLAP (R-OLAPとM-OLAPのハイブリッド型OLAP) サーバ。
- Oracle BPEL Process Manager ビジネスプロセスモデリング製品
- Oracle Secure Enterprise Search : 企業内コンテンツを検索する製品。ユーザアクセス権限を制御しながらgoogleのようなことができる。
- Oracle TimesTen In-Memory Database インメモリデータベース
「SCOTT/TIGER」の由来
Oracle Databaseに付属するdemobld.sql(Oracle Database 10g以降ではutlsampl.sql)を実行すると「EMP」「DEPT」というふたつのテーブルと「SCOTT/TIGER」というスキーマよりなる伝統的なデモ環境が構築される。「SCOTT」とはオラクルの前身であるSDLに在籍していたBruce Scottを指し、「Tiger」は彼の愛猫の名前に由来する。Scottは優秀な開発者であり最初期のSQL*Plusも彼の手によるものとされている。Scottはすでにオラクルを後にしているが、この伝統は変わる様子がない。
Oracleは「高価」で「難しい」
Oracleは高機能である反面、システムや操作方法を理解するのが非常に困難であり、ユーザビリティも低い(CUIによる操作がメインである。Oracle Enterprise ManagerでGUIの操作も可能となっているが、CUIによる操作と比較すると限定される)ため、開発・運用がとても難しいと思われている。また、大規模のシステムを構築するには必要不可欠となるOracle Database Enterprise Editionの価格は1プロセッサ(CPU)当たり500万円とかなり高額である。さらに、大規模システムでは各オプション機能(パーティショニング、DataGuard、RAC等)も高価で他社DBの製品自体のライセンス価格に匹敵するものも多い。こうしたことから、Oracleは「高飛車である」「高くて難しい」というイメージを持たれていると、日本オラクルのクロスインダストリー統括本部長が明かしている。特にその導入コストを嫌って、こと中小企業での導入率が芳しくないという。[1]
日本オラクルは、こうしたイメージを払拭し、中小企業にもOracleを売り込むために、「高くて難しい」といったイメージを都市伝説と定義して中小企業向けのアピールを強化している。[2]
サポート契約
サポート契約を結んだユーザー以外に対しては、製品にどれだけ重大なバグやセキュリティホールなどの不具合があろうとも、修正パッチの提供はもちろんのことバグ情報の公開も行わない。
また、オラクル社とのサポート契約は基本的に製品購入当時より締結し続けなければならないものとされており、サポート契約を一旦解約した後に再契約しようとする場合は、前回解約時点にまで遡及する形になる。つまり、解約時点までに遡り(解約後から再契約までの間に)サポート契約を締結していた場合に発生していたはずの金額に加えて、プレミアムを加えた額を全額オラクル社に納めなければ再契約できない。そのため場合によっては新規に製品を買い直す方が安価になることが多い。サポートサービス費用が年々値上がりしていくようになっている。
こうしたことから、サポート契約は必須である(解約そのものは可能であるが、解約による弊害が非常に大きく、製品を使い続けるためには解約が不可能に近い)と言える。またサポート契約の締結の有無が原則としてシステム単位でなく企業単位に変更されており、一部のシステムだけ契約を締結することが難しくなっている。
関連項目
- PL/SQL
- オラクルがOracle Databaseの為に開発したデータベース言語。「SQLを手続き型に拡張したもの」とされている。処理をストアドプロシージャのプログラムとして、データベースに格納できる点も特徴のひとつである。
- オラクルマスター
- Oracle Database技術者の認定資格。Oracle社が主催するオラクル認定試験により取得することができる。
- オラクル (企業)
- Oracle Databaseの開発、販売を行う企業。米国カリフォルニア州に本拠を置く。
- 日本オラクル
- オラクルの日本法人。製品の販売やサポート、コンサルティングを行う。
- 内部構造
外部リンク
脚注
テンプレート:Reflist- ↑ 「高い、難しい」イメージの転換を図るオラクル - Enterprise Watch
- ↑ 中堅企業向け 都市伝説 - 日本オラクル