Главная » Просмотр файлов » Программирование баз данных MS SQL Server

Программирование баз данных MS SQL Server (1084479), страница 57

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

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

Аналогичный принцип применяется к обновлению строк, поскольку требуется, чтобы в зависимых строках автоматически восстанавливалась ссылка на вновь обновленные строки. Немного реже встречается ситуация, в которой требуется перевести ссылающуюся строку в какое-то другое заведомо известное состояние. В последнем случае имеется возможность либо задать в зависимой строке ХЫЬЬ-значение, либо применить то значение, которое предусмотрено по умолчанию, для соответствующего столбца.

Процесс автоматического осуществления подобных операций удаления и обновления известен под названием каскадного выполнения действий. Фактически этот процесс, особенно применительно к операциям удаления, может проходить через несколько уровней зависимостей (когда одна строка зависит от др)той, вторая зависит от третьей и т.д.). Каскадное выполнение действий предусмотрено и в СУБД ЯЯЬ Бегуег.

Для использования этой возмох(ности достаточно прибегнуть к дополнительным опциям синтаксических конструкций при объявлении внешнего ключа — ввести те конструкции ОМ, которые были пропущены в начале этого раздела. Рассмотрим возможность применения каскадных действий на примере еще одной таблицы, создаваемой в базе данных Ассоппт1па. Назовем эту таблицу ОтйетРета11Б и будем использовать ее для хранения отдельных элементов с обозначением товаров в заказе: 226 Глава б ' Прежде чем йристулить к'подробному описанию.

объявления внешнего хягюча а этом опе'. ' раторе', сстайовимся йа том" ,хак обывлен',в,нем'первичйый,ключ, Автор;решил.'не'задавать ', ::объявлений'ограйичения непосредствейно после. объявления самого, ключа,',а:выделить его в, отдельную конструкцию сопвсгаапс'. Твкая:структура обьлвлвния, вогйервых,;упрс-, чдает рабату:лри 'создании:.первичного ключа,':состоящегсиз:нескальклих столбцов.(ведь ' ' 'ЛврВИЧНЫй КЛЮЧ С НЕСКОаЛЕКИМИатбябцмян НЕ'Мбжвт 6ЫтЬ СбъсяВЛЕН КЕК ОГранИЧЕНйв Стсяб„ца), и, 'во'-'етсрйя,', прзволяет, проще',понять' общее устройство'оператора'.Оплата алас|.", .:Аналогичным образом'; можно было бйзадатьэсбьявление внешйего: ключа непосредствен', : но:вслед за обьавдением столбца,- Но автор предпочел дРУгой возможный вариант и так-,: 'же примейил отдельную кснстгрукцию сопзсгагчпс.

дололнйтвльная йнфсрмвция по атой:, теме приведена ниже в даннойтлаве. Прежде всего необходимо учесть, что применяемый внешний ключ является также частью первичного ключа. Такая организация дочерних таблиц встречается далеко не так уж редко, а в случае ассоциативных таблиц (которые рассматриваются более подробно в следующей главе) применяется почти всегда.

Но следует помнить, что каждое ограничение всегда действует автономно, поэтому добавление, модификация или удаление каждого ограничения осуществляется независимо от других ограничений. Теперь рассмотрим само объявление внешнего ключа; ГОактСН Квт ~огоегто~ акгквенсвз огсегз<огсеггщ Столбец ОгсегХР был объявлен как зависящий от "внешнего" столбца.

В данном случае таковым является столбец (имеющий совпадающее с ним имя, Огдег10) отдельной таблицы (Огсегэ), но, как было показано выше в данной главе, в случае необходимости можно было бы с таким же успехом выбрать какой-то столбец из той же таблицы. При.создании:внешних'Мосей;:ссылающихся на ту же таблицу, в 'которой определен внеш-: ний:ключ; необходимо унижйвать некоторйе нюансЫ; В,часчгности,' в объяалении'внешних ключей, такога, типа не долускаетсл йспользоаание'деклардтйаных дейстайй 'Слз сАск.' '- ' Такое условие,'предусмотрена'для того; чтобы, можно было избежать,асэникновения ци-:.: , клических операций'обил аления'или'удаления,.те.; таких 'ситуаций,;в котбрых-йбновленйе ' одной, строки вызывает обновление другой;„а'зта; в евою очередь; приводит'к необходи;.

' : мости обновить'первуа из этих,стрех„й раззультате может вазникнрь бесконечный цйкл,, Теперь приступим к изучению конструкций ОН, чтобы лучше разобраться в проблеме каскадного осуществления действий: ОМ ОРСАТЕ НО АСТ10Н он сеьете сляслсе В этих двух конструкциях определены два различных действия по обеспечению ссылочиой целостности. Вполне очевидно, что действием по обеспечению ссылочной целостности является такое действие, которое должно осуществляться при каж. дом вызове правила обеспечения ссылочной целостности. Для тех ситуаций, когда происходит обновление строки родительской таблицы (таблицы Огоегз), указано, Ограничения 227 что такие обновления не должны распространяться каскадно на дочернюю таблицу (ОгбегРета11з). Но в иллюстративных целях автор выбрал для операций удаления действие САЯСАРЕ.

Следует отметить, что опция )40 2) СТ1 О)4 пРименяется по умолчанию, поэтому мы не бъии обязаны задавать ее в приведенном выше коде. Но данное ключевое слово не поддерживалось в вфсиях, предшествующих ЩЕ 5егоег 2000, и это стало причишт такого положения дел, что стало "общепРинятим" не задавать в коде ключевое слово )уо АСТТО)4. Но если поддфжка обратной совместимости не вфебуется, то автсф рекомендует явно задавать ключевое слово НО АСТ1ОИ, чтобъл явно еъфазить в коде сваи намфения. Предпримем попытку выполнить вставку в таблицу ОгбегРеса11Я следующим образом: 1НЯЕКТ 1НТО Огбегоега11з ЧАЬРЕЯ )1, '4Х4525', 'Тбйз гз а рагс', 25.00, 2) Но если до сих пор не бьиа выполнена вставка каких-либо данных в эту таблицу, осуществление такой попытки приведет к возникновению следующей ошибки: Мзп 547, Ьече1 16, Ясаге О, Ьгпе 1 Тье 1ЛЯЕКТ зсасеиепг спп111сгеб н1гЬ СЬе ЕОКЕ1СН КЕУ сопзъга1пс 5вкогбегСопъа1пэРеъа11э".

ТЬе соп111съ оссцггеб 1п багаЬаэе "Ассоппс1пп", СаЬ1е "Огбегз", со1пшп 'Огбег10'. ТЬе зсасевепс Ьаз Ьееп Сеги1паъеб. Это связано с тем, что в таблице Огбегз отсутствуют какие-либо данные, поэтому невозможно сформировать ссылку на какую-либо строку в таблице Огбегз, поскольку в этой таблице вообще нет никаких строк. В данном прилюре впервые в настоящей книге иллюстрируется одна из сложностей, возникающих в пРоцессе эксгглуатации Реляционной базьг данных, — цепочки эависимоспга1.

Цепочка зависизлостей обнаруживаеэлся в таких ситуацияк, когда выполнение опфации над некоторым обык там затгсит от результатов опфа цци над канин то другим обзектои, что может завилхть от результатов работы еще над каким-то обтктом„и т.д. При этом фактически пользователь не может найти приемлемый выход из положения, поскольку возникновение указанной ситуации обусловлено структурой самой базы данных.

Поэтому пользователь обязан пфейти к началу цепочки и вьслолнять все необходимые в нгш дм1ствия до тех поР, пока не смохсет осуществить действительно требуемую ему операцию. Но, к счастью, чаще всего результатьъ которые должны быть полученьг на промехгуточных этапах прохождения цепочни зависимоспмй, узки в основном имеются в базе данных, пусть даже на одном или двух уРовнлх зависимостлш1 Итак, в данном случае вставка строки в таблицу ОгбегРега11з может быть осуществлена только при том условии, что в таблице Огбегз уже будет хотя бы одна строка.

Но, к сожалению, для ввода строки в таблицу Огбегз требуется, чтобы в таблице Сцзсоплегз также была хотя бы одна строка (напомним, что на таблице Огбегз сформирован внешний ключ). Поэтому вставка требуемой строки должна проводиться поэтапно, начиная, допустим, с выполнения следующего оператора: 1НЯЕКТ 1НТО Опэъоиегэ — Данные о заказчике; следует учитывать, что — столбец Оцэсопегно — столбец идентификации ЧАЬРЕЯ )'В111у ВоЬ''э ЯЬоез', 228 Глава 6 123 Мз1п БС 'Чапсопчег', '98685', 'В Пу БоЬ', ')360) 555-1234', '931234567', ОЕТОАТЕ)) Вставка данных о заказчике должна быть выполнена успешно, но, чтобы убедиться в этом, выполним выборку соответствующей строки, как показано в табл.

6.2. Таблица 6.2. Результаты выборки одной записи из таблицы спвсоиека Поле Значение спы овес но спясовеп лаве Аеояеяя 1 Аеояеяя 2 Супу Бсапе Б 11у БоЬ'я БЬоея 123 Маго Бпгееп уапсопчеп 98685 Вяауу Боп )360) 555-1234 931234567 сопсясс Рьопе Гя01ОНо Оаяе1пзуяпев 2000-07-1021;17:00 1НБЕЕТ 1НТО Огеегя )Спяповепио, Опеепсапе, Евр1оуее1О) УАЬОЕБ )1, ОЕТРАТЕ)), 1) На этот раз выполнение операции вставки должно завершиться успешно.

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

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

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

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