Теоретические основы баз данных. |
Возможным (потенциальным) ключом отношения называется набор атрибутов, однозначно определяющий кортеж отношения, причём при удалении любого атрибута из этого набора его свойство однозначной идентификации кортежа теряется. Потенциальный ключ должен иметь следующие свойства: - уникальность (на практике – обязательное условие); - неизбыточность (на практике – может быть нарушено); В общем случае в отношении может быть несколько возможных ключей. Среди всех возможных ключей отношения обычно выбирают один, который считается главным, и который называют первичным ключом отношения . Неключевым атрибутом называется любой атрибут отношения, не входящий в состав ни одного возможного ключа. Атрибут, не входящий в состав первичного ключа, назовём непервичным . Различные объекты предметной области, информация о которых хранится в базе данных, всегда взаимосвязаны друг с другом. Например, накладная на поставку товара содержит список товаров с количествами и ценами, сотрудник предприятия имеет детей, числится в подразделении и т.д. Термины "содержит", "имеет", "числится" отражают взаимосвязи между понятиями. Такие взаимосвязи отражаются в реляционных базах данных при помощи внешних ключей ( foreign key ) , связывающих несколько отношений. Пусть дано отношение R . Подмножество атрибутов А отношения R будем называть внешним ключом , если:
Отношение S называется родительским отношением , отношение R называется дочерним отношением . Под целостностью реляционной базы данных будем понимать соответствие информационной модели предметной области, хранимой в базе данных, объектам реального мира и их взаимосвязям в каждый момент времени.
- кортежи подчинённого отношения уничтожаются при удалении кортежа основного отношения, связанного с ними. - кортежи основного отношения модифицируются при удалении кортежа основного отношения, связанного с ними, при этом на месте ключа родительского отношения ставится значение NULL . Для внешнего ключа характерны следующие свойства: - Каждое значение атрибута внешнего ключа должно являться значением соответствующего потенциального ключа. Причём обратное необязательно. - Количество атрибутов внешнего ключа должно соответствовать количеству атрибутов потенциального ключа. Если внешний ключ – составной, то и потенциальный – составной. - Для внешнего ключа не требуется, чтобы он был компонентом первичного ключа или вообще какого-либо потенциального ключа в отношении, к которому он принадлежит. - Каждый атрибут, входящий в данный внешний ключ, должен быть пределен на том же домене, что и соответствующий атрибут потенциального ключа. - Для атрибутов внешнего ключа разрешается иметь значение NULL . В общем случае запрещение реальной СУБД при проверке условия ссылочной целостности изменять или удалять значения первичного ключа называется ограничением ( restrict ). Отображение изменений или удалений значений первичного ключа на соответствующих значениях внешнего ключа называется каскадированием ( cascading ). |