Глава 2. Системы управления базами данных

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

В прежние времена СУБД занимались сохранением таблиц и других вспомогательных объектов в файлах, предоставляли пользовательский интерфейс для просмотра, редактирования таблиц, изменения их структуры, создания и удаления таблиц. Кроме того, они предлагали командный управляющий язык, на котором можно было писать программы, а также давать в командной строке простые управляющие команды. Такие СУБД были рассчитаны на однопользовательские и однозадачные операционные системы вроде DOS. В качестве примеров можно назвать похожие между собой СУБД DBase, FoxPro, Clipper, Paradox.

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

Клиент-серверная организация СУБД даёт значительные преимущества:

При централизованном хранении данных и централизованной обработке запросов клиенты получают наиболее свежую, актуальную информацию. Например, достаточно администратору магазина изменить цены в таблице товаров, как тут же кассовые терминалы обнаружат изменение цен при последующих запросах. Многие СУБД позволяют посылать клиентам оповещения, на которые те могут отреагировать нужным образом: например, при всё том же изменении цен клиенты могут быть оповещены и в ответ на оповещение перерисовать таблицу цен на экране терминала.

На клиентские программы возлагаются более скромные задачи: установление соединения с сервером баз данных, отправка запросов и получение результатов. Клиент предоставляет интерфейс для составления запросов и просмотра результатов его исполнения. Этот интерфейс может быть рассчитан как на человека (ввод данных или запросов с помощью клавиатуры или мышки, просмотр таблиц на экране), так и на «железо», специальное оборудование, которое в автоматическом режиме с помощью клиентской программы готовит запросы. Такой аппаратный интерфейс может использоваться, например, у операторов сотовых сетей.

Таким образом, клиент-серверная организация СУБД предлагает единый сервер и многообразие клиентских программ, отвечающих самым разным потребностям. Это соответствует принципу, которому подчинены очень многие современные операционные системы — «Unix way»: Вместо одной большой программы, претендующей на универсальность — множество мелких, каждая из которых очень хорошо решает свою узкоспециальную задачу.

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

Назовём несколько современных СУБД: коммерческая система Oracle производства одноимённой фирмы, и свободно распространяемые MySQL и PostgreSQL.

Информатика-54