5.4. Особенности работы с БД из Web-приложений
Остановимся подробнее на решениях, наиболее приспособленных для под¬держки баз данных из web-приложений. Если конкретизировать, то речь пойдет о базах данных, используемых при написании так называемых web-сценариев.
Как известно, интернет-сервис www (word wide web) позволяет с помощью специальных программных средств - браузеров (web browser), самым распространенными из которых являются Internet Explorer и Mozilla Firefox просматривать документы, размещенные на серверах в сети интернет. При этом документы вы¬полнены в формате HTML (hyper text markup language - язык логической разметки документов). Для отображения любой статической информации просто создается html-документ и размещается на сервере. Но довольно часто информация, отображаемая на web-странице, носит динамический характер.
Для примера приведем известные практически всем пользователям сервисы «гостевая книга» и «форум». Информация в гостевой книге или форуме изменяется самим пользователями. Очевидно, что в этих случаях необходима, как минимум, перегенерация web-документа. Похожая проблема возникает при необходимости поддержки новостных лент. Действительно, если новости меняются бук¬вально ежесекундно, то изменение html-документа вручную уже физически невозможно. Более того, отображение всех новостей, например, за последние несколь¬ко лет на одной странице невозможно в силу объема материала, а если бы и было возможно, то все равно потребовался бы механизм, позволяющий проводить по¬иск нужной информации. На первый взгляд, возникает необходимость поддержки мощных документальных баз данных. Но такое решение на практике также неприемлемо вследствие относительно трудоемких алгоритмов. На самом деле, проблема решается с помощью web-сценариев, под которым понимается программа, исполняемая на сервере и генерирующая html-документ, который необходимо отобразить в браузере, при каждом обращении со стороны клиента. При этом гибкость решения заключается в том, что информация, используемая при генерации html-документа, хранится в обычной фактографической базе данных, хранимой также на сервере в сети интернет. При этом данная база может храниться как на том же сервере, где генерируется документ, так и на другом сервере в сети Интернет.
При создании динамических web-документов следует выбрать, с одной стороны, язык для написания непосредственно сценариев, а с другой, СУБД, используемую для поддержки базы данных. Технологические вопросы создания web- сценариев выходят за пределы данного курса. Поэтому здесь ограничимся лишь тем, что одним из возможных решений является использование для создания сценариев специализированного языка php.
Что же касается выбора СУБД, то теоретически специализированные интерфейсы (ODBC, BDE - см. 5.5) позволяют web-сценариям взаимодействовать с различными СУБД. Технология вывода информации из базы данных в html-документ иногда носит название «web-публикации данных». Выбор СУБД, как и в общем случае, определяется конкретными задачами. Из коммерческих продуктов наиболее часто используется MS SQL и Oracle.
Однако, большинство задач, которые приходится решать при создании web- сценариев, прекрасно решаются с помощью свободно-распространяемой СУБД mySQL. Технология взаимодействия php и mySQL проработана детальнейшим образом, так как эти два продукта изначально ориентированы именно на совместное использование. Пример такого использования как раз и был приведен в пункте.

4.4.6. Кроме того, в mySQL очень удачно оптимизирован именно в сторону эффективности выполнения web-сценариев, где первым требованием является высокая скорость выполнения именно простейших запросов. Дело в том, что на практике при создании web-сценариев в основном обходятся простыми запросами, а приоритет скорости связан с тем, что и так возникают временные задержки при передаче готового документа, что потеря времени еще и при его генерации стано¬вится практически недопустимой. Любопытно, что именно в силу приоритета ско¬рости выполнения запросов над эффективностью хранения информации при со¬здании баз данных для web-сценариев чаще чем обычно применяются приемы де¬нормализации. Любые действия с базой данных в mySQL можно производить либо с консоли администратора, либо с помощью встроенных запросов в web- сценарии. Существует также и графическая оболочка - phpmyadmin, кроме всего прочего представляющая собой демонстрацию совместного использования php и mySQL.