|
Программирование >> Программный интерфейс приложений
запросы, сколько бы ошибок не произошло. Профамма может обеспечить управление выполнением операторов, и таким образом выполняться избирательно в зависимости от успешного или неуспешного выполнения запроса. Более того, в зависимости от успешности или ошибочности выполнения одних операторов SQL можно передавать управление другим операторам SQL. Язык SQL не имеет достаточно хорошего механизма передачи данных, что унаследовано и утилитой mysql. Очень зафуднительно использовать результаты одного запроса в другом запросе или объединять результаты, полученные из нескольких запросов. В качестве редкого исключения можно назвать функцию LAST INSERT ID (), которая применяется для получения последнего сгенерированного значения в столбце с афибутом AUTO INCREMENT. В обшем, можно сказать, что очень сложно задать выборку набора записей, когда каждая из них будет лежать в основе сложных после-дуюших операций. Например, поиск списка покупателей с последуюшим просмофом детальной кредитной истории каждого может потребовать несколько запросов о покупателе. Вот другой пример задачи такого рода - создание счета-фактуры, в котором необходимо ассоциировать данные о покупателе из заголовка с данными из деталировки. Утилита mysql с выполнением этих задач не справится, потому что для их решения необходимо создавать ряд запросов, которые зависят от результатов предьшуших запросов и выходят за пределы форматирующих возможностей mysql. В целом, с определенной долей уверенности можно сказать, что для решения задач, заключающихся в выяснении отношений заголовок-деталировка , и задач, фебуюших форматированного вывода, фебуется инсфументарий, предоставляющий большие возможности, чем mysql. Это должна быть профамма, склеивающая запросы вместе и позволяющая использовать результаты одного запроса в качестве входных парамефов другого. СУБД MySQL можно интегрировать в любое приложение. Многие профаммы сильно выифают от возможности использовать данные из баз данных. Приложение, которому фебуется проверить идентификационный номер покупателя или наличие товара на складе, может это сделать с помощью короткого запроса. Web-приложение, предназначенное для выборки книг определенного автора, может сделать это посредством запроса из базы данных и затем предоставить полученные результаты на экран броузера клиента. Этого можно добиться с помощью рудиментарной интефации с использованием возможностей сценария оболочки, вызывающего mysql с файлом, содержащим операторы SQL, а затем обрабатывающего полученные результаты с помощью других утилит ОС UNIX. Но результат может получиться не очень красивым, осо- бенно по мере усложнения задачи. При доработке приложения может создаться впечатление, что оно работает хорошо, но на самом деле что-то не так . Кроме того, перегрузка демона создания процессов может превысить все допустимые пределы. Вполне может оказаться, что непосредственное взаимодействие с сервером СУБД MySQL и вызов того, что требуется в каждой фазе выполнения, будет гораздо эффективнее. В главе I, Знакомство с СУБД MySQL и SQL , по отношению к тестовой базе данных sampdb были намечены некие цели, которые могут оказаться причиной того, что для взаимодействия с базой данных необходимо написать программу. Некоторые из этих целей указаны в следующем списке. ш Получить список членов Исторической Лиги в формате, пригодном для печати. ш Сделать доступным список на Web-узле. ш Рассьшать уведомления о необходимости обновления членства по электронной почте. ш Упростить ввод оценок с помошью Web-броузера. Возможность интегрирования СУБД MySQL с Internet будет детально обсуждена в дальнейшем. Сама СУБД MySQL не предоставляет прямой поддержки Web-приложениям, но с помощью определенного инструментария базы данных могут стать легкодоступными из Internet. Запросы можно формировать с помощью своего Web-сервера и возвращать результаты на броузер клиента. Существует две дополнительные перспективы объединения СУБД MySQL и Web-сети. ш В фокусе внимания разработчика лежит его база данных, а Internet предоставляет собой лишь инструмент, обеспечивающий простой и надежный доступ к данным. Место базы данных в таком сценарии очевидно потому, что она лежит в фокусе ваших интересов. Например, можно создать Web-страницы, которые позволят просмотреть содержимое базы данных и структуры базы данных. При этом Web-сервер используется для того, чтобы расширить свой доступ к базе данных. Весьма вероятно, что именно такую точку зрения следует принять администратору СУБД MySQL. ш В фокусе ваших интересов лежит Web-узел, и вы хотите поднять ценность своего Web-узла с помощью СУБД MySQL. Например, в качестве инструмента ведения доски объявлений или дискуссионного стола можно воспользоваться возможностями СУБД MySQL. В этом случае роль базы данных достаточно скрыта, и посетители узла могут даже не знать о том, что СУБД MySQL вообще играет какую-то роль в предоставляемых узлом услугах. В таком случае СУБД MySQL используется для расширения возможностей Web-сервера. Этой точки зрения может придерживаться разработчик Web-узла. Эти два подхода нельзя назвать взаимоисключающими. Например, в сценарии Историческая Лига Web планируется использовать для предоставления ее членам простого доступа к содержимому списка членов Исторической Лиги через Internet. Здесь налицо использование возможностей Web-сети для предоставления доступа к базе данных. Добавление возможности просмотра списка повысит популярность узла у членов Исторической Лиги . Это значит, что использование базы данных расширит перечень услуг, предоставляемых узлом. Независимо от того, как вы видите интеграцию своей СУБД MySQL с Web, техническое решение будет выглядеть следующим образом. Соединение внешнего интерфейса вашего Web-узла с СУБД MySQL через Web-сервер. Web-сервер посылает запрос от пользователя на сервер СУБД MySQL, получает результаты и посылает их клиенту обратно на его броузер. Вам совсем не обязательно делать данные доступными, но в этом есть свои преимушества, особенно по сравнению с доступом к данным через стандартную клиентскую профамму СУБД MySQL. Пользователи, вводящие данные через Internet, могут это делать с помошью любого броузера и на любой платформе. В своем выборе они не офаничены только системами, на которых работает СУБД MySQL. Независимо от того, как распространены клиенты СУБД MySQL и на каких платформах они могут работать, броузеры все равно имеют более широкое распространение. Web-интерфейс может быть проще, чем автономный клиент СУБД MySQL с командной сфокой. Web-интерфейс адаптируется к требованиям любого приложения. Клиенты СУБД MySQL являются инсфументарием общего назначения с фиксированным интерфейсом. Динамические Web-страницы расширяют возможности СУБД MySQL до пределов, которые реализовать с помошью обычного клиента СУБД MySQL уже фудно, а порой и совсем невозможно. Например, нельзя совместить приложение, которое обрабатывает карточку покупателя, только с помощью клиента MySQL. Для создания Web-приложений можно воспользоваться любым языком профаммирования, но некоторые из них подходят для этих целей больше других. И это мы увидим в разделе Выбор API-интерфейса , дальше в этой главе. Глава 5. Введение в программирование в СУБД MySQL 257 9-1729
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |