Главная » Просмотр файлов » Введение в системы БД

Введение в системы БД (542480), страница 77

Файл №542480 Введение в системы БД (Введение в системы БД) 77 страницаВведение в системы БД (542480) страница 772015-08-16СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 77)

Подробнее этот вопрос рассматривается в следующих подразделах. Ссылочные операции Рассмотрим следующий оператор. ОЕЬЕТЕ Я ЯНЕКЕ Я( = 8$ ( 'Б1' ) Предположим, что оператор ОЕЬЕТЕ выполняет именно те действия, которые и должен выполнять, т.е. удаляет кортеж описания поставщика с номером '81', и не более того. Также предположим, что база данных включает некоторые поставки для поставщика с номером 'Б1' (как показано на рис.

3.8) и выполняемое приложение не намеревается удалять сведения об этих поставках. Если впоследствии система проверит выполнение ограничений ссылочной целостности между переменными- отношениями поставщиков и поставок, то будет обнаружено их нарушение и выдано сообщение об ошибке. Замечание. Поскольку в этом случае ссылочное ограничение является ограничением базы данных, его проверка будет осуществляться во время выполнения оператора СОММ1Т, по крайней мере концептуально. (На самом деле система вполне может проверить соблюдение ограничений и сразу же после выполнения оператора ОЕЬЕТЕ, однако нарушение ограничения в этот момент необязательно означает ошибку, т.е. системе необходимо будет осуществить эту проверку еще раз, во время выполнения оператора СОММ1Т.) Однако существует и альтернативный подход, который в определенных случаях может оказаться предпочтительнее.

При этом подходе предполагается, что системой выполняются соответствующие компенсирующие операции, гарантирующие, что конечный результат будет удовлетворять существующим ограничениям. В нашем примере очевилной компенсирующей операцией могло бы быть "автоматическое" удаление сведений обо всех поставках поставщика с номером 'Я1'. Достичь этого можно, расширив определение внешнего ключа.

РАК БР ВАНЕ КЕ1АТТОН ( ГОКЕ16Н КЕУ ( БР ) КЕГЕКЕНСЕЯ Я ОН ОЕЬЕТЕ САЯСАОЕ 319 Глава 8. Целостность Данных Спецификация ОЫ ОЕЬЕТЕ САЯСАОЕ определяет правила удаления для данного конкретного ключа, которое будет применяться при обработке операторов ОЕЬЕТЕ. Здесь спецификация САЯСАОЕ определяет тип ссьиачнай операции для этого правила удаления. Смысл определений состоит в том, что обработка операторов 0ЕЬЕТЕ для переменной- отношения поставщиков должна сопровождаться "каскадным" удалением всех соответствующих кортежей из переменной-отношения поставок. Другая общепринятая ссылочная операция задается спецификатором ЕЕЯТЕТСТ (она не имеет ничего общего с операцией выборки (гемпсс) реляционной алгебры).

В данном случае спецификатор ЕЕЯТЕ1СТ указывает, что выполнение операции 0ЕЬЕТЕ допускается, если в переменной-отношении поставок нет ни одного кортежа с соответствующим внешним ключом. В противном случае операция удаления отвергается. Опускание конкретного спецнфикатора ссылочной операции при определении некоторого внешнего ключа равносильно заданию спецификатора ЕО АСТ1ОМ (никаких действий), означающего, что операция 0ЕЬЕТЕ будет выполняться в точности так, как она описана, и не более того.

(Если спецификатор МО АСТ1ОМ применить к нашему примеру, то при удалении поставщика, для которого имеются сведения о выполняемых им поставках, установленное ограничение ссылочной целостности, безусловно, будет нарушено.) Рассмотрим некоторые случаи применения ссылочных операций. 1. Операция 0ЕЬЕТŠ— это не единственная операция, для которой имеет смысл определение ссылочных операций. Например, что должно произойти при попытке изменить номер поставщика, для которого уже имеются сведения хотя бы об одной поставке? Очевидно, что необходимо использовать правило обновления, подобное обсуждавшемуся выше правилу удаления. В общем случае для операции обновления существует тот же набор ссылочных действий, что и для операции удаления. ° САЯСАОŠ— "каскадно" распространить операцию обновления посредством обновления значений всех соответствующих внешних ключей в переменной- отношении поставок. ° КЕЯТЕ1СТ вЂ” ограничить выполнение операции обновления только теми случаями, когда не существует никаких соответствующих поставок.

Иначе выполнение операции запрещаешься. ° КО АСТ1ОМ вЂ” операция обновления выполняется в точности так, как она записана. 2. Безусловно, спецификаторы САЯСАОЕ, КЕЯТЕ1СТ и МО АСТ1ОМ не следует считать единственно возможными вариантами ссылочных операций. Это минимальный набор спецификаторов, отражающий только те варианты лействий, которые чаще всего применяются на практике. Однако, а принципе, может существовать произвольное количество возможных решений прн попытке, например, удалить определенного поставщика. Укажем некоторые из возможных действий.

° Информация записывается в некоторую архивную базу данных. ° Поставки для одного поставщика передаются другому поставщику. И т.д. Однако невозможно предоставить декларативный синтаксис лля всех мыслимых решений. Поэтому в общем случае просто должна существовать возможность указать ссылочные действия в виде выражения САЬЬ ргас(... ), где ргос— имя процедуры, определяемой пользователем. З2О Часть 11. Реляционная модель Замечание. Выполнение этой процедуры должно рассматриваться как часть транзакции, для успешного завершения которой необходимо обязательно выполнить проверку целостности.

Кроме того, сохранение целостности базы данных должно быть проверено повторно, после выполнения самой этой процедуры (поскольку понятно, что данная процедура не должна переводить базу данных в состояние, противоречащее требованиям ограничений целостности). 3. Пусть К1 и К2 — ссылающаяся и ссылочная переменные-отношения соответственно. К2 — -э К1 И пусть для этого ссылочного ограничения установлено правило удаления СКБСйоЕ. Тогда удаление некоторого кортежа из переменной-отношения К1 в общем случае повлечет за собой удаление определенных кортежей переменной-отношения К2. Теперь предположим, что на переменную-отношение К2, в свою очередь, ссылается некоторая переменная-отношение К3.

КЗ вЂ” з К2 — ~ К1 То~да результат неявного удаления кортежей из переменной-отношения К2 по сути ничем не будет отличаться от попытки непосредственного удаления этих кортежей явно заданной операцией удаления. Иначе говоря, выполнение неявного удаления требует соблюдения правила удаления, установленного как ограничение ссылочной целостности между переменными-отношениями К3 и К2. Если в результате требуемое удаление выполнено не будет (согласно установленному правилу удаления для ссылочной зависимости между переменными-отношениями К3 и К2 или же по какой-либо другой причине), то должно быть отменено и выполнение всей операции в целом, а база данных сохранена в неизменном состоянии. И так далее рекурсивно для любого количества уровней.

Аналогичные замечания можно сделать в отношении правил каскадного обновления, потребовав распространения необходимых изменений, если внешний ключ в переменной-отношении К2 имеет какие-либо общие атрибуты с потенциальным ключом той переменной-отношения, на которую ссылается внешний ключ в переменной-отношении К3, 4. Из сказанного выше следует, что с логической точки зрения операции обновления базы данных всегда атомарны (все или ничего), даже в том случае, когда из-за установленного правила каскадного распространения изменений они неявно выполняют несколько обновлений в нескольких переменных-отношениях.

Триггерные процедуры В предыдущем подразделе в качестве одного нз возможных решений проблемы поддержки ссылочной целостности предлагалось применять пользовательские процедуры. У читателя, по-видимому, нет никаких сомнений в том, что в общем концепция ссылочных действий относится, скорее всего, не к ограничениям целостности как таковым, а к области п~риггериых нромедур.

Триггерные процедуры, ко~орые в литературе часто называют просто тригеераыи, автоматически вызываются, как только происходит некоторое событие (или условие запуска). Обычно условием запуска является выполнение некоторой операции обновления базы данных, но это может быть и определенная исключи- зл Глава 8. Целостность данных тельная ситуация (в частности, нарушение некоторого установленного ограничения целостности) или истечение заданного времени. Простейшим примером триггерной процедуры могут служить ссылочные действия, выполняемые при указании спецификатора САЯСАЭЕ (заметьте, при декларативном указании!). В общем случае триггерные процедуры могут применяться и для решения более широкого круга проблем, а не только для рассматриваемых в этом разделе вопросов обеспечения ссылочной целостности.

(С перечнем таких применений можно ознакомиться в 18.1).) Однако это большая самостоятельная тема, которая выходит далеко за рамки данной книги. (Заинтересованный читатель может обратиться к 18.22), где эти вопросы излагаются подробно.) Хотелось бы отметить, что, несмотря на то что использование триггерных процедур может быть чрезвычайно полезным для достижения самых различных целей, его не следует считать хорошим подходом для обеспечения целостности базы данных по очевидным причинам: декларативный подход, если он только возможен, всегда предпочтительнее. Замечание. Последнее высказывание не означает, что использование ссылочных операций — это плохая идея.

Характеристики

Тип файла
DJVU-файл
Размер
10,05 Mb
Тип материала
Предмет
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6418
Авторов
на СтудИзбе
307
Средний доход
с одного платного файла
Обучение Подробнее