Финансовые приложения могут работать с разными СУБД (на выбор): FIREBIRD, MSSQL, ORACLE, среди которых, первая наименее известна и поэтому требует дополнительного описания.
СУБД FIREBIRD является высокопроизводительной кросс-платформенной реляционной базой данных, сочетающей простую инсталляцию, чрезвычайно низке системные требования и минимальную потребность в сопровождении, что очень важно для надежного функционирования распределенных высокопроизводительных критически важных бизнес-приложений. Среди возможностей базы данных FIREBIRD - обработчики оповещений о событиях, хранимые процедуры, триггеры, определяемые пользователем функции (UDF) и фильтры для работы с объектами BLOB.
СУБД FIREBIRD напоминает ORACLE в миниатюре. Одной из основных особенностей FIREBIRD (в отличие от MSSQL), пожалуй, можно считать версионную архитектуру, которая обеспечивает уникальные возможности при многопользовательской работе - пушущие пользователи никогда не блокируют читающих. Также в FIREBIRD реализован механизм оптимистической блокировки на уровне записи, т.е. сервер блокирует только те записи, которые реально были изменены пользователем, а не блокирует всю страницу данных целиком (в отличие от MSSQL). Эта особенность еще больше снижает вероятность конфликтов при многопользовательской работе.В FIREBIRD удалось добиться таких показателей высокой доступности данных, которые превосходят характеристики других баз данных при выполнении параллельных длительных транзакций в информационных и финансовых системах.
Мощность, простота использования, бесплатность, поддержка платформ Windows, Linux и Solaris, выводят FIREBIRD в фавориты среди разработчиков и делают ее наиболее приемлемым решением среди корпораций.В отличие от большинства современных баз данных, FIREBIRD требует лишь незначительного администрирования, проста в инсталляции и разработана с целью уменьшения затрат на сопровождение, что направлено на ускорение процесса разработки приложений и гарантирует быстрый возврат инвестиций для компаний, нуждающихся в сложных распределенных приложениях.
При выборе СУБД следует в первую очередь определиться с двумя основными критериями, влияющими на эффективность их использования в качестве эффективного хранилища данных: количество одновременно работающих пользователей и объем ежедневно вносимой в базу данных информации. В терминах СУБД эти критерии относятся соответственно к механизму реализации так называемых «блокировок» и механизму «секционирования» данных для уровня изоляции транзакций «read-commited», используемому финансовые приложениями по умолчанию.Механизм «блокировок» обеспечивает гарантию целостности считывания и изменения данных каждым пользователем при многопользовательском режиме доступа. Важным фактором при выборе платформы следует считать тот аспект, блокирует ли СУБД данные таблиц при вставке записей одними пользователями, для тех пользователей, которые используют эти таблицы для чтения. В типовой ситуации одни пользователи проводят операции текущего дня, в то время как другие хотят получить отчеты за прошедший период, при этом используются данные одних и тех же таблиц. При выборе СУБД для многопользовательского использования предпочтение следует отдавать СУБД, которые не блокируют соседние записи при вставке и изменении данных.
Критерий | FIREBIRD | MSSQL | ORACLE |
Наличие блокировок чтения соседних строк при вставке и изменении данных? | Нет блокировок, дополнительные ресурсы не требуются | Блокировки есть. Эскалация блокировок может привести к блокированию таблицы в целом. Блокировок нет только при включении специального уровня изоляции SNAPSHOT, требующего дополнительных ресурсов | Нет блокировок, дополнительные ресурсы не требуются |
Механизм «секционирования» данных (partitioning) позволяет разделять большие (критичные по объему) базы данных, таблицы и индексы на множество мелких управляемых частей, каждая из который может быть доступна более эффективным способом, чем весь массив данных в целом. Например, разнесение данных и индексов на два параллельных диска позволят ускорить доступ к данным, т.к. чтение индексов не скажется на производительности чтения данных. Секционирование большой таблицы, индексируемой по дате, на несколько таблиц по интервалу дат, позволит получить более быстрый доступ к данным текущего отчетного периода, при этом доступ к данным предыдущих отчетных периодов замедлится только в случае получения консолидированных данных по периодам, относящихся к разным секциям хранения.При выборе СУБД для хранения больших массивов данных предпочтение следует отдавать СУБД, которые имеют гибкий механизм секционирования.
Критерий | FIREBIRD | MSSQL | ORACLE |
Разделения данных пользователя, индексов и системных данных? | Нет разделения | Есть разделение | Есть разделение |
Разделения данных пользователя и индексов пользователя? | Нет разделения | Есть разделение | Есть разделение |
Наличие секционирования больших таблиц. | Нет секционирования | Есть секционирование только при создании таблицы (секционированные таблицы ограничены по структуре индексов) | Есть секционирование как при создании, так и при модификации любых таблиц (нет ограничений на структуру индексов) |
Еще одним критерием являются требования к аппаратному обеспечению и квалификации персонала для обеспечения безопасности и эффективности функционирования СУБД.
Критерий | FIREBIRD | MSSQL | ORACLE |
Требования к аппаратному обеспечению | Нет особых требований, база занимает один файл на диске | Желательно наличие нескольких параллельных дисков для разделения пользовательских областей данных, системных областей данных и журнала транзакций | Требуется наличие нескольких параллельных дисков (не менее 3-х) для функционирования СУБД и желательно наличие дополнительных параллельных дисков для секционирования данных пользователя |
Требования к квалификации персонала? | Нет особых требований. Достаточно знаний о процедуре дампа баз данных, для обеспечения их сохранности. | Требуются знания о процедуре дампа баз данных, для обеспечения их сохранности.Требуются знания о командах DDL на секционирование данных и перестройке индексов. | Требуются квалификация в настройке процесса обеспечения отката транзакций и в мапировании табличных пространств на различные дисковые пространства.Требуются знания о командах DDL на секционирование данных. |
Из сказанного выше легко определить, что FIREBIRD следует выбирать только при работе с небольшими объемами данных, MSSQL - при работе небольшого количества пользователей, ORACLE только при наличии сертифицированного персонала и качественного оборудования.
Финансовые приложения могут работать с любой из выбранных вами платформ, при этом гарантируется возможность масштабирования от более простой к более сложной SQL-платформе и обратно.