SQL
 Computer >> コンピューター >  >> プログラミング >> SQL

コッドの12規則とは?リレーショナルデータベース(RDBMS)の必須条件を徹底解説

エドガー・F・コッド(Edgar F. Codd)は、データベース管理におけるリレーショナルモデルを提唱したイギリス出身のコンピュータ科学者です。彼はリレーショナルデータベースおよびリレーショナルデータベース管理システム(RDBMS)の理論的基盤を築いた人物として広く知られています。

コッドが提唱した12の規則は、あるデータベース管理システムが「リレーショナル」と呼ぶにふさわしいかどうかを判断するための基準を定めたものです。ここでは、ルール0からルール12までを順番にわかりやすく解説します。

ルール0:基礎規則(Foundation Rule)

システムがRDBMSとして認められるためには、そのシステム自身のリレーショナル機能を用いてデータを管理しなければなりません。これがすべての前提となる基本原則です。

ルール1:情報規則(Information Rule)

データベース内のすべての情報(メタデータを含む)は、行と列からなる表(テーブル)形式で表現されなければなりません。また、行や列の並び順に意味を持たせてはならないとされています。

ルール2:保証されたアクセス規則(Guaranteed Access Rule)

データベース内のすべての値は、「テーブル名+主キー+列名」という組み合わせによって論理的にアクセスできなければなりません。ポインタなどを使った直接的なアクセス手法は、この規則に反するとみなされます。

ルール3:NULL値の体系的な扱い(Systematic Treatment of NULL Values)

NULL値は、「データが存在しないこと」や「無効なデータ」を体系的に表現する手段として完全にサポートされる必要があります。NULLはデータ型に依存せず、NULLを含む演算の結果もNULLとして返されなければなりません。

ルール4:動的なオンラインカタログ(Dynamic Online Catalog)

カタログとは、データベース構造に関する完全な記述(メタデータ)のことです。カタログはオンラインで保存され、データベースに関する追加情報を提供しなければなりません。さらに、データベース本体で使うのと同じ問い合わせ言語でカタログにもアクセスできる必要があります。

ルール5:強力かつ構造化された言語(Powerful and Well-Structured Language)

リレーショナルデータベースが複数の言語をサポートすることは許容されますが、データの定義・参照・更新・削除など、あらゆる種類の操作を網羅的に実行できる言語が少なくとも1つ存在しなければなりません。その代表例がSQLです。

ルール6:ビュー更新規則(View Updating Rule)

理論的に更新可能であると判断されるすべてのビュー(View)は、システムによって実際に更新できなければなりません。

ルール7:高水準な挿入・更新・削除(High-Level Insert, Update, Delete)

データの挿入・削除・更新は、単一のオペランド(一つの集合としての対象)に対して行える必要があります。この操作機能は、関係(リレーション)のあらゆるレベルで利用可能でなければなりません。

ルール8:物理的データ独立性(Physical Data Independence)

記憶領域の変更やアクセス方式の変更など、システムの物理的な変更が行われても、アプリケーションプログラムやその他のシステム処理に影響を与えてはなりません。

ルール9:論理的データ独立性(Logical Data Independence)

テーブルの分割や統合といった論理構造の変更が加えられても、ユーザーから見たアプリケーションの視点は一貫したままでなければなりません。この規則は、実際に満たすのが最も難しいとされています。

ルール10:整合性独立性(Integrity Independence)

リレーショナルデータベース固有の整合性制約は、フロントエンド側ではなく、そのデータベース自身の言語で定義され、カタログに格納されなければなりません。これは、RDBMSがフロントエンドアプリケーションに依存してはならないことを意味します。

ルール11:分布独立性(Distribution Independence)

データベースのデータが複数の場所に分散配置されていても、エンドユーザーから見たときには単一の統一的なデータベースとして振る舞わなければなりません。また、ネットワーク上に分散していても、システムは問題なく動作する必要があります。

ルール12:非破壊規則(Nonsubversion Rule)

低レベルのアクセス手段がシステムに許可されている場合でも、それを利用して整合性制約を回避したり、セキュリティ機構を迂回してデータを改ざんしたりできてはなりません。


  1. E.F.コッドのRDBMSに関する12の規則(十二戒律)を徹底解説

    データベース管理システム(DBMS)とはデータベース管理システム(DBMS)とは、相互に関連付けられ、永続的に保持されるデータに対して、アクセス・管理・更新を行うための包括的なアプリケーションプログラム群を指します。他の管理システムと同様に、DBMSの目的は、データベースへの情報の格納や取得を効率的かつ便利に行える環境を提供することにあります。データベースが大量の情報を格納・管理するために使われていることは、言うまでもありません。これを実現するために、DBMSには以下の要素が不可欠です。データモデリング:情報を格納するための構造を定義することです。操作メカニズムの提供:処理されたデータを操作し

  2. リレーショナルデータベース管理システム(RDBMS)の基本概念を徹底解説!

    Accessでデータベース作成やデータ中心のアプリケーション開発に取り掛かる前に、まずはデータベースおよびリレーショナルデータベース管理システム(RDBMS)に関する基本的な概念をおさえておきましょう。これらは実用的で役立つデータベースを作成するために必要な基礎知識であり、データベース関連の書籍やチュートリアル、Webサイト、技術文書などでも頻繁に登場する用語です。 リレーショナルデータベース管理システム(RDBMS)の基本概念 そもそもデータベースとは何か? データベースとは、端的にいえば「電子的に整理され体系化されたデータの集合体」であり、必要に応じてアクセス・操作・検索ができるリポジト