SQL スーパーキー: 包括的な説明
SQL のスーパーキーは列のセットであり、主キーまたは一意の NOT NULL 制約として指定すると、重複行や NULL 値が防止されます。 ただし、この定義では、空のテーブルと空ではないテーブルについて微妙な考慮が必要です。
空のテーブルとスーパーキー
行のない空の SQL テーブルは、一意のプロパティを持っています。その列のすべての サブセットがスーパーキーを構成します。 これは、定義が潜在的な値に焦点を当てていることに由来しています。空のテーブルはすべての可能な値を保持できるとみなされ、任意の列の組み合わせに対してスーパーキー条件を満たします。
空でないテーブルとスーパーキー
空ではないすべての SQL テーブルには、本質的に少なくとも 1 つのスーパーキーが含まれています。 重複行と NULL 値のないテーブルは、本質的にリレーショナル モデル (RM) リレーションです。 RM 関係は、定義上、常に 1 つ以上のスーパーキーを持っています。
ギャップを埋める: SQL とリレーショナル モデル
SQL テーブルは RM リレーションの厳密なルールに完全に準拠していないことを覚えておくことが重要です。 SQL では、RM 関係とは異なり、重複と NULL が許可されます。したがって、SQL のスーパーキーの概念は、RM の概念を直接翻訳したものではなく、実用的な拡張です。
SQL スーパーキーの実際的な定義
これらの違いを考慮して、SQL スーパーキーを次のように定義できます。
主要な用語の説明
要約すると、SQL のスーパーキーの概念はリレーショナル モデルから採用されていますが、その概念を空のテーブルに適用すると独特の特性が明らかになり、SQL と正式なリレーショナル モデルの重要な違いが強調されます。
以上が空のテーブルを含むすべての SQL テーブルはスーパーキーを持っていますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。