SQL 入門 > データベース概要

データベース概要

リレーショナルモデル

Oracle はリレーショナルモデルを使用した、RDBMS(リレーショナルデータベースマネージメントシステム)である。
リレーショナルデータベースは、Rows:ローと Columns:カラムから構成される。
(Rows:ローとは行、Columns:カラムとは列をあらわす) この 2 次元の表形式でデータを格納する。
行と列の交差する部分はフィールドと呼ばれる。

ColumnColumnColumn
Row
Rowfield
Row

他モデル

  • 階層モデル
  • ネットワークモデル
  • オブジェクトモデル

制約とキー

主キー(Primary Key)

NOT NULL 制約と一意制約を組み合せたもの
主キーの値が、表の中の複数行に存在することはできない。
主キーを構成する列に NULL を持たせることはできない。

一意キー

表の中の2 つの行が一意キーに対して同じ値を持たないようにする。
単一の列で構成される一意キーの場合は、複数のNULL(行) を持つことが可能。
複合一意キーにおいてすべてのキー列に対してNULL を持つ行も同様に複数持つことが可能。
ただし、1つ以上のキー列に対して NULLを持ち、その他のキー列に対して同じ組合せの値を持つ 2つの行は制約違反となる。(※)

(※) この制限は Oracle 検索メカニズムによるとマニュアルに書かれている。標準SQL では制約の 1つのキー列でも NULL を持つ場合には制約違反にはならない。

外部キー(Foreign Key)

表と表の論理的な関連付けを行い外部キーに対して値(親キー)が存在することを保証する。
外部キーには、親表の値もしくはNULLを持つことが可能。
外部キーの親キーは主キーもしくは一意キーでなければならない。

補足

表のデータのすべての行(NULLを含む)を一意に識別するためには一意キーではなく、主キーを使用しなければならない。
キーとインデックスは異なる。キーは制約の元で使われる。インデックスはキーを実装するために利用されているが制約ではない。RDBMS の実装における副産物のようなものである。

関連事項

主キーと一意キーの違いなどの制約についてより詳しく調べる

リレーショナルデータベース

いくつかの2次元表を関連付け統合したもの。
IBM の E.F.Codd 氏により提唱 〜1970年6月 「大規模な共有データバンクのためのリレーショナルモデル」(A Relational Model of Data for Large Shared Data Banks)という論文 〜

リレーショナルデータベースの構成要素(Component)

  • データを格納するオブジェクトおよびリレーション
  • リレーションを操作し、ほかのリレーションを作成するための演算子
  • 正確性、一貫性のためのデータ整合性
    (トランザクション管理は DBMS 上の機能であり RDB に含まれていない)

リレーショナルデータベースの特徴

  • データ構造や物理的な配置を意識しなくてもプログラムが可能。
  • ある言語 (SQL) を利用してデータベースを検索(※変更)できる。
  • SQL には、色々な集合演算機能を備えている。(Oracleにおいて独自の拡張あり)

(※) データベースの変更は DBMS の機能と書かれていることがある。
=「リレーションを操作するための演算子セット」は、関係代数と関係論理から成るため DML は含まれないという内容と リレーショナルデータベースを管理するシステムをリレーショナルデータベース管理システム(RDBMS)と呼び、その基本的な使用方法をISO/IEC(JTC Joint Technical Committee for information technology )やANSI(American National Standards Institute )で標準化したものがSQL(Structured Query Language)ということからだろうと思われる。

しかし、SQL= RDBMS 標準言語 ではあるものの、少なくとも 1985 年には コッドの 12 の規則(※) において INSERTUPDATEDELETE についてもリレーショナルデータベースの要件に含まれている(SQL とは限らない)。
なお、Oracle 10g でも NULL = 長さ 0 の文字列 という点において、この規則を完全には満たしていない。発表当時には規則を満たす RDBMS は無かったようですが、現在、完全に満たしている RDBMS について知りません。

(※) Codd's 12 rules (Rule3:Systematic treatment of null values) (Wikipedia.org)

データ整合性

表データの整合性・一貫性を図るための手法として、正規化がある。

関連事項

整合性制約



関連事項


データベース概要の関連トピックス

日本オラクル
■ 日本オラクル 株式会社
■ オラクルマスター資格 (オラクルマスターとは
■ Oracle Web セミナー