Skip to main content

Что такое первичный ключ?

Первичный ключ - это запись в базе данных, уникальная для отдельной записи. Этот ключ обычно получается одним из двух способов: уникальный идентификационный код извне базы данных или сгенерированный номер из базы данных. Если база данных будет содержать информацию, которая всегда уникальна для записи, например, номер социального страхования или идентификационный номер детали, то они обычно используются в качестве первичного ключа. Когда у данных не будет такого идентификатора, база данных будет часто создавать числа, основанные на ее внутренних системах, чтобы дать каждой записи уникальный код.

Существует три основных ограничения первичного ключа: существование, уникальность и неизменность. Ключ должен существовать во время создания записи - его нельзя добавить позже. Каждый ключ должен полностью отличаться от любого другого ключа. Это означает, что общие идентификаторы, такие как имя или дата рождения, не могут использоваться, поскольку возможно, что два человека родились в один и тот же день с одним и тем же именем. Наконец, первичный ключ никогда не может быть изменен после создания.

Поскольку база данных потенциально может иметь бесконечное количество записей, первичный ключ также должен быть бесконечным. Чтобы в базе данных никогда не заканчивались ключи, большинство записей используют числовой код для ключа. Поскольку числа всегда могут увеличиваться, а компьютеры могут просто добавлять нули в старые записи, система никогда не исчерпает ключи. Иногда эти числа основаны на неуникальной информации, но добавляется уникальный идентификатор, чтобы убедиться, что ключ является жизнеспособным.

Базы данных будут использовать первичный ключ как способ организации данных. Поскольку ключ никогда не повторяется, эта часть информации позволит базе данных хранить каждую запись отдельно от всех остальных. Каждый фрагмент информации в записи связан с ключом; Таким образом, независимо от того, что происходит с системой, база данных может перестраивать записи на основе недостающей информации.

Назначение значимого первичного ключа часто рассматривается как более эффективная практика, чем автоматическая генерация значения. Это даст записи идентификатор, который работает как ключ и предоставляет данные. В небольших базах данных это различие редко необходимо, но в больших системах дополнительное пространство, используемое сгенерированным ключом, может привести к серьезному переполнению базы данных. Это замедлит работу системы и потребует от базы данных значительно большего пространства.