С.Д. Кузнецов - Основы баз данных (1121716), страница 81
Текст из файла (страница 81)
В частности, значением столбца енР ЯАЬ будет 10000.00. Тем самым, если подобная операция вставки действительно допустима, то мы вставили в виртуальную таблицу ЕТСН ЕНР строку, которую в этой виртуальной таблице увидеть невозможно. Чтобы избежать такого противоречивого поведения представляемых таблиц, нужно включать в определение представления раздел Х1ТН СНЕСК ОРТТОГЬ При наличии этого раздела до реального выполнения операций модификации или вставки строк через представление лля каждой строки будет проверяться, что она соответствует условиям представления.
Если данное условие не выполняется хотя бы лля одной модифицируемой или вставляемой строки, то операция полностью отвергается. В некотором смысле (при наличии раздела Х1ТН СНЕСК ОРТ10Н) условие выборки, содержащееся в выражении запросов представления, можно считать ограничением целостности этого представления. Рпжимы ПРОВВРгги сАЯслгзеР и ьОсАБ Вспомним теперь, что в полном виде синтаксис раздела ХТТН СНЕСК ОРТ10М может включать ключевые слова САЯСАРЕР или ЬОСАЬ. Обсудим их смысл.
Предположим, что представление чг определяется над представлением РТ следующим образом: СЕЕАТЕ Ч1ЕХ Чг АЯ ЯЕЬЕСТ РЕОМ Ч1 ХНЕРЕ ... [ Х1ТН ( САЯСАРЕР ~ ЬОСАЬ ] СНЕСК ОРТ10И ) Пусть над чг выполняется некоторая операция О обновления базы данных. Тогда: ° если представление чг определялось без раздела х1тн СНЕСК ОРт1ОХ, то при выполнении операции О будут проверяться все условия, определяющие ограничения целостности ч1 (если в определении Чг присутствовал раздел Х1ТН СНЕСК ОРТТОИ), но никаким образом не будут учитываться условия выборки, содержащееся в выражении запросов представления чг; ° если в определении представления К2 содержался раздел ХТТН ЬОСАЬ СНЕСК ОРТТОН, то при выполнении операции О будут проверяться все условия, определяющие ограничения целостности чг, и все условия, содержащееся в выражении запросов представления Чг; 391 Основы баа данных Курс ° наконец, если в определении представления и2 содержался раздел ХТТН САЯСАОЕО СНЕСК ОРТТОМ, то при выполнении операции О будут проверяться все условия, определяюшие ограничения целостности Р1 (так, как если бы в определении Р] присутствовал раздел Х1ТН САБСАОЕО СНЕСК ОРТ1ОИ).
Тем самым, будут проверяться все ограничения целостности, установленные для всех базовых таблиц, на которых основывается определение Л; все условия всех представлений, определенных над этими базовыми таблицами; и, конечно, все условия, содержашиеся в выражении запросов представления Р2. Примеры результетоя действия разделе яттн снеск овтгоя Чтобы пояснить результаты действия раздела х1ТН Снеск ОРТТОН, допустим, что в базе данных присутствуют определения двух представлений М1РЕЬЕ В1СН ЕМР и МОВЕ В1СН ЕМР: СВЕАТЕ УТЕХ М1РРЬЕ В1СН ЕМР АЯ ЯЕЬЕСТ * РВОМ ЕМР ХНЕВЕ ЕМР ЯАЬ < 20000.00 Х1ТН [ САБСАРЕР [ ЬОСАЬ ] СНЕСК ОРТ1ОЫ ]' СВЕАТЕ х1ЕХ МОВЕ В1СН ЕМР АЯ ЯЕ1 ЕСТ * РВОМ М1ПРЬЕ В1СН ЕМР ХНЕВЕ ЕМР ЯАЬ > 18000.00 [ Х1ТН [ САБСАОЕО [ ЬОСАЬ ] СНЕСК ОРТ1ОИ ]' Очевидно, что в тело (материализованного) представления МТООЬЕ ВТСН ЕМР будут входить следуюшие строки базовой таблицы емР: М1РРЬЕ Р1СН ЕМР 392 Лекция 17 Язык баз данных ЯОЬ: средства манипулирования данными В тело (материализованного) представления МОВе В1сн емр будут входить СЛЕДУЮШИЕ стРоки пРедставляемой таблицы М1ОО' Е В1СН ЕМР: МОВЕ В1СН ЕМР В каждом из представлений МТООБЕ ВТСН ЕМР и МОВЕ ВТСН ЕМР может отсутствовать или присутствовать (в одном из двух видов) раздел И1тН снеск орт1ом.
В совокупности возможен один из девяти случаев: Чтобы рассмотреть каждый из возможных случаев по отдельности, обсудим, что будет происходить в каждом случае при выполнении следующих двух операций модификации строк (будем называть эти операции 01 и О2 соответственно)*: НРОАТЕ МОВЕ В1СН ЕМР ЯЕТ ЕМР ЯА' = ЕМР ЯА' 70СО.ОО; ОРОАТЕ МОВЕ В1СН ЕМР ЯЕТ ЕМР ЯА = ЕМР ЯА - 7000.СС; Случай 1. Ни в одном из представлений не содержится раздел и1тн СНЕСК ОРТ10М. Первый неожиданный результат состоит в том, что после выполнения операции 01 тело представления МОВе ВТСн емр оказывается пустым.
Действительно, у единственной строки таблицы ЕМР (со значением ЕМР МО, равным 2443), одновременно удовлетворяющей условиям обоих представлений, столбец емР ЯА: принимает значение 26000.00. После этого строка перестает удовлетворять условию представления мтооее В1сн емР и исчезает из результирующей таблицы моде В1сн емР. Этот результат может быть особенно неожиданным для пользователей базы данных, которым известно, что условие представления МОВЕ ВТСН ЕМР * Будем считать, что тем, кто пользуется представлением исав нтсн лиг, неизвестно ограничение еиг зль < зсссс.сс, на хотором основываетсяпредставление ннюьл и си еир. 393 Основы баэ данных Курс имеет внд кмис ялт.
> 18000. 00, и соблюдение этого условия должно сохраняться при увеличении размера зарплаты. Выполнение операции ц2 также приведет к опустошению тела монк ктсн кмр (в базовой таблице кмр не останется ни одной строки, удовлетворяющей условию этого представления). Возможно, это будет достаточно естественно для пользователей представления мокк ктсн кмр, которым известно условие представления, но те, кто работает с представлением мтооьк ктсн кмр, с удивлением обнаружат в теле результирующей таблицы новые строки.
Случай 2. В определении представления мтоокк ктон кмр содержится раздел хттн косы. снкск орттом, а в определении мокк ктсн кмр разделхттн снкск окттонотсутствует. В этом случае, в соответствии с первыми двумя правилами проверки корректности выполнения операций обновления над представлениями, операция ит должна быть отвергнута системой (поскольку ее выполнение нарушает условие представления мтоокк ктсн кмк). Но заметим, что такое поведение системы будет совершенно неожиданным и непонятным для тех пользователей базы данных, которым известно только определение «верхнего» представления монк ктсн кмр, поскольку операция и явно не может нарушить видимое ими ограничение. С другой стороны, операция ц2 будет успешно выполнена и по- прежнему приведет к опустошению тела результирующей таблицы представления монк ктсн кмр.
Случай 3. В определении представления мтоокк ктсн кмк содержитсяразделхттн слкслоко снкск орттон,авопределениимокк ктсн кмр раздел хттн снкск овттон отсутствует. В этой ситуации будут проверяться условия, содержащиеся в определении представления мтпокк ктсн кмр, а также все ограничения целостности таблицы кмр и всех других представлений, определенных над этой базовой таблицей.
В результате операция И будет отвергнута системой, а операция и2 будет «успешно» выполнена. Другими словами, повторится Случай 2. Случай 4. В определении представления мтооьк ктсн кмр раздел хттн снкск окттом отсутствует, а в определении монк ктсн кмр содержится раздел хттн косы. снкск орттом. Понятно, что в этом варианте операция У2 не сработает (ее выполнение не будет допущено условием «ограничения целостности» представления монк ктсн кмр).
Но операция ц1 (увеличение размера зарплаты слу- Язык баз данных 500 средства манипулирования данными Лекция !7 жаших) будет успешно выполнена, поскольку она не противоречит ло- кальным ограничениям представления моне Втсн емР. Случай 5. В определениях представлений м1РРРе В1сн емр и моке В1сн емР содержится раздел х1тн ьосАР снеск ОРт10и. Выполнение обеих операций 01 и и2 будет справедливо отвергнуто. На первый взгляд все в порядке. Но если над представлением МОКЕ К1СН ЕМР будет определено еше одно представление У, то мы можем получить ситуацию Случая 2, где у будет играть роль моне ктсн емр, а М1РР1.Е К1СН ЕМР— РОль МОВЕ В1СН ЕМР.
Случай б. В определении представления МТРРРе В1сн емр содержится раздел х1тн САЕОАРВР снеск ОРт10И, а в определении мОВе В1сн емР содержится раздел ИТТН РОСАР СНЕСК ОРТ1ОН. Снова, если над представлением МОВЕ К1СН ЕМР будет определено еше одно представление у, то мы можем попасть в ситуацию Случая 2, где у будет и~рать роль МОВЕ КТСН ЕМР, а МТРРРЕ ВТСН ЕМР— роль МОВЕ В1СН ЕМР. Случай 7. В определении представления м1РРРе В1сн емР раздел и1тн снеск орттом отсутствует, а в определении моне Втсн емР содержится раздел н1тн САЕСАРЕР СнеСК ОРТТОМ.
Если над представлением моВЕ ВТСн емР будет определено еше одно представление ~„то мы можем попасть в ситуацию Случая 3, где убудет играть роль моке ВТСн емР, а МТРРРЕ КТСН ЕМР— роль МОВЕ КТСН ЕМР. Случай 8. В определении представления м1РРРе В1Сн ВМР содержится раздел Х1ТН РОСАЬ СНеСк ОРТ10И, а в определении МОВЕ В1Сн емР— раздел х1тн САЯОАРеР снеск ОРт10Н. Если над представлением моне В1сн емР будет определено еше одно представление и, то мы можем получить ситуацию Случая 3, где убудет играть рольмоке ВТСн емР, а МТРРРЕ КТСН ЕМР— роль МОВЕ В1СН ЕМР. Случай 9. В определениях представлений МТРРРЕ КТСн емР и МОВЕ К1СН ЕМРСОДЕРжится раздел М1тН САЕСАРЕР Снеок ОРТТОМ.