26 февраля 2020

Заблуждение о том, что СУБД и БД - это одно и то же

Эта статья о различии между понятиями система управления базами данных (СУБД) и база данных (БД); в ней подчеркивается, что система управления базами данных является субъектом управления и программой, а база данных  объектом управления и собственно данными, которыми управляет СУБД. Из этого объяснения становится понятно, чем отчается СУБД от БД.

Сокращения

Раскрывая сокращения, получаем:

с          СУБД – это система управления базами данных,

с          БД – это база данных.

Другими словами, СУБД – это то, что управляет базой данных, а посему СУБД - это субъект, а БД   и объект управления.

Семантика

Различие между этими понятиями станет очевидным сразу же, как только мы вспомним, что СУБД – это программа1, а БД – это данные, которыми эта программа распоряжается (или управляет, или манипулирует).

Насколько различны программы и данные, настолько же различны СУБД и БД. На схемах базы данных обычно рисуют в виде диска-бочонка с данными, а СУБД в виде прямоугольника, см. схему  (рисунок 1).

СУБД - это программа, БД - это данные

На этой схеме базы данных содержат табличные данные, что не обязательно.

Рисунок 1 – СУБД – это программа, БД – это данные

Все базы данных имеют некоторую, не всегда табличную, внутреннюю структуру и содержат наборы данных, уложенных в эту структуру. Структуры «родственных» баз одинаковы, а наборы данных в каждой базе уникальны.

Иногда заявляют, что СУБД и БД неразрывны, так как СУБД может управлять только созданной ей же БД и никакой другой. И на этом неверном основании, что СУБД и БД неразрывны,  заключают, что слова СУБД и БД взаимозаменяемы. Утверждение о неразрывности неверное. Во-первых, потому что одна СУБД может управлять несколькими созданными ей же БД и тогда говорить о взаимозаменяемости слов не приходится. Во-вторых, некоторые СУБД могут управлять «чужими» БД, например, СУБД Access может управлять базой dbf, спроектированной и наполненной в СУБД FoxPro.

Количественные отношения

Одна СУБД может управлять несколькими базами данных, что, собственно, подчеркивает предыдущая схема (Рисунок 1): СУБД одна, а баз данных – две. Неравные количественные отношения между двумя терминами тоже свидетельствуют об их принципиальном различии.

Выводы

СУБД – это программа, а БД – это данные.

Слова СУБД и БД не синонимы. Нельзя вместо слова СУБД писать слово БД и наоборот.

Одна СУБД может управлять несколькими базами данных. Однако одна БД не может находиться под управлением нескольких СУБД одновременно.

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



1 Понятие «программа» употребляется здесь в самом широком смысле, а именно, в смысле стандарта ГОСТ 19781-90 [1]: Программа  данные, предназначенные для управления конкретными компонентами системы обработки информации в целях реализации определенного алгоритма.

Понятие «данные» этот ГОСТ не определяет, однако исходя из определения программы, можно считать, что «данные»  это поля из цифр, хранящиеся в памяти ЭВМ. 



1. ГОСТ 19781-90. Единая система программной документации. Обеспечение систем обработки информации программное.

 

Немцов Э. Ф.
Статья впервые опубликована здесь, на моем сайте в декабре 2013.
Авторские права на фотографии, статьи и рисунки принадлежат Эдварду Немцову, если это не оговорено особо.