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

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

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

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

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

392 Глава 10 Обязательное соблюдение требования об использовании в представлении всех столбцоц не допускающих неопределенных значений, или о применении заданных по умолчанию значений По умолчанию, если для вставки данных используется представление, то необходимо предусмотреть возможность передачи в операторе вставки значений во все обязательные столбцы (столбцы, которые не допускают использования Х1)1.1:значений). Кроме того, само это представление должно содержать в основополагающем запросе оператор ЯЕЕЕСТ, относящийся к единственной таблице, или по крайней мере вставка данных с помощью представления должна ограничиваться воздействием только на одну таблицу а также должны быть предусмотрены данные для всех обязательных столбцов.

Следует отметить, что требование задавать значения для всех обязательных столбцов не подразумевает указания всех этих столбцов в списке выборки основополагающего оператора ЯЕЬЕСТ представления. Дело в том, что для предоставления значений, которые должны быть вставлены в столбцы, не допускающие использования неопределенных значений, вполне могут быть применены заданные по умолчанию значения. Таким образом, чтобы обеспечить вставку данных с помощью представления, выполняя операторы 1НЯЕНТ, достаточно обеспечить, чтобы этим представлением были охвачены все столбцы, для которых не предусмотрены заданные по умолчанию значения и которые не допускают наличия в них Х1)1.1:значений.

Вполне очевидно, что единственный способ достичь этой цели в любых обстоятельствах состоит в применении триггера 1НЯТЕАР ОР. Проверка данных, вставляемых с помощью представлениц— ключевое слово таттн СНИК ОРтГОИ Многие средства СУБД ЯО?. Яегтег мало известны в широких кругах разработчиков, а возможности, предоставляемые конструкцией Н1ТН СНЕСК ОРТ10Ы, относятся к числу наименее известных.

В основе применения этой конструкции лежит простое правило — обновление или вставка данных с помощью представления, в котором задана конструкция Х1ТН СНЕСК ОРТ10Н, осуществляется, только если строка, полученная в результате применения этой операции обновления или вставки, соответствует критериям, допускающим ее включение в это представление. Иначе говоря, строка, полученная в результате вставки или обновления, должна соответствовать критериям конструкции ННЕНЕ, которая определена в операторе ЯЕЬЕСТ, лежащем в основе представления. Применение конструкции ы1тн снеск Орт10н Чтобы рассмотреть, как используется конструкция ь>1тн снеск Орт10н, продолжим работу с базой данных ноге)>ньпб и с помощью приведенного ниже оператора создадим представление, в котором отображаются данные только о поставщиках из штата Орегон. Количество столбцов, которые могут рассматриваться как применимые для работы с таблицей Япьррегэ, ограничено, поэтому для определения того, в каком штате находится поставщик, нам придется использовать коды городов (но вначале не забудьте указать, что используется база данных Ноге)>н1пс1).

СВЕАТЕ ЧТЕИ огедоззпгррегэ ~ю АЯ Представления 393 НЕРЕСТ ЯЬ1ррег1Р, Сотрапунате, Рьопе РНОМ ЯКЕрр в ИНЕНЕ Рьопе ЫКЕ '(503) а' ОН РЬопе ЫКЕ '(541)Ъ' ОК Рьопе ЫКЕ '(971)Ъ' И1ТН СНЕСК ОРТ10Н ЯЬ1ррегТР Рьопе Сотрапунап1е (503) 555-9831 (503) 555-3199 (503) 555-9931 (503) 555-55бб Яреес)у Ехргевв Рп1Сес) Расха9е Рес(ега1 ЯЬ1рр1пд Яреес(у Яьаррегв, 1пс. (4 гои(в) аббесСео) Теперь предпримем попытку обновить одну из строк с помощью этого представления — задать номер телефона, содержащий код города, отличный от любого из допустимых значений, т.е. начинающийся с подстроки, которая отличается от (503), (541) или (971): ОРРАТЕ ОгечопЯЬгррегв хя ЯЕТ РЬопе = '(333) 55 9831' ИНЕНЕ ЯЬТррег10 = 1 Попытка выполнить этот оператор немедленно приводит к формированию в СУБД НОТ.

Бегуег следующего сообщения об ошибке: Мвч 550, Ьехе1 1б, Яеасе 1, Ьапе 1 ТЬе ассетрсес( Тпвегс о ореабе Та11ес) Ьесвове Гме Гаг9ес чгеь ебсьег врес1бгев И1ТН СНЕСК ОРТ10Н ог врала в гаек СЬах врес181ев И1ТН СНЕСК ОРТХОН апп опе ог тоге гоив гево1сгпч бгот сье орегас1оп с(1с)пох Чоа11бу опс(ег ГЬе СНЕСК ОРТ10И сопвбгаупг.

ТЬе вгабетепв Ьвв Ьееп Гегт1пасео. Описание полученных результатов В конструкции ХНЕЕЕ предусмотрено условие выборки, согласно которому в представление входят только строки, содержащие в поле с номером телефона значения кодов городов (503], (541) или (971), а конструкция Х1ТН СНЕСК ОРТ10М указывает, что любые данные, вставляемые или обновляемые с помощью операторов 1МЯЕНТ или РРРАТЕ, должны соответствовать критериям, заданным в конструкции ХНЕНЕ (тогда как код города (333) этим критериям не соответствует). Приведенный выше оператор обновления не соответствует критериям конструкции ХНЕНЕ, поэтому отбрасывается.

Но попытка вставить эти же данные непосредственно в базовую таблицу: ОРРАтЕ Яьурре в ЯЕТ РЬопе = '(333) 555 9831' ИНЕНЕ ЯЫррег10 = 1 После вызова на выполнение оператора ЯЕЬЕСТ * применительно к этому представлению обнаруживается, что происходит возврат всех строк таблицы (поскольку все строки в таблице соответствуют критериям, заданным в определении представления): 394 Глава 10 не рассматривается в СУБД ЕЯ) Зегуег как неправильная, поэтому вырабатывается следующее сообщение: (1 гое(в] аЕТессеб) Таким образом, проверка, предусмотренная в конструкции Х1ТН СНЕСК ОРТ10М, применяется только к представлению, а не к основополагающей таблице.

В определенных обстоятельствах возможность выбрать, использовать ли для модификации данных таблицу или представление, может действительно оказаться весьма удобной. Представьте себе такую ситуацию, когда требуется разрешить некоторым пользователям вставлять или обновлять данные в таблице, но только если обновляемые или вставляемые данные соответствуют определенным критериям. Безусловно, можно было бы легко реализовать подобное условие, предусмотрев использование ограничения СНЕСК на основополагающей таблице, но такое решение не всегда является идеальным. Дело в том, что может потребоваться учесть еще одно такое пожелание, чтобы некоторые пользователи имели возможность вводить данные в таблицу с помощью операторов 1МЯЕНТ без учета указанных критериев. Но ограничение СНЕСК не позволяет предоставить разным пользователям различные возможности.

А определив представление с конструкцией Х1ТН СНЕСК ОРТ10М, можно предоставить пользователям с ограниченными правами возможность применять для вставки данных только представление, а полноправным пользователям дать возможность выбирать — осуществлять ли вставку данных непосредственно в базовую таблицу или использовать представление, в тех случаях, если вставляемые данные соответствуют условиям, заданным в представлении. Чтобы убедиться в том, что проверка данных, модифицируемых с помощью представления, распространяется и на операторы вставки, вызовем на выполнение оператор 1МЯЕНТ, который содержит данные, противоречащие условиям в конструкции ХНЕНЕ представления: 1МЯЕЕТ 1МТО Огеоопзп1ррегв че ЧЛЬОЕЕ ('Му Рге1оЬС 1пс.', '(555) 555-5555') При осуществлении этой попытки, как и прежде, появляется уже знакомое сообщение об ошибке, в котором говорится о прекращении выполнения оператора: Иве 550, Ьеее1 16, ЗСаге 1, 11пе 1 Тпе аггетргеб Тпвегг ог ирбаге Га11еб Ьесаиве Спе Сагоег ч1ее еьгпег вреогбгея Х1ТН СНЕСК ОРТ1ОМ ог арапа а чьее СпаС вресгб1ев Х1ТН СНЕСК ОРТ1ОМ апб опе ог еоге гоев гевп1С1по Тгоп Спе орегагьоп б1б поС чпа11гу ппбег Спе СНЕСК ОРТ10М сопвгга1пС.

Тпе вгаСевепС Лав Ьееп СегегпаСеб. Представления 395 Редактирование представлений с помощью средств языка ЗО1 Для внесения изменений в определения представлений применяются два способа, основанные на использовании операторов языка БЯЬ: модификация представления с помощью оператора А1,ТЕК Ч1ЕХ или его уничтожение и повторное создание с помощью оператора СКЕАТЕ ЧТЕХ. Но при использовании оператора АЬТЕК Ч1ЕХ следует помнить, что его выполнение также приводит к полной замене существующего представления. Различия между способами модификации определения представления, в которых используется оператор АЬТЕК Ч1ЕХ или СКЕАТЕ Ч1ЕИ, заключаются лишь в следующем: С1 при выполнении оператора АЬТЕК Ч1ЕХ предполагается, что рассматриваемое представление уже существует, а при выполнении оператора СКЕАТЕ Ч1ЕХ такое предположение не делается; С1 после выполнения оператора АЬТЕК Ч1ЕХ сохраняются все права на использование представления, предоставленные пользователям; С1 после выполнения оператора АЬТЕК Ч1ЕХ сохраняется вся информация о зависимостях.

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

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

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

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