Главная » Просмотр файлов » Теория и практика построения баз данных

Теория и практика построения баз данных (1088289), страница 105

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

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

Кластеризованные индексы обеспечивают более быстрое получение данных, чем некластеризованные. Обычно они оказываются быстрее и при обновлении, но не в том случае, когда много обновлений происходит в одном и том же месте в середине отношения. За дальнейшей информацией обращайтесь к документации на 5Я1 5егуег. Существует много способов обработки баз данных 5Я? 5егчег. Вы уже видели, как с помощью анализатора запросов ()вегу Апа!угег можно запускать на выполнение 5Я?.-операторы.

До сих пор мы пользовались этим только для создания структур базы данных, но таким образом можно выполнять 5ЯЕ-операторы любого типа. Далее, обработка структур и содержимого базы данных возможна с помощью прикладных программ на таких языках, как У?зца! Ваз?с, !ага, С№ или С.у-у, с использованием для доступа к данным технологий Асг!че С?ага ОЬ?есгз, ОВВС или)??ВС. Примеры реализации етого подхода для обработки данных через Интернет будут продемонстрированы в главе 15. Третий способ доступа к базе данных заключается в написании процедур па языке ТКА?х?5АСТ-5Я?.

Этот язык расширяет базовые возможности 5Я?, добавляя в него элементы программирования — параметры, переменные, условные операторы 18 циклы ?№Н?СЕ и т. п. ТКА?хт5АСТ-50?. играет .гу же роль для 5Я?. 5егчег, что и Р?./5О1 — для Огас1е. Программы, написанные на ТКАХБАСТ-БЯ?., можно передавать на выполнение СУБД через Оцегу Апа!ухег, хранимые процедуры или триггеры. В данном разделе мы рассмотрим каждый из зтих способов. Процедуры на ТКА?х?5АСТ5Я?. можно также вызывать нз и еЬ-сценариев, как вы узнаете нз главы 15. Хранимые запросы Представим себе, что каждый понедельник утром менеджер Ъ'!еъ КЫ8е хочет получать список всех произведений, предлагаемых к продаже галереей в настоящее время.

Один из способов сделать это — написать 5Я?;запрос, показанный на рис. 13.18. Этот запрос возвращает атрибуты Арбат!1апте, П(?е и Сору каждой картины, для которой столбец Сизгощег?0 в таблице ВОЯК равен нулю (то есть каждой непроданной картины). е=ауттфауатж::",':" - ь?ц(в? Ив" ,Еи т, ву с в сувчун сна, а.~Сии '::Вьесь! !?В '!''!',!::,!ро ВЮВ~Ф!Е еьиусутсув ?еиутвцааиивсивв мииииу стасу тсиа 1 у су 488 Глава 13. Работа с базами данных в ВОС Яепгег 2000 Логика приложения 489 Чтобы каждую неделю не писать этот запрос заново, менеджер может написать его олин раз и сохраггтгть в файле. Затем пользователь запускает программу ЯО[ Оцегу Апа!ухег, открывает файл запроса и запускает его на выполнение.

Однако лля этого требуется, чтобы пользователи тимели доступ к 5Я[. Овесу Апа1ухег, что маловероятно, особенно если работа происходит не на том компьютере, который управляет базой данных. Кроме того, описанные действия слишком сложны лля пользователей. Предпочтительнее вариант с прикладной программой, выполняющей запрос и сообщающей пользователю результаты в более дружественной манере. Тем не менее, этот стиль обработки часто используется администраторами баз данных.

Они разрабатывают на ТРАП)5АСТ-5О1 процедуры, выполняющие многие рутинные задачи администрирования. Эти процедуры сохраняются в файлах и затем используются при необходимости, Хранимые процедуры Другой подход к обработке баз данных 5О1 Зегчег заключается в создании процедур на ТКАНт5АСТ-5ОТ и хранении их на компьютерах пользователей или в базе данных. Эти — так назъгваемые хранимые — процедуры могут вызываться по именам, и им можно передавать параметры. Например, оператор 1пзегСАЙТ15Т РАг(1ззйаще='Иа(тззе' вызывает хранимую процедуру 1пзеттАЙТ15Т и передает ей параметр фАг(1з(йапге со значением «Иа((ззе».

Такие процедуры могут быть сколь угодно сложными: они могут обрабатывать несколько баз данных, вызывать другие хранимые процедуры и функции и т. д. С приходом Интернета все более распространенным становится вариант, когда хранимые процедуры держатся в базе данных, а це распространяются по компьютерам пользователей. Т)(/еЬ-сервер и браузер вызывают хранимые процедуры и передают параметры по НТТР-соединению, установленному с помощью Асйце [)а(а ОЬ)естз или СОМ.

Мы продемонстрируем этот подход позже, в главе 15. Здесь же мы будем писать хранимые процедуры в БЯ[. 5егцег и тестировать их с помощью программы 5ЯТ. Оцегу Апа1узег. Это делается для большей наглядности. В реальности хранимые процедуры вызывались бы прикладной программой по локальной сети или Интернету, а не с помощью 5О[. Япегу Апа1ухег. Хранимая процедура Си81опзег 1пвег~ В листинге 13.1 изображена хранимая процедура, которая сохраняет в базе данных информацию о новом клиенте и связывает этого клиента со всеми художниками заданной национальности.

(Логтгка этой процедуры точно такая же, как и процедуры Сцповег 1пзет( в предыдущей главе.) Процедура имеет четыре входных параметра: фйеигйаюе, («гйеигАтеаСобе, фйеигРПопе и ®Иа((опа[1(у. Как вы можете видеть, параметры и переменные в ТВАТчтБАСТ-5ЯТ предваряются символом («>. Первые три параметра — это ланггые нового клиента, а четвертый параметр представляет собой национальности художников, которыми интересуется новый клиент.

Листинг 13.1. Хранимая процедура Сцзгогпег 1пзетг СЙЕАТЕ РЙОСЕООЙЕ Сцзтощег 1пзег( Рйенйапе слаг(50), РйендгеаСобе слаг (5), РйенРПапе спаг (8), Рйа11опа11зу сбаг(25) А5 ОЕССАЙЕ РСацпс аз зща111п1 ОЕССАЙЕ РАтб аз тп1 ОЕССАЙЕ Рбтб аз тп1 Проверяеи, нет ли данного клиента в базе данных */ 5ЕСЕСТ РСацпс = Сонат (*) ГЙОИ оба.С85ТОИЕЙ ИНЕЙЕ [Иаще]-Рйеийаще АИО АгеаСобе=РйендгеаСабе АИО Соса1йцщбег=РйенРПопе !Г РСоцпт > 0 ВЕ61И РЙ:ИТ 'Клиент уже есть в базе данных -- никаких действий не предпринята ЙЕТОЙИ ЕИО /* Добавляем нового клиента */ 1И5ЕЙТ 1ИТО г(Ьа С05ТОИЕЙ ([Иаще]. АгеаСабе Соса)йцщЬег) НАСОЕ5 (Рйеийаще, РйендгеаСабе. РйенРПопе) /* Получаеи новое значение суррогатного ключа */ 5е1есс РС)б - Сцзсоюег10 ГЙОИ г(Ьо.СО5ТОИЕЙ ННЕЙЕ [Иаще]=Рйеийаще АИО АгеаСобе=РйенлгеаСобе АИО Соса1йцщоег-РйеиРПопе /* Тепе ь создаеи запись в таблице пересечения для каждого художника Р соответствующей национальности */ ОЕССАЙЕ Аг1тз1 Сцгзог СОЙ50Й ГОЙ 5ЕСЕСТ Аг[1зС10 ГЙОИ т(Ьо.АЙТ15Т ИНЕЙЕ Иаттапа11гу=РиаС1опа11ту /* Обрабатываеи каждого художника указанной национальности */ ОРЕМ Агзтзз Сцгзог ГЕТСН ИЕХТ ГЙОИ Аг(тз1 Сцгзаг 1ИТО РАтб ИН1[Е РРГЕТСН 5ТАТО5 = 0 ВЕС(й 1И5ЕЙТ 1ИТО ((Ьо.[С05ТОИЕЙ-АЙТ15Т-1ИТ] (Агг1зт10, Сцззощег10) Логика приложения 401 СС05Е Аг1151 Сигзог ОЕАССОСАТЕ АгЬ150 Сигзог СО у т <1 <1 «1 <1 <! <1 <! 1ОО 50 555-1000 555-123< 555-топу 555.1236 %5-12тн 555-1000 зей«еу за«еу 206 Оа И 5«птн <25 тпа у тм!СМ 2О6 Г«еэ зпмыеуа 2О6 На у в СЬГ«нтнк 206 за!ьа Ога«п«0 206 зыа«УУ«) аи гу«оа зонта««206 1ООО 1001 1015 1ОЗЗ гоза 1036 шзу !Озо 490 Глава 13.

Работа с базами данных е 8С)С Яепгег 2000 Листинг 13.1 1продолжение) УАСОЕ5 (СА!11 СОС1г)) ЕЕТСН ИЕХТ ЕВОН Аг1151 Сигзог 1ИТО СОА1г) ЕИО Первая задача, которую выполняет данная хранимая процелура, — проверить, нет ли записи об этом клиенте в базе данных, Если соппг в первом операторе 5ЕСЕСТ оказывается больше О, это значит, что строка для этого клиента уже существует. В этом случае никаких действий не предпринимается, хранимая процелура выводит сообщение об ошибке и завершает свою работу. Это сообщение об ошибке, между прочим, будет видимым в снегу Апа1угег, но в общем случае не будет видимым для прикладных программ, вызывающих данную процедуру. Передать сообщение об ошибке пользователю через прикладную программу можно с помощью параметра или каким-нибудь другим способом.

Этот вопрос мы рассмотрим в последующих главах. Далее процедура вставляет новые данные в таблицу оЬо.С05ТОМЕР и считывает новое значение Соз(огпег10 в переменную гыСЫ. Чтобы создать соответствующие строки в таблице пересечения, открывается курсор с помощью 5О(.-оператора, который возвращает все строки пз таблицы АРТ15Т, в которых значение столбца Иа()опа(1(у равно значению параметра ЯИагтопаИу. Затем происхолит обработка курсора в цикле СООР, в ходе которой в таблицу пересечения С05ТОМЕИ АКТ15Т 1ИТ вставляются новые строки.

Оператор ЕЕТСН передвигает курсор на следующую строку. На рис. 13.19 показано, как с помощью этой хранимой процедуры, вызываемой из 5Я1 Оцегу Апа1ухег, добавить в базу данных нового клиента. интересующегося художниками из США. Процедуре передаются параметры, значения которых выделены красным цветом. На рис. 13.20 показано состояние данных в базе после выполнения хранимой процедуры. В таблицу С05ТОМЕР был добавлен покупатель Линда Джонсон (Еупг(а )ойпзоп) с идентификатором Сизгогпег10, равным 1038. Обратите внимание, что имеется три художника из США и что для каждого из них в таблицу С05ТОМЕК АКТ15Т 1ИТ была вставлена строка с Созгогпег10=1038. Для создания хранимой процедуры щелкните правой кнопкой мыппг на значке 51огео Ргосег)огез (Хранимые процедуры) и выберите команду Иеуу 5(огег) Ргасеоцге (Новая хранимая процедура).

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

Тип файла
DJVU-файл
Размер
9,56 Mb
Тип материала
Высшее учебное заведение

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

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