В таблице базы данных, каково максимальное количество первичных ключей?В таблице базы данных, каково максимальное количество первичных ключей?
ответ
У вас может быть только один. Он должен находиться в одном или нескольких столбцах, которые не могут принимать NUL, а столбец (или комбинация столбцов) должен быть уникальным.
У вас могут быть другие уникальные индексы из одного или нескольких столбцов, но они не могут быть обозначены PK. (Но их поведение будет таким же, как если бы они были, так что просто семантика говорит, что у вас может быть только одна.)
У вас есть только один первичный ключ (или, возможно, нет, хотя это делает разные вещи сложными), но ключ может состоит из более чем одной колонки.
Лично я обнаружил, что составные первичные ключи (те, у которых более одного столбца) были болью, когда я их использовал, но это может быть связано с моей некомпетентностью. Тем не менее, в некоторых случаях логический смысл заключался в использовании составного ключа, и я, вероятно, не изменил бы дизайн. (Я думаю, что это скорее случай, когда Hibernate немного сложнее использовать с составными ключами в то время.)
У вас может быть только 1 первичный ключ в макс, но он может быть составным (с несколькими столбцами в этом ключе)
Первичный ключ всегда один для стола. Первичным может быть одиночный столбец или комбинация нескольких столбцов, которая представляет каждую строку однозначно.
Ну, если вы спрашиваете, что максимальное число столбцов, которые могут слагающих первичный ключ для SQL Server это 16.
В теории баз данных наиболее критическими ограничениями для таблицы называются ключи-кандидаты. Значения в столбце (столбцах) ключа-кандидата однозначно определяют значения, хранящиеся в других столбцах в строке таблицы, то есть функциональную зависимость и ключевой аспект теории нормализации. (Строго, зависимостей соединения являются ключевыми, а функциональная зависимость - особый случай зависимости объединения.) Таблица может иметь несколько ключей-кандидатов. Из этих ключей-кандидатов максимум можно обозначить как «первичный ключ»; другие становятся «альтернативными» ключами (но не почему-то «вторичными ключами», хотя они кажутся им очевидным).
Моя любимая иллюстрация несколько ключей-кандидатов является «» от химии и физики (а также тот факт, что она называется «стол» приятно):
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 возможных ключей - атомный номер, символ и имя (и эмпирически вы могли бы использовать атомный вес как четвертый, но он не уникален тем же способом, что и остальные три). Любой из них может быть обозначен как первичный ключ, но обычно используется либо атомный номер, либо символ. Какой из них предпочтительнее, во многом зависит от того, имеете ли вы дело с химией (в этом случае символ является победителем) или (суб) ядерной физикой, и в этом случае атомный номер, вероятно, более важен. Ваши вторичные таблицы, такие как таблица isotopes, перекрестно ссылаются на атомный номер; ваши вторичные таблицы, относящиеся к химическим соединениям, скорее всего перекрестно ссылаются на символ. (Кстати, знаете ли вы, что «еще неизолированные» элементы с атомными номерами за пределами 100 имеют 3-символьные сокращения?)
Я думаю, что Маджена, возможно, действительно хотела узнать, сколько строк может иметь таблица, которая использует автоматически увеличивающий первичный ключ ... и если да, это зависит от используемой СУБД и того, как вы создали table (какие данные имеют первичный ключ), поэтому вы должны быть более подробными в своих объяснениях.
Таблица может содержать только один Основной ключ.
Количество строк/записей, которые может удерживать таблица, зависит от количества столбцов, которые охватывают ваш ПК, и типа данных, выбранного для этих столбцов. Кроме того, СУБД, которые вы используете, поскольку СУБД определяет, насколько велик тип данных.
Например, таблица SQL Server с одним целым столбцом в качестве первичного ключа может содержать 4 294 967 295 записей (значения PK от -2147,483,648 до 2,147,483,647).
Реляционные базы данных представляют собой программные выражения 12 правил для Эдгара Кодда для реляционной модели, набор из 13 правил, которые математически гарантируют целостность, согласованность и атомарность, поэтому объект с более чем одним первичный ключ не является таблицей базы данных, поскольку он нарушает правило codd.