Skip to main content

Сила внешних ключей в реляционных базах данных

18 Первичный ключ в Access (Июнь 2026)

18 Первичный ключ в Access (Июнь 2026)
Anonim

Разработчики баз данных широко используют ключи при разработке реляционных баз данных. Среди наиболее распространенных из этих ключей - первичные ключи и внешние ключи. Внешний ключ базы данных - это поле в реляционной таблице, которое соответствует столбцу первичного ключа другой таблицы. Чтобы понять, как работает внешний ключ, давайте подробнее рассмотрим идею реляционной базы данных.

Некоторые основы реляционных баз данных

В реляционной базе данных данные хранятся в таблицах, содержащих строки и столбцы, что позволяет легко искать и манипулировать. Существует некоторая серьезная математика, лежащая в основе концепции реляционной базы данных (реляционная алгебра, предложенная E.F.

Codd в IBM в 1970 году), но это не тема этой статьи.

Для практических целей (и не математиков) реляционная база данных хранит связанные данные в строках и столбцах. Далее - и здесь, где это становится интересным, большинство баз данных разработаны таким образом, что данные в одной таблице могут обращаться к данным в другой таблице. Эта способность создавать отношения между таблицами - это реальная сила реляционной базы данных.

Использование внешних ключей

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

Чтобы использовать общепринятую базу данных Northwinds, вот выдержка из таблицы Product:

Выписка из таблицы продуктов базы Northwind
Код товараНаименование товараCategoryIDQuantityPerUЦена за единицу
1Chai110 коробок x 20 мешков18.00
2Чанг124 - 12 унций бутылок19.00
3Анисовый сироп212 - 550 мл бутылок10.00
4Шеф-повар Антона Cajun Seasoning248 - 6 унций банок22.00
5Шеф-повар Антона Гумбо Микс236 коробок21.35
6Распространение Boysenberry бабушки212 - 8 унций банок25.00
7Органические сушеные груши дяди Боба712 - 1 фунт pkgs.30.00

Код товара column - это первичный ключ этой таблицы. Он присваивает каждому идентификатору уникальный идентификатор.

В этой таблице также содержится столбец внешнего ключа, CategoryID, Каждый продукт в таблице Product ссылается на запись в таблице категорий, которая определяет категорию продукта.

Обратите внимание на эту выдержку из таблицы категорий базы данных:

Таблицы категорий базы данных Northwind Excerpt
CategoryIDCategoryNameОписание
1напиткиБезалкогольные напитки, кофе, чай, пиво и эль
2ПриправыСладкие и вкусные соусы, смазки, спреды и приправы
3Кондитерские изделияДесерты, конфеты и сладости
5молочные продуктыБрынза

Колонка CategoryID это первичный ключ этого столбца. (У него нет внешнего ключа, потому что ему не нужно обращаться к другой таблице.) Каждый внешний ключ в таблице Product ссылается на первичный ключ в таблице «Категории». Например, продукту Chai присваивается категория «Напитки», в то время как анисовый сироп относится к категории «Приправы».

Такая привязка создает множество способов использования и повторного использования данных в реляционной базе данных.