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

. . .

 

выполнение

- копирование данных

- копирование программ

- связь по управлению

 

Рис. 5.9. Система типа файл-сервер с несетевой СУБД

Сетевые СУБД не имеют такого недостатка, т.к. в них предусмотрен «контроль соперничества». Координация доступа к данным контролируется введением блокировок к файлам, записям и даже отдельным полям записей (рис. 5.10).

В сетевых СУБД с коллективным использованием файлов БД вся обработка информации производится на КК, а функции КС сводятся к предоставлению большой дисковой памяти.

Недостатки:

° Высокие требования к КК (высокое быстродействие и большая емкость оперативной памяти);

° Пересылка копий файлов БД и команд управления блокировками по линиям связи существенно увеличивает нагрузку на подсистему передачи данных, что снижает производительность сети.

Примеры сетевых СУБД: FoxPro 2.5 для Windows, dBase IV, Paradox 3.5 для DOS.

В информационных системах типа клиент-сервер программы разделены на две части, называемые сервером и клиентом.

 
 

 


СУБД
контроль
хранение

 
 


копирование физические

соединения

 
 

 


. . .

               
 
ЛБД
   
ЛБД
 


выполнение

Рис. 5.10. Система типа файл-сервер с сетевой СУБД

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

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

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

Структуру информационной системы типа клиент-сервер упрощенно можно представить в виде рис. 5.11.

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

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

 
 

 


Сервер БД
контроль
хранение

 
 


копирование физические

соединения

 
 

 


. . .

               
 
ЛБД
   
ЛБД
 


выполнение

Рис. 5.11. Информационная система типа клиент-сервер

 

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

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

В базе данных сервера некоторых ИС можно хранить и сами запросы, называемые хранимыми командами. Совокупность хранимых команд – это поименованная совокупность команд, получаемых в результате компиляции SQL-запроса. Хранимые команды выполняются значительно быстрее, чем соответствующий SQL-запрос, т. к. при выполнении хранимых команд не требуется синтаксический разбор запросов. Если сервер не просто сохраняет коды команд, но и производит оптимизацию сохраняемого кода, то достигается дополнительной ускорение выполнения запросов.

С хранимыми процедурами и командами связано понятие курсора. В разных СУБД это понятие несколько различается. Курсор может означать следующее:

- Идентификатор сеанса связи пользователя с СУБД;

- Идентификатор хранимых команд и процедур;

- Идентификатор результирующего множества;

- Указатель текущей строки в результирующем множестве, обрабатываемом клиентским приложением.

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

В среде MS Windows в информационных системах типа клиент-сервер доступ со стороны СУБД или приложений, выполненных в одной среде, к данным, порожденным другой СУБД, выполняется с помощью стандартного интерфейса ODBC (Open Database Connectivity – совместимость открытых баз данных). Схема доступа приложений к базам данных с помощью ODBC показана на рис. 5.12. Доступ приложения к данным происходит путем вызова на языке SQL стандартных функций интерфейса ODBC. На КК при этом должна функционировать операционная система MS Windows с интерфейсом ODBC.

Узел А Узел В

 
 

 

 


Рис. 5.12. Схема доступа к базе данных с помощью ODBC

 

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