Оглавление:
- Определение - Что означает ссылочная целостность (RI)?
- Техопедия объясняет ссылочную целостность (RI)
Определение - Что означает ссылочная целостность (RI)?
Ссылочная целостность (RI) - это концепция реляционной базы данных, в которой говорится, что табличные отношения всегда должны быть согласованными. Другими словами, любое поле внешнего ключа должно соответствовать первичному ключу, на который ссылается внешний ключ. Таким образом, любые изменения поля первичного ключа должны применяться ко всем внешним ключам или не применяться вообще. То же самое ограничение также применяется к внешним ключам в том, что любые обновления (но не обязательно удаления) должны распространяться на первичный родительский ключ.
Техопедия объясняет ссылочную целостность (RI)
Рассмотрим банковскую базу данных, которая содержит две таблицы:
- Таблица CUSTOMER_MASTER: содержит основные данные о клиенте / владельце счета, такие как имя, номер социального страхования, адрес и дата рождения.
- Таблица ACCOUNTS_MASTER: Здесь хранятся основные данные банковского счета, такие как тип счета, дата создания счета, владелец счета и лимиты на снятие средств.
Чтобы уникально идентифицировать каждого клиента / владельца счета в таблице CUSTOMER_MASTER, создается столбец первичного ключа с именем CUSTOMER_ID.
Чтобы определить связь клиента и банковского счета в таблице ACCOUNTS_MASTER, необходимо сослаться на существующего клиента в таблице CUSTOMER_MASTER. Таким образом, столбец CUSTOMER_ID - также созданный в таблице ACCOUNTS_MASTER - является внешним ключом. Этот столбец особенный, потому что его значения не созданы заново. Скорее, эти значения должны ссылаться на существующие и идентичные значения в столбце первичного ключа другой таблицы, которая является столбцом CUSTOMER_ID таблицы CUSTOMER_MASTER.
Ссылочная целостность является стандартом, который означает, что любое значение CUSTOMER_ID в таблице CUSTOMER_MASTER нельзя редактировать без редактирования соответствующего значения в таблице ACCOUNTS_MASTER. Например, если идентификатор клиента Эндрю Смита изменяется в таблице CUSTOMER_MASTER, это изменение также необходимо применить к таблице ACCOUNTS_MASTER, что позволяет информации учетной записи Эндрю Смита связываться с его идентификатором клиента.
