КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Структурная схема пакетаВсе модули клиентского приложения можно условно разделить на пять классов: 1. Модули подключения к базе данных. 2. Модули экранных форм. 3. Модули добавления, редактирования и удаления записей. 4. Модули транзакций. 5. Модули генерации отчетов. Схема взаимодействия модулей в общем виде (в качестве направленного графа) представлена на рисунке 3. Рис. 3 – Схема взаимодействия модулей Модули подключения к базе данных содержат основные классы обеспечивающие взаимодействие клиентского приложения с информационной базой. Методы этого модуля позволяют обновлять данные на экранных формах, предоставлять данных для генерации отчетов, предоставлять подключение для выполнения транзакций. Модули экранных форм обеспечивают визуальный интерфейс для конечного пользователя. Методы классов этого модуля обращаются к модулям транзакции, генерации отчетов и подключения к база данных. Методы классов из модуля генерации отчетов вызываются из экранных форм на основе введенных пользователем данных. В свою очередь этот модуль обращается к методам подключения к базе данных для формирования набора данных, необходимого для генерации отчета и предоставления его конечному пользователю. Модуль транзакции содержит в себе класс, вызывающий различные процедуры добавления, редактирования и удаления записей справочников и журналов. При этом транзакция может вызывать иные экранные формы, если требуется ввести дополнительную информацию. Диаграмма классов, сгенерированная средствами Microsoft Visual Studio 2005 представлена в приложении 9. Модуль добавления, редактирования и удаления записей содержит элементарные классы, методы которые обеспечивают соответствующие операции над таблицами базы данных. Рассмотрим общие принципы построения используемых транзакций. Транзакция – в информатике, группа последовательных операций, которая представляет собой логическую единицу работы с данными[6, c. 52]. Транзакция может быть выполнена либо целиком и успешно, соблюдая целостность данных и независимо от параллельно идущих других транзакций, либо не выполнена вообще и тогда она не должна произвести никакого эффекта. Большая часть транзакций реализованная программно [13, c. 119]. Типичная транзакция редактирования записи состоит из следующих элементов: 1. Считывание записи. 2. Вывод её в специальной экранной форме. 3. При событии DialogResult.OK выполнение одной или нескольких хранимых процедур редактирования записей. 4. При отсутствии ошибок фиксация транзакции, иначе откат всех изменений. DialogResult.OK – событие возникающее, когда пользователь заканчивает работу с диалоговым окном для сохранения внесенных им изменений (например, нажатием на кнопку «OK»). Уровень изоляции транзакций – сериализуемый (Serializable). Это означает, что когда одна транзакция уже считала запись и с ней работает, другая транзакция не может считывать и изменять эти данные [6, c. 1122]. При этом решаются следующие проблемы: 1. «Грязное» чтение (dirty reads) [6, c. 1117]. Такая ситуация возникает , когда один пользователь уже начал транзакцию, изменяющую данных, другой пользователь получает частично измененные данные, не являющиеся корректными. 2. Неповторяемое чтение (non-repeatable reads) [6, c. 1119]. Такая ситуация возникает, когда один пользователь начинает транзакцию, изменяющую данные, а в это время другой пользователь начинает и завершает другую. Теперь первый пользователь получает другой набор данных во время выполнения других шагов транзакции. 3. Чтение фантом (phantom reads) или чтение призрачных строк [6, c. 1120]. Данная ситуация возникает, когда один пользователь начинает транзакцию, выбирающую данные из некоторой таблицы. В это же время второй пользователь начинает и заканчивает транзакцию, изменяющую набор данных в таблице (например, были удалены или изменены некоторые записи). При этом у первого пользователя остаются «фантомные» строки, которых теперь нет (или которые были изменены).
|