0 OLS 10 GOTOC NCHAN 4 DO_IOBSCC DD -1 OLS -1 OLS LENDAT OLS LENDAT OLS

COPY_DAT ;

: GOTOC [NCHAN n] C2 S( NCHAN ) !NCHAN GOTO [NCHAN] ;

: COPY_DAT [] NCHANDAT NCHAN [SRC_CH DST_CH]

C2 !NCHAN LENVMEM [SRC_CH DST_CH LEN] 0 GOTO DO_IOBSCC DD ;

8. Контрольный пример, демонстрирующий возможности технологии

DB.NEW

Создадим объект "Поведение клоуна" для клоуна

[] "Поведение клоуна" CLONE_STR

[oid_str] OIDSET GET_BHR CLONE

[oid_str oid] SET_NAMEOBJ [oid]

Создадим объект "Клоун":

[.. ] "Клоун" CLONE_STR

[.. oid_str] CLONE_AGG

[.. oid_str oid] SET_NAMEOBJ [.. oid]

Определим ему поведение

[oid_bhr oid] SET_BHR

Определим в нем поля: X, Y, Цвет

"X" NEWFID SET_NAMEFID [fid] OIDINT "Клоун" NAMEOID AGG+F []

В ДССП можно определить новое слово

: NEWFIELD [ "Имя объекта" "Имя поля"] NEWFID SET_NAMEFID [A L FID]

OIDINT C4C4 NAMEOID AGG+F DD [] ;

"Клоун" "Y" NEWFIELD

"Клоун" "Цвет" NEWFIELD

Создадим методы.

Создать метод "Идти".

"<тело метода "Идти" >" CLONE_STR [oid_kh]

[oid_kh] "Идти" CLONE_STR E2 C2 SET_KH [OID_STRKH]

"Поведение клоуна" NAMEOBJ SET+E

Аналогично создаются другие методы

...

Подготовка для вызова метода по идентификатору:

"Идти" CLONE_STR C "Клоун" NAMEOBJ METHOD? E2 DELOBJ

Подготовка для вызова метода по имени:

"Идти" CLONE_STR

Вызов

[oid] 0 "Клоун" NAMEOBJ [oid_mth 0 oid_obj] SEND

9. Оценка трудоемкости разработки ПО с использованием традиционного и предлагаемого подходов

В этом разделе будет проведен качественный анализ трудоемкости. Это связано, прежде всего, с особенностью языка реализации, отличного от классических ЯВУ.

Далее, в качестве примера, рассматривается следующая задача:

Клиенты имеют счета. Каждый счет увеличить на 10% и после этого пометить пользователя как получившего премию.

9.1 Табличные базы данных с низкоуровневыми операциями доступа

В качестве примера можно привести FoxPro 2.6 [11]. В ней есть недостаточное для обычных нужд подмножество SQL (SELECT, INSERT INTO); обычно взаимодействие с БД происходит с помощью операторов REPLACE, SCATTER, GATHER, SCAN … ENDSCAN и непосредственного присвоения с указанием в качестве префикса поля имени области, в которой открыта таблица. Такие программы практически непереносимы на клиент-сер­верные технологии, логика программ весьма сложна и приводит при программи­ро­ва­нии к трудно обнаруживаемым ошибкам. Достоинствами же являются простота реа­ли­зации языка таких СУБД и малая требовательность к ресурсам.

Программный код обработки (MS FoxPro 2.6):

SELECT CLIENT

SCAN

SELECT SCHET

REPLACE SUMMA WITH SUMMA*1.1 FOR SCHET.NUM_SCH=CLIENT.NUM_SCH

SELECT CLIENT

REPLACE PREMIA WITH .T.

ENDSCAN

9.2 Реляционные базы данных

Реализация языка SQL позволяет работать с базой данных исключительно средствами SQL. Поддерживаются триггеры, отношения между таблицами, хранимые процедуры. Это типичные клиент-серверные СУБД. Управление целостностью данных возлагается на СУБД. Триггеры позволяют вынести практически все проверки из логики программы. Недостатком является необходимость нормализации таблиц, что затрудняет добавление новых таблиц при сопровождении программного средства, а иногда требует перенор­ма­лизации, что влечет за собой необходимость изменять программный код, а значит, и новые ошибки.

Программный код обработки (MS Visual FoxPro 3.0 и выше):

BEGIN TRANSACTION

UPDATE SCHET SET SUMMA=SUMMA*1.1

WHERE NUM_SCH IN (SELECT NUM_SCH FROM CLIENT)

UPDATE CLIENT SET PREMIA = .T.

END TRANSACTION

9.3 Объектно-ориентированные базы данных

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

Реализация для ООБД на формальном языке:

{«*»(1.1) ~> psumma(sClient.num_sch=Schet.num_sch(Schet, Client)), «:=»(True) ~> pPremia(Client)}

Порядок действий:

 

1    Умножение счетов на 1.1

1.1 Операция селекции выбирает множество счетов

1.2 Операция проекции выбирает интересующую часть счета – сумму

1.3 На суммы посылается операция «умножить» с аргументом 1.1

2    Пометка клиентов, как получивших премию

2.1 Операция проекции выделяет интересующую часть информации о клиенте – атрибут «премия»

2.2 Операция присвоения посылается на выделенный атрибут «премия» с аргументом True

Примечание 1: В операция селекции и проекции имеется некоторое отличие от операций реляционной алгебры. Например, операция проекции, выбирающая сумму, возвращает множество сумм. На самом деле множество сумм содержит не суммы, а иденти­фи­ка­торы атомарных объектов, хранящих суммы. Поэтому множество может содержать не­сколько одинаковых сумм и не теряется связь данных с оригинальным объектом-хранителем (счетом).

Примечание 2: Оба изменения происходят в пределах одной транзакции, посколь­ку эти действия являются экземплярами одного множества. Оба порядка дейст­вий: «сначала умножить, потом – пометить» и «Сначала пометить, потом – умножить» равно­правны, поскольку действия хранятся в множестве. Если порядок ва­жен, т.е. второе воздействие использует результат первого, то необходимо исполь­зовать не множество, а после­дова­тельность.

 Операции над сложными структурами транзитивно распространяются на опера­ции над компонентами по алгоритмам, описанным выше в разделе «Уточнение методов решения задачи». Таким образом, нет нужды во многих случаях писать циклы, обработку вло­жен­ных структур. Использование итераторов позволяет создавать собст­венный алго­ритм выбора элементов для обработки циклов.

9.4 Будущее применения различных баз данных

В прошлые годы много внимания уделялось вопросу трудоемкости разработки програм­много обеспечения. Возросшая сложность программ и объемы используемых данных не позволяют начать разрабатывать новый продукт «с нуля». Теперь вперед выходят технологии, позволяющие создавать легко сопровождаемые программы.

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

10. Литература

[1] О.И.Авен Я.А.Коган “Управление вычислительным процессом” М. Энергия 1978

[2] А.М.Андреев Д.В.Березкин, Ю.А.Кантонистов «Среда и хранилище: ООБД»
Мир ПК №4 1998 (стр 74-81)

[3] М. Аткинсон, Ф. Бансилон и др. «Манифест систем объектно-ориентированных баз данных», СУБД № 4 1995

[4] В.Бобров "Объектно-ориентированные базы данных, мультимедийные типы данных и их обработка" Read.Me №4, 1996

[5] Н.П.Брусенцов, В.Б.Захаров и др. «Развиваемый адаптивный язык РАЯ диалоговой системы программирования ДССП» Москва МГУ 1987

[6] Бурцев А.А "Параллельное программирование. Учебное пособие по курсу "Операционные системы" - Обнинск : ИАТЭ, 1994 - 90 с.

[7] Бурцев А.А. «Сопрограммный механизм в ДССП как основа для построения мониторов параллельных процессов»

[8] Г.Буч «Объектно-ориентированное проектирование (с примерами применения)» М.Конкорд 1992

[9] К.Дж.Дейт «Введение в системы баз данных» 1998 Киев Диалектика

[10] Мутушев Д.М. Филиппов В.И. "Объектно-ориентированные базы данных" Программирование. - М., 1995 №6 стр. 59-76

[11] В.Ремеев «FoxPro. Версия 2.5 для MS-DOS. Описание команд и функций» М. «Мистраль» 1994

[12]СУБД № 2 1995 «Системы баз данных третьего поколения: Манифест»

[13]СУБД № 1 1996 «Стандарт систем управления объектными базами данных ODMG-93: краткий обзор и оценка состояния» Л.А.Калиниченко

[14]СУБД № 1 1996 «ТРЕТИЙ МАНИФЕСТ» Х.Дарвин, К.Дэйт

[15]СУБД № 5-6 1996 “Введение в СУБД часть 9” стр. 136-153 С.Д. Кузнецов

[16]Data & Knowledge Engineeging №15 (1995) стр 169-183 “Selection of object surrogates to support clustering” Jukka Teuhola

[17] Data & Knowledge Engineering. Amsterdam 1996 Том 18 №1 стр.29-54 "Unifying data, behaviours, and messages in object-oriented databases" Sylvia L. Osborn, Li Yu

[18] IEEE Transactions On Knowledge And Data Engineering Том 7 №2 Апрель 1995 стр. 274-292 «Security Constraint Processing in a Multilevel Secure Distributed Database Management System» B.Thuraisingham, W.Ford

[19] Journal of systems and software - N.Y., 1996 Том 35 №3 стр. 169-183

Shah P. Wong J. "Concurency control in a object-oriented data base system"

Документы в Internet (http://www.citforum.ru):

[20] В. Индриков, АО ВЕСТЬ “Объектно-ориентированный подход и современные мониторы транзакций”

[21] Л.Калиниченко “Архитектуры и технологии разработки интероперабельных систем”, Институт проблем информатики РАН

[22] С.Д. Кузнецов "Основы современных баз данных"

[23] С. Кузнецов “Безопасность и целостность, или Худший враг себе - это ты сам”


Информация о работе «Объектно-ориентированная СУБД (прототип)»
Раздел: Информатика, программирование
Количество знаков с пробелами: 117457
Количество таблиц: 9
Количество изображений: 4

Похожие работы

Скачать
35774
0
0

... ); Pisa в университетах Глазго и Св. Эндрю (Universities of Glasgo and St. Andrew). Среди исследовательских институтов, в которых существовали мощные группы, ориентированные на исследования в области объектно-ориентированных баз данных, входили OGI (Oregon Graduate Institute ), MCC (Microelectronics and Computer Technology Corporation ) и французский исследовательский центр INRIA . На базе ...

Скачать
34318
0
0

... ООП. Сейчас язык С++ является языком публикаций по вопросам ООП. Практикум на С/С++:Фактически С++ содержит 2 языка: Полностью включает низкоуровневый Си, поддерживающий конструкции СП, и, собственно, С++ (Си с классами) – язык объектно-ориентированного программирования (ООП). Мы находимся сейчас на технологической ступени структурного программирования, поэтому начинаем с Си: Знакомство с С, ...

Скачать
515112
3
0

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

Скачать
237727
39
0

... , а иногда и невозможным. Недостатки MOLAP-модели: ·           Многомерные СУБД не позволяют работать с большими базами данных. ·           Многомерные СУБД по сравнению с реляционными очень неэффективно используют внешнюю память. В подавляющем большинстве случаев информационный гиперкуб является сильно разреженным, а поскольку данные хранятся в упорядоченном виде, неопределенные значения ...

0 комментариев


Наверх