Понимание разницы между первичным ключом и внешним ключом в реляционных базах данных

Первичный ключ и внешний ключ — фундаментальные понятия в реляционных базах данных. Вот разница между ними:

  1. Первичный ключ:

    • Первичный ключ – это столбец или комбинация столбцов, которые уникальным образом идентифицируют каждую запись в таблице.
    • Оно должно иметь уникальное значение для каждой строки таблицы.
    • В каждой таблице может быть только один первичный ключ.
    • Первичные ключи используются для обеспечения целостности объекта и обеспечения согласованности данных.
    • Обычными примерами первичных ключей являются целые числа с автоматическим приращением или уникальные идентификаторы, такие как номера социального страхования или адреса электронной почты.
  2. Внешний ключ:

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

Методы создания первичных и внешних ключей в системе управления базами данных (СУБД) различаются в зависимости от конкретной используемой системы. Вот некоторые распространенные методы:

  1. Методы создания первичного ключа:

    • Вручную присвойте уникальное значение столбцам первичного ключа для каждой записи.
    • Используйте функцию автоматического приращения, предоставляемую СУБД, для автоматического создания уникальных значений первичного ключа.
    • Сгенерировать первичные ключи с помощью внешней системы или алгоритма и импортировать их в СУБД.
  2. Методы создания внешнего ключа:

    • Укажите ограничение внешнего ключа во время создания таблицы, указав ссылочную таблицу и столбец(и).
    • Используйте оператор ALTER TABLE, чтобы добавить ограничение внешнего ключа к существующей таблице.
    • Определите каскадные действия, такие как КАСКАДНОЕ УДАЛЕНИЕ или КАСКАДНОЕ ОБНОВЛЕНИЕ, для поддержания ссылочной целостности при возникновении изменений в ссылочной таблице.