Автоматизация проверки знаний и навыков студентов в области прикладной математики и информатики

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование



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

При формировании запросов в многоуровневых приложениях используется язык SQL. Каждый тип сервера работает на собственном диалекте языка, который в большей или меньшей степени соответствует стандарту ANSI 92. Сервер InterBase имеют немного дополнений. А диалекты серверов Sybase и MS SQL отличаются от стандарта довольно сильно.

Организация обработки данных в приложениях клиент/сервер имеет ряд. особенностей. Поля таблиц базы данных сервера создаются с использованием не стандартных типов данных, а доменов - создаваемых пользователем типов данных с дополнительными ограничениями.

Все операции с данными должны выполняться сервером по заявке клиента. Для этого используются хранимые процедуры - наиболее распространенные запросы, которые хранятся на сервере и выполняются по требованию клиентов. Хранимые процедуры оптимизированы для выполнения на сервере.

Некоторые хранимые процедуры должны выполняться автоматически при возникновении той или иной ситуации. В частности, они используются для поддержания ссылочной целостности данных. Такие запросы называются триггерами.

Объединяя данные из различных таблиц, можно создавать совокупности столбцов из разных таблиц, которые называются просмотрами. Структуру просмотра можно сохранить и использовать в дальнейшем.

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

Так как с базой данных сервера одновременно работает множество клиентов, поэтому весьма высока вероятность возникновения конфликтов при попытках модификации одних и тех же данных. Чтобы обеспечить целостность данных, серверы вынуждены осуществлять блокировку данных не отдельными записями, как в локальных СУБД, а страницами или даже таблицами. Размер страниц зависит от типа сервера. Табличная блокировка применяется при выполнении запросов модификации данных к целым таблицам (без использования оператора where).

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

В целом, клиентские приложения обеспечивают выполнение следующих стандартных функций:

обеспечение сеанса связи с сервером, при этом одно приложение может одновременно поддерживать несколько соединений;

формирование запросов и передача их серверу;

получение результатов выполнения запросов и их отображение при помощи стандартных интерфейсных элементов;

обеспечение редактирования, дополнительной обработки, преобразования данных и т. д.

Многозвенная архитектура баз данных

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

Многозвенная архитектура приложений БД призвана исправить перечисленные недостатки.

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

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

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

Рисунок 1.7 - Многозвенная архитектура приложений БД

Таким образом, многозвенное приложение БД состоит из:

"тонких" клиентских приложений, обеспечивающих лишь передачу, представление, редактирование и простейшую обработку данных;

одного или нескольких звеньев ПО промежуточного слоя (сервер приложений), которые могут функционировать как на одном компьютере, так и распределенно - в локальной сети;

сервера БД (Oralce, Sybase, MS SQL, InterBase и т. д.), поддерживающего функционирование базы данн