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

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

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

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

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

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

4анные 6' введенных закагзах, отчастй теряют,':смысл', если яесво)змчожнб,определить, какой' 'служа)ций ввел:эти заказы; С'другой стоббны;"операция,, прбдусмйтриааю)лдб смену'иден-.. тифбкатогра служащего:, может оказаться вполне доп))от)ямой:(даже если можетс()здатьоя ' впечатление, что лричийегдля выполнения;тсакого'дейстгвия является;весьма надуманной)'.: '.

Дело атом:;, что отрицателы)ыхлоследствийсмены идентиФиквтора Служащего можно из- . ::бежать, лредУсм6треа е таблица огс~егв: койвтрукцию ОАЕСВРЕ, дапуСКЕюЩуЮ(сбиовленив;: -Йа';оснуовании изложенного: мчохо)о сделать' 'еще один 'вывод'- — ' применение,хонструк(ахи' . Олэсйое поотноашуегнию колерациям обйовления иудгалейиянедолжноч быть основййо на , одинаковом псс ходе; Возможность иелолвзования указанной конструкции в обоих этих слу-: чаях должно бассматливатьсл отдельно'(и анализироваться очень тщательно).

Ограничения 233 Вполне очевидно, что даже после определения внешнего ключа только на одной таблице фактически налагаются конкретные условия на некоторые действия, осуществляемые применительно к обеим таблицам (а если внешний ключ ссылается на ту же таблицу, то оба набора условий распространяются на одну и ту же таблицу). Ограничения оы~ЯоЕ ; ЙОтяьИЧИЕОтОГраНИЧ5вййя ЛЕраИЧНОГО КЛХ)на„'ПрИИЕНЕНИЕ ртраНЛИЧЕН)(я СИ1()ИЕНЕ Прнацант-' , К,ТСМУ,'ЧТО аатсиг'атИЧЕСКИ-:ИСКЛЮЧаатов:ЯРЗМОФНОСТЬ'аотаантвьа:СдотавтотаУ(СЦ(нй.СТСЛФЕЦ ::, (х()0:,зйачейие;:В да))нбм случае возмшкйрсть п()имейе)и(и МОи*значенийтзааисит отто)(С. ' "КаК Задала Олдня ИИЬЬ дяя ухаэаННОГС СТОЛбца тМЛИ((((„йа СЛЕдуатгуЧИтыаатычлтс дажЕ"" :еряиертйака",ис)О:,здачрний разрешена,"(рактичйсди доиускаетре(вставка",е столбец ус((ь:--' КО'ОдНОГО ТЕКЕ(т) ЗНаЧЕНИИ(ХОтя: Одйр МЙА-ЕНЕЧЕИИр НЕ раанв. друтЕМу М)Ы.гэвакрНИК); В ТОЧКИ ЗРЕНИЕ,ПРгИМЕНЕНИИ,,ОГРаНИЧЕНйиь)ИХДЖ ЕтнаНаЧЕНИЯ'-аоЕРааНОРЕССМатРИВЕЕТУСИ:.

иек дублйкеты)( Итак, к описанию данного ограничения больше нельзя что-либо добавить (к тому же прн его изучении применим основной объем сведений, касающихся первичных ключей), поэтому приступим непосредственно к изучению примеров кода. Для этого создадим еще одну таблицу в базе данных Ассоппьгпд, но на этот раз наювем ее Я)тьррегэ: СВЕАТЕ ТАВЬЕ Яньррегэ ( Яитррег10 гпг РК1НАНУ КЕУ, Збтррегнаве чагснзг(30) АсЫгеэз чагс)|аг(30) стгу чагснаг(25) згзге с)1аг (2) зги чагснаг(10) Рвсвено чагсва (14) Ои1ООе 10ЕИТ1ТУ ИОТ ИОЬ1 иот ипьь, иот иоьь, ИОТ ИОЬЬ, ИОТ ИОЬ)., иот ипьь, ИОТ ИОЬ1 Тема, касающаяся ограничений ОИТЯОЕ, является относительно простой.

По существу эти ограничения почти полностью соответствуют ограничениям первичного ключа, поскольку требуют наличия уникальных значений во всем указанном в них столбце (или в комбинации столбцов) таблицы. Ограничения ОИ10ОЕ часто называют ограничениями альтернативных ключей.

Основные различия между ограничениями ОИ10ОЕ и ограничениями первичного ключа состоят в том, что в качестве ограничений ОИ1ООЕ обычно не применяются уникальные идентификаторы строк таблицы (даже несмотря на то, что данные в столбцах, на которых определено ограничение ОИЬЯОЕ, фактически могут использоваться таким образом), а, кроме того, на таблице может быть задано несколько ограничений ЫИ1ООЕ (напомним, что в расчете на каждую таблицу может быть задан только один первичный ключ).

После того как будет задано ограничение ЫИ1ООЕ, должно соблюдаться такое условие, чтобы все значения в столбцах, указанных в этом ограничении, были уникальными. При обнаружении попытки обновить или вставить строку со значением, которое уже имеется в столбце с ограничением уникальности, СУБД ЯОг. Яегчег вырабатывает сообщение об ошибке и отклоняет попытку ввести такую строку. 234 Глава 6 После этого необходимо вызвать на выполнение процедуру яр [те1рсопясга100 применительно к таблице Я[г1ррегя и проверить, действительно ли таблица Яйтрре гя была создана с учетом требуемых ограничений.

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

С д[тугой спкфоны для обозначения не)уличных нлюъш и внтиних ключт1 применяются аббревиатуры рк ~Ртттату Кеу) и ЕК (Роте(дп Кеу). А в именах ограничений УМ1ЯУЕ часто исполыуетсл префикс УЯ или тфостло У. Ой РЕЕНИЧЕНИай СНЕСК Таблица 6.3. Примеры применения ограничения СНЖСК Назначение Код Зй[. Ветхеен 1 лнр 12 Обеспечение применения в столбце иопсп только допустимых значений 11КЕ ' [0-9[ [0-9[ (0-9[- [0-9[ [0-9]- [0-9[ [0-9] [0-9[[0-9[' Правильное форматирование номера карточки социального обеспечения ти ('ОВЯ', 'Гаа Ех', 'УЯВЯ'[ Регламентация списка допустимых значений в поле ялгррега Ог1сгшсе >= 0 Регламентация применения только положительных значений цены ЯвьрОака >= огавсрате Ссылка нв другое поле в той же строке Удобным свойством ограничений СНЕСК является то, что эти ограничения не обязательно должны применяться только к какому-то конкретному столбцу. Безусловно, указанные ограничения могут относиться лишь гс некоторому столбцу, но также допускается их распространение по существу на всю таблицу, в том смысле, что с их помощью может осуществляться проверка значений в одном столбце на основании значений другого столбца [при условии.

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

Примеры критериев, которые могут применяться в ограничении СНЕСК, приведены в табл. 6.3. Ограничения 2Ы В действительности в табл. 6З приведена лишь незначительная часть всех возможных примеров, поскольку количество вариантов применения различных операций сравнения в конструкции СНЕСК является практически бесконечным. В ограничении СНЕСК может быть задано почти любое такое же выражение, которое допускается задавать в конструкции ИНЕНЕ.

К тому же ограничения СНЕСК позволяют достичь гораздо более высокой производительности по сравнению с альтернативными средствами проверки допустимости данных (правилами и триггерами). Продолжая ряд примеров, основанных на использовании базы данных АссоппС1пд, внесем в таблицу СРБСовегя изменение, позволяющее проверять допустимость даты в поле РаСе1пЯузгев (это — поле системной даты, в котором не может находиться значение будущей даты): АЬТЕН ТАВЬЕ Спзповегз АРР СОНБТЕАТНТ СН С С Рагетпзупгев СНЕСК (Рапе1пБуппев <= СЕТРАТЕ ()) Теперь попытаемся выполнить вставку строки со значением, нарушающим ограничение СНЕСК; эта попытка доллгна привести к возникновению ошибки: 1НЯЕНТ 1НТО Сппговегз (Спвговегнап1е, Ае(г(гевз1, Ае)пгезз2, Сггу, Бгате, 21р, Соптасп, рпопе, Гег(гоно, Рзпетпзузпев) ЧАЬРЕЯ ('Спвгпвегт', 'Ае)п' езп1', 'Апп2', 'МуСТСу', 'Но Сопгасп', '553-1212', '930984954', '12-31-2049') Мпч 547, Ьече1 16, ЯСаге О, Ьтпе 1 Тпе 1НЯЕЕТ згагевепг соп111сСес)нгСЬ Спе СНЕСК сопзгга1пг "СН СппговегРаге1пзузгев".

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

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

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

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