Главная » Просмотр файлов » Теория и практика построения баз данных

Теория и практика построения баз данных (1088289), страница 76

Файл №1088289 Теория и практика построения баз данных (Теория и практика построения баз данных) 76 страницаТеория и практика построения баз данных (1088289) страница 762018-01-12СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

В конце концов, изначально база данных не имеет проблем с целостностью, а чтобы эти проблемы возникли, сначала их ладо вызвать. Разумеется, здесь мы рассчитываем слишком на многое. Ошибки случаются. Поэтому в СУБД предусмотрена возможность определить и реализовать такие ограничения средствами самой СУБД. Это значит, что СУБД не позволит выполнить операцию вставки, удаления или модификации значения внешнего ключа, которая приведет к парушеншо ограшщеиия целостности по внешнему ключу.

Например, заглянем немного вперед и посмотрим на рцс. 10,20, где установленньш флажок ЕпТогсе ЯеТегепВа1 1птедгйу (Реализовывать ссыло шую целостность) предписывае~ Ассеээ реализовывать следующее ограничение: значение атрибута Ешр1оуее1чаше в таблице ЕМРСОУЕЕ Рйопе1чвтЬег должно существовать среди значений атрибута 1чаше в таблице ЕМРСОУЕЕ. Подобные возможности сушествукп во всех СУБД.

Кроме того, в серверных СУБД, таких как ОВАССЕ и 5Я1 5егчег, имеются утилиты, периодически запуская которые, можно гарантировать, па в базу данных не проникнут нарушения ссылочной целостности, обусловленные частично завершенными транзакциями, импортированными данными и другими чудесами Вселенной. Запуск этих утилит обычно входит в план обслуживания базы данных (см. главу 1!). Ограничения кардинальности связи Ограничения кардинальности связи проистекают из кардинальных чисел связанных объектных атрибутов.

Например, на рис. 10.3, а связь с объектом С05ТОМЕЯ в группе пОкК.Тгапэасбоп имеет кардинальность 1.1; следовательно, группа Тгапэасб юп должна иметь связь с объектом С05ТОМЕЯ. Вообще такие ограничения имеют два источника: ненулевое минимальное кардинальное число и максимальное кардинальное число, не равное 1 или г1. так, кардинальности 1.1, 1.Х, 2.М приведут к возникновению ограничений карлинальности, как и кардинальности 0.3, 1А и 2А.

За одним исключением, эти транзакции должны реализовываться в коде приложения. Исключением является кардинальность 1.1 на стороне потомка в связи 1М В атом случае ограничение можно реализовать, сделав внешний ключ обязательным. Так, ограничение кардпнальностн 1.1 на объект С05ТОМЕЯ в группе Р10КК.Тгапэасаоп можно реализовать, сделав атрибут Свэ1отег10 обязательным и таблице ТРАИ5АСТ10Н. Во всех прочих случаях разработчик базы данных должен написать код, реализующий ограничения кардииачьпостп. Этот код можно поместить в хранимые процедуры, которые будут вызываться СУБД при внесении изменений в связи, либо в прикладные программы, либо в обработчики определенных событий в формах, например ВеТогеОрва1е (обсуждается ниже).

Чтобы упростить обсуждение, мы будем рассматривать только ограничения 1.1 и 1.)ч. Логика этих двух примеров непосредственно распространяется и на прочие ограничения. На рис. 10.17 представлена связь между отношешшми СПЕЦИАЛЬНОСТЬ и СТУДЕНТ. В соответствии с рис. 10.17, а, специальность должна быть связана по крайней мере с одним студентом, а каждый студент должен иметь ровно одну специыьность. Когда пользователи обновляют любое из этих отношений, должен вызваться код реализации ограничений.

На рис. 10,17, б, например, если пользователь попытается удалить строку студента 400, код реализации ограничений должен отклонить этот запрос. Если бы этот запрос был разрешен, для строки в таблице ФИНАНСЫ не нашлось бы дочерней строки, и ограничение обязательности было бы нарушено. Подобным же образом, невозможно добавить новую строку в таблицу СПЕЦИАЛЬНОСТЬ (например «БИОЛОГИЯ»), пока не появится студент, специализирующийся на этом предмете. б Риа.

1ОА 7. Пример ограничения вида «обязательно-обязательное а — структура связи; б — данные для примера Реализация ограничений 363 Тип связи Вставка Обновление (ключв) Удаление удалит~ всех потомков ИЛИ переназначить всех потомков Изменит~ соответствующие ключи у всех потомков Создать как минимум одного потомка Ок 0-0 удалит~ всех потомков ИЛИ переназначить всех потомков Изменить соответствующие ключи у всех потомков 0-н ОК Изменить ключ как минимуму одного потомка ИЛИ соответствующий потомок ужв существует Н-0 Добавить нового потомка ИЛИ соответствующий потомок уже существует ОК ОК ОК н — н Удаление Обновление (ключа) Тип связи Вставке Брат существует Родител~ с новым значением существует (или создать его) И брат существует Родитель с новым значением существует ИЛИ создать родителя Брат существует ОК Родитель существует ИЛИ создать родителя Родитель существует ИЛИ создать родителя Ок ОК 0-0 Ок 0-Н Брат существует ОК н — 0 н — н 362 Глава 10.

Проектирование приложений баз данных Строка, у которой отсутствует заявленный обязательный родитель или потомок, назьгвается иногла гррагттеитом ГТгадщепг), а лочерние строки, не имеющие заявленного обязательно~о родителя, иногда называют зависшими записями, Одна пз функций прикладной программы — предотвращать появление фрагментов и зависших записей. Способ предотвращения появления фрагментов зависит от типа ограничения. На рис. 10.18 приведены примеры четырех возможных ограничений на связи вида 1:чт): «обязательно-обязательно» ГО-О), «обязательно — необязательно» СО-Н), «необязательно-обязательно» ГН-О) |г «необязательно — необязательно» СН вЂ” Н).

Эти ограпнченпя показаны только для связей вида «один ко многим», но эти же четыре типа сохраняются н для других типов связей. в г Рис. 10.18. Пример четырех типов ограничений связи: в — «обязательно-обязательно» (Π— 0); б — «обязательно-необязательно»(0-Н); в — «необязательно- обязательно (Н-0); г — «необязательно-необязательно»(Н-Н) Нарушения ограничений могут происходить при всяком изменении значений ключевых атрибутов. Например, если на рнс.

10.17, б изменить специализацию студента 300, поменяв «БУХГАЛТЕРСКИЙ УЧЕТ» па «ФИНАНСЫ», студент будет переведен на кафедру финансов. Хотя при этом меняется родитель, это не вызывает нарушения ограничения. Такое нарушение произойдет, однако, если поменять специализацию студента 400 па «БУХГАЛТЕРСКИЙ УЧЕТ». После этого окажется, что нп один студент не специализируется на предмете «ФИНАНСЫ», и таким образом будет нарушено ограничение «О вЂ” О» между таблицами СПЕЦИАЛЬНОСТЬ и СТУДЕНТ, В табл. 10.1 и 10.2 представлен свод правил, позволяющих предотвратить появление фрагментов для каждого пз указанных пщов ограничений.

В табл. 10.1 приведены правила, касатопщеся действий с родительской строкой, а в табл. 10.2— с дочерней строкой. Как видно пз этих таблиц, возможных действий имеется три: вставить новые строки, модифицировать ключевые данные и удалить строки. В этих таблицах перечислены правила для связей вида «один ко лтногим»; правила для связей вида «олин к одному» аналогичны, Таблица 10.1.

Условия допустимости изменений в родительских записях таблица 10.2. Условия допустимости изменений е дочерних записях Ограничения на обновление родительских строк Первая строка в табл. 10.1 относится к ограничениям «О-О>. Новуго родптель< кую строку можно вставить только в том случае, если в то >ке самое время создается по крайней мере одна дочерняя строка, что можно сделать, либо вставив новую дочерщою строку, либо взяв ее от другого родителя (однако последнее действие может само по себе вызвать нарушение ограничения). Изменение ключа родителя разрешается в связи «О-О > только в том случае, если при этом изменяются значения соответствующего внешнего клгоча в дочерних строках.

(Можно переназначить всех потомков другому родителю и затем создать для родителя хотя бы одного нового потомка, но так поступают репко.) Так, изменение атрибута Счет-Фактура в опюшеннн СЧЕТ ЗА ГОСТИНИЦУ разрешается, если значение этого атрибута будет также изменено в соответствующих строках таблицы ПЛАТА ЗА ДЕНЬ. Обратите внимание, что при использовании суррогатных ключей это дейспще никогда не произойдет. Наконец, родитель в связи «О вЂ” О» может быть удален только тогда, котла будут удалены или переназначены все его потомки.

Что касается ограничений «О вЂ” Н», родительские строки можно добавлять без ограничений, поскольку родитель пе обязан иметь потомка. Для связи на рис. 10.18, б в отношение ПРЕПОДАВАТЕЛЬ новую строку можно добавить без Реализация ограничений 365 а«яа»я«и«и> ааа Р сиа >>~ »яа ааыад»а>» Р «я»ь в«аа а«а>а«а»а а >ак а а>иа, с»>аи Рис. 10. 19.

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

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

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

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