База данных Microsoft Access

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

Системы типа клиент-сервер

 

Информационные системы типа клиент-сервер отличаются от систем типа файл-сервер прежде всего тем, что программы СУБД функционально разделены на две части, называемые сервером и клиентом.

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

В роли клиента может выступать специально разрабатываемая для решения конкретной прикладной задачи программа или готовая программа, имеющая интерфейс с серверной программой. В качестве готовых клиентских программ могут использоваться текстовые процессоры, табличные процессоры или СУБД (например, Access, FoxPro и Paradox).

Сервер БД представляет собой, по существу, мультипользовательскую СУБД, параллельно обрабатывающую запросы, поступающие от клиентов. В его задачу входит реализация логики обработки транзакций с применением необходимой техники синхронизации. При этом поддерживаются протоколы блокирования ресурсов, обеспечивается предотвращение или устранение тупиковых ситуаций. В результате клиент получает не "сырье" для последующей обработки, а готовые результаты. Программное обеспечение, установленной на клиенте, играет роль только внешнего интерфейса (Frond-end) централизованной СУБД. На клиентской стороне при этом может использоваться более дешевое оборудование.

В качестве сервера может использоваться ядро профессиональной реляционной СУБД (например, Informix 7.x и Sybase System 10) или некоторый SQL-сервер (например, Novell NetWare SQL и Microsoft SQL Server).

Между клиентской и серверной частями системы возможны различные варианты распределения функций.

Возможно, что основная часть обработки информации выполняется на компьютере-клиенте. Здесь формируются запросы, составляются отчеты и т.п. При этом полные копии файлов из ЦБД на компьютер-клиент (и обратно) не пересылаются, поскольку для организации полноценного взаимодействия, как правило, достаточно иметь на компьютере-клиенте необходимые в данный момент времени записи БД. Это существенно снижает загрузку подсистемы передачи данных и ослабляет требования по ресурсам компьютера-клиента.

В другом случае на компьютере-сервере, кроме собственно данных, могут храниться программы обработки данных и запросы. Обычно это программы и запросы общего пользования. В этом случае вся обработка данных выполняется на компьютере-сервере и скорость обработки данных увеличивается, т.к. программа обработки либо запрос находится «рядом» с данными.

Хранимые на компьютере-сервере программы (процедуры) обработки данных называют хранимыми процедурами.

Разновидностью хранимой процедуры является, например, так называемый триггер. Триггер (триггерная процедура) автоматически вызывается при возникновении определенных событий в БД. События могут быть следующие: операции вставки, обновления и удаления отдельных записей или полей записей.

Запросы, хранимые в БД сервера, называются хранимыми командами. Хранимые команды получаются в результате компиляции SQL-запроса и выполняются значительно быстрее, чем соответствующий SQL-запрос. Основная причина ускорения состоит в том, что при выполнении хранимых команд не требуется синтаксический разбор запросов.

 

В настоящее время среди программных продуктов существует огромное количество универсальных (в смысле пригодности работы с различными серверами БД) средств разработки систем типа клиент-сервер, к числу которых относятся: Delphi (Borland), Power Builder (Powersoft), ERwin (LogicWorks), Visual Basic (Microsoft), CA-Visual Objects (Computer Associates), SQL Windows (Gupta) и другие. Кроме того, существуют средства разработки систем клиент-сервер в рамках определенных СУБД (например, для Oracle 7 — Designer/2000). Все подобные средства, как правило, относятся к CASE-системам.

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