E.F.コッドのRDBMSに関する12の規則(十二戒律)を徹底解説
データベース管理システム(DBMS)とは
データベース管理システム(DBMS)とは、相互に関連付けられ、永続的に保持されるデータに対して、アクセス・管理・更新を行うための包括的なアプリケーションプログラム群を指します。他の管理システムと同様に、DBMSの目的は、データベースへの情報の格納や取得を効率的かつ便利に行える環境を提供することにあります。データベースが大量の情報を格納・管理するために使われていることは、言うまでもありません。
これを実現するために、DBMSには以下の要素が不可欠です。
- データモデリング:情報を格納するための構造を定義することです。
- 操作メカニズムの提供:処理されたデータを操作し、ファイルやシステム構造を変更するために、クエリ処理メカニズムを提供することが重要です。
- クラッシュリカバリとセキュリティ:データの不整合を防ぎ、安全性を確保するために必須の機能です。
- 同時実行制御:複数のユーザーがシステムを共有する場合に必要となる制御機能です。
エドガー・F・コッド博士について
E.F.コッド博士は「データベース管理システムの父」として広く知られており、12の規則(実際には13個あり、0から12まで番号付けされています)を提唱しました。博士によれば、DBMSが完全にリレーショナルであるためには、これらすべての規則に従う必要があります。しかし現在に至るまで、すべての規則を満たすデータベースはごくわずかしか存在しません。これらの規則は「コッドの十二戒律」として親しまれています。なお、彼の記念碑的な研究論文「A Relational Model of Data for Large Shared Data Banks(大規模共有データバンクにおけるデータのリレーショナルモデル)」は、一読する価値のある名作です。
リレーショナルデータベース管理システム(RDBMS)の分類
DBMS業界には、明文化されていない暗黙のルールが存在します。コッドの規則をすべて実装したデータベースは希少であるため、以下のような分類基準が広く受け入れられています。
- コッドの規則のうち5〜6個に従うシステムは、データベース管理システム(DBMS)とみなされます。
- 7〜9個に従うシステムは、準リレーショナルデータベース管理システム(semi-RDBMS)とみなされます。
- 9〜12個に従うシステムは、完全なリレーショナルデータベース管理システム(RDBMS)とみなされます。
コッドの十二戒律の詳細
ここからは、E.F.コッドの12の規則を一つずつわかりやすく解説します。
規則0:基本規則(Foundation Rule)
RDBMSと称される、あるいはRDBMSとして推奨されるシステムは、リレーショナル機能を通じて格納されたデータ全体を管理できなければなりません。
規則1:情報規則(Information Rule)
リレーショナルデータベースは、データをリレーション(表)の形式で格納しなければなりません。RDBMSにおいて表はリレーションに相当します。ユーザー定義データであれメタデータであれ、すべての値は表のセルに値として格納されることが重要です。
規則2:保証されたアクセス規則(Guaranteed Access Rule)
論理的なデータアクセスにポインタを使用することは厳禁です。すべてのアトミックなデータは、表名、特定の行の値を表す主キー、属性値を表す列名の正しい組み合わせによって、論理的にアクセスできなければなりません。
規則3:NULL値の体系的な取り扱い規則(Systematic Null Value Support)
NULL値はリレーショナルデータベースにおいて完全にサポートされなければなりません。NULL値は一様に「欠落情報」として扱われ、データ型に依存しません。空白、ゼロ、空文字列と混同してはいけません。NULL値は「適用不能なデータ」や「未知の情報」とも解釈できます。
規則4:動的オンラインカタログ規則(Active and Online Relational Catalog)
DBMSの用語における「メタデータ」とは、データベースに関するデータ、すなわち「データについてのデータ」を指します。メタデータを格納する動的オンラインカタログは「データディクショナリ」と呼ばれます。このデータディクショナリは、必要な権限を持つユーザーのみがアクセスでき、データベースへのアクセスに使用されるのと同じクエリ言語でアクセスできなければなりません。
規則5:包括的なデータサブ言語規則(Comprehensive Data Sub-language)
単一の強力な言語が、整合性制約、ビュー、データ操作、トランザクション、認可をすべて定義できなければなりません。これらの機能に個別の言語でアクセスするようになっている場合、この規則に違反していることになります。
規則6:ビュー更新規則(Updating Views)
ビューはその基となるベーステーブルの更新を反映し、その逆もまた同様でなければなりません。ビューとは、制限されたデータを表示する論理的な表のことです。ビューは一般にデータを読み取り可能にする一方で、変更はできなくします。ビューはデータの抽象化にも役立ちます。
規則7:集合レベルの挿入・更新・削除規則(Set Level Insertion, Update and Deletion)
1つの操作で、データの取得、挿入、更新、削除が行えなければなりません。
規則8:物理的データ独立性規則(Physical Data Independence)
バッチ処理やエンドユーザーの操作は、物理的なストレージおよびそれに対応するアクセス方法から、論理的に分離されていなければなりません。
規則9:論理的データ独立性規則(Logical Data Independence)
バッチ処理やエンドユーザーは、データベースのスキーマや、その上に構築されたアプリケーションを作り直すことなく、スキーマを変更できなければなりません。
規則10:整合性独立性規則(Integrity Independence)
整合性制約は、アプリケーションプログラム内に記述するのではなく、メタデータとしてデータディクショナリに格納され、利用可能でなければなりません。
規則11:分配独立性規則(Distribution Independence)
リレーショナルシステムのデータ操作言語(DML)は、物理的なデータ格納場所に依存してはならず、データが集中型であれ分散型であれ、変更を必要としてはなりません。
規則12:非破壊規則(Non Subversion)
すべての行は、課されたセキュリティ制約と整合性制約に従わなければなりません。これを回避する特別な権限は一切認められません。
主要DBMSの規則実装状況
現在、ほぼすべての本格的なDBMSはRDBMSです。Oracleは11以上の規則を実装しており、Sybaseも同様です。SQL Serverも11以上の規則を実装していますが、FoxProは7以上の規則の実装にとどまっています。このように、コッドの規則は今日でもRDBMSの成熟度を測る重要な指標となっています。
-
スマホのデータ容量を節約!Android向けデータ使用量管理アプリ5選
朝起きて枕元やサイドテーブルからすぐにスマホを探す——私たちは今や、スマートフォンなしでは生活できないほど魅了されています。単なる通信機器だったはずのものが、これほど生活に影響を与えるとは、誰が予想したでしょうか。友人との連絡、SNSへの写真投稿、あらゆる検索など、スマホの用途は挙げればきりがありません。しかし、その便利さゆえに、月の途中であっという間にデータ容量を使い切ってしまうことも少なくありません。だからこそ、日頃からデータ使用量をしっかり把握しておくことが重要です。手動での管理には限界があるため、専用アプリを活用するのが最適な解決策と言えるでしょう。Androidにおすすめのデータ使用
-
データセンターにフラッシュストレージが必要な理由|性能・耐久性・コストを徹底解説
技術と時代の変化とともに、データを保存するためのさまざまな手段が登場してきました。初期にはフロッピーディスクが使われ、その後はCDやDVDでメディアを書き込むのが一般的になりました。しかし現在、これらのデバイスは急速に姿を消しつつあります。最新ノートパソコンをはじめとする主流デバイスの多くには、もはや内蔵のCD/DVDドライブすら搭載されていません。 市場の話題や世間の声によれば、近い将来、世界のすべてのデータはクラウドに保存されることになるといわれています。しかしこれは完全に正しいとは言えません。企業はクラウドが提供する以上のコントロールをデータに対して求めており、重要なデータ要素を自社の手