Язык SQL

Спецификация ограничений ключей и внешних ключей


Кроме имени и типа, атрибуты имеют и некоторые другие характеристики. В этом сайтеи сайте7.3.3 представлены некоторые характеристики, которые также можно декларировать в языке SQL. В главе 4 было показано, что некоторые атрибуты представляют первичные и вторичные ключи отношений. Другие атрибуты представляют внешние ключи — связи с другими отношениями. Эти ключевые характеристики налагают ограничения на кортежи, которые могут участвовать в связях. На 7.11 показаны три оператора создания таблицы, декларирующие ограничения ключа и внешнего ключа.

SQL-фраза primary key декларирует атрибут или множество атрибутов в качестве первичного ключа связи. Ключ, состоящий из одного атрибута может декларироваться путем добавления фразы primary key к декларации атрибута, как это сделано при декларации таблиц store (строка 2) и Movie (строка 10). Ключ, состоящий из нескольких атрибутов, должен декларироваться отдельным предложением, как при создании таблицы Rental (строка 22). Такие же предложения могут использоваться для декларации единственного атрибута в качестве первичного ключа.

Вторичные ключи декларируются путем включения ограничения unique для атрибута или множества атрибутов. Атрибут title в таблице Movie (строка 11) является вторичным ключом, что отмечено наложением ограничения unique.

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

Ограничения на внешние ключи определяются предложением references, две формы которого представлены на 7.11. Атрибут manager таблицы store (строка 7) является внешним ключом, который ссылается на первичный ключ таблицы Employee. Ограничения на атрибуты accountld и videold таблицы Rental (строки 23 и 24) являются обшей формой предложения references. Атрибуты, являющиеся внешними ключами, перечисляются в первой паре скобок, а первичные ключи таблицы, на которую они ссылаются перечисляются во вторых скобках. В этой форме внешние ключи могут состоять из нескольких атрибутов и ссылаться на атрибуты, не являющиеся первичным ключом таблицы, на которую ссылаются.

Ограничения на внешние ключи также налагаются и поддерживаются реляционными системами баз данных автоматически.

Комментарии закрыты