СУБД как независимый системный компонент

 

До сих пор мы не вычленяли СУБД из состава информационной системы, имея в виду общую организацию системы, подобную той, которая показана на рис. 1.8.

 

 


Рис. 1.8. СУБД в составе информационной системы

 

Здесь видны два дефекта. Во-первых, уже должно быть понятно, что СУБД должна поддерживать достаточно развитую функциональность. Повторять эту функциональность в каждой информационной системе достаточно неразумно. С другой стороны, неясно, каким образом можно обеспечить готовый к использованию компонент СУБД, который можно было бы встраивать в информационные системы. Во-вторых, уже должно быть понятно, что набор файлов можно назвать базой данных только при наличии метаданных. На рис. 1.8 метаданные являются принадлежностью информационной системы, и поэтому, например, файлы СЛУЖАЩИЕи ОТДЕЛЫможно разумным образом использовать только через нашу гипотетическую систему регистрации сотрудников.

 

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

 

(1) Внедрить бухгалтерскую систему в состав системы регистрации сотрудников. Но ведь, как правило, бухгалтерские системы покупаются в виде готовых и отдельных продуктов, неприспособленных к подобному “внедрению”.

 

(2) Скопировать метаданные системы регистрации сотрудников в бухгалтерскую систему. Но метаданные (как и данные) не обязательно являются статичными. Структура базы данных может со временем изменяться, могут исчезать одни правила целостности и появляться другие правила. Как согласовывать копии метаданных, поддерживаемые независимыми информационными системами?

 

Так мы приходим к организации системы, показанной на рис. 1.9.

 
 

 


Рис. 1.9. Отдельная СУБД и базы данных с метаданными

 

Здесь мы видим три информационные системы, которые через одну СУБД работают с двумя разными базами данных, причем первая и вторая системы работают с общей базой данных. Это возможно, поскольку метаданные каждой базы данных содержатся в самих базах данных, и достаточно лишь указать СУБД, с какой базой данных желает работать данное приложение. Поскольку СУБД функционирует отдельно от приложений, и ее работа с базами данных регулируется метаданными, совместное использование одной базы данных двумя информационными системами не вызовет потери согласованности данных, и доступ к данным будет должным образом синхронизоваться. Заметим, что рис. 1.9 вплотную приближает нас к наиболее распространенной в последние десятилетия архитектуре “клиент-сервер”. СУБД играет роль “сервера”, обсуживающего несколько “клиентов” – прикладных информационных систем.

 

Таким образом, СУБД решают множество проблем, которые затруднительно или вообще невозможно решить при использовании файловых систем. При этом существуют приложения, для которых вполне достаточно файлов; приложения, для которых необходимо решать, какой уровень работы с данными во внешней памяти для них требуется, и приложения, для которых, безусловно, нужны базы данных.