Сервер – основная программа, выполняющая функции управления и защиты данных в базе. Если вызов функций сервера выполняется на языке 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-операторы серверу СУБД. Результаты выполнения запросов на сервере передаются обратно в приложение.