45997 (Объектно-ориентированная СУБД (прототип)), страница 7

2016-07-31СтудИзба

Описание файла

Документ из архива "Объектно-ориентированная СУБД (прототип)", который расположен в категории "". Всё это находится в предмете "информатика" из , которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "рефераты, доклады и презентации", в предмете "информатика, программирование" в общих файлах.

Онлайн просмотр документа "45997"

Текст 7 страницы из документа "45997"

У объектов агрегат, список и множество первое слово блока данных – размер элемента. Для списка и множества он равен 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

Множество зависимостей

Множество зависимостей получается объединением множеств локальных, уна­сле­дованных и приобретенных зависимостей. Каждый элемент какого-либо из этих мно­жеств зависимостей – пара номеров транзакций (Ti,Tj). Если трактовать это мно­жест­во как множество ребер графа, в кото­ром вершины – номера транзакций, а реб­ра – зави­симости между транзакциями, то наличие цикла в графе означает некор­рект­ное выпол­нение транзакций.

В целях упрощения решено отказаться от таблицы конфликтов. Таблица кон­флик­тов описывает какие операции конфликтуют между собой, т.е. может ли выпол­нять­ся операция A, если в данных момент выполняется операция B. Ячейка таблицы может принимать одно из трех значений: «Конфликтует», «Не конфликтует», «Неизвестно». Значение «Неизвестно» вводится по причине наличия механизма позднего связывания, при котором заранее не известно, конфликтуют ли операции.

Транзакции и объекты-поведения

Объекты поведения представляют собой множество объектов, поле OBJKH кото­рых хранит идентификатор выполняемого действия. Это множество имеет ширину эле­мента не 4, как обычное множество, хранящее данные, а 8. В следующих четырех бай­тах может храниться идентификатор списка – строки таблицы чередований в точках разрыва (части подсистемы транзакций). Таблица чередований образуется из точек раз­рыва и группировки спецификаций для объекта. Она позволяет определить: в каких точ­ках разрыва каких операций можно переключиться на выполнение операции, соответ­ствующей этой строке таблицы чередований. Это статическая информация, ко­торая может быть сформирована перед началом работы системы. Элемент строки та­блицы чередований состоит из 2 значений: идентификатора операции и иденти­фикатора мно­жества, хранящего номера точек разрыва.


4.3 Контекст транзакции

В системе есть объект DBIO (Database User-Intarface Object), которому известны состояния всех транзакций. Этот объект представляет собой множество, элементами которого являются объекты-агрегаты, описывающие контекст транзакции.

Таблица 9: Контекст транзакции

Имя поля

Размер в байтах

Значение

TR_MESS

4

OID сообщения

TR_KH

4

OID knowhow

TR_PARAM

4

OID агрегата с параметрами

TR_TARGET

4

OID целевого объекта сообщения

TR_RES

4

OID результата

TR_STACK

4

OID стека

TR_N

4

Номер транзакции

TR_HOSTN

4

Номер вызвавшей транзакции

TR_STATUS

1

Состояние транзакции

TR_POINT

2

Точка разрыва, в которой находимся

Для каждой транзакции выделяется свой стек. Механизм сохранения и вос­ста­нов­ления стеков описан в [7]. Стеки сохраняются в атомарных объектах.

5. Описание операций над объектами в БД

[] DB.NEW [] -- создать новую БД

[] DB.OPEN [] -- открыть БД

[] DB.CLOSE [] -- закрыть БД

Операции клонирования:

[oid] CLONE [oid'] -- клонировать объект

[] CLONE_ROOT [oid'] -- Создать объект от "Корень"

[int] CLONE_INT [oid'] -- Создать объект "Целое"

["string"] CLONE_STR [oid'] -- Создать объект "Строка"

["string"] CLONE_AGG [oid'] -- Создать объек-агрегат

[oid_if oid_then oid_else]

CLONE_BIO [oid'] -- Создать объект-условие

[] CLONE_SET [oid'] -- Создать объект-множество

[] CLONE_SEQ [oid'] -- Создать объект-последовательность

OIDROOT, OIDINT, OIDAGG, …, OIDSEQ -– Узнать идентификаторы соотв. Объектов

[oid_bhr] SET_BHR [] -- переопределить поведение

[] GET_BHR [oid] -- узнать поведение

[oid_kh] SET_KH [] -- переопределить действие

[] GET_KH [oid] -- узнать действие

[oid] GET_INT [int] -- Получить целое число из объекта-целого

[int oid] SET_INT [] -- Занести целое число в объект-целое

[oid] PRINT_STR [] -- Печатать на экране содержимое строки

["string" oid] SET_STR [] -- Занести строку в объект-строку

[oid_super oid] SUPER+ [] -- наследовать данные из oid_super в oid

[oid] DELOBJ [] -- удалить объект

Операции над множеством:

[oid_el oid] SET+E [] -- добавить элемент в множество

[oid_el oid] SET-E [] -- удалить элемент из множества

[oid_el oid] SET?E [0/1] -- найти элемент в множестве

[oid1 oid] SET+ [] -- объединение

[oid1 oid] SET- [] -- разность

[oid1 oid] SET* [] -- пересечение

Операции над списком:

[oid_el n oid] SEQ+E [] -- добавить элемент в последовательность

[n oid] SEQ-E [] -- удалить n-й элемент из

последовательности

[oid_el oid] SEQ?E [0/n] -- найти позицию в последовательности

[n oid] SEQ?N [0/oid] -- определить oid n-го элемента послед-ти

Операции над агрегатом:

[fid oid_etalon oid] AGG+F [] -- добавить поле к объекту

[fid oid] AGG-F [] -- удалить поле из объекта

[fid oid] ETALON [oid] -- получить идентификатор объекта-эталона

[fid oid] FIELD [oid] -- получить идентификатор

объекта-значения

Операции над объектом-условием:

[oid] GET_BIO

[oid_else oid_then oid_if] -- Получить параметры объекта-условия

[oid_else oid_then oid_if oid]

SET_BIO [] -- Сохранить параметры объекта-условия

Специальные операции:

[oid_str oid] SET_NAMEOBJ [oid] -- именовать объект

[oid_str fid] SET_NAMEFID [fid] -- именовать поле

[oid_str] NAMEOBJ [oid] -- получить идентификатор по имени

[oid_str] NAMEFID [fid] -- получить идентификатор поля по имени

[oid_mess oid_par oid] SEND [] -- послать сообщение объекту

[oid_mess oid_obj] METHOD? [] -- определить идентификатор метода

[oid1 oid] CHIELD [1/0] -- определить, является ли oid1 потомком oid

[oid_kh] RUN_KH [] -- выполнить knowhow

[] NCHAN [chan] -- узнать номер текущего канала

[chan] !NCHAN [] -- переключиться на заданный канал

Операции просмотра:

[oid] JVIEW [] -- просмотр журнала

[] A.VIEW [] -- просмотр адресов объектов в БД

[] Q.VIEW [] -- просмотр очереди

[] IC [] -- просмотр состояния канала

6. Требования к техническим и программным средствам

ДССП реа­лизована на множестве компьютерных платформ (VAX, PDP-11, IBM PC, R3000, MC68020, SPARC) и операционных систем (MSDOS, MSDOS-экстендеры, UNIX, RT-11, RSX, OS9, CPM и др.). В дан­ный момент практически закон­чена разработка ДССП на Си, что обес­печивает перенос этой системы на любую платформу, где есть Си.

Аппаратные средства:

Любая платформа, на которой функционирует ДССП, с объемом оперативной памяти для нужд БД не менее 1 Мб.

Программные средства:

ДССП с диспетчером параллельных процессов (версия 4.42) и Операционная Система.

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

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

Использование отдельных почтовых ящиков для нескольких параллельно работающих пользователей позволяет возложить на СУООБД функции монитора [6], осуществляющего линеаризацию поступающих запросов к содержимому СУООБД.

7. Реализация прототипа

7.1 Построитель

LOAD TIMEM

LOAD M0

LOAD M2

LOAD Soms

LOAD CHMS

LOAD SYSOBJS

LOAD M3

LOAD LS_CASH

UNDEF

PROGRAM $KH_VOC

7.2 Заголовочный модуль для каналов

PROGRAM $M0

B16

1000 VALUE TOTMEMLEN

TOTMEMLEN BYTE VCTR MEMORY

: T-1 D -1 ;

: *4 SHL SHL ;

: &0FF 0FF & ;

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5167
Авторов
на СтудИзбе
437
Средний доход
с одного платного файла
Обучение Подробнее