|
В 1995 г. произошли два события, повлиявшие на судьбу Postgres. Во-первых, два
студента д-ра Стоунбрейкера - Эндрю Ю (Andrew Yu) и Джолли Чен (Jolly Chen) -
разработали SQL-интерфейс для Postgres.
Таким образом, через несколько лет после того, как Дэвид Хьюз впервые
разработал MiniSQL для использования SQL в работе с Postgres, у последней
появился настоящий SQL-интерфейс. Поддержка SQL вызвала рост популярности. Как
и в случае с mSQL и MySQL, рост популярности привел к росту потребности в новых
функциях. В результате появилась объектно-ориентированная СУБД среднего
масштаба с поддержкой транзакций, триггеров и вложенных запросов. Подробнее
узнать о PostgreSQL можно на http://www.postgresql.org.
GNU SQL
Проект GNU для многих программистов является символом свободы. Официальная
лицензия на продукты GNU гарантирует свободный доступ и полную свободу
модификации исходного кода. Почти для всякой утилиты среды Unix можно найти
версию GNU - включая редактор (Emacs), командный процессор (bash) и ядро
операционной системы (Hurd). До недавнего времени зияющим пробелом было
отсутствие СУБД.
Институт системного программирования Российской Академии наук работает над тем,
чтобы изменить это положение. Пару лет назад он выпустил первую открытую
бета-версию GNU SQL - полностью функциональную РСУБД с поддержкой SQL и
лицензией GNU Public License (GPL). Ко времени печати этой книги текущая версия
GNU SQL имела номер 0.7beta.
Когда задумывалась GNU SQL, спецификация SQL 2 была еще не окончательной,
поэтому первые версии GNU SQL обеспечивали поддержку только функций SQL89, а
возможности SQL2 добавлялись постепенно.
В настоящее время GNU SQL поддерживает многие развитые возможности - транзакции,
вложенные запросы и курсоры. Поскольку это бета-версия, мы не рекомендовали бы
ее для промышленного использования. По мере своего становления она, конечно,
будет достойна внимания. Подробнее узнать о GNU SQL можно на http://www.ispras.
ru/-kml/gss/index.html
Beagle
Beagle является бесплатным ядром баз данных SQL, разработанным и реализованным
Робертом Клейном (Robert Klein). Как и GNU SQL, Beagle задуман как полностью
SQL-совместимый сервер со всеми необходимыми функциями, включая
объектно-реляционные расширения, впервые появившиеся в PostgreSQL. Как и GNU
SQL, Beagle во многом не завершен. Ко времени печати этой книги он достиг того
уровня развития, когда он надежен и может использоваться для тестирования и
разработки. Для промышленного пользования этот продукт еще не готов.
Одной из наиболее интересных особенностей Beagle является то, что автор с
самого начала проекта вел журнал разработки. Изучая этот журнал, вы можете
проследить развитие SQL-сервера от простого тестового приложения, использующего
TCP и архитектуру клиент/сервер, до почти полностью функционального SQL-сервера,
каким он является сегодня. Домашняя страница Beagle расположена на http:// www.
beaglesql.org.
Сравнение характеристик
Как и многие приложения, MySQL обладает набором тестов для проверки того, что
заново откомпилированная система действительно поддерживает все возможности,
которыми предположительно должна обладать. Для MySQL этот набор называется
«crash-me», поскольку одной из его задач является попытка «завалить» сервер баз
данных.
В какой-то момент обратили внимание на то, что «crash-me» является переносимой
программой. Она может работать не только в различных операционных системах, но
и использоваться для тестирования разных СУБД. С тех пор «crash-me»
превратилась из простого набора тестов в программу, позволяющую производить
сравнение характеристик. Тесты включают в себя стандартный SQL, а также
расширения, предлагаемые многими серверами. Кроме того, программа проверяет
надежность сервера при интенсивной нагрузке. Полный прогон тестов дает
исчерпывающую характеристику возможностей сервера баз данных.
Можно использовать «crash-me» для сравнения двух или более серверов баз данных
в активном режиме. Домашняя страница «crash-me» находится на http://www.mysql.
com/crash-me-choose.htmy.
Часть II.
Программирование баз данных
Мощь базы данных реализуется через инструменты, предназначенные для работы с
ней. В этой части мы поговорим о том, как создавать такие инструменты,
используя некоторые популярные сегодня языки программирования. На примере
создания веб-приложений для бизнеса мы обсудим API и инструменты, необходимые
для максимального использования потенциала MySQL и mSQL. Эта часть начинается с
нескольких обзорных глав по архитектуре приложений для работы с базами данных и
СGI-программированию. Однако основное содержание этой части посвящено
программированию на различных языках для MySQL и mSQL.
Глава №8.
Архитектуры приложений для работы с базами данных
Прежде чем разбираться в деталях разработки приложений для работы с базами
данных на различных языках, следует потратить некоторое время и шире взглянуть
на проектирование этих приложений. Эта глава концептуальная: мы хотим
рассмотреть архитектуру клиент/ сервер, лежащую в основе программирования баз
данных. Эти вопросы важны для программирования MySQL и mSQL, но не являются
специфичными только для этих СУБД. Напротив, они применимы в любой среде
программирования баз данных. Если не учитывать принципов архитектуры, то может
|
|