Разработка прототипа системы управления объектно-ориентированной базой данныхРефераты >> Программирование и компьютеры >> Разработка прототипа системы управления объектно-ориентированной базой данных
Таким образом, если объект имеет точки проверки, описанные для своих операций, то операции встречаются (рандеву) в точке проверки. Если операции в точке проверки произведены успешно, то в будущем нет необходимости любой операции откатываться (rollback) за точку проверки.
Шаги протокола согласованного управления
1. Операция запрошена (requested)
2. Операция вызывает другую операцию
3. Вызванная операция возвращается
4. Операция завершена
5. Точка разрыва (breakpoint) достигнута
6. Точка проверки (checkpoint) достигнута
7. В точке проверки получено сообщение
Детально алгоритм выполнения шагов описан в [19].
4. Представление данных в ООБД
4.1 Базовые объекты системы
Системе известны следующие базовые объекты: ROOT, FAIL, NULL, SAME, ATOMIC, INT, STR, DATIME, BIO, AGG, SET, SEQ.
1. ROOT – корень – предок всех объектов. Данных не имеет.
2. FAIL, копия ROOT – возвращается, если при воздействии произошла ошибка.
3. NULL, копия ROOT – объект-заменитель при отсутствующем значении. Эта проблема возникла недавно, но в теории реляционных баз данных пока не нашла приемлемого решения. Суть проблемы заключается в том, что при вводе данных, некоторые из них могут отсутствовать (например, не известен год рождения), поэтому нельзя сказать, чему они в точности равны. В некоторых случаях нуль может являться значением, для этого и вводится специальное обозначение (NULL).
4. SAME, копия ROOT – объект, позволяющий создавать копии. Он означает, что для взаимодействующего с ним объекта создается копия.
5. ATOMIC – предок всех атомарных объектов. Задает для них основные методы поведения.
6. INT – целое.
7. STR – строка.
8. DATIME – дата и время
9. BIO – условный объект
10. AGG – агрегат
11. SET – множество
12. SEQ – последовательность
4.2 Строение объекта
Каждому объекту выделяется персональное виртуальное пространство. Объект предваряется заголовком. За заголовком следуют виртуальные пространства данных и журнала. Каждый объект имеет уникальный идентификатор в пределах системы.
Таблица 5: Заголовок объекта (все поля 32-битные)
Поле |
Семантика |
OID |
Идентификатор объекта (уникальный в пределах системы) |
OBJBHR |
Идентификатор объекта-поведения (методы) |
OBJKH |
Идентификатор объекта-действия |
TRCOOBJ |
Идентификатор транзакционного сообъекта |
VALUE |
Адрес заголовка вложенного канала, хранящего значение |
HISTORY |
Адрес заголовка вложенного канала, хранящего историю изменений |
Блок данных объекта
Атомарный объект хранит внутри блока данных свое значение.
Объект-условие хранит внутри блока данных три идентификатора в следующем порядке: идентификатор метода условия, идентификатор метода, выполняемого, если условие выполнено («истина») и идентификатор метода, выполняемого, если условие не выполнено ( «ложь»).
У объектов агрегат, список и множество первое слово блока данных – размер элемента. Для списка и множества он равен 4. Для агрегата – 12.
Элементом списка и множества является идентификатор объекта. Элементом агрегата является кортеж:
· идентификатор объекта-значения (он обязательно является потомком объекта-образца)
· идентификатор поля (FID)
· идентификатор объекта-образца
Если идентификатор объекта-экземпляра в списке или множестве равен нулю, это означает, что элемент удален. Признаком конца списка, множества, полей объекта служит размер виртуальной памяти, выделенной для размещения данных.
Таблица 6: Строение данных для DATIME
Длина в байтах |
Значение |
2 |
Год |
1 |
Месяц |
1 |
День |
1 |
Час |
1 |
Минуты |
1 |
Секунды |
2 |
Доли секунд |
Такая структура журнала позволяет фиксировать изменения не только данных, но и поведений, knowhow…
Таблица 7: Структура записи изменений во внутреннем журнале объекта
Число байт |
Значение |
4 |
Номер транзакции |
2 |
Адрес размещения в заголовке |
4 |
Замененное значение |
2 |
Год |
1 |
Месяц |
1 |
День |
1 |
Час |
1 |
Минуты |
1 |
Секунды |
2 |
Доли секунд |
Информация о транзакциях в системе
Все пользовательские объекты в системе имеют транзакционные сообъекты. Транзакционный сообъект – это объект, хранящий информацию о воздействии операций транзакций на состояние пользовательского объекта. Ссылка на сообъект находится внутри объекта, для которого отслеживаются воздействия.
Таблица 8: Структура транзакционного сообъекта (агрегата)
Имя поля |
Значение |
DSL |
Множество локальных зависимостей |
DSI |
Множество унаследованных зависимостей |
DSR |
Множество приобретенных зависимостей |
DS |
Множество зависимостей |