Программирование баз данных MS SQL Server (1084479), страница 104
Текст из файла (страница 104)
П Если для внесения изменений в представление используется оператор АЕТЕН Ч1ЕХ, то существующее представление полностью заменяется (хотя определенные ранее права доступа к представлению остаются неизменными). Из этого следует, что если требуется, чтобы в модифицированном представлении продолжали действовать заданные ранее опции кодирования и ограничения, то в оператор АЕТЕН Ч1ЕХ необходимо включить конструкции Х1ТН ЕХСНТРТ10Ы и ХТТН СНЕСК ОРТ10Х. О Для отображения кода, лежащего в основе представления, следует использовать системную процедуру зр Не1рсехгз не рекомендуется для ознакомления с этим кодом обращаться к системным таблицам.
С1 Применение представлений для выполнения запросов производственного назначения необходимо свести к минимум), поскольку они вносят дополнительные издержки и вызывают снижение производительности. 410 Глава 10 Основные области использования представлений перечислены ниже. О Выборка строк с учетом заданных критериев. ~2 Защита конфиденциальных данных. С3 Уменьшение кажущейся сложности базы данных. Ю Создание дополнительного уровня доступа, в результате чего несколько физических баз данных объединяются в одну логическую базу данных.
В следующей главе приведены сведения об использовании пакетов и создании сценариев. Определенная информация по этой теме приведена и в данной главе, в связи с описанием сценария с операторами 1ИЯЕЕТ, предназначенного для вставки строк в таблицу Огоегэ, в котором информация из вновь вставленной строки затем использовалась для вставки данных в таблицу Огоег Оега11э.
Пакеты и сценарии служат основой для создания хранимых процедур — программных объектов СУБД Ю1. Яеггег, которые в наибольшей степени соответствуют определению собственных программ СУБД. Упражнения 10.1. Создайте в базе данных ногСЬи1пб представление мападегз, с помощью которого можно получить данные только о тех служащих, которые выполняют обязанности руководителей по отношению к другим служащим. 10.2. Модифицируйте представление, созданное по условиям упражнения 10.1, так, чтобы оно стало зашифрованным. 10.3.
Повторно создайте и индексируйте существующее представление "Ргог1псгз Ьу Оагедогу" базы данных Иоггпн1пб на основе столбцов сагейогунаме и Ргобисгнате. Сценарии и пакеты В предыдущих главах было приведено много сценариев ЬОЬ, а настоящая глава полностью посвящена проблематике создания сценариев. Сценарий может состоять из одного или нескольких операторов 5Оь., в том числе сееАте, Антее, Безвест и т.д. Тем не менее сценарии, состоящие из одного оператора, встречаются редко, поскольку достаточно сложная работа может быть выполнена лишь с помощью сценария, который включает в свой состав большое количество операторов. В сценариях Я~Е, состоящих из нескольких операторов, фактически осуществляется целый ряд взаимосвязанных действий, и это позволяет решать очень сложные задачи.
А если в состав сценария, кроме операторов КОЕ, входят языковые элементы, поддерживаемые инфраструктурой .)ь(ЕТ, то доступные возможности расширяются еще больше. Обычно сценарии предназначены для решения какой-то определенной задачи. Иными словами, каждый оператор, входящий в состав сценария, направлен на достижение некоторой общей цели. В качестве примеров можно указать сценарии, предназначенные для создания базы данных (к такому типу относятся сценарии, предназначенные для инсталляции системы), сценарии, используемые в процессе сопровождения системы (утилиты резервного копирования, утилиты РВСС), и т.д. Таким образом, сценарий может состоять из любых операторов, которые обычно выполняются в связи друг с другом.
В настоящей главе рассматриваются не только сценарии, но и пакеты. Пакет представляет собой средство управления способом группирования операторов в СУБД ЯЯЕ $еггег. Кроме того, в данной главе будет описана утилита БЯЕСМьг с интерфейсом командной строки и показано, какое отношение она имеет к сценариям. Мтилита 591ХМР оьиа впервые введена в вфсии 5ЯЕ 5егоег 2005. В этой вфсии 5ЯЕ 5егпес поддфживаетсл также п(эог(гимна оэс(2 .
ехе, котфол п(гимгнялась в гфедмдусаих вфсиях дея раоотьс с интффейсом командной строки (но такая поддфяска п)гедусмосфена лишь дгл ойспенения обратной совместимости). Кваме того, в документаиии можно вот(гетить 412 Глава 11 упоминание о прог])амме 1 яс]1 . ехе (ното])ую не оидует путать с 1 я с]1 и . ех е)1 ну)ое])амма 1яс]1 и.
ехе выполняла в пРедыдуи1ик ве])силн такое же назначение, кан и ояс11 . ехе. Но начиная с версии БЯА $счпег 2005, просу)альма 1яс11. ехе больше не поддерживается. Основные сведения о сценариях С формальной точки зрения сценарием считается совокупность операторов, хранящихся в виде отдельного файла, который может вызываться на выполнение и использоваться повторно. Сценарии БОЬ хранятся в виде текстовых файлов. В программе БОЬ Бегчег Мапаиешепг Б(пЖО предусмотрен целый ряд инструментальных средств, позволяющих упростить написание сценариев. В основном окне ввода запросов этой программы применяется цветовое выделение, которое позвогяет не только распознавать ключевые слова, но и определять их назначение.
Кроме того, в программе Мапаяешеп( Бшбю предусмотрен пошаговый отладчик, даны образцы кода, имеется браузер объектов и т.д. Сценарии обычно рассматриваются как отдельная единица работы. Это означает, что в обычных обстоятельствах сценарий либо выполняется полностью, либо вообще не выполняется. В сценариях могут использоваться и системные, и локальные переменные. В качестве примера рассмотрим сценарий, который применялся для вставки строк о заказах с помощью оператора 1)(БЕЕТ в главе, посвященной представлениям (глава 10): ОЯЕ Ногспч1пб ОЕСЬЬНЕ 61беос кос 1ИЯЕат 1НТО Огбегз (Сиясоиег10,огбегОаге) ЧАЬОЕЯ ( Ь).РК1', ОЯТЕЛОО(баУ,-1,ОЕТОЛТЕ())) БЕЬЕСТ 61беос = 661ОЕИТ1ту 1ИЯЕЕТ 1ИТО (Огбег Оеса11я] (Огбег10, Ргобчсс10, ОпТСРг1се, Очапгуьу) ЧЯЬОЕЯ (61бепс, 1, 50, 25) ЯЕЬЕСТ 'Тпе Огбег10 ос Сне 1НБЕатеб гоч Тя ' + СоиЧЕВТ(чагспаг(Я),61бепх) В этом сценарии применяются шесть различных операторов, которые показывают, какие разнообразные действия могут осуществляться в сценарии.
В сценарии используются системные и локальные переменные, операторы ОБЕ и 1ИЯЕЕТ, а также две версии оператора БЕЬЕСТ вЂ” с операцией присваивания и обычная. Все эти языковые элементы взаимодействуют в целях осуществления общей задачи — вставки в базу данных заполненных заказов. Оператор оЗе Оператор ОБЕ сообщает, какая база данных должна стать текущей. Действие, осуществляемое этим оператором, отражается во всех местах сценария, в которых используются заданные по умолчанию значения для той части полностью уточненного имени объекта, которая применяется для обозначения имени базы данных. В данном конкретном примере не приводилась информация о том, в какой базе данных находятся таблицы, применяемые в операторе 1](БЕРТ или БЕЕЕСТ, но поскольку в этот Сценарии и пакеты 413 сценарий оператор РБЕ включен перед операторами 1МБЕКТ и ЯЕРЕСТ, в данных операторах используется указанная база данных (в рассматриваемом случае ногььн1п<1). А если бы оператор РЯЕ не был предусмотрен, то оставалось бы лишь надеяться на то, что пользователь, вызывающий сценарий на выполнение, позаботится об указании в качестве текущей именно той базы данных, которая требуется.
не:,следует.:рассматривать: ато ггггвсне<ние,:кйк, 'намек'на,'то,,'что,е<::Сценарии-;всегдга: сгйедуйт ВКЛЮЧа>тЬ ОПЕратбры:РБЕ; йОСГКОЛЬК<у, НЕОбзрдИМЕазь: а'ИСПОЛЬЗОВАНИИ'та<КДГО'.ОПврртбра ж; аисйг.'от н>аййачения::сцйнарир,",В.честняги;:-'если'сценарий:,дреднйайачендля универсрль,' йОГГОГПрйМа>апачийя;- те ф>ахгтНЧЕГС<КИ'Межует:П<О<тургйбОа<тгояуИЙКЛ ОЧИтЬ':ОПа<ратсрЪБЕ. 'Как правило' 'оператор',,'вел"требуется;,;-если;-а'огценарии:иопоаьзуются'табли4ьгкакгой'.;то КО<нхуратйЕУй: баем ДаннЫК,1иными:смоейми ттаблнпдй" отлипч<ные от:,сгнотЕМнмхг;-:ггсг-:МНЕНИЮ авторра,",оператор;:юе' йтановитси.тйажа.:необходимым,: вол>и;сценййий' р<рьад>надначйн;~тГая гйрдификййии крйкйетйойбййыдййййк;..—,"'Фгйк былОдкйзййо вйдедыдуцйгх главах; на, под.-', даЕтоя ОПИСайИКГ' КОЛИЧаотас: ГдуваЕВ';: В 'КОусгрЫКМЕррадгиаМЕрЕНГНО,;МЗдйВаЛОСЬ'-:бОЛЬщк'ОЕ количество.таблиц;а:базе'данныхяьквтет;,,тогда как ети'таблицы'|ьгли',предназуначуены два 'ПОЛЬЗОЕ<а<тЕЛЬСКСГт баЗЫ даННЬГХ< За оператором РБЕ в рассматриваемом сценарии следует оператор РЕСРАЕЕ с объявлением переменной.
Оператор РЕСРАНЕ кратко упоминался в предьпгущих главах, а в этой главе приведено более подробное его описание. Объявление переменных Оператор РЕСРАРЕ имеет следующий довольно простой синтаксис: РЕСьАКЕ 6<чаг1аЬ1е паве> <уаггаЬ1е Гуре>[, 6<чаггаЬ1е паве> <яагьаЬ1е гуре> О 6<яагьаЬ1е паве> <чаггзЬ1е гуре>Н С помощью оператора РЕСРАЕЕ можно одновременно объявить одну или несколько переменных.
На практике часто приходится сталкиваться с тем, как в сценарии используется отдельный оператор РЕСРАЕЕ для каждой объявляемой переменной, вместо указания одного, разделенного запятыми списка переменных в одном операторе РЕСРАЕЕ. Безусловно, разработчик вправе сам выбирать тот или другой способ объявления переменных, но независимо от выбранного способа значение объявленной переменной всегда остается равным НРЬР, до тех пор, пока вместо него не будет задано какое-то другое значение. В данном случае объявлена как целочисленная одна локальная переменная 61оепг.