не было специальной цели написания
Итак, не было специальной цели написания данного обзора. Цель была другая. Требовалось найти СУБД для системы, которая должна решать одну из основных задач автоматизации Сбербанка - лицевые счета клиентов. Поиски привели к тому, что пришлось пересмотреть несколько доступных на сегодня свободных СУБД. В результате сложилось определенное впечатление, которое и приведено ниже.
В обзоре отсутствуют объяснения, почему в качестве платформы автоматизации была выбрана ОС Linux. Это тема другой статьи. Если коротко, то Linux это Unix-like операционная система с сетевой оконной графической системой X Window. Все компоненты системы, включая исходные тексты, распространяются свободно. Здесь же перечислю те требования, которые я предъявлял к СУБД, с позиций ее применения в упомянутой системе:
- реальный многопользовательский режим;
- транзакционная защита от сбоев;
- возможность "плотного" хранения данных. (Имеется в виду возможность хранения множества типов, например языка С, и возможность их обработки. Требование связано с объемом и составом данных. Примерный объем 50000-100000 записей лицевых счетов и 300000-500000 записей о движении денег.);
- желательно, чтобы СУБД работала в режиме клиент-сервер через TCP/IP;
- возможность работать с базой из процедурного языка, лучше из С или С++. Желательно иметь доступ типа SQL;
- и, наконец, СУБД должна обладать достаточной "скорострельностью" (Например, задача получения баланса, т.е. сложение массива чисел (см. объем базы) на процессоре 486DX при 8 Мб и средних по скорости IDE дисках не должна занимать более 5 мин.)
Возможно, последнее требование сформулировано не совсем корректно, тем более, что все это можно улучшать за счет аппаратуры. Но интуитивно должно быть понятно, что я хотел сказать.
Замечу, что предыдущий вариант системы был сделан в SCO UNIX с использованием коммерческой СУБД Raima Data Manager (RDM), известной больше под названием dbVista 3.21. И, надо сказать, RDM показала себя с лучшей стороны. Она удовлетворяла практически всем перечисленным требованиям, если не считать отсутствия режима клиент-сервер.
Кстати, загрузочная прикладная программа, собранная под управлением SCO Unix с библиотекой RDM, с успехом работала в Linux (через систему совместимости iBCS) и гораздо быстрее, чем в родном ей SCO UNIX. По некоторым данным, в Linux можно изготовить объектный модуль (в формате COFF), который линкуется с библиотекой из SCO Unix. Я не проверял, если кто знаком с этой технологией, пусть поделится. Если это так, то получается, что Linux позволяет работать с SCO-версией RDM, и при этом SCO Unix не нужен вообще.
Тому, кто знаком с RDM, должны быть понятны мои пристрастия. Среди требований ничего не сказано об интерфейсе с пользователем. Этот интерфейс логичнее, проще и стандартнее сделать другими средствами, например, на Tcl/Tk для X Window. Поэтому не обсуждаем эти вопросы.