Office
 Computer >> コンピューター >  >> ソフトウェア >> Office

ボイス・コッド正規形(BCNF)とは?データベース正規化の基礎をわかりやすく解説

ボイス・コッド正規形(Boyce-Codd Normal Form:BCNF)の目的は、リレーショナルデータベースの列やテーブルを整理してデータベースの正規化を実現し、データ整合性を高めることです。テーブル間に関係性が確立され、データベースをより柔軟にし、データを保護するためのルールが明確に定義されているとき、データベースは正規化された状態にあるといえます。

データベース正規化の目標は、重複データの排除データ間の依存関係が意味を持つことの保証です。同じデータが複数のテーブルに保存されておらず、関連するデータのみが1つのテーブルに格納されている状態が、正規化されたデータベースの理想形です。

ボイス・コッド正規形の由来

一連のガイドラインに従うことで、データベースは正規化されます。これらのガイドラインは「正規形」と呼ばれ、第1から第5まで番号が付けられています。リレーショナルデータベースが第1正規形(1NF)、第2正規形(2NF)、第3正規形(3NF)という最初の3段階を満たしている場合、そのデータベースは「正規化されている」と表現されます。

BCNFは1974年、レイモンド・ボイス(Raymond Boyce)とエドガー・コッド(Edgar F. Codd)によって、第3正規形(3NF)の拡張として考案されました。両者は、冗長性を最小限に抑えて計算時間を短縮することを目指したデータベーススキーマの設計に取り組んでいました。

第3正規形では、第1・第2正規形の条件を満たすことに加え、主キーに依存しない列を取り除きます。BCNFは「3.5NF」と呼ばれることもあり、3NFのすべての要件を満たすとともに、候補キーがテーブル内の他の属性に依存してはならないというより厳しい条件を課します。

BCNFの考案当時、ボイスはStructured English Query Language(後の標準言語SQL)の主要開発者の一人でした。SQLは、コッドの提唱したリレーショナルモデルを活用してデータ検索を大幅に改善しました。このモデルにおいてコッドは、データベースの構造的な複雑さを軽減すれば、クエリがより強力かつ柔軟になると主張しました。

コッドはこうしたリレーショナルデータベースに関する深い洞察をもとに、1NF、2NF、3NFのガイドラインを定義しました。そして、その後継者であるボイスと協力してBCNFを確立したのです。

候補キーとBCNFの関係

候補キー」とは、テーブル内の単独の列、または複数の列の組み合わせによって構成される、データベース内で一意のキーのことです。候補キーの属性の組み合わせにより、他のデータを参照することなく個々のレコードを識別できます。1つのテーブルには複数の候補キーが存在しうるほか、そのいずれかが主キーとして採用されます。ただし、主キーとして設定できるのは1つだけです。

候補キーには以下のような要件があります。

  • 値が一意であること(重複がないこと)
  • NULL(空の値)を許容しないこと

すべての決定子が候補キーであるとき、そのリレーションはBCNFを満たします。ここで、従業員情報を管理するデータベーステーブルを例に考えてみましょう。このテーブルは、<Employee_Id>、<First_name>、<Last_name>、<Title> という属性を持っています。

このテーブルでは、<Employee_Id> フィールドが first_name と last_name を決定します。同様に、タプル(<First_name>, <Last_name>)は <Employee_Id> を決定します。

Employee IdFirst nameLast nameTitle
13133EmilySmithManager
13134JimSmithAssociate
13135EmilyJonesAssociate

このデータベースにおける候補キーは <Employee_Id> です。従業員IDは各行で固有の値であり、他の行と重複することがない唯一の項目だからです。

よくある質問(FAQ)

ボイス・コッド正規形の要件は何ですか?

テーブルがボイス・コッド正規形(BCNF)の要件を満たすのは、すべての決定子が候補キーであり、かつリレーションが第3正規形(3NF)にある場合です。3NFは第1正規形(1NF)および第2正規形(2NF)のルールを満たし、さらにすべての列が主キーに依存している必要があります。

第4正規形とボイス・コッド正規形の違いは何ですか?

第4正規形(4NF)は、データベース正規化の段階においてBCNFより一段階上位のレベルです。4NFもBCNFと同様に3NFの要件を満たします。ただし、4NFのテーブルには多値依存関係が一切存在しないのに対し、BCNFのテーブルにはこうした依存関係が残っている可能性がある点が異なります。

  1. 第一正規形(1NF)とは?データベース正規化の基礎を徹底解説

    1NF(第一正規形)とは 1NF(First Normal Form:第一正規形)は、DBMSにおける正規化の最初のステップであり、非正規化されたテーブルを正規化するために適用されます。非正規化テーブルには以下のような問題があり、理想的なデータベース設計を実現するためには、これらの問題を回避する必要があります。 非正規化テーブルの問題点 データの冗長性 同じデータ項目を複数回格納することを「データの冗長性」と呼びます。 具体例を見てみましょう。 <Employee>テーブルに、従業員の現住所を保存するフィールドがあるとします。一部の従業員は会社から住居を提供されているため、同じ

  2. データベーステーブルを正規化する方法【第一正規形から第五正規形まで解説】

    データベースの正規化とは、データの重複(冗長性)を取り除き、更新・挿入・削除の際に発生する異常(アノマリー)を防ぐための設計手法です。正規化を適切に行うことで、データベース管理者が理想的とする整合性の高いデータベース設計を実現できます。データベーステーブルを正規化するには、以下に示す各正規形の役割と用途を理解した上で、段階的に設計を進めることが重要です。第一正規形(1NF)第一正規形は、データの重複や異常の問題を解消するための基本となる段階です。1NFを満たすためには、すべての属性が原子値(それ以上分割できない値)のドメインを持つ必要があります。つまり、1つのセルに複数の値を格納せず、繰り返し