Логическая модель РБД. Бизнес-логика файл-серверной, клиент-серверной и N-уровневой архитектуры.

Логическая модель РБД

Логическая модель РБД строится на 3-х уровнях (слоях) абстракции данных: представления информации, обработки(бизнес- логики) и хранения. Слои образуют строгую иерархию: слой бизнес -логики взаимодействует со слоями хранения и представления. Физически, слои могут входить в состав одного программного модуля, или же распределяться на нескольких параллельных процессах в одном или нескольких узлах сети.

  • Слой представления информации
    Обеспечивает интерфейс с пользователем. Как правило, получение информации от пользователя происходит посредством различных форм. А выдача результатов запросов - посредством отчетов.
  • Слой бизнес-логики
    Связующий, именно он определяет функциональность и работоспособность системы в целом. Блоки программного кода распределены по сети и могут использоваться многократно (CORBA, DCOM) для создания сложных распределенных приложений.
  • Слой хранения данных
    Обеспечивает физическое хранение, добавление, модификацию и выборку данных. На данный слой также возлагается проверка целостности и непротиворечивости данных, а также реализацию разделенных транзакций.

Слои распределенной системы могут быть по разному реализованы и исполняться в разных узлах сети. Обычно рассматриваются следующие архитектуры

Слой \ Тип архитектуры

Файл-сервер

Клиент-сервер
(Бизнес-логика на клиенте)

Клиент-сервер
(бизнес-логика на сервере)

N-уровневая архитектура

Представления

Клиент

Клиент

Клиент

Клиент

Бизнес- логики

Клиент

Клиент

Сервер БД

Сервер приложений
(комп.  кластер)

Хранения

Файл- сервер (или клиент)

Сервер БД

Сервер БД

Сервер БД


Все три слоя образуют единый программный модуль

Пользоват. Интерфейс и бизнес-логика образуют единый модуль. Данные хранятся на сервере БД

Вся бизнес логика реализована в виде хранимых процедур, исполняемых на сервере БД

Все слои исполняются на разных машинах.


Файл-сервер

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

(плюс) Достоинства

  1. Простота логики.
  2. Низкие требования к аппаратному обеспечению и малый объем требуемой памяти.
  3. Не требуют надежных многозадачных и многопользовательских ОС.
  4. Невысокая цена СУБД.

(минус) Недостатки

  1. Ограниченность языка и негибкость среды разработки приложений
  2. Слабая масштабируемость
  3. Не обеспечивают многопользовательский режим работы
  4. Трудно поддерживать целостность и непротиворечивость данных
  5. Необходимость ручной блокировки записей или таблиц целиком.
  6. Низкий уровень защищенности как внешней (от взлома), так и внутренней (от ошибок приложений) Например индексы отдельно от таблиц.
  7. Не имеют средств шифрации сетевого трафика
  8. Создают высокую нагрузку на сеть

Выводы
Файл-серверная архитектура является достаточно привлекательной альтернативой для создания однопользовательских ИС со слабыми требованиями к защите данных.

Клиент-сервер с бизнес-логикой на клиенте

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

(плюс) Достоинства

  1. Высокая производительность, стабильность и надежность при многопользовательской работе.
  2. Легко организуется защита данных (шифрование сетевого трафика SSH, SSL )
  3. Универсальность языка определения и манипулирования данными

(минус) Недостатки

  1. Более высокая цена СУБД. (сервер БД продается отдельно).
  2. Достаточно высокие требования к квалификации разработчиков
  3. Навыки администрирования сервера БД
  4. Повышенные требования к пропускной способности сети
  5. Повышенные требования к клиентским местам (на них выполняется слой бизнес- логики)

Выводы
При количестве пользователей от 2 до ~50 она является хорошим вариантом. С ростом числа пользователей начинает сказываться недостаточная пропускная способность сети.

Клиент-сервер с бизнес-логикой на сервере.

Используется возможность современных серверов БД исполнять хранимые SQL процедуры на сервере, куда и переносится максимально возможная часть бизнес-логики. Требования к серверу БД возрастают, однако резко понижаются требования к клиентским машинам (за счет выноса с них бизнес-логики) и к пропускной способности сети (клиенту передаются только данные, необходимые пользователю).

(плюс) Достоинства

  1. Пониженные, по сравнению с предыдущим классом систем, требования к пропускной способности сети и клиентским местам.
  2. Более простой процесс создания бизнес-логики.

(минус) Недостатки

  1. Повышенные требования к серверу БД.(каждый сеанс «съедает» память из расчета предельной загрузки)
  2. Невысокая переносимость ( мобильность) системы на другие серверы БД.

Выводы
По сравнению с предыдущими классами, позволяет держать большую нагрузку.

N-уровневая архитектура

Основными элементами являются сервера БД, сервер(кластер) приложений и клиентская часть. Главная идея n-уровневой архитектуры заключается в максимальном упрощении клиента (тонкий клиент) , выносе всей бизнес-логики с клиента и сервера БД.
Тонкий клиент представляет собой некоторый терминал типа HTML-browser или эмуляторы X-терминала
Вся бизнес- логика оформляется в виде набора приложений, запускаемых на сервере приложений под управлением ОС типа UNIX.
Сервера БД занимаются только проблемами хранения, добавления, модификации и поддержания непротиворечивости данных.
Сервер приложений соединен с сервером БД при помощи отдельного высокоскоростного сегмента сети.

(плюс) Достоинства

  1. Повышенная защищенность.
  2. Высокая производительность.
  3. Легкость развития и модификации.
  4. Легкость администрирования.
  5. Возможность создания системы с массовым параллелизмом (серверов БД может быть несколько, а сервером приложений могут служить несколько соединенных в кластер компьютеров).

(минус) Недостатки

  1. Высокая сложность.
  2. Высокая цена решения.
  3. В некоторых случаях уступает по производительности клиент-серверным системам с бизнес-логикой на сервере.

Выводы
Единственная альтернатива для создания ИС для очень большого количества пользователей.

  • Нет меток