主キーのないテーブルは正規化されていますか?


9

講義では、講師が主キーのないテーブルを見せてくれました。質問したところ、彼は3NFで推移的な依存関係を削除するときに、主キーのないテーブルがあっても問題ないと述べました。

ただし、主キーがないということは、機能上の依存関係がないことを意味しますが、3NFは推移的な依存関係の削除であり、すべての機能上の依存関係のため、各テーブルには正規化のための主キーが必要であると教えられました。

主キーなしでテーブルを作成することは完全に可能ですが、そのテーブルが存在する場合、そのデータベースは正規化されていると見なされますか?

追加する必要があります。テーブルには「一意のキー」、プライマリ、コンポジット、外部はありません。

表示されているテーブルには3つの属性があり、どれもプライマリまたは一意としてラベル付けされていません。私はそれが間違いかどうか尋ねました、そして彼はそれがなくても大丈夫だと言いました。この表の情報を一意に特定できないため、私はその発言に疑問を投げかけ、彼はこのようにしてよいと主張しました。これは私が正規化について教えられたことに反しています。

回答:


15

関係は持っていない場合は任意の候補キー(主キーがちょうど候補キーの一つである)、それはそう実際には関係ないが、重複行を持つことができます!(関係は常にセットであるため)。

その場合は、質問で行ったように、リレーションではなくテーブルと呼ぶ方がより正確です。実際には、いくつかのRDBMSが非リレーションを管理できるため、この場合でも一意性の制約なしにテーブルを使用できます。非常にまれであり、データの操作時に問題(異常)が発生します。

しかし、この場合、正規形について話すことは適切ではありません。正規化理論はすべて、対象のオブジェクトがマルチセットではなく関係であるという基本的な仮定に基づいています。実際、この理論は、データベースのすべての関係が、すべての関係のすべての属性を含む、そのような関係の投影のサブセットであると想定する(やや議論された)普遍的関係の仮定に基づいています。そして、そのオブジェクトは実際にはリレーション(つまり、セット)であり、マルチセットではありません。

Relational Data Modelのデータについて話すときに、2つの用語、テーブルとリレーションを交換することがありますが、それらが実際に同義であることを意味するわけではなく、正規化理論について話すとき、この違いは根本的なものです。本では、いくつかの通常の形が導入されているとき、それは常に次のように言われていることに注意してください

次の場合、関係はxxx正規形になります...


count要素に追加の属性を追加するセットにマルチセット同型ではありませんか?
Barmar

3
@Barmarはい。ただし、候補キーと関連するすべての機能依存関係を追加するので、正規化理論の観点からは完全に異なるケースになります。
Renzo

1
人々が非リレーショナル表でリレーショナル操作を実行するとき、彼らはリレーショナル結果を期待しています。彼らがそれらを得ないとき、これらは異常に見えます。
Walter Mitty

0

3NFは、データ正規化の最初の3つのルールに準拠したテーブルを指します。

  1. 繰り返しグループの排除
  2. 冗長データの排除
  3. キーに依存しない列の削除

3番目のルールにはキーが必要です。そうです、講師のテーブルは3NFではありませんでした。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.