0

データベース テーブルの主キーの最大数はいくつですか?

4

9 に答える 9

7

主キーは 1 つしかありません (または、さまざまなことを難しくしますが、まったくない可能性があります) が、キーは複数の列で構成できます。

個人的には、複合主キー (複数の列を持つもの) を使用したときに苦労したことがわかりましたが、それは私の無能さが原因である可能性があります。それでも、場合によっては、複合キーを使用することが理にかなっており、おそらく設計を変更しなかったでしょう。(当時、Hibernate が複合キーを使用するのが少しトリッキーだった場合の方が多いと思います。)

于 2009-02-09T06:20:16.167 に答える
6

データベース理論では、テーブルに対する最も重要な制約は候補キーと呼ばれます。候補キーの列の値は、テーブルの行の他の列に格納されている値を一意に決定します。これは、関数従属性であり、正規化理論の重要な側面です。(厳密には、結合依存性が重要なものです。機能依存性は、結合依存性の特殊なケースです。)テーブルには複数の候補キーが含まれる場合があります。これらの候補キーのうち、多くても1つを「主キー」として指定できます。他のものは「代替」キーになります(ただし、それらの明白な名前のように見えますが、何らかの理由で「二次キー」ではありません)。

複数の候補キーの私のお気に入りの図は、化学と物理学の「元素の表」です(そしてそれが「表」と呼ばれるという事実は素晴らしいです):

CREATE TABLE elements
(
    atomic_number   INTEGER NOT NULL UNIQUE
                    CHECK (atomic_number > 0 AND atomic_number < 120),
    symbol          CHAR(3) NOT NULL UNIQUE,
    name            CHAR(20) NOT NULL UNIQUE,
    atomic_weight   DECIMAL(8,4) NOT NULL,
    stable          CHAR(1) DEFAULT 'Y' NOT NULL
                    CHECK (stable IN ('Y', 'N'))
);

原子番号、記号、名前の3つの候補キーがあります(経験的には、原子量を4番目として使用できますが、他の3つと同じように一意ではありません)。それらのいずれかを主キーとして指定できますが、通常は原子番号または記号のいずれかが使用されます。どちらが好ましいかは、化学(この場合、記号は手に負えない勝者)を扱っているか、(サブ)原子核物理学を扱っているかによって大きく異なります。この場合、原子番号の方がおそらく重要です。核図表のような二次テーブル原子番号を相互参照します。化合物に関連する二次表は、記号を相互参照する可能性が高くなります。(ちなみに、原子番号が100を超える「まだ分離されていない」要素には3文字の略語があることをご存知ですか?)

于 2009-02-09T07:15:33.850 に答える
5

主キーを構成できるの最大数を尋ねている場合、SQL Server の場合は 16 です。

参照: SQL Server の最大容量の仕様

于 2009-02-09T06:21:47.160 に答える
1

Madheenaは、自動インクリメントの主キーを使用するテーブルの行数を実際に知りたいと思っていたと思います。その場合は、使用しているDBMSとテーブルの作成方法(データ型)によって異なります。主キーは)であるため、説明でより詳細に説明する必要があります。

于 2009-02-09T07:23:14.347 に答える
1

存在できる主キーは 1 つだけです。リレーショナル データベースは、リレーショナル モデルに関する Edgar Codd の 12 の規則のソフトウェア表現であり、完全性、一貫性、および原子性を数学的に保証する 13 の規則のセットであるため、複数の主キーを持つオブジェクトは存在しません。 codd の規則に違反しているため、データベース テーブル。

于 2015-02-23T18:08:47.243 に答える
1

1つだけ持つことができます。NUL を受け入れることができない 1 つ以上の列にある必要があり、列 (または列の組み合わせ) は一意である必要があります。

1 つ以上の列の他の一意のインデックスを持つことはできますが、PK を指定することはできません。(しかし、それらの動作はあたかもそうであったかのように同じであるため、1 つしか持てないと言うのはセマンティクスに過ぎません。)

于 2009-02-09T06:19:00.553 に答える
0

最大で 1 つの主キーのみを持つことができますが、複合することができます (そのキーに複数の列を持つ)

于 2009-02-09T06:20:20.923 に答える
0

テーブルの主キーは常に 1 つです。プライマリは、各行を一意に表す単一の列または複数の列の組み合わせにすることができます。

于 2009-02-09T06:20:48.113 に答える