На обложке книги сказано, как важно для АБД представлять, чего пытаются добиться разработчики, а для разработчиков — знать стратегию, используемую АБД для управления данными. Точно известно, что в основе большинства успешно работающих информационных систем лежит плодотворное взаимодействие между АБД и разработчиками приложений. В этом разделе я хочу представить точку зрения разработчика на разделение труда между разработчиком и АБД (исходя из предположения, что при любой важной разработке необходима поддержка группы АБД).
Разработчик не обязан знать, как устанавливать и конфигурировать программное обеспечение. Этим должен заниматься АБД и, возможно, системный администратор. Настройка Net8, запуск программы прослушивания, конфигурирование режима MTS, организация пула подключений, установка СУБД, создание базы данных и т.д. возлагаются на АБД и системного администратора.
Не обязан разработчик также уметь настраивать операционную систему. Лично я обычно предлагаю сделать это системным администраторам. Разработчик приложений баз данных должен быть квалифицированным пользователем соответствующей операционной системы, но нельзя требовать от него знания тонкостей ее настройки.
Пожалуй, одной из основных забот АБД является резервное копирование и восстановление базы данных, и я считаю это обязанностью исключительно АБД. А вот знать принцип работ и использования сегментов отката и журналов повторного выполнения разработчик должен. Знать, как выполнить восстановление табличного пространства по состоянию на определенный момент времени разработчику необязательно. Знание того, что это в принципе возможно, может пригодиться, но делать это самостоятельно вам не придется.
Настройка на уровне экземпляра базы данных, определение оптимального значения параметра SORT_AREA_SIZE — этим обычно занимается АБД. Бывают ситуации, когда разработчику необходимо изменить ряд параметров сеанса, но за параметры уровня базы данных отвечает АБД. Обычно база данных поддерживает приложения нескольких разработчиков, поэтому только АБД, занимающийся поддержкой всех приложений, может принять правильное решение.
Выделение пространства на диске и управление файлами данных — обязанность АБД. Разработчики должны оговорить необходимый объем пространства (сколько им предположительно потребуется), но остальное должны делать АБД и системный администратор.
Итак, разработчики могут не знать, как запустить СУБД, но должны уметь работать в ней. Разработчик и АБД совместно решают разные части одной головоломки. АБД связывается с разработчиком, заметив, что запросы потребляют слишком много ресурсов, а разработчик обычно обращается к АБД когда не знает, как ускорить работу системы (вот когда занимаются настройкой экземпляра — когда приложение полностью настроено).
Конечно, в зависимости от среды разработки возможны варианты, но мне нравится делить обязанности. Хороший разработчик обычно — очень плохой АБД, и наоборот. У них разные навыки и опыт, а также, по моим наблюдениям, разное устройство ума и личностные характеристики.