Многопользовательские базы данных
Многотерминальная система
Суть этого подхода заключается в том, что к одной машине (серверу) подключается большое количество терминалов (по числу рабочих мест, рис. 4.8). Сервер осуществляет хранение, обработку и обращение к данным. Терминалы не выполняют никакой работы при подготовке и обработке данных, они служат только для ввода данных и отображения информации. Подобные системы показывают высокие результаты в плане надежности и производительности. К сожалению, использование этого подхода в его классическом виде не очень эффективно при создании территориально распределенных систем. С другой стороны, в последнее время наблюдается постепенный отход от применения алфавитно-цифровых терминалов в пользу использования графических интерфейсов на X-терминалах, что резко повышает стоимость подобных систем.
В последнее время наблюдается существенное уменьшение количества разработок, построенных с использованием этого подхода. Это, в первую очередь, связано с тем, что по параметрам цена/производительность более предпочтительным оказывается вариант использования архитектуры клиент-сервер.
Многопользовательская база данных на файл-сервере
При наличии локальной сети персональных компьютеров можно использовать второй подход. Его сущность заключается в том, что база данных размещается на одном из компьютеров, который в этом случае выступает как файл-сервер (рис. 4.9).
При этом манипуляция данными осуществляется следующим образом. База данных (а иногда и код приложения) хранится на сервере, а вся работа по обновлению, хранению, добавлению и отображению информации выполняется в локальной системе. Файл-сервер в этом случае выступает в роли удаленного жесткого диска для базы данных и кода приложения. Большинство персональных СУБД поддерживает механизм блокировок для обеспечения целостности данных. Таким образом, эти системы могут быть использованы для построения и работы с подобной многопользовательской базой данных. При этом выбор СУБД определяется уровнем сложности системы и профессиональным уровнем разработчика. Если создаваемая база данных относительно мала - размер каждой из таблиц не превышает 25 Мбайт, и одновременный доступ к ней будет производить небольшое количество пользователей, то этот подход работает прекрасно. Но производительность такой системы начинает резко падать при увеличении размеров таблиц и количества пользователей, пытающихся одновременно обратиться к базе данных. Особенность этого подхода заключается в том, что при просмотре таблицы ее содержимое полностью передается по сети на локальную машину. Сети имеют сравнительно низкую пропускную способность, так что если один из пользователей начнет выполнять сортировку в большой таблице, то это может сделать работу остальных пользователей в сети невозможной на долгое время. Если же локальная сеть подключена к территориально разнесенной сети (WAN - Wide Area Network) и требуется обеспечить возможность работы с базой данных с удаленного компьютера, то необходимость пересылки больших объемов данных по сетевым мостам и маршрутизаторам через несколько сетевых сегментов еще более обострит проблему.
Рис. 4.8. Многотерминальная система
Архитектура клиент-сервер
В системе, построенной на этом подходе, обработка данных разделяется между двумя или более компьютерами. При этом клиентская часть системы (front end) использует ПК для представления данных и манипуляции ими. Сервер (back end) используется для хранения, сортировки, изменения, комбинирования и защиты данных (рис. 4.10). В противоположность предыдущему подходу по сети передаются не таблицы, а выборки, являющиеся результатами выполнения запросов, написанных на языке SQL.
Рис. 4.9. Сеть персональных компьютеров с файл-сервером
Совместное использование двух этих компонентов обеспечивает большую гибкость при взаимодействии с данными, чем два предыдущих подхода. Использование архитектуры клиент-сервер позволяет более полно использовать все ресурсы системы (клиентов, сервера и сети). Разделение задач между клиентом и сервером позволяет использовать мощность всех входящих в систему компьютеров и в то же время пользоваться преимуществами централизованного хранения и возможностью удаленного доступа к данным. В дополнение к этому разработчик получает возможность совмещать в своей системе различные операционные системы, базы данных и клиентские части. Модульная структура системы в архитектуре клиент-сервер облегчает процесс ее модификации: отдельные части системы можно изменять независимо друг от друга.
Рис. 4.10. Система с архитектурой клиент-сервер
Можно, к примеру, внести изменения в клиентскую часть или перенести сервер на более мощную машину. Пусть, например, разработчик построил систему типа клиент-сервер с использованием пакета PowerBuilder (инструмент для создания клиентских приложений), работающего на ПК под WINDOWS, для доступа к данным, хранящимся на сервере Oracle, работающем под OS/2. Позднее было решено, что использование RISC-сервера позволит повысить производительность. При этом не потребуется переписывать код приложения или менять операционную систему на ПК-клиенте для того, чтобы Oracle стал работать под UNIX. То же самое приложение можно использовать с базой данных на сервере Oracle, работающем под NetWare NLM. Использование архитектуры клиент-сервер позволяет более гибко подходить к проблеме выбора инструментов для построения клиентских приложений. Например, разработчик может реализовать большую часть своего приложения на Visual Basic, а для создания специальных отчетов использовать какой-то другой инструмент. С другой стороны, архитектура клиент-сервер не лишена недостатков. Возможность совмещения нескольких операционных систем порождает усложнение инфраструктуры разрабатываемой системы, которая может быстро стать технически запутанной. В конце концов разработчик часто сталкивается с необходимостью поддержки нескольких операционных систем - одной для сети, одной или более для сервера базы данных и одной или нескольких для клиентов, что естественным образом повышает сложность управления и администрирования подобной системы.
Дата добавления: 2015-02-03; просмотров: 2182;