Смекни!
smekni.com

Проектирование информационных систем 3 (стр. 14 из 17)

Демонстрация учебного примера.

9.16 Модуль данных.

Не визуальный компонент реализуется как окно - контейнер для помещения в него: компонент для работы с БД (TDataBase, TTable, TQuery, TStoredProc). А также, если необходимо, обработчиков событий этих компонентов и объектов полей соответствующих НД.

9.17 Свойства модуля.

Связывание модулей проекта.

Обращение к компонентам, расположенным в модуле данных.

Указание определения width.

Width …

9.18 Компоненты посредники.

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

Обращение к параметрам (TParams) компонентов запросов и хранимых процедур производится непосредственно через свойства и методы компонентов.

9.19 Создание приложения клиента для работы с серверной БД.

Настройка соединения с СУБД.

Проверка работы.

Проектирование серверных наборов.

Проектирование главной формы, меню.

Проектирование интерфейсной части по управлению данными.

9.20 Транзакции.

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

Транзакция так же определяет режим видимости данных при работе нескольких пользователей.

Демонстрация видимости данных приложений Console и Expert.

9.21 SQL - операторы.

SET TRANSACTION - Начинает транзакцию и определяет ее поведение.

COMMIT - Сохраняет изменения, внесенные транзакцией, в базе данных и завершает транзакцию.

ROLLBACK - Отменяет изменения, внесенные транзакцией, и завершает транзакцию.

9.22 Старт транзакции.

Оператор SET TRANSACTION имеет формат:

SET TRANSACTION

[Access mode] - [READ WRITE | READ ONLY]

[Lock Resolution] - [WAIT | NO WAIT]

[Isolation Level]

{SNAPSHOT [TABLE STABILITY]

| READ COMMITTED [[NO] RECORD_VERSION]}

[Table Reservation] ;

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

9.23 Уровни изоляции.

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

Dirty Read (грязное чтение) - конкурирующие транзакции видят изменения, внесенные, но не подтвержденные текущей транзакцией.

Read Committed (чтение подтверждений) - конкурирующие транзакции оперируют только подтвержденными изменениями.

Repeatable Read (повторяющееся чтение) - заставляет конкурирующие транзакции оперировать с собственными (локальными) версиями одной и той же записи.

9.24 Управление в BDE.

При использовании BDE управление транзакциями на уровне приложения реализуется методами компонента DataBase и установкой параметров псевдонима.

Procedure StartTransaction;

Procedure Commit;

Procedure Rollback;

Управление видимостью данных определяется в свойстве:

Property TransIsolation: (tiDirtyRead), tiReadCommitted, tiRepeatableRead.

Проверка наличия активной незавершенной транзакции при помощи свойства:

Property InTransaction: Boolean;

9.25 IBTransaction.

Установка свойств транзакции в редакторе компонента

Установленные параметры сохраняются в свойстве Params.

9.26 Свойства транзакции.

1. Snapshot (concurrency, nowait) – обеспечивает видимость конкурирующих транзакций и немедленный возврат ошибок при обнаружении конфликтных ситуаций;

2. Read Committed (read_committed, rec_version, nowait) – аналогично предыдущему, включая обязательный выбор последней версии;

3. Read-Only Table Stability (read, consistency) – определяет открытую транзакцию только для чтения данных, блокируя при этом доступ к данным другим транзакциям;

4. Read-Write Table Stability (write, consistency) – разрешает транзакции просмотр и модификацию данных, блокируя доступ из других транзакций.

9.27 Старт и режимы.

Определение старта транзакции установкой свойства Active компонента в True или False.

TIBTransaction.AutoStopAction определяет, какое действие брать при автоматически окончании транзакций

TIBTransaction.DefaultAction определяет действие, выполняемое при принудительном завершении транзакции

9.28 Значения параметров.

Значение saNone – не определяет поведение неявно стартующей транзакции, требуя от разработчика обязательного наличия одного из методов управления.

Значения saCommit и saRollback определяют отправку одноименного метода на сервер с последующим закрытием используемой транзакции.

А значения SaCommitRetaining и saRollbackRetaining аналогично определят отправку методов Commit или Rollback, но оставят транзакцию открытой для последующего использования.

9.29 Вопрос.

Вызов метода Open для компонента IBQuery, в свойстве SQL которого задан оператор вызова хранимой процедуры, определит:

1. Старт новой транзакции, только если свойство IBTransaction.Activ = False;

2. Старт неявной транзакции сервера приложений;

3. Получение данных в рамках существующей транзакции;

4. Старт транзакции, только если IBTransaction.AutoStopAction = saNone;

5. Нет правильного ответа.

9.30 Вопросы по 5 лабораторной

.

Назначение, основные преимущества использования систем, построенных с применением клиент – серверных архитектур.

Технологии программной реализации многозвенной архитектуры, реализуемые средой разработки Delphi.

Наборы компонентов технологий доступа к серверным базам данных BDE и IBX, назначение основные свойства и методы.

Технологии реализации многозвенных архитектур, основные преимущества и недостатки.

Управление транзакциями, режимы видимости данных, уровни изоляции транзакций.

Реализация управления транзакциями в технологиях доступа IBExpress и BDE.

Серверные наборы данных, формирование, основные свойства, методы и события.

Основные механизмы управления данными в удаленных БД.

9.31 Задания СРСП

.

1. Выбор и защита технологии доступа к БД;

2. Ответить на контрольные вопросы пятого модуля;

3. Провести отладку режимов видимости данных и обновления НД клиента;

4. Защитить отчет по пятой лабораторной работе;

5. Защитить отчет по разделу 3.4 курсовой работы [2];

6. Разработать пример вопроса тестового задания по теме раздела.

9.32 Задания СРС

.

1. Изучить методические указания к пятой лабораторной работе;

2. Ответить на примеры тестовых заданий к пятому модулю;

3. Изучить код модуля данных учебного примера Example;

4. Изучение механизма событий в многозвенных ИС;

5. Изучение системы помощи (HELP), утилиты InteractivSQL, операторы: CREATE EXCEPTION;

6. Изучить конспект 9,10 лекций [3].

9.33 Демонстрация

.

Создания проекта для проектирования облегченного клиента.

Создания модуля данных.

Работы с компонентами доступа к БД.

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

Видимости данных приложений Console и Expert.

Управления транзакцией и видимостью данных.


10 ТЕХНОЛОГИИ ДОСТУПА К БД

10.1 Технологии доступа.

Технология работы с базами данных SQL – сервера «InterBase Express».

Основные компоненты и их использование.

Настройка соединения с БД.

Обновление наборов данных, формируемых при помощи SQL – операторов.

Технология Borland Database Engine (BDE).

Утилита «BDE Administrator».

Установка псевдонима БД.

Основные компоненты для работы с БД.

Тестирование функций компонентов модуля данных.

10.2 Определение.

Технология доступа в многопользовательской системе реализуемой в системе с клиент – серверной архитектурой, определяет взаимодействие клиентского приложения с серверной БД, включая:

- авторизацию пользователя (защита данных);

- управление видимостью данных;

- сетевое взаимодействие.

10.3 Реализация в Delphi

.

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

Технология БД Компонент соединения

The Borland Database Engine (BDE). TDatabase

ActiveX Data Objects (ADO). TADOConnection

dbExpress. TSQLConnection

InterBase Express. TIBDatabase

10.4 Архитектура

.

Архитектура технологии доступа – иерархический набор драйверов и специализированных библиотек для работы с удаленными БД:

10.5 IBExpress

.

Библиотека компонентов реализующих технологию IBExpress расположена на вкладке палитры VCL «InterBase», и содержит наборы компонент для:

- соединения с БД(IBDatabase, IBTransaction);

- доступа к данным(IBTable, IBQuery, IBStoredProc, IBUpdateSQL, IBDataSet, IBSQL, IBClientDataSet);

- администрирования БД(IBDatabaseInfo, IBSQLMonitor, IBEvents, IBExtract).

10.6 Модуль данных

.

Не визуальный компонент реализуется как окно - контейнер для помещения в него компонент для работы с БД (TDataBase, TTable, TQuery, TStoredProc). А также, если необходимо, обработчиков событий этих компонентов и объектов полей соответствующих НД.

10.7 IBDataBase

.

Настройка основных свойств компонента IBDataBase подразумевает определение следующих параметров:

DataBaseName - для определения каталога и имени серверной базы данных;

Default Transaction – связный компонент транзакции, обязательно;

Params - определение параметров авторизации, задаваемых в редакторе компонента;

LoginPrompt - определяет режим авторизации, при значении true запрос диалога на ввод имени пользователя и пароля обязателен;

SQLDialect – определяет диалект, используемый при создании БД;

Connected – логическое свойство, показывающее активность соединения.

10.8 Редактор компонента

.

Задание имени пользователя (SYSDBA) и пароля (masterkey) выполняется в редакторе объекта, как показано рисунке: