Технология «клиент-сервер»
В чем отличие технологии клиент-сервер о г технологии с выделенным файл-сервером? Сервер, храпящий базу данных, называют сервером баз данных. Наэтом сервере устанавливают СУБД. Приложения, размещенные на рабочихстанциях пользователей, посылают запросы к базе данных. Эти запросы обрабатываются СУБД- Собственно, приложения напрямую не работают с файлами, содержащими данные. Они поручают выполнить те или иные действия надданными системе управления базами данных.
Схема работы с данными в случае применения технологии «клиент-сервер»представлена па рис. 2.2.
Запросы приложений представляют собой команды для определения данныхи команды для манипулирования данными. Поскольку различных СУБД существует довольно много, а языков программирования еще больше, возникла
необходимость универсального языка общения между клиентской частью - приложениями - и серверной частью - СУБД. Таким языком на настоящий моментявляется SQL (Structured Query' Language) - язык структурированных запросов.
Приложение, работающее на компьютере пользователя, посылает запрос,например, на выборку данных по определенному условию на языке SQL. СУБД,расположенная на сервере баз данных, обрабатывает его и получает результатобработки запросившему его приложению, а именно готовую выборку но указанному условию. При этом по сети передаются только нужные записи, а невсе, как при использовании файл-сервера.
Работу в соответствии с технологией «клиент-сервер» обеспечивают всенаиболее известные СУБД: Oracle, Informix, Sybase, MS SQL Server.
Современный вариант применения этой технологии несколько расширен.СУБД выполняет не только пришедшие от приложений запросы, но и так называемые хранимые процедуры. Хранимые процедуры - это специальные программы, работающие на сервере баз данных и запускаемые СУБД по командеклиентского приложения.
Контроль целостности баз данных СУБД осуществляют с помощью механизма, называемого триггерами. Триггеры - это особый тип хранимых процедур,которые запускаются при возникновении определенного события в БД. Триггеры могут срабатывать, например, при добавлении записи в таблицу, при удалении записей из таблицы. Триггеры могут вызывать хранимые процедуры.
Исключительное удобство механизмов хранимых процедур и триггеровзаключается в том, что они составляют общий набор для всех приложений ихранятся в общей базе данных. Это может значительно упростить и ускоритьработу по созданию большого количества приложений, работающих с общейБД. Особенно это полезно, если приложения создают разные разработчики.
Существует несколько вариантов топологии систем на основе технологии«клиент-сервер». Возможные варианты представлены на рис. 2.3.
В самом простом случае для каждого клиента запускается свой сервер. Приэтом не обязательно выделять под каждый сервер отдельный компьютер, можно запустить несколько серверов на одном компьютере. Тип такой компоновки называют «один клиент - один сервер».
Вторая из рассматриваемых топологий - «несколько клиентов - один сервер».Это самый распространенный случай. На выделенном компьютере запускаетсясервер баз данных, который обрабатывает запросы от множества пользователей.
Самый сложный в организации и настройке вариант - «несколько клиентов -несколько серверов». В этом случае множество клиентов обращаются не к реальным серверам, а к одному виртуальному серверу - диспетчеру. Диспетчер определяет, к какой из баз данных сделан запрос и на каком реальном сервере онанаходится, а затем переправляет запрос по назначению.
В случае, когда большая часть функций по обработке таблиц вынесена насервер баз данных и, соответственно, снята с клиентского приложения, такиеприложения называют тонким клиентом. Иногда для хранения и выполненияэтих функций выделяют отдельный сервер приложений.
Учитывая сложность современных информационных систем и особую зависимость СУБД от правильной настройки контроля целостности, вы не обойдетесь без этапа проектирования базы данных. Более того, чем внимательнее разработчики подходят к этому этапу, тем надежнее и эффективнее работаетвпоследствии информационная система. Этап проектирования базы данныхдолжен тщательно документироваться, что позволит успешно развивать систему и увеличивать ее масштаб.
Проектирование баз данных
При создании новой базы данных, без сомнения, каждому не терпится поскореесесть к компьютеру и приступить к организации структуры для хранения информации и непосредственно вводу данных для хранения. Однако многие пословицыи поговорки предупреждают нас о коварности такого подхода. И особенно этоважно при работе с БД. Торопиться здесь нельзя ни в коем случае, иначе придетсявносить кардинальные изменения в БД, когда она уже будет наполнена важнымиданными. При этом есть вероятность потери и самих данных, и большого количества рабочего времени. Какой же подход правильный? Поговорим об этом.