Dbms-codds-rules

提供:Dev Guides
移動先:案内検索

コッドの12ルール

エドガー・F博士 データベースシステムのリレーショナルモデルに関する広範な調査の後、Coddは独自の12のルールを思い付きました。彼によれば、データベースは真のリレーショナルデータベースと見なされるために従う必要があります。

これらのルールは、リレーショナル機能のみを使用して保存されたデータを管理する任意のデータベースシステムに適用できます。 これは基本ルールであり、他のすべてのルールのベースとして機能します。

ルール1:情報ルール

データベースに保存されるデータは、ユーザーデータまたはメタデータの場合もありますが、何らかのテーブルセルの値でなければなりません。 データベース内のすべてのものはテーブル形式で保存する必要があります。

ルール2:保証されたアクセスルール

すべての単一のデータ要素(値)は、table-name、primary-key(行の値)、およびattribute-name(列の値)の組み合わせで論理的にアクセス可能であることが保証されています。 ポインターなどの他の手段を使用してデータにアクセスすることはできません。

ルール3:NULL値の体系的な処理

データベース内のNULL値には、体系的で統一された処理が必要です。 これは非常に重要なルールです。NULLは次のように解釈される可能性があるためです。データが欠落している、データが不明、またはデータが適用できない。

ルール4:アクティブなオンラインカタログ

データベース全体の構造記述は、 data dictionary と呼ばれるオンラインカタログに保存する必要があります。このカタログには、許可されたユーザーがアクセスできます。 ユーザーは、同じクエリ言語を使用して、データベース自体へのアクセスに使用するカタログにアクセスできます。

ルール5:包括的なデータサブ言語ルール

データベースには、データ定義、データ操作、およびトランザクション管理操作をサポートする線形構文を持つ言語を使用してのみアクセスできます。 この言語は、直接使用することも、アプリケーションを使用して使用することもできます。 データベースがこの言語の助けなしでデータへのアクセスを許可する場合、それは違反と見なされます。

ルール6:ビュー更新ルール

理論的に更新できるデータベースのすべてのビューも、システムによって更新可能でなければなりません。

規則7:高レベルの挿入、更新、および削除規則

データベースは、高レベルの挿入、更新、削除をサポートする必要があります。 これは単一の行に制限されてはなりません。つまり、データレコードのセットを生成するために、結合、交差、およびマイナスの操作もサポートする必要があります。

ルール8:物理データの独立性

データベースに保存されるデータは、データベースにアクセスするアプリケーションから独立している必要があります。 データベースの物理構造の変更は、外部アプリケーションによるデータへのアクセス方法に影響を与えてはなりません。

ルール9:論理データの独立性

データベース内の論理データは、ユーザーのビュー(アプリケーション)から独立している必要があります。 論理データの変更は、それを使用するアプリケーションに影響してはなりません。 たとえば、2つのテーブルがマージされるか、1つが2つの異なるテーブルに分割される場合、ユーザーアプリケーションに影響や変更はありません。 これは、適用が最も難しいルールの1つです。

ルール10:完全性の独立

データベースは、それを使用するアプリケーションから独立している必要があります。 すべての整合性制約は、アプリケーションを変更することなく独立して変更できます。 このルールにより、データベースはフロントエンドアプリケーションとそのインターフェイスから独立します。

ルール11:配布の独立性

エンドユーザーは、データがさまざまな場所に分散されていることを確認できてはなりません。 ユーザーは常に、データが1つのサイトのみにあるという印象を受ける必要があります。 このルールは、分散データベースシステムの基盤と見なされています。

規則12:非転覆規則

システムに低レベルのレコードへのアクセスを提供するインターフェースがある場合、そのインターフェースはシステムを破壊し、セキュリティと整合性の制約を回避できてはなりません。