Базы данных. Уровни данных. Нормальные формы схем отношений. Аксиома дополнения (добавления). Способы размещения с применением Хэш-функции, страница 26

Каждый базовый класс предназначен для выполнения определенных функций и обладает соответствующим набором свойств методов и событий. Кроме свойств и событий, специфичных для данного класса, каждый базовый класс содержит основной набор свойств и событий. Минимальный набор свойств класса: BASECLASS – тип класса, базовый класс на основе которого создан данный класс.CLASSLIBRARY – библиотека класса, в которой хранится данный класс.PARENTCLASS – определенный пользователем класс, на основе которого создан данный класс.

Минимальный набор событий:  INIT – наступает при создании объекта. DESTROY – наступает при освобождения объекта из памяти. ERROR – наступает при возникновении ошибки, связанной с объектом.

Лекция 15.12

Visual class designer (VCD)

     Большинство классов можно эффективно создавать, используя VCD, который создает метафайл .vcx. Но в файле .vcx можно хранить информацию о множестве классов.

VCD можно использовать в 2 режимах:

--Создание класса create

--Редактирование modify

Create class <имя нового класса> of <имя библиотеки1> as <имя содержимого> from <имя библиотеки2>

      Имя библиотеки1 - это имя vcx файла, в котором будет храниться информация о создаваемом классе. Если vcx файл для хранения созданного класса ранее не был создан, его необходимо формировать командой create classlib

      Имя содержимого - имя суперкласса.

     Новому классу в качестве суперкласса может быть назначен как базовый класс VFP, так и любой ранее созданный. В этом случае необходимо после ключевого слова from указать имя библиотеки2, т.е. vcx файл, который содержит описание суперкласса. Если создаваемый класс будет храниться в той же библиотеке, что и суперкласс, т.е. файлы библиотеки 1 и 2 совпадают, все равно необходимо указать в каждом месте команды.

     Модификация осуществляется по команде modify class <имя нового класса> of <имя библиотеки>. Если необходимо создать экземпляр класса из библиотеки, она должна быть предварительно загружена командой set class lib to <имя файла библиотеки> [in <имя файла приложения>][alias<псевдоним>][additive]  

     Если некоторый класс из библиотеки1 в качестве суперкласса имеет класс из другой библиотекой, то команды set class lib должны быть загружены в vcx файлы обеих библиотек.

     Если библиотека класса имеется в приложении VFP или в выполняемом файле VFP, то они должны быть указаны после ключевого слова in. При загрузке нескольких файловых библиотек необходимо ключевое слово additive, иначе новая библиотека загрузится на место ранее установленной. Удалить из памяти ранее загруженную библиотеку можно с помощью release class lib.

МОДЕЛИ ТРАНЗАКЦИИ

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

В настоящее время существуют следующие типы транзакции:

плоские или классические (традиционные) транзакции;

--цепочечные;

--вложенные;

Классические или традиционные транзакции характеризуются следующими свойствами:

-атомарности (atomicity)

-согласованности (consistency)

-изолированности (isolation)

-долговечности (durability)

Иногда традиционные транзакции называются асидтранзакции (asid)

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

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

Свойство изолированности означает, что конкурирующие за доступ к б/д транзакции физически обрабатываются последовательно, изолированно друг от друга. Но для пользователей это выглядит так, как будто они выполняются параллельно.