С.Д. Кузнецов - Основы баз данных (1121716), страница 52
Текст из файла (страница 52)
Если в определении ограничения внешнего ключа присутствует спецификация МАТОМ РАНТ?АР, то для данной строки г таблицы т строкой таблицы е, ссылающейся на строку г, называется каждая строка таблицы е, отличные от нцьь значения столбцов внешнею ключа которой совпадают со значениями соответствующих столбцов соответствующего возможного ключа строки г. В случае мйтсн РАет?АЕ строка таблицы Б называется ссылающейся исключительно на строку г таблицы т, если зта строка таблицы Я является ссылающейся на строку г и не является ссылающейся на какую-либо другую строку таблицы т." Теперь приступим к ссылочным действиям. Пусть определение ограничения внешнего ключа содержит раздел ОН РЕРЕТЕ ге1егепг?а? асьггоп.
Предположим, что предпринимается попытка уладить строку г из таблицы Т. Тогда: ° если в качестве требуемого ссылочного действия указано МО АСт10Н или РЕЕТЕ?СТ, то операция удаления отвергается, если ее выполнение вызвало бы нарушение ограничения внешнего ключа; ° если в качестве требуемого ссылочного действии указано САНСАРЕ, то строка г удаляется, и если в определении ограничения внешнего ключа отсутствует раздел мАТСН или присутствуют спецификации мАтСН " Если определяется внешний ключ, состоящий из одного столбца, то явное указание спецификации МАТСН любой разновидности становится бессмысленным, поскольку в этом случае МАТСН ЯМР?.Е, МАТСН РАйт?А?.
и МАТСН РОЫ. ведут себя одинаково. "" Из приведенных ранее объяснений действия ограничения внешнего ключа при наличии в определении внешнего ключа раздела Илтен Глат?ХЬ ясно следует, что в этом случае одна строка таблицы 3 может являться ссылающейся на несколько разных сглрек таблицы т.
242 Лекция 12 Средства определения базовых таблиц и ограничений целостности етии.е или млтсн епл,, то удаляются все строки, ссылающиеся на с. Если же в определении ограничения внешнего ключа присутствует спецификация млтсн ЕАеттль, то удаляются только те строки, которые ссылаются исключительно на строку г; ° если в качестве требуемого ссылочного действия указано БЕт СЕЕАСЬт, то строка г удаляется, и во всех столбцах, которые входят в состав внешнего ключа, всех строк, ссылающихся на строку с, проставляется заданное при их определении значение по умолчанию. Если в определении внешнего ключа содержится спецификация иАтСн ЕАЕтГАЬ, то подобному воздействию подвергаются только те строки таблицы е, которые ссылаются исключительно на строку г; е если в качестве требуемого ссылочного действия указано еет гплл,, то строка г удаляется, и во всех столбцах, которые входят в состав внешнего ключа„всех строк, ссылающихся на строку г, проставляется млл..
Если в определении внешнего ключа содержится спецификация илтсн РАет? Аь, то подобному воздействию подвергаются только те строки таблицы я, которые ссылаются исключительно на строку г. Пусть определение ограничения внешнего ключа содержит раздел Сн ЦРПАтЕ гейегепста1 асс)оп. Предположим, что предпринимается попытка обновить столбцы соответствующего возможного ключа в строке г из таблицы т. Тогда: ° если в качестве требуемого ссылочного действия указано но Асттон или ЕЕЕтлтет, то операция обновления отвергается, если ее выполнение вызвало бы нарушение ограничения внешнего ключа; ° если в качестве требуемого ссылочного действия указано САесАсе, то строка г обновляется, и если в определении ограничения внешнего ключа отсутствует раздел илтСН иЛи присУгствуют спецификации ИАтСН ЕГМЕЬЕ или МАтСН ЕиЬЬ, то соответствующим образом обновляются все строки, ссылающиеся на г (в них должным образом изменяются значения столбцов, входящих в состав внешнего ключа).
Если же в определении ограничения внешнего ключа присутствует спецификация млтсн ЕАеттАЕ, то обновляются только те строки, которые ссылаются исключительно на строку г; ° если в качестве требуемого ссылочного действия указано ЯЕТ ЭЕЕАБЬТ, то строка г обновляется, и во всех столбцах, которые входят в состав внешнего ключа и соответствуют изменяемым столбцам таблицы т, всех строк, ссылающихся на строку г, проставляется заданное при их определении значение по умолчанию. Если в определении внешнего ключа содержится спецификация МАтсн ЕАеттАЕ, то подобному воздействию подвергаются только те строки таблицы Е, которые ссылаются исключительно на строку г, причем в них изменяются значения только тех столбцов, которые не содержали 1лл.ь; Основы баз данных Курс ° если в качестве требуемого ссылочного действия указано ЯЕт ХРРР, то строка с обновляется, и во всех столбцах, которые входят в состав внешнего ключа и соответствуют изменяемым столбцам таблицы т, всех строк, ссылающихся на строку с, проставляется ХР =.
Если в определении внешнего ключа содержится спецификация МАтСН РАНт1АР, то подобному воздействию подвергаются только те строки таблицы Я, которые ссылаются исключительно на строку с.* Примеры определений базовых таблиц Определим таблицы служаших (емо), отделов (Ре.т) и проектов (РНО). Зги таблицы имеют заголовки, показанные на рис. 12.1.
Столбцы емр хо, ВМР яА-, Рерт хо, Рно хо, Рерт тотА. яА, РЕРт ММО и РНО МХО определяются на ранее определенных доменах (опре- ДеЛеНиЯ Доменов ЕМР ХО и БАРАНУ ПриВедеНЫ В ПреДыдущей лекцИи). Первичными ключами отношений ЕМР, РЕРт и проектов РНО являются столбцы ЕМР ХО, РЕРт ХО и РВО ХО соответственно. В таблице ЕМо столб- цы РВРТ хо и РНО хо являются внешними ключами, указывающими на отдел, в котором работает служащий, и на выполняемый им проект соот- ветственно.
В таблице Рерт внешним ключом является столбец Рерт хо, указывающий на служащего, являющегося руководителем соответствую- щего отдела, а в таблице РРО внешним ключом является столбец РВО МХО, указываюший на служащего, являющегося менеджером соответствуюше- го проекта. Другие ограничения целостности мы обсудим позже. Определим таблицу емр: (1) СНЕАТЕ ТАВОТЕ ЕМР (2) ЕМР ХО ЕМР ХО РН1МАНУ КЕч (3) ЕМР МАМЕ ЧАНСНАН(20) РЕРАРЕТ '1псоапяго' ХОТ ХРР (4) ЕМР ВРАТЕ РАТЕ РЕНАР Т Хсоь СНЕСК (ЧА"ЛЕ >= РАТЕ '1917-10-24'), (5) ЕМР ЯА' ЯА'АНУ, (б) РЕРТ ХО РЕРТ ХО РЕРАРРТ ХРРР НЕРЕНЕХСЕЯ РЕРТ ОХ РЕ ЕТЕ ЯЕТ %Л Р, (7) РНО ХО РНО ХО РЕРАРРТ ХР 1, (8) РОНЕ16Х КЕУ РНО ХО РЕРЕНЕХСЕЯ РНО (РРО ХО) ОХ РЕ1 ЕТЕ ЯЕТ Ср)'1., (9) сохятВА1хт Рно емр хо снеск ((БЕ ЕСТ СОРХТ (*) РВОМ ЕМР Е ХНЕНЕ Е.РНО ХО = РРО ХО) <= 50)); Последовательно обсудим части этого определения.
В части (1) указывается, что создается таблица с именем емр. В части (2) определяется " Как можно видеть из приведенных объяснений, ссылочные действия служат тому, чтобы автоматически поддерживать ссылочную целостность при обновлениях таблиц, к строкам которых ведут ссылки. Довольно часто ссылочные действия, являющиеся частью определения внешнего ключа, называют декларатианмни триггерами. Лекция 12 Средства оп еделения базовых таблиц и ограничений целостности ЕМР: ОЕРТ: РКО: Рис. 12.1.
Заголовки таблиц ЕМР, ОЕРТ и РЕО столбец емР НО на домене ЕМР ИО. У этого столбца не определено значение по умолчанию, и он объявлен первичным ключом таблицы (это ограничение целостности добавляется через лип к ограничениям, унаследованным столбцом от определения домена). Помимо прочего, это означает неявное указание запрета для данного столбца неопределенных значений. В части (3) определен столбец емР нлме на базовом типе данных символьных строк переменной длины с максимальной длиной 20. Для столбца указано значение по умолчанию — строка ' Расоцп(го', и в качестве ограничения целостности запрещены неопределенные значения. В части (4) определяется столбец емР вцлте (дата рождения служащего). Он имеет тип данных ОЛТЕ, значением по умолчанию является НОЕЬ (даты рождения некоторых 245 Курс Основы баа данных служащих неизвестны).
Кроме того, ограничение столбца запрешает при- нимать на работу лиц, о которых известно, что они родились до Октябрь- ского переворота. В части (5) определен столбец ЕМР ЯАЬ на домене ЯА( АВУ. Значение по умолчанию и ограничения целостности наследуются из определения домена. В части (6) столбец Рерт мо определяется на од- ноименном домене (для наших целей его определение несушественно), но явно объявляется, что значением по умолчанию зтого столбца будет НРьь (некоторые служащие не приписаны ни к какому отделу). Кроме того, до- бавляется ограничение внешнего ключа: столбец РЕРТ МО ссылается на первичный ключ таблицы РЕРТ.
Определено ссылочное действие: при уда- лении строки из таблицы РЕЕТ во всех строках таблицы ЕМР, ссылавшихся на эту строку, столбцу РЕРТ МО должно быть присвоено неопределенное значение. В части (7) определяется столбец РВО НО. Его определение ана- логично определению столбца РЕЕТ ИО, но ограничение внешнего ключа вынесено в часть (8), где оно определяется в полной форме как табличное ограничение. Наконец, в части (9) определяется табличное проверочное ограничение с именем РВО ЕМР МО, которое требует, чтобы ни в одном проекте не участвовало больше 50 служащих (правила построения соот- ветствуюгиего условного выражения поясняются в следующих лекциях). Определим таблицу РЕРТт (1) СВЕАТЕ ТАВЬЕ РЕРТ (2) Рерт НО Рерт МО РВТНАВЧ кеу, (3) РЕРТ ЕМР ИО 1(хТЕОЕВ МО КРЬЬ СНЕСК (ЧАЬРЕ ВЕТХЕЕИ ' АНР 100), (4) РЕРТ МАМЕ ЧАВСНАВ(200) РЕЕАЗЬТ 'Маьпе1езз' НОТ НОЬЬ, (5) Рерт тОтАь ЯАь ЯАьАВУ РеРАРьт 1000000.00 ИО .'~ЬЬ СНЕСК (ЧАЬРЕ > = 100000.00), (6) Рерт ммО емР МО РеРАОьт ВОьь ВЕРЕВЕИСЕЯ ЕМР ОМ РЕЬЕТЕ ЯЕТ МОЬЬ СНЕСК (1Р (ЧАЬРЕ 1Я НОТ НРЬЬ) ТНЕМ ((ЯЕЬЕСТ СОБМТ(*) РВОМ РЕРТ У(НЕВЕ РЕРТ.РЕЕТ >0(О = ЧАЕТЕ) = 1), (7) СНЕСК (РЕРТ ЕМР МО (ЯЕЬЕСТ СООМТ(*) РВОМ ЕМР ГНЕВЕ РЕРТ ИО = ЕМР.РЕРТ ИО)), (8) СНЕСК (РЕРТ ТОТАЬ ЯАЬ >= (ЯЕЬЕСТ ЯОМ(ЕМР ЯАЬ) РВОМ ЕМР У)НЕВЕ РЕРТ ИО = ЕМР.РЕРТ ИО))); Это определение мы обсудим в менее систематической манере, чем предыдущее.