Oracle Database

ウィキペディアから無料の百科事典

Oracle Database
開発元 Oracle Corporation
最新版
23c / 2023年9月19日
対応OS クロスプラットフォーム
種別 RDBMS
公式サイト www.oracle.com
テンプレートを表示

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仮想マシンを組み込んだ。データベースロケール(iInternet の略とされている。)。最終バージョンは8.1.7である。

2001年XMLの入出力など、400もの新しい特徴を有したOracle9i Databaseをリリースする。運用機能の最大の目玉は、パラレルサーバの後継機能として性能と安定性向上を実現したRAC (Real Application Clusters) である。最終バージョンは9.2.0.8となる。

2003年グリッド・コンピューティングを目指し、グリッド技術を応用したOracle Database 10gがリリースされた。(gGrid の略とされている。)

2007年 Oracle Database 11gがリリースされた。

2012年 10月1日、サンフランシスコで開催された「Oracle OpenWorld 2012」にて、米Oracleは2013年にマルチテナントデータベース製品「Oracle Database 12c」をリリース予定と発表した。(cCloud(クラウド) の略とされている。)

2013年 Oracle Database 12cがリリースされた

製品群[編集]

2015年1月時点では、国内最新リリースとして Oracle Database 12c Release 1(12.1.0.2)が提供されている。

  • Oracle RDBMS V6
    • 主要な機能拡張:行レベル・ロック、オンラインバックアップ(アーカイブログ機構)、PL/SQL(無名ブロックのみ)
  • Oracle7 Server (7.0.x, 7.1.x, 7.2.x)
  • 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)
  • Oracle9i Database (9.0.1.1 - 9.0.1.4, 9.2.0.1 - 9.2.0.8)
    • 主要な機能拡張:領域管理の自動化、XMLデータベース機能(XMLType型カラム、DBUri)、ANSI/ISO SQL:1999 準拠構文サポート、クラスタの機能強化 (Parallel Server → Real Application Clusters「RAC」)、DataGuard、削除したデータのリカバリができるフラッシュバッククエリー機能
  • Oracle Database 10g (10.1.0.2 - 10.1.0.5, 10.2.0.1 - 10.2.0.5)
    • 主要な機能拡張:RAC構成ノード間での動的負荷分散運用の実現(RACへのGrid技術導入)、ストレージ管理の自動化 (ASM)、情報統合 (EII) 機能の強化 (OTG、OGC)、削除した表のリカバリができるフラッシュバック機能
  • Oracle Database 11g (11.1.0.6 - 11.1.0.7, 11.2.0.1 -)
    • 性能チューニングやバックアップ・リカバリなどの運用管理の自動化、災害対策機能の強化、非構造化データの処理性能向上、グリッド機能の向上
  • Oracle Database 12c (12.1.0.1 - )
    • クラウドで有効な「マルチテナント」機能の搭載。

リリースとバージョン[編集]

Oracleデータベース製品名は、リリース番号および接尾辞による命名規則に従って命名される。現在の最新リリースのOracle Database 18cの 「c」 は、「Cloud」を表わす。 以前のリリース(Oracle Database 10gおよびOracle9i Databaseなど)では、それぞれ「Grid」および「Internet」のを表す「g」および「i」の接尾辞を使用していた。 接尾辞の採用はOracle8i Database以降で、それより前のOracle Databaseの命名規則に接尾辞は存在しない。 オラクル創業者ラリー・エリソンが「バージョン1を購入したい者はいない」と考えたため、Oracle Databaseのv1は存在しない。 [1] OracleのRDBMSリリース番号は、下記のコードを使用している。

Oracle
Database
バージョン
初版 初版
リリース
最終PSR 最終
PSR
リリース
備考
サポート終了:Oracle v2 2.3 1979年 最初の市販のSQLベースのRDBMS
サポート終了:Oracle v3 3.1.3 1983年 同時実行制御、データ分散、およびスケーラビリティ
サポート終了:Oracle v4 4.1.4.0 1984年 4.1.4.4 マルチバージョン読み取り一貫性
サポート終了:Oracle v5 5.0.22 (5.1.17) 1985年 5.1.22 クライアントサーバモデル分散データベースのサポート
サポート終了:Oracle v6 6.0.17 1988年 6.0.37 行レベルのロック、スケーラビリティ、オンラインバックアップリカバリ、PL/SQL
サポート終了:Oracle 6.2 6.2.0 Oracle Parallel Server
サポート終了:Oracle7 7.0.12 1992年6月 PL/SQLストアドプロシージャ、トリガ、分散2フェーズコミット、共有カーソル、コストベース最適化
サポート終了:Oracle 7.1 7.1.0 1994年5月 SQL並列実行
サポート終了:Oracle 7.2 7.2.0 1995年5月 共有サーバー、XAトランザクション、透過的アプリケーションフェイルオーバー
サポート終了:Oracle 7.3 7.3.0 1996年2月 7.3.4 オブジェクトリレーショナルデータベース
サポート終了:Oracle8 Database 8.0.3 1997年6月 8.0.6 リカバリマネージャ、パーティショニング
サポート終了:Oracle8i Database 8.1.5.0 1998年 8.1.7.4 2000年8月 ネイティブインターネットプロトコルとJava、Virtual Private Database(VPD)
サポート終了:Oracle9i Database 9.0.1.0 2001年 9.0.1.5 2003年12月 Oracle RAC英語: Oracle RAC、Oracle XML DB
サポート終了:Oracle9i Database Release 2 9.2.0.1 9.2.0.8 2007年4月 Oracle AQ英語: Oracle Advanced QueuingOracle データマイニング英語: Oracle Data Mining、ストリーム、ロジカル・スタンバイ
サポート終了:Oracle Database 10g Release 1 10.1.0.2 2003年 10.1.0.5 2006年2月 自動データベース管理、自動データベース診断モニター、グリッド・インフラストラクチャ、Oracle ASM、フラッシュバック・データベース
サポート終了:Oracle Database 10g Release 2 10.2.0.1 2005年7月 [a 1] 10.2.0.5 2010年4月 Real Application Testing、Database Vault、インデックスのオンライン作成、高度な圧縮、Data Guardファスト・スタート・フェイルオーバー、透過的データベース暗号化(TDE)
サポート終了:Oracle Database 11g Release 1 11.1.0.6 2007年9月 11.1.0.7 2008年9月 アクティブデータガード英語: Oracle Data Guard、SecureFiles、Exadata、Exadata英語: Oracle Exadata
サポート終了:Oracle Database 11g Release 2 11.2.0.1 2009年9月 [a 2] 11.2.0.4 2013年8月 エディションベースの再定義、データ修正、ハイブリッド列圧縮、クラスタファイルシステム、GoldenGateレプリケーション、データベースアプライアンス英語: Oracle Database Appliance
サポート終了:Oracle Database 12c Release 1 12.1.0.1 2013年7月 [a 3] 12.1.0.2 2014年7月 マルチテナント・アーキテクチャ、インメモリ列ストア、JSONのネイティブサポート、SQLパターン・マッチング、データベースクラウドサービス
サポート中:Oracle Database 12c Release 2 12.2.0.1 2016年9月 (クラウド版)

2017年3月 (オンプレミス版)

シャーディングのネイティブサポート、ゼロ・データロス・リカバリ・アプライアンス、Exadata Cloud Service、Cloud at Customer
現行バージョン:Oracle Database 18c 18.1.0 2018年2月 (クラウド版: 18.1.0)

2018年7月 (オンプレミス版: 18.3.0)

Polymorphic Table Function、Active Directoryとの統合
凡例
サポート終了
サポート中
現行バージョン
最新プレビュー版
将来のリリース

Oracle Database Administrators Guideには、Oracle Databaseの各メジャーリリースで導入されたいくつかの主要な革新的技術の簡単な歴史が記載されています。

関連製品[編集]

他の管理ツール[編集]

競合製品[編集]

Oracle Databaseは大企業向けの市場で高いシェアを誇っているが、近年は他ベンダーが提供するRDB製品も多機能化、高速化が進んでおり、競争が激化している。Oracle Databaseの主要な競合製品には以下の製品がある。

  • Microsoft SQL Server : 米マイクロソフトのRDB製品。価格がOracle Databaseより比較的安価であるため、主に中小企業向けに出荷されてきたが、他のマイクロソフト製品との連動を武器に大手企業での実績も増えている。
  • SAP HANA : ヨーロッパ最大級のソフトウェア企業SAPのデータベース製品。高速なインメモリーデータベースに分類されるが、基幹系システムや情報系システムのプラットフォームとして、Oracle Databaseをはじめとした従来のRDB製品からSAP HANAにリプレースする企業が急速に増えている。
  • SAP Sybase Adaptive Server Enterprise : 証券や銀行で多く採用されているRDB製品。Sybase社が提供していたが、SAPがSybaseを買収したことでSAPの製品ラインナップに加わり、金融機関向けでOracle Databaseと熾烈な競争を繰り広げている。
  • PostgreSQL : 競合ベンダーの製品ではなく、オープンソースデータベースであるが、近年機能が大幅に拡充され、Oracle 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)当たり570万円とかなり高額である。さらに、大規模システムでは各オプション機能(パーティショニング、DataGuard、RAC等)も高価で他社DBの製品自体のライセンス価格に匹敵するものも多い。将来的にライセンスモデルが変更され、従来無かった新たな制限が設けられ、制限の解除に追加料金が発生することもある。[a 4] こうしたことから、Oracleは「高飛車である」「高くて難しい」というイメージを持たれていると、日本オラクルのクロスインダストリー統括本部長が明かしている。特にその導入コストを嫌って、こと中小企業での導入率が芳しくないという。[2] 多数の機能を備えるが利用料金が掛かる商用DBから、基本無料のオープンソースDBへの移行も流行している[3]

過去には日本オラクルは、こうしたイメージを払拭し、中小企業にもOracleを売り込むために、「高くて難しい」といったイメージを都市伝説と定義して中小企業向けのアピールを強化していた。[a 5]

サポート契約[編集]

サポート契約を結んだユーザー以外に対しては、製品にどれだけ重大なバグセキュリティホールなどの不具合があろうとも、修正パッチの提供はもちろんのことバグ情報の公開も行わない。

また、オラクル社とのサポート契約は基本的に製品購入当時より締結し続けなければならないものとされており、サポート契約を一旦解約した後に再契約しようとする場合は、前回解約時点にまで遡及する形になる。つまり、解約時点までに遡り(解約後から再契約までの間に)サポート契約を締結していた場合に発生していたはずの金額に加えて、プレミアムを加えた額を全額オラクル社に納めなければ再契約できない。そのため場合によっては新規に製品を買い直す方が安価になることが多い。サポートサービス費用が年々値上がりしていくようになっている。

こうしたことから、サポート契約は必須である(解約そのものは可能であるが、解約による弊害が非常に大きく、製品を使い続けるためには解約が不可能に近い)と言える。またサポート契約の締結の有無が原則としてシステム単位でなく企業単位に変更されており、一部のシステムだけ契約を締結することができなくなった。[a 6]

注釈[編集]

出典[編集]

  1. ^ Julie Bort (2014年9月29日). “Larry Ellison Is A Billionaire Today Thanks To The CIA”. 2019年3月5日閲覧。
  2. ^ 「高い、難しい」イメージの転換を図るオラクル - Enterprise Watch
  3. ^ 商用DBからOSSのDBへの移行が進む”. NTTデータ公式サイト. 2022年4月24日閲覧。

公式[編集]

  1. ^ http://www.oracle.com/us/corporate/press/017324_EN
  2. ^ http://www.oracle.com/us/corporate/press/032365
  3. ^ http://www.oracle.com/us/corporate/press/1967380
  4. ^ 日本語版/FAQ | Oracle 日本 Oracle 価格表 - 日本オラクル
  5. ^ 中堅企業向け 都市伝説”. 日本オラクル. 2009年3月21日時点のオリジナルよりアーカイブ。2016年9月30日閲覧。
  6. ^ Oracle製品 ライセンス・セット概要”. Oracle. 2016年10月12日閲覧。

関連項目[編集]

外部リンク[編集]