Базы данных в компьютерных сетях
Архитектура клиент-сервер является в настоящее время наиболее перспективной и при организации работы в сетях. Рассмотрим структуру распределенной информационной системы, построенной по данной архитектуре. В клиент-серверных СУБД ее программы функционально разделены на две части, называемые сервером и клиентом.
Серверная частьСУБД является основной программой, выполняющей функции управления и защиты данных в базе данных, находящейся на компьютере-сервере. Если вызов функций сервера выполняется на языке SQL, то он называется SQL-сервером. В качестве сервера может использоваться ядро профессиональной реляционной СУБД (Informix, Sybase) или некоторый SQL-сервер (Novell Netware SQL, Microsoft SQL Server).
Клиентская часть СУБД исполняется на компьютере пользователя и обеспечивает интерфейс пользователя с базой данных, а именно: преобразует запросы пользователя в команды запросов к серверной части, а при получении результатов выполняет преобразование и отображение информации. Клиентской программой может быть любая программа, имеющая интерфейс с серверной программой или СУБД (Access, FoxPro, Paradox).
Между клиентской и серверной частями системы возможны различные варианты распределения функций. При этом основные функции СУБД (управление данными; обработка с помощью прикладных программ; пользовательские представления) могут выполняться на одном или нескольких узлах сети. На рис. 7.25 представлены три основные схемы разделения функций и данных между двумя узлами сети.
Модель удаленного представления иначе называют моделью сервера БД (DBS - DataBase Server). В этой модели функции компьютера-клиента заключаются только в представлении полученной с сервера информации, а все управление и прикладные функции сосредоточены на компьютере-сервере. Приложения реализуются в виде так называемых хранимых процедур. Все основные действия по коллективному доступу к базе данных и обработке выполняются на мощном сервере, а клиентам пересылаются только необходимые данные. Достоинством такого подхода является централизованное администрирование БД и приложений на всех этапах разработки, сопровождения и модификации системы, а также низкая загрузка коммуникационных каналов.
Рис. 7.25 Схемы моделей архитектуры баз данных клиент-сервер
Модель DataBase Server используется в таких СУБД , как Ingress, Sybase и Oracle.
Удаленный доступ к данным (RDA - Remote Data Access) характеризуется тем, что обработка и представление данных выполняется на компьютерах пользователей (клиентах). Обращение к серверу производится с помощью SQL-запросов или вызовом функций специальной библиотеки API (Application Program Interface). Основным достоинством такой схемы является тот факт, что большинство существующих СУБД поддерживают SQL-интерфейсы и существует большое количество систем разработки приложений клиентской части. Недостатками является большой поток данных, передаваемых по сети, и отсутствие возможности централизованного администрирования.
В модели распределенной БД данные хранятся как на компьютере-сервере, так и на компьютере-клиенте. При этом в локальной и удаленной базе данных могут храниться различные части единой БД или же локальная и удаленная БД являются синхронизируемыми друг с другом копиями. Системы с распределенной БД обладают большой гибкостью и живучестью, однако сложны в разработке и требуют больших затрат коммуникационных и вычислительных ресурсов.
Базы данных в Интернет
Часто источником информации в Интернет являются базы данных. В этом случае наряду с Web-сервером функционирует сервер базы данных, с которого информация поступает на компьютер пользователя в виде Web-страниц. В нашем примере с Интернет-магазином доступ к базе данных осуществляется всякий раз, когда пользователь выбирает определенную рубрику (поиск в базе данных и передача списка книг данной рубрики) и осуществляет заказ (запись в базу данных информации о заказе и пользователе).
Доступ к базам данных может осуществляется в двух вариантах: на стороне Web-сервера и на стороне Web-клиента (рис. 7.26)
а) на стороне Web-сервера
б) на стороне клиента
Рис. 7.26. Схемы доступа к БД в Интернет
Доступ к БД на стороне сервера реализуется следующим образом. Пользователь, просматривая Web-страницу, заполняет находящуюся на ней форму. Данные формы передаются на Web-сервер, который запускает специальную программу. Эта внешняя по отношению к Web-серверу программа преобразует параметры формы в SQL-запросы к серверу БД. Сервер БД обрабатывает запрос и возвращает результаты запроса программе, которая затем формирует требуемую Web-страницу и передает ее Web-серверу для передачи на компьютер пользователя.
В случае доступа к БД на стороне клиента используется язык программирования Java. На этом языке пишутся специальные программы для доступа к серверу БД, называемые апплетами (Java-applets), которые хранятся на Web-сервере. В Web-страницу вставляются ссылки на соответствующие апплеты. При работе пользователя с Web-страницей при необходимости нужный апплет загружается на компьютер пользователя и исполняется браузером. При исполнении апплет обращается напрямую к серверу БД, и необходимая информация загружается из базы данных в Web-страницу на компьютер пользователя.
В первом варианте основная часть программ выполняется на Web-сервере, что облегчает администрирование Web-сервера. Однако это может привести к большой загрузке Web-сервера и ухудшению оперативности получения информации. Второй вариант разгружает Web-сервер, но требует загрузки на компьютер клиента Java-апплетов и их исполнения средствами браузера.