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

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

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

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

В определенном смысле эти конструкции можно рассматривать как унаследованные от прежних версий ЬО?. Яегуег, но они не лишены определенных преимуществ. Несмотря на сказанное, нет смысла подробно описывать эти конструкции, и остается лишь порекомендовать ознакомиться с ними в такой степени, чтобы узнать требования к обратной совместимости и получить возможность работать с унаследованным кодом. Правила и заданные по умолчанию значения несовместимы со стандартом АХэ1 (в связи с чем возникают проблемы переносимости), к тому же они не позволяют достичь такой же высокой производительности, как при использовании ограничений. Корпорация М!сгозо11 перевела правила и заданные по умолчанию значения в категорию программных конструкций, поддерживаемых только для обеспечения обратной совместимости, начиная с версии 7.0.

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

244 Глава 6 Правила и заданные по умолчанию значения отличаются от ограничений прежде всего тем, как организовано их применение. Дело в том, что ограничения представляют собой свойства самой таблицы и не существуют как отдельно взятые конструкции, тогда как правила и заданные по умолчанию значения являются действительными объектами, существующими отдельно от других объектов. Ограничения определяются в составе объявления таблицы, а правила и заданные по умолчанию значения объявляются независимо, после чего выполняется их "привязка" к таблице.

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

Правила Правила весьма напоминают ограничения СНЕСК. Правила имеют свойства, аналогичные описанным выше свойствам ограничений СНЕСК, за единственным исключением, — область применения правил ограничена тем, что они позволяют работать одновременно только с одним столбцом. Одно и то же правило можно связать отдельно с несколькими столбцами в таблице, но это правило будет действовать независимо применительно к каждому столбцу, поскольку в нем вообще не учитывается наличие других столбцов. Это означает, что ограничение, определенное как ИсуЯН1ррес[ <= ОсуОгс[егео], не может применяться в качестве правила (в нем упоминается больше чем один столбец), а ограничение Ь1КЕ ( [0-9] [0-9] [0-9) ] может использоваться в этом качестве (оно относится только к тому столбцу, с которым может быть также связано аналогичное правило). Вначале определим правило, чтобы можно было проще показать его отличие от ограничения: СЕЕАТЕ ЕОЬЕ Яа1агука1е АЯ 6Яа1агу > 0 Здесь заслуживает внимания то, что сравниваемое с конкретным числом значение представлено в виде переменной.

В качестве этого значения могут быть взяты данные из контролируемого столбца, после чего осуществляется подстановка такого значения вместо переменной 6Яа1агу. Таким образом, в данном примере правило показывает, что столбец, к которому оно будет привязано, должен содержать значения больше нуля. После создания данного правила можно проверить, как оно представлено в базе данных. Для этого можно воспользоваться процедурой зр Не1ргехщ ЕХЕС зр Ае1рсехс Яа1агука1е После вызова этого оператора на выполнение отображается точное определение правила: техг СЕЕАТЕ ЕОЬЕ Яа1агунэ1е АЯ 6Яа1агу > О Ограничения 245 Непосредственно после его определения правило не выполняет никаких действий.

При попытке вставить строку в таблицу Емр1оуеея обнаруживается, что в текущих обстоятельствах допускается ввод любого значения без учета каких-либо ограничений, кроме обусловленных применяемым типом данных. Для активизации правила необходимо воспользоваться специальной хранимой процедурой яр Ь1пбгп1е. Предположим, что требуется выполнить привязку правила Ба1агурп1е к столбцу Ба1агу таблицы Етр1оуеев. Для этого применяется следующий синтаксис: яр Ь1пбги1е <'гп1е'>, <'оЬ)есС папе'>, (<'хпспгеоп1у 11ад'>] Часть < ' гп1е ' > этого определения является достаточно простой — в ней должно быть указано правило, подлежащее привязке.

Часть < ' оЬБ есС пате ' > также не представляет никаких сложностей — она указывает на объект (столбец или определяемый пользователем тип данных), к которому следует выполнить привязку правила. Определенные нюансы следует учитывать только при использовании параметра < ' Епсигеоп1у Е1ад' >, который применяется лишь в случае привязки правила к определяемому пользователю типу данных. По умолчанию этот параметр имеет значение оЕГ. Но если при вызове процедуры вр Ьвпбгп1е < ' гп1е ' > в качестве него будет задано тгпе или 1, то связывание правила будет осуществляться только применительно к новым столбцам, для которых задается соответствующий тип данных, определяемый пользователем. Во всех столбцах, для которых уже был определен тот же тип данных в старой форме, будет по-прежнему использоваться форма, для которой еще не было задано правило. В рассматриваемом случае происходит просто привязка правила к столбцу, поэтому согласно синтаксическому определению требуются только первые два параметра: вр Ь1пбго1е 'Ба1агуко1е', 'Еер1оуеев.за1агу' В данном примере интерес представляет параметр, заданный в качестве оЬ,'есС пате, — в нем указаны и имя таблицы Етр1оуеев, и имя столбца Ба1агу, разделенные точкой (.).

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

Если не используется структура именования саЬ1епаве. со1птп, то СУБД ВЯЬ Яегуег действует согласно предположению, что указанное имя относится к определяемому пользователем типу данных, а если таковое не обнаруживается, то появляется довольно непонятное сообщение об ошибке, относящееся к той ситуации, как будто была предпринята попытка привязки правила к типу данных: Мвч 15148, Ьеве1 1б, БСасе 1, Ргосебпге вр Ььпбгп1е, 11пе 190 Тье баСа Суре ос СаЬ1е со1птп 'Ба1агу' боев поС ехьяС ог уоп бо поС Ьате реге1вв1оп. После успешного осуществления привязки правила к столбцу попытка вставки или обновления строки таблицы Етр1оуеев с отрицательным значением в столбце Ба1агу приводит к нарушению правила и появлению сообщения об ошибке.

Чтобы отменить привязку правила к столбцу, можно воспользоваться процедурой яр ппЬ1пбгп1е: ЕХЕС вр ппЪ1пбгп1е 'Етр1оуеев.за1агу' Синтаксическая структурапроцедуры яр опЬЕпбгп1е также предусматривает возможность применения параметра Епспгеоп1у 11ад,причем, как и в случае проце- 246 Глава б дуры эр Ь1п<1ги1е, этот параметр не используется применительно к определениям столбцов. Если процедура эр цпЬ1п<1гц1е вызывается на выполнение с параметром Гцсогеоп1у 11ао, которому присвоено значение оп, а объектом действия процедуры является тип данных, определяемый пользователем (а не конкретный столбец), то отмена привязки распространяется только на те случаи, в которых этот тип данных будет использоваться в дальнейшем, а в существующих столбцах с указанным типом данных по-прежнему будет применяться то же правило. Удаление правила Если из базы данных необходимо полностью удалить определение некоторого правила, то можно воспользоваться оператором пеОР, применение которого было показано выше на примере таблиц: ОВОР ЕПЬЕ <ги1е пате> Заданные по умолчанию значения Заданные по умолчанию значения еще в большей степени напоминают свои аналоги, ограничения пееАпьт, чем правила напоминают ограничения снеск.

И действительно, заданные по умолчанию значения и ограничения РЕЕАПЬТ действуют полностью одинаково, а единственное реальное различие между ними заключается в том, что они по-разному закрепляются за таблицей. Кроме того, заданные по умолчанию значения (которые в отличие от ограничений представляют собой объекты базы данных) поддерживают определяемые пользователем типы данных. ДЛЕ 6ОЛЬ>ШИНСтаз НаЧИНашщИХ рзэй)а 6ст>ЧИКОЕ' бматавт'; ЧрЕЗЕЫЧайНО< трудНО ПОНята).'ЧЕМ':Отс ЛИЧаштея друт' От друта",ЗздаННЫЕ ПО уМОЛЧЕНИЮ."ЗНаЧЕНйя 'Н.'ОГрЗНИЧЕНИ)я'П<ЕёА))ът, ОСО<був йутаницу1 'вызывает то; что и те и другие кенструкдии1иыеют п>очт)и одинаковое йезначенйец А когаа)РЕч)у) идет'-,е:-",здоанноы, 'по'уыозлчаншР значенйи",:,несцднятно,'пОДреаумееакВся ли под а)йм)об<век)ыбезы десятника,".при)й~няемыеакечествезаденньвгпо)кеслчднйктзйачеййй (которым;Пооея))ИН) настояЩий-раздел),'-,илп.'крат«О обозначается,значение,"которое дейст)еи)тегльчноУИОПОЛЬзуЕтоя ПО;умолчание.:)е Том:Влучее',,'если>лене-'не-Зей>энп-'какое)либо, дейешительйой ЗнаЧЕниЕКА)йругдй:Ст>ороны',: йонятие>:.",огр1аНИче)иЕ ПЕРА)Ььт,'";отиеаится к тоойгкоеатрукции;::;которая,,йб оо)))бедна:на использовании огтдальНосо объзекга б>азыда>ннь)к;, йоскольк)ь:эта-конструкция я<вплетал< не>отъемпеыой чест1ьв:опреьделений'тпблпцль Синтаксис определения заданного по умолчанию значения во многом напоминает синтаксис правила: СНЕАтЕ ОЕРАцЬт <Еетаи1С папе> А5 <оетаи1с ча1це> Рассмотрим пример определения заданного по умолчанию значения, равного нулю, для столбца Еа1агу: СНЕАТЕ ОЕРАПЬТ 5а1агуоетаи1С А5 О И в этом случае заданное по умолчанию значение, не привязанное к какому-либо объекту, не выполняет реальных функций.

Для привязки заданных по умолчанию значений используется процедура эр Ь1поегац1с. имеющая синтаксис, идентичный Ограничения 247 синтаксису процедуры зр Ьупбгп1е (эти процедуры различаются только своими именами): ЕХЕС зр Ьгобесаи11 'Ба1агусетао1С', 'Еэр1оуеез.за1агу' Л для отмены привязки заданного по умолчанию значения к столбцу применяется процедура зр ппЬ1пбегап1гл ЕХЕС зр ипЬ1обеГаи1С 'Евр1оуеез.за1агу' Следует учитывать, что параметр Епс пгеоп1у Е1ао допускается применять также в вызове хранимых процедур зр Ь1пбегап11 и зр ппЬ1пбегап1С, но этот параметр также не используется применительно к столбцам. Удаление заданных по умолчанию значений Если из базы данных необходимо полностью удалить как объект заданное по умолчанию значение, то можно воспользоваться оператором РАЗОР, применение которого уже было показано по отношению к таблицам и правилам: РЕОР РЕГАСЕТ <бесао1С паве> Определение того, в каких таблицах и типах данных используются те или другие правила либо заданные по умолчанию значения Если в процессе эксплуатации базы данных возникает необходимость удалить или модифицировать правила или заданные по умолчанию значения, целесообразно вначале ознакомиться с тем, в каких таблицах и типах данных они используются.

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

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

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

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