4.4 Централизованные многотерминальные системы
В централизованной системе, характерной для Unix, терминал реализует лишь функции представления данных PS, тогда как остальные функции обеспечивает центральный узел. Центр должен реагировать на каждый запрос пользователя (PL), выполнять логику приложения (BL, DL) и извлекать данные из БД (DS, FS). Имеются две серьезные проблемы для централизованной схемы: трудно обеспечить графический интерфейс; каждый дополнительный пользователь и приложение вносят существенную нагрузку на сервер, теряется масштабируемость.
4.5 Локальная архитектура
Самая простая база данных – локальная. В этом случае база и программа расположены на одном компьютере. Соединение с файлом базы данных происходит через специальный драйвер или напрямую. Драйвер умеет обрабатывать только простые запросы SQL-стандарта 1992 года и предоставлять данные программе или сохранять изменения в таблице. Все остальные манипуляции могут выполняться только программой. Таким образом, логика, данные и приложение работают, как единое целое и не могут быть разделены.
Яркими и наиболее распространенными представителями такого рода баз являются Dbase (файлы с расширением .dbf), Paradox (расширение .db) и Access (расширение .mdb). Форматы Dbase и Paradox – это даже не базы данных, а таблицы, потому что в одном файле может храниться только одна таблица данных. Индексы, ускоряющие, поиск и осуществляющие сортировку, находятся в отдельных файлах. Таким образом, одна база данных может состоять из множества файлов, и это иногда приводит к определенным проблемам при поставке приложения конечному пользователю.
Файлы Access являются гибридом таблиц и баз данных. Здесь уже все таблицы и индексы хранятся в одном файле, что намного удобнее в
управлении. К тому же среда управления базами Access наиболее удобна и доступна в любом офисном пакете от MS. В остальном MS Access обладает теми же недостатками, что и основные представители этого сословия.
Самый главный недостаток локальных баз данных – скорость и качество доступа напрямую зависит от драйвера. В большинстве из них не было оптимизаторов SQL-запросов и какого-либо кеширования. Возможности железа использовались минимально, поэтому на больших базах запросы выполняются крайне медленно.
Таблицы Dbase и Paradox были разработаны слишком давно, и их самое слабое звено – это индексы. В этих таблицах нет транзакций и соответствующего журнала. После добавления новой записи, если драйвер не успел обработать изменения в индексах и произошла ошибка, то индекс рушится и для восстановления приходится использовать специальные утилиты или переформировывать индексы. В базах Access индексы защищены лучше.
4.6 Сетевая архитектура
В локальных базах с данными работает только один пользователь, база данных и программа находятся на одном компьютере. Для больших объемов данных один оператор не справится с задачей и потребуется, чтобы несколько человек могли работать с общими данными. Сетевые базы данных были призваны решить такие проблемы. В принципе, это те же локальные базы, только выложены они на сетевой диск сервера и несколько клиентов обращаются к одной базе по сети.
4.7 Файл – серверная архитектура
Файл-сервер
Функции: физическое
хранение данных
Высокая нагрузка на сеть:
передаются большие объемы данных
Функции: интерфейс пользователя,
управления данными, логика обработки
рис.10
В отличие от централизованной системы архитектура "файл-сервер" (таблица 1.) не имеет сетевого разделения компонентов диалога PS и PL, использует ПК для функций отображения, что облегчает построение графического интерфейса. База данных расположена на мощном выделенном компьютере (сервере), к которому подключены по локальной сети другие ЭВМ, на которых и располагаются клиентские приложения. Недостатком такой архитектуры является то, что по сети передаются большие объемы информации, т.к. вся обработка информации происходит на клиентских машинах, где фактически формируется копия БД. Все это приводит к ограничению максимально возможного числа пользователей системы и большим задержкам при работе и обновлении БД. Эти задержки объясняются тем, что на уровне конкретной таблицы одновременный доступ невозможен. Пока программа на одном из клиентских мест не закончит работу с таблицей, другие программы не могут обращаться к этой таблице. Это называется блокировкой на уровне таблицы и практически исключает возможность нарушения целостности.
|