この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方)
出典検索?: "Oracle Database"
Oracle Database開発元Oracle Corporation
最新版19c / 2019年2月13日
対応OSクロスプラットフォーム
種別RDBMS
公式サイト ⇒www.oracle.com
テンプレートを表示
Oracle Database(オラクル データベース)とは、米国オラクル (Oracle) が開発・販売している、関係データベース管理システム (RDBMS) のことである。Oracle Databaseは世界初の商用RDBMSであり、メインフレームからパーソナルコンピュータまで、幅広いプラットフォームをサポートしている。 RDBMSのデファクトスタンダードとも位置づけられる製品であるが、古くからの仕様を引きずるあまり、標準SQL規格に準拠していない点が多く、他RDBMSとの移行性は良くない場合がある。他RDBMSとの移行の際に問題となりうる主な点には以下のようなものがある。 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言語により再プログラミングしたものであり、コミットやロールバックといったトランザクションの概念をサポートしたものであった。
以前のバージョン (Oracle Database 12c) における特徴
行レベルロック
ページ単位ではなく処理対象の行のみにロックをかけることにより、待ち時間の発生確率を低減している。また、ロックされた行に対する参照は可能であるため処理待ちが発生しない。
読み取り一貫性
SELECTを発行した時点のデータが読み取れることを保障する機能。更新前のデータが格納されているUNDOセグメント(Oracle8iまではロールバックセグメント:一般的にはトランザクションログ、更新前イメージともいう)を参照することで、排他ロックによるブロックを受けずにデータを読み取ることができる。
堅牢性
REDOログ(更新ログ・ジャーナルログ)のアーカイブとその冗長化、Real Application Clusters (RAC) に代表されるノード分散による運用構成の冗長化や、災害対策のためのデータベース遠隔複製機能(スタンバイデータベース・DataGuard)をもち、ダウンタイムの削減やデータ資産消失を防ぐことが可能である。
移植性
データベースエンジン・コアAPI周りはすべてC言語、各種ツール類はほとんどがC言語またはJavaで記述されており、広いプラットフォームでの移植性を誇る。ユーザの開発する応用プログラムも、C言語、C++、COBOL、JavaまたWindowsではODBC等の規格に対応し移植性は良い。
他RDBMSとの互換性
可変長文字列において空文字列とNULLを区別しない。(正確には空文字列がNULLとして扱われる。例えば、以下の条件式は偽となる。)
''=''
比較演算子が通常の演算子としては認識されず、WHERE句の中でしか利用できない。
表を必要としないSELECT文でも、必ず何らかの表(通常DUAL表が用いられる)を参照するFROM句を書かなければならない。
テーブル名や列名、またその別名等に日本語などのマルチバイト文字を使用した場合必ず""で囲む必要があり、そうしないとSQLの動作が保障されず実際に異常な動作をすることが多い。プログラム言語内でSQL文字列をハードコーディングする際に、""で囲むルールを徹底することは非常に困難である。そのためテーブル名、列名、別名等には英数字および一部の記号(_、$、#)のみを使用することが推奨される。
歴史