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

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

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

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

Более того, страницы выполняются одним из потоков Тотсаг, а не независимым процессом. Это означает, что для выполнения ТЯР-страницы требуется гораздо меньше памяти и процессорного времени, чем для выполнения сравнимого по функциональности СС1-сценария. Примеры 48Р-страниц В этом разделе описываются две простые (ЯР-страницы. Первая страница пред- ставляет собой !ЯР-версию класса Вепега!ТаЬ!е, показанного в листинге 16.1. Вто- рая реализует логику работы метода 1пзегГОа!а (листинг 16.2) в классе дача Ьеап, который затем вызывается из другой )ЯР-страницы. Запрос чбР-страницы Отклик ЗВР-страницы Рио. 1б.2. Процесс компиляции ЗВР-страницы нродОля<книеи> Оегтега!ТаЫе4вр В листинге 16.3 изображена!ЯР-страггица, выводящая содержимое любой таблицы из базы данных Му5() Т.

под названием чг!. Эта страница по своему формату и логике работы очень напоминает страницу Ое пега!ТаЬ!е. азр в листинге рис. 1ЯА. Предполагается, что пользователь передает странице иия таблицы в качестве параметра. Листинг 1В.З. Страница Сепега!Таб!е.!зр <!ООСТТРЕ НТМС РОВС!с "-/!ИЗСГ!ОТО НТМС 4.0 Тгаяз1Г1опа1ОЕИ"> <!-- Ехагр1е оГ ОасаЬазе Ассезз Тгоп а 05Р Раде --> <$9 раде 1арогг="зача.зо1.*" Ж> <НТМС> <НЕАО> <Т1ТСЕ>ТаЬ)е Отзр1ау Оз1пд ГРОВС апо Му5ОС</Т1ТЕЕ> <МЕТА ИАИЕ="ацьпог" СОИТЕИТ="Оачгд КгоепИе"> <МЕТА МАМЕ="кеуиогбз" СОИТЕИТ="СЯР, ООВС, ОатаЬазе Ассезз"> Зача беп/ег Рацез 623 5тлС. с1озе() сопл. с1азе() // П Очистка гз.

с1азе() : 622 Глава 1б. З()ВС, Зача Яегчег Радев и ддуЯОС Листинг 18.3 (продолжение) <МЕТА ИЯМЕ=тйезсг!рстоп" СОИТЕНТ-Гдп ехавр1е ат а!яр)ау!пд а Саб)е из!ад З5Р."> <С!НК КЕС=5ТУЕЕ5НЕЕТ НЙЕГГ"05Р-5Су1ез.сзз" ТУРЕ="СехС/сзз"> </НЕАО> <ВООУ> <Н2>0аСаЬазе Лссезз Ехавяр1е /Н2> <Ж, 5СЫ пд чагТаЬ)еНа!ле= гециезС.деСрагал!еСег ("Таа)е") ; чагТаа)еИане = чагТаа)енаве.СоиррегСазе(); Ж> <НЗ>5лои!лд Оа(а Тгол Му50С ОаСаЬазе чг1</НЗ> <Ж Сгу ( П Загрузка драйверов ЗОВС Марка Мэтьюса С1азз.гагНатве ("агд.д)С,вп! в!узц1.0г!чег").пеи!пзсапсеО // Устанавливаем соединение с базой данных чг) как пользователь аК1 5сг!пд сапп5сг!пц = "заьс ивузц1://1оса)ьазс/" + "чг1" + "?изег=ак1"; Саппест!оп сопл - ОгтчегМападег деССаппесС!'оп(сопп5Сг!пд), П Получаем гз и гзМеСа для оператора 5ЕЕЕСТ 5Сател!епС зСл!С = сапп.сгеаСе5СаСенепС (); 5Сгтпд чагВОС = "5ЕЕЕСТ * ГНОМ " + чагтаЬ)еИа!ле: Йези1С5еС гз = зСл!С.ехеситеОиегу (чаг5ОС); Кези1С 5еСМеСаОата гзиеСа = гз.цеСМеСаОаса () , Ж> <ТДВСЕ ВОКОЕЙ=1 ВОСОСОК=!(ттттгт СЕСС5РДС!НО-5><ГОНТ ГАСЕ=ГДг!а)" СОСОК У000000 ><СЯРТ!ОИ><В <Ж=чагТаЬ)еНа!ле Ж></В></СДРПОИ></ГОНТ> <ТНЕЯО><Ж 5СЫ пд чагСо1Масез =""; тпС чагСа1СаипС = гзМеСа.деССо1ив(пСаипС (); Саг (тпС са1 =1; со1 <= чагСо1СаипСО: со1 -) Ж> ТН ВЯСОСОЙ=(!сцсОс0 ВОЙОЕКСОЕОЙ=()000000 ГОНТ 5!ЕЕ=2 ГАСЕ ="дг!а1" СОСОК=0000000 Ж-гзМеСа.деССо1ил!пда(ле(са1)Ж /ГОНТ>()пазр: </ТН> <Ж )Ж> </ТК> </ТНЕДО> <ТВООУ><Ж иКп )е Егз.лехе ()) ( Ж><ТЙ иДС1ОИ-.ТОР><Ж Таг (тлС со) - 1: са1 <= чагСо1СоипС: са1 .+) Ж><ТО ВОЙОЕКСОЕОК=УСОСОСО КРОИТ 512Е=2 ГАСЕ-Гйг!а1" СОСОК КО00000 ><Ж=гз.деС5Сг!пд(са1)Ж ВЙ /ГОНТ></ТО> <Ж сатсл (С1аззМоСГоипаЕхсерСтоп е) ( аиС.ргтпС1пГ'Ог!чег Ехсерстоп " + е) )Ж> </ТК> </ТВООУ> <ТГООТ</ТГООТ> </ТДВСЕ> </ВОВУ> </НТМС> На рис.

16.3 показаны результаты вызова этой страницы из браузера !псегпеС Ехр!огег на компьютере под управлением %)пт(атчз 2000. Сама страница обрабатывалась Тощса( на компьютере под управлением Е)пих. Обратите внимание на вызов порта 8080: в коммерческой системс То!ноас работал бы вместе с Арасйе иа заданном по умолчанию порте 80. и указывать номер порта не требовалось бы.

Рис. 16.3. Результат вызова страницы Оепега(таые В листинге 16.3 весь )ача-код выделен красным цветом. Первая строка вызывает каталог страниц, загружая библиотеку)ача.вц!. Затем с помощью метода деСРагалтетет НТТР-объекта гедиезС считывается параметр, содержащий имя таб- чача Зегчег Радев 625 51гтпд пеийвще - "цпйпаип": 51г1пд пеидгеаСаае = "": 5ьг)пд пеиСоса1йащЬег - ""; 5тщ пд пеийа11опа11ту = ""; рв ча1е ргт чате ргт ча1е ргтчате рць)тс 5тщпд деспеииаще[) ( гетцгп [пеийаще); Сптв,пеийаще = "цпцпоип"; рца)тс 5$в пд дегпеиЯгевСоае Г) ( ге1агп [пеидгеаСоае); ) рцЬ)тс с1авв Савтащег!пвегтдевп ( ородолжениеох 624 Глава 16. о[)ВС, дача Яегчег Радев и ЛдуЯС)С лицы.

Полученная строка преобразуется в строку верхнего регистра. Далее загружаются классы )Г) ВС, как зто делалось в листинге 16.1, и создается соединение с базой данных чг1 для пользователя бй1. Остальной код тот же, что и в листинге 16.2, — он просто разбросан среди операторов НТМГ., используемых для вывода результатов, Опять-таки, эта страница кажется обманчиво похожей на свою АБР-версию, бепега!ТаЬ[е.авр, приведенную в главе 15. Разница заключается не только в том, что вместо АГ)О и ОВВС используется )Г)ВС.

Более важно то, что эта страница будет скомпплирована в )ача-программу, а следовательно, станет переносимой и заработает быстрее. Сив1огпег!пвег10вдпдВеап.гавр Поскольку в ) 5Р-странпцах используется )ача, разработчик имеет в своем распоряжении всю мощь полноценного объектно-ориентированного языка программирования. Это означает, что)ЯР-страницы могут вызывать предварительно скомпилированные объекты. Это важно и полезно по множеству причин.

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

(Если вы не являетесь )ача-программистом, можете пропустить следующий абзац. Что касается классов дача Ьеап — просто вообразите себе)ача-класс с примерным поведением, который не стыдно показать мамочке.) Говоря простым языком, класс дача Ьеап — зто класс, обладающий тремя свойствами. Во-первых, у него нет открытых (рцЬГ[с) переменных.

Во-вторых, обрагцение ко всем постоянно хранимым значениям происходит с помощью методов с названиями вида дегххх и ве[ххх. Например, значение вууа[це считывается с помощью метода де1вуЧа[це() и задается с помощью метода ве1вууа[це(). В-третьих, класс Зача Ьеап должен либо не иметь конструктора вообще, либо иметь один явно определенный конструктор без аргументов.

В листинге 16.4 показан класс )ача Ьеап под названием Сцв[овег[пвет1[)в[пдВеап. Этот класс имеет метод, реализующий логику работы процедуры Сов[свет[олег[ базы данных галереи Ч[етч й[бде (да, зто опять она! Но в последний раз). Этот класс имеет четыре постоянно хранимых значения пеийаве, пег АгеаСобе, пеьчСоса[йцвЬет и печкйа1[опа[[гу. Для каждого из этих значений определены два метода доступа — детХХХ и ве1ХХХ. У класса нет ни открытых постоянно хранимых значений, ни конструктора.

Следовательно, класс Сцв1овет[пветь0в1пдВеап удовлетворяет определению класса )ача Ьеап. Листинг 16.4. Класс Сцв1огпег[пвег[Вевп тщрогт .)ача.1о.*; щрогт дача.вц1.*, !** класс дача ьеап для процедуры сцвтощег!пвегт базы данных чтеи к!аде. Доступ к постоянныи значениям осуществляется с поиощью иетодав дегххх и ветххх.

Процедура добавляет нового клиента, если ега еще нет в базе данных, а затеи ассоциирует его со всеии художникаии выбранной национальности. * вставляя соответствующие строки в таблицу пересечений. *) раа)1с чета ве1пеийаще [5ьг~пд пеийаще) ( 11 Гпеийаще != пц11) ( Сйтв.пеийаще = пеийаще; ) е1ве ( раа)тс кота ве1пеиАгеаСаае [51впд пеидгеаСоое) ( тт [пеиАгеаСоае !=па11) ( 1птв пеидгеаСоае = пеидгеаСоае; е1ве ( СЬ1в.пеийаще = "" риа)1с 5тгтпд деспеиСоса1йцщаег Г) гесцгп Гпеи[оса1йцщбег); раЬ1тс уота ветпеиСосв1йсщЬег [51г1пд пеиСоса1йцщаег) ( 11 ГпеиСоса1йцщЬег != пц11) ( татя.пеиСоса1йцщаег = пеиСоса1йцщаег; е1зе ( тптв.пеийаще = ""; 626 Глава 16. ЗЕВС, Зача Зетчег Радев и ВДУЯОЕ Зача 8ептег Радев 627 Листинг 16.4 (продолжение) риЫтс 5бгтпд деьпешМа(1опа1тфу () ге!игл (пешнатпопа11(у); риЫ тс чотб ветпешнатзопа1тту (5вг1пд пешдав1опа)тву) (.

(пеидаппопа11ту ! пи11) татя.пешдаттопа11ту = пешлаттопа1)ВУ, ° ( тлтз.пешМаве = риЫ тс 5тгт'пд !пзегтОа(а() вгу ( О Загрузка драйверов ЗОВЕ Марка Мэтьюса О вв,вузд1.ЗЬЬс-! 2с С1аэз,погшаве ("огд.д) .вв.вузо1.0гтчег") .пеш!пв(апсе () // Устанавливаен соединение с базой данных чг1 как пользователь бк), // без пароля 5тгтпд сопп5тгт'пд = "ЗДЬс вузц1://1оса1лозв/" . "чг1" ' "?изег-ЬК1"; Соппесттоп сопл - ОгтчегНападег,детСоппест1оп(сопп5шгтпд) ; // Соединение установлено. Далее идет проверка на дублирование данных.

5ватевеп! втвт = сопл.сгеа(е5татевепт ( ) ; 5тг1пд чаг50Е = "5ЕЕЕСТ Маше ", 5(гппд чагдпеге = 'ц ВОН СО5ТОНЕК КИЕВЕ Маше= '"; чагшлеге = чагшпеге ~ пешнаве + "' АМО АгеаСобе = '" ; чагилеге = чагМЛеге + пешАгеаСобе + "' АМО Рлопеципоег чагНПеге = чагЖеге + пеиСаса1МивЬег ~ "'": чагЩ = чаг50Е ~ чагылеге, Мези1т5ет гз = заев!.ехеси(еОиегу (чаг50Е) ; шЫ 1е (гз.пехь ()) ( // Икаются дублирующиеся данные. гв.с1ове() звало.с1озе() ; сопл.с1озе(): геьигп (" Данные дублируются - никаких действий не предпринято "); // Все в порядке, теперь ножно добавлять новые данные чаг50Е = "1МЗЕВТ !МТО СОВТОНЕМ (шаве, АгеаСобе, РлопеМивЬег) чаг50Е = чаг50Е + " ЧАЕОЕ5 ('" + пешцаве + "', чаг50Е = чаг50Е + пешдгеаСобе + "', чаг50( = чаг50Е + пеш~ оса1МивЬег + "')" ; тпв геви1! = зввт.ехеситедрбате (чаг50Ы .

тТ (гези1( == О) ( О Овибка при вставке гз.с1озе() зтвв.с1озе(): оопп.с1озе(): ге!игл (" Ошибка при вставке"); // Обновление прошло Успешно; теперь нужно добавить строки в таблицу пе ний // Для этота лолучаеи идентификатор нового клиента чаг50Е '5ЕЕЕСТ Сиз човег!О ' + чагКеге гз = зввь.ехесите0иегу (чаг50Е); 5(гтпд чагСтб шЫ 1е (гз.пехь () ) ( чагС1с = гз .де(5тгт од(1 ) : 1Т (чагСтб -= "О" ) ( П Не удалось получить идентификатор нового клиента гз.с1озе(); зтвт.с1озе(); сопл.с1озе(): ге(игп ("Не удается найти нового клиента после вставки"); // Теперь добавляеи строки в таблицу пересечений чаг50Е = "5ЕЕЕСТ Агттвт!О РКОН АМТ!5Т ННЕМЕ Маттопа11(у - '" - пешМаттопа1т(у +"'"; 5ьгтпд чаг!пзегт5пагт = "!М5ЕЙТ !МТО СО5ТОНЕМ Акт!5Т 1МТ (Сизтовег!О. Агттзт!О) ЧАЕОЕ5 †)(" + чагСтб - ".

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

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

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

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