Первичные ключи и внешние ключи поддерживают ссылочную целостность
Базы данных используют таблицы для организации содержащейся в них информации. Они похожи на электронные таблицы, такие как Excel, но гораздо более способны для опытных пользователей. Базы данных функционируют с использованием первичных ключей и внешних ключей, которые поддерживают связь между таблицами.
Ссылочная целостность – это функция базы данных в системах управления реляционными базами данных. Это гарантирует, что отношения между таблицами в базе данных остаются точными, применяя ограничения, чтобы запретить пользователям или приложениям вводить неточные данные или указывать на данные, которые не существуют.
Основной ключ
Первичный ключ таблицы базы данных – это уникальный идентификатор, назначаемый каждой записи. Каждая таблица имеет один или несколько столбцов, обозначенных как первичный ключ. Номер социального страхования может быть первичным ключом для списка сотрудников в базе данных, поскольку каждый номер социального страхования уникален.
Однако из-за проблем с конфиденциальностью назначенный идентификационный номер компании является лучшим выбором для использования в качестве первичного ключа для сотрудников. Некоторое программное обеспечение базы данных, такое как Microsoft Access, назначает первичный ключ автоматически, но случайный ключ не имеет реального значения. Лучше использовать ключ со значением для записи.
Самый простой способ обеспечить ссылочную целостность – не допустить изменения первичного ключа.
Иностранный ключ
Внешний ключ – это идентификатор в таблице, который соответствует первичному ключу другой таблицы. Внешний ключ создает связь с другой таблицей. Ссылочная целостность относится к отношениям между этими таблицами.
Когда одна таблица имеет внешний ключ к другой таблице, концепция ссылочной целостности гласит, что вы не можете добавить запись в таблицу, которая содержит внешний ключ, если в связанной таблице нет соответствующей записи. Он также включает методы, известные как каскадное обновление и каскадное удаление, которые гарантируют, что изменения, внесенные в связанную таблицу, будут отражены в первичной таблице.
Пример правил ссылочной целостности
Рассмотрим, например, ситуацию, когда у вас есть две таблицы: сотрудники и менеджеры. Таблица «Сотрудники» имеет атрибут внешнего ключа «ManagedBy», который указывает на запись для менеджера каждого сотрудника в таблице «Менеджеры». Ссылочная целостность обеспечивает соблюдение следующих трех правил:
- Вы не можете добавить запись в таблицу «Сотрудники», если атрибут ManagedBy не указывает на допустимую запись в таблице «Менеджеры». Ссылочная целостность предотвращает вставку неверных данных в таблицу. Любая операция, которая не удовлетворяет правилу ссылочной целостности, завершается неудачей.
- Если первичный ключ для записи в таблице «Менеджеры» изменяется, все соответствующие записи в таблице «Сотрудники» изменяются с помощью каскадного обновления.
- Если запись в таблице «Менеджеры» удаляется, все соответствующие записи в таблице «Сотрудники» удаляются с помощью каскадного удаления.
Преимущества ограничений ссылочной целостности
Использование системы управления реляционными базами данных со ссылочной целостностью дает несколько преимуществ:
- Предотвращает ввод дублирующих данных
- Запрещает одной таблице указывать на несуществующее поле в другой таблице
- Гарантирует согласованность между «партнерскими» таблицами
- Предотвращает удаление записи, содержащей значение, на которое ссылается внешний ключ в другой таблице
- Предотвращает добавление записи в таблицу, которая содержит внешний ключ, если в связанной таблице нет первичного ключа