Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #52, МАРТ 2005 г.

Уравнение правильной базы

Фленов Михаил www.vr-online.ru

Спецвыпуск: Хакер, номер #052, стр. 052-008-5


Представим себе классическую задачу – появление новой версии базы данных или переход на базу качественно более нового уровня. Ну не хватает нам уже возможностей MySQL, захотелось заполучить всю мощь Oracle. Для этого переустанавливается сервер баз данных, изменяется сервер приложений на подключение к новой базе - и клиенты готовы к работе. Их обновлять не надо!

Но самое интересное то, что клиентская программа может быть какой угодно. Можно написать сценарии, которые позволят работать с сервером приложении прямо из браузера. В этом случае с базой смогут работать пользователи на любой платформе (Windows, Linux и т.д.).

Логика

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

Если в сети не так уж и много компьютеров (не больше 20-ти) и сервер достаточно мощный, то можно сервер приложений и базу данных расположить на одном физическом сервере. В этом случае обмен данными между сервером приложений и базой будет происходить внутри одного компьютера, а не по сети, что может существенно снизить нагрузку на сетевое оборудование.

Допустим, сервер приложений и база данных находятся на разных серверах. Результаты запросов будут сначала идти через коммутатор от базы данных к серверу приложений, а затем через тот же коммутатор к компьютерам клиентов. Таким образом, по сети дважды пролетают одни и те же данные. Чтобы от этого избавиться, я чаще всего объединяю в одном физическом сервере логику и данные.

Итого

Что же выбрать для своего проекта? Все очень просто. Если ты пишешь базу, с которой будет работать одновременно только один человек, то однозначный выбор – локальная база. Я больше всего люблю MS Access за его надежность и за то, что драйверы доступа к этой базе есть на всех компьютерах (особенно если там установлен MS Office) и их не надо тянуть с инсталлятором.

Если с базой будет работать хотя бы два человека, то не надо выдумывать сетевые коннекты, а лучше воспользоваться клиент-серверной технологией. Она избавляет сеть от лишнего трафика, более надежна при многопользовательской работе и дает максимальное количество возможностей.

Если количество пользователей катастрофически увеличивается и появляются проблемы с обновлением системы, то лучшим выходом будет переход на трехуровневую систему. Это немного сложнее в разработке, зато намного лучше во время сопровождения.

Делай правильный выбор технологии, иначе впоследствии придется долго мучаться с переделками.

Не все мощные базы данных являются платными. Например, Interbase от дяди Бормана не только бесплатен, но и имеет открытый код.

При работе с трехуровневыми базами кеширование обновлений обязательно, поэтому метод Post запоминает данные локально, а ApplyUpdates загружает изменения на сервер.

Назад на стр. 052-008-4  Содержание  Вперед на стр. 052-008-6