Skip to main content

Как ссылочная целостность обеспечивает согласованность базы данных

Видео курс Transact SQL. Урок 6. Целостность данных. Первичный, внешний ключ (Май 2024)

Видео курс Transact SQL. Урок 6. Целостность данных. Первичный, внешний ключ (Май 2024)
Anonim

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

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

Основной ключ

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

Однако из-за проблем с конфиденциальностью назначенный идентификационный номер компании является лучшим выбором для работы в качестве первичного ключа для сотрудников. Некоторое программное обеспечение базы данных, такое как Microsoft Access, автоматически назначает первичный ключ, но случайный ключ не имеет реального значения. Лучше использовать ключ со значением для записи.

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

Иностранный ключ

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

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

Пример правил ссылочной целостности

Рассмотрим, например, ситуацию, когда у вас есть две таблицы: «Сотрудники и менеджеры». Таблица Employees имеет атрибут внешнего ключа под названием ManagedBy, который указывает на запись для менеджера каждого сотрудника в таблице менеджеров. Ссылочная целостность обеспечивает соблюдение следующих трех правил:

  • Вы не можете добавить запись в таблицу Employees, если атрибут ManagedBy не указывает на действительную запись в таблице Managers. Ссылочная целостность предотвращает вставку неправильных деталей в таблицу. Любая операция, которая не удовлетворяет правилу ссылочной целостности, терпит неудачу.
  • Если первичный ключ для записи в таблице «Менеджеры» изменяется, все соответствующие записи в таблице «Сотрудники» изменяются с использованием каскадного обновления.
  • Если запись в таблице «Менеджеры» удалена, все соответствующие записи в таблице «Сотрудники» удаляются с помощью каскадного удаления.

Преимущества ссылочных ограничений целостности

Использование системы управления реляционными базами данных с ссылочной целостностью дает ряд преимуществ:

  • Предотвращает ввод повторяющихся данных
  • Предотвращает указание одной таблицы на несуществующее поле в другой таблице
  • Гарантирует согласованность между «партнерскими» таблицами
  • Предотвращает удаление записи, содержащей значение, указанное внешним ключом в другой таблице
  • Предотвращает добавление записи в таблицу, содержащую внешний ключ, если в связанной таблице нет первичного ключа