Учись программированию на C++ Builder бесплатно!

Локальные БД располагаются на том же компьютере, что и работающие с ними приложения. В этом случае говорят, что информационная система имеет локальную архитектуру. Работа с БД происходит, как правило, в однопользовательском режиме. При необходимости можно запустить на компьютере другое приложение, одновременно осуществляющее доступ к этим же данным. Для управления совместным доступом к БД необходимы специальные средства контроля и защиты. Эти средства могут понадобиться, например, в случае, когда приложение пытается изменить запись, которую редактирует другое приложение. Каждая разновидность БД осуществляет подобный контроль своими способами и обычно имеет встроенные средства разграничения доступа.

Для доступа к локальной БД процессор баз данных BDE использует стандартные драйверы, которые позволяют работать с форматами БД dBase, Paradox, FoxPro, а также с текстовыми файлами.

При использовании локальной БД в сети можно организовать многопользовательский доступ. В этом случае файлы БД и предназначенное для работы с ней приложение располагаются на сервере сети. Каждый пользователь запускает со своего компьютера это расположенное на сервере приложение, при этом у него запускается копия приложения. Такой сетевой вариант использования локальной БД соответствует архитектуре «файл-сервер». Приложение при использовании архитектуры «файл-сервер» также может быть записано на каждый компьютер сети, в этом случае приложению отдельного компьютера должно быть известно местонахождение общей БД.

При работе с данными на каждом пользовательском компьютере сети используется локальная копия БД. Эта копия периодически обновляется данными, содержащимися в БД на сервере.

Архитектура «файл-сервер» обычно применяется в сетях с небольшим количеством пользователей, для ее реализации подходят персональные СУБД, например, Paradox или dBase. Достоинствами этой архитектуры являются простота реализации, а также то, что приложение фактически разрабатывается в расчете на одного пользователя и не зависит от компьютера сети, на который оно устанавливается.

Однако архитектура «файл-сервер» имеет и существенные недостатки.

  • Пользователь работает со своей локальной копией БД, данные в которой обновляются при каждом запросе к какой-либо из таблиц. При этом с сервера пересылается новая копия всей таблицы, данные из которой затребованы. Таким образом, если пользователю необходимо несколько записей таблицы, с сервера по сети пересылается вся таблица. В результате циркуляции в сети больших объемов избыточной информации резко возрастает нагрузка на сеть, что приводит к соответствующему снижению ее быстродействия и производительности информационной системы в целом.
  • В связи с тем, что на каждом компьютере имеется своя копия БД, изменения, сделанные в ней одним пользователем, в течение некоторого времени являются неизвестными другим пользователям. Поэтому требуется постоянное обновление БД. Кроме того, возникает необходимость синхронизации работы отдельных пользователей, связанная с блокировкой в таблицах записей, которые в данный момент редактирует другой пользователь.
  • Управление БД осуществляется с разных компьютеров, поэтому в значительной степени затруднена организация управления доступом, соблюдения конфиденциальности и поддержания целостности БД.

Удаленная БД размещается на компьютере-сервере сети, а приложение, осуществляющее работу с этой БД, находится на компьютере пользователя. В этом случае мы имеем дело с архитектурой "клиент-сервер", когда информационная система делится на неоднородные части сервер и клиент БД. В связи с тем, что компьютер-сервер отделен от клиента, его называют также удаленным сервером.

Клиент - это приложение пользователя. Для получения данных клиент формирует и отсылает запрос удаленному серверу, на котором помещена БД. Запрос формулируется на языке SQL, который является стандартным средством доступа к серверу при использовании реляционных моделей данных. После получения запроса удаленный сервер направляет его программе SQL Server (серверу баз данных) специальной программе, управляющей удаленной БД и обеспечивающей выполнение запроса и выдачу его результатов клиенту.

Таким образом, в архитектуре «клиент-сервер» клиент посылает запрос на предоставление данных и получает только те данные, которые действительно были затребованы. Вся, обработка запроса выполняется на удаленном сервере. Такая архитектура обладает следующими достоинствами:

  • снижение нагрузки на сеть, поскольку теперь в ней циркулирует только нужная информация;
  • повышение безопасности информации, связанное с тем, что обработка запросов всех клиентов выполняется единой программой, расположенной на сервере;
  • сервер устанавливает общие для всех пользователей правила использования БД, управляет режимами доступа клиентов к данным, запрещая, в частности, одновременное изменение одной записи различными пользователями;
  • уменьшение сложности клиентских приложений за счет отсутствия в них кода, связанного с контролем БД и разграничением доступа к ней.

Для реализации архитектуры «клиент-сервер» обычно используются многопользовательские СУБД, например, Oracle или Microsoft SQL Server. Подобные СУБД называют также промышленными, так как они позволяют создать информационную систему организации или предприятия с большим числом пользователей. Промышленные СУБД являются сложными системами и требуют мощной вычислительной техники и соответствующего обслуживания. Обслуживание выполняет специалист (или группа специалистов), называемый системным администратором БД (администратором).

Основные задачи системного администратора:

  • защита БД;
  • поддержание целостности БД;
  • обучение и подготовка пользователей;
  • загрузка данных из других БД;
  • тестирование данных;
  • резервное копирование и восстановление;
  • внесение изменений в информационную систему.

Доступ приложения С++ Builder к промышленным СУБД осуществляется через драйверы SQL-Links. При работе с «родной» для С++ Builder СУБД InterBase можно обойтись без драйверов SQL-Links.

Описанная архитектура является двухуровневой (уровень приложения-клиента и уровень сервера БД). Клиентское приложение называют также сильным, или «толстым», клиентом. Дальнейшее развитие данной архитектуры привело к появлению трехуровневого варианта архитектуры «клиент-сервер» (приложение-клиент, сервер приложений и сервер БД).

В трехуровневой архитектуре часть средств и кода, предназначенных для организации доступа к данным и их обработки, из приложения-клиента выделяется в сервер приложений. Само клиентское приложение при этом называют слабым, или «тонким», клиентом. В сервере приложений удобно располагать средства и код, общие для всех клиентских приложений, например, средства доступа к БД.

Основные достоинства трехуровневой архитектуры «клиент-сервер» состоят в следующем:

  • разгрузка сервера от выполнения части операций, перенесенных на сервер приложений;
  • уменьшение размера клиентских приложений за счет разгрузки их от лишнего кода;
  • единое поведение всех клиентов;
  • упрощение настройки клиентов при изменении общего кода сервера приложений автоматически изменяется поведение приложений клиентов.

Локальные приложения БД называют одноуровневыми, а клиент-серверные приложения БД многоуровневыми.

Поделиться