- •5. Информационные системы в сетях
- •5.1. Основные понятия Виды и состав сетей
- •Программное обеспечение локальной вычислительной сети
- •Аппаратные средства локальной вычислительной сети
- •Принципы управления
- •5.2. Модели архитектуры клиент-сервер
- •5.3. Управление распределенными данными
- •Поддержка соответствия базы данных вносимым изменениям
- •Доступ к общим данным
- •5.4 Информационные системы в локальных сетях
- •5.5. Информационные системы в Интернете и Интранете
5.4 Информационные системы в локальных сетях
В локальной вычислительной сети персональных ЭВМ выделяют три варианта создания информационной системы:
Типа файл-сервер;
Типа клиент-сервер;
Основанные на технологии интранет.
Информационную систему типа файл-сервер можно построить двумя способами:
С использованием несетевых СУБД, предназначенных для применения на отдельной машине;
С использованием сетевых СУБД, разрабатываемых для применения в локальной вычислительной сети.
Под сетевой СУБД понимается система с произвольной моделью данных (не обязательно сетевой), ориентированная на использование в сети.
Программы несетевой СУБД и используемые ими данные могут храниться на компьютере-сервере (КС) и на компьютере-клиенте (КК).
Если несетевая СУБД и данные хранятся на компьютере-клиенте, то режим ее работы не отличается от работы на отдельной ПЭВМ. Если данные хранятся на компьютере-сервере, то файловая система сетевой операционной системы «незаметно» для СУБД выполняет подгрузку нужного файла с удаленного компьютера.
Если несетевая СУБД используется несколькими пользователями сети, то ее программы, а также базу данных или ее часть в целях экономии дисковой памяти эффективнее хранить на компьютере-сервере. База данных, хранимая на компьютере-сервере, называется центральной БД (ЦБД), а хранимая на компьютере-клиенте – локальной БД (ЛБД). При запуске такой СУБД на каждый компьютер-клиент пересылается полная копия основной программы СУБД и один или несколько файлов ЦБД (рис. 5.9). После завершения работы файлы центральной базы данных пересылаются с компьютера-клиента обратно на компьютер-сервер для согласования данных.
Недостаток применения несетевых СУБД – возможность нарушения целостности данных при одновременной работе с одной базой данных нескольких пользователей. Так как каждая копия СУБД функционирует, «не зная» о работе других копий, то никаких мер по исключению возможных конфликтов не принимается.
Примеры несетевых СУБД: dBase III Plus, dBase IV и FoxBase.
хранение
копирование физические
соединения
. . .
выполнение
копирование данных
копирование программ
связь по управлению
Рис. 5.9. Система типа файл-сервер с несетевой СУБД
Сетевые СУБД не имеют такого недостатка, т.к. в них предусмотрен «контроль соперничества». Координация доступа к данным контролируется введением блокировок к файлам, записям и даже отдельным полям записей (рис. 5.10).
В сетевых СУБД с коллективным использованием файлов БД вся обработка информации производится на КК, а функции КС сводятся к предоставлению большой дисковой памяти.
Недостатки:
Высокие требования к КК (высокое быстродействие и большая емкость оперативной памяти);
Пересылка копий файлов БД и команд управления блокировками по линиям связи существенно увеличивает нагрузку на подсистему передачи данных, что снижает производительность сети.
Примеры сетевых СУБД: FoxPro 2.5 для Windows, dBase IV, Paradox 3.5 для DOS.
В информационных системах типа клиент-сервер программы разделены на две части, называемые сервером и клиентом.
КС
ЦБД
контроль
СУБД
к опирование физические
соединения
КК
КК
ЛБД
СУБД
ЦБД
ЦБД
. . .
СУБД
ЛБД
СУБД
ЛБД
выполнение
Рис. 5.10. Система типа файл-сервер с сетевой СУБД
Клиент (фронтальная программа) отвечает за интерфейс пользователем, преобразуя его запросы в команды запросов к серверной части, а, получив результат, выполняет обратное преобразование и отображение информации для пользователя.
В роли клиента выступает пользовательская (разрабатываемая для решения конкретной прикладной задачи программа) или готовая программа, имеющая интерфейс с серверной программой. Готовые клиентские программы: текстовые процессоры, табличные процессоры, СУБД Access, FoxPro и Paradox.
Сервер – основная программа, выполняющая функции управления и защиты данных в базе. Если вызов функций сервера выполняется на языке SQL, то сервер называют SQL-сервером.
В качестве сервера может использоваться ядро профессиональной СУБД (например, 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-операторы серверу СУБД. Результаты выполнения запросов на сервере передаются обратно в приложение.