автореферат диссертации по информатике, вычислительной технике и управлению, 05.13.11, диссертация на тему:Модели объектно-ориентированных СУБД для информационно-расчетных задач

кандидата физико-математических наук
Камашев, Мстислав Андреевич
город
Казань
год
2011
специальность ВАК РФ
05.13.11
Диссертация по информатике, вычислительной технике и управлению на тему «Модели объектно-ориентированных СУБД для информационно-расчетных задач»

Автореферат диссертации по теме "Модели объектно-ориентированных СУБД для информационно-расчетных задач"

На правах рукописи

Камашев Мстислав Андреевич

« МОДЕЛИ ОБЪЕКТНО - ОРИЕНТИРОВАННЫХ СУБД ДЛЯ ИНФОРМАЦИОННО-РАСЧЕТНЫХ ЗАДАЧ»

Специальность: 05.13.11 - математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей.

Автореферат

диссертации на соискание ученой степени кандидата физико-математических наук

Казань-2011

Работа выполнена на кафедре теоретической кибернетики ФГАОУВПО «Казанский (Приволжский) федеральный университет»

Научный руководитель: Кандидат физико-математических наук,

доцент ФГАОУВПО «Казанский (Приволжский) федеральный университет» Еникеев Арслан Ильясович

Официальные оппоненты: 1 .Доктор физико-математических наук,

профессор ФГАОУВПО «Казанский (Приволжский) федеральный университет» Ш.Т. Ишмухаметов

2.Кандидат физико-математических наук,

заведующий отделом Института информатики АН РТ И.И.Макаров

Защита диссертации состоится 20 октября 2011г. в 15.30 на заседании диссертационного совета Д. 212.081.24 при ФГАОУВПО «Казанский (Приволжский) федеральный университет» по адресу: 420008, г. Казань, ул. Кремлевская, Д. 18, конференц-зал научной библиотеки им. Н.И.Лобачевского.

С диссертацией можно ознакомиться в научной библиотеке им. Н.И. Лобачевского при ФГАОУВПО «Казанский (Приволжский) федеральный университет». Автореферат диссертации опубликован на сайте ФГАОУВПО «Казанский (Приволжский) федеральный университет» (www.ksu.ru).

Ведущая организация: Московский государственный

технический университет имени Н.Э.Баумана

Автореферат разослан 16 сентября 2011 г.

Учёный секретарь диссертационного Совета, к.ф.-м.н, доцент

А. И. Еникеев

ОБЩАЯ ХАРАКТЕРИСТИКА РАБОТЫ

Актуальность темы исследования

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

Представляемая работа посвящена построению объектно-ориентированной модели программных систем, ориентированных на автоматизацию решения так называемых информационно - расчетных задач, в число которых включаются задачи компьютерной бухгалтерии, делопроизводства, статистики и т.п. Основной особенностью упомянутого класса задач является использование относительно простых структур данных, в большинстве случаев адекватно представляемых аппаратом реляционной алгебры. Однако, такое важное понятие, как иерархия, определяющее один из основных принципов объектно-ориентированного подхода, в рам-

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

Цель работы

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

Перечень решаемых задач

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

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

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

4. Разработать средства, обеспечивающие адекватную реализацию модели в среде систем JAVA, Visual FoxPro и MS SQL.

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

Методы исследования

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

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

Научная новизна

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

2. Создание интегрированной среды разработки информационно-расчетных задач на основе специализированной модели.

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

4. Разработка средств, обеспечивающих адекватную реализацию модели в среде систем JAVA, Visual FoxPro и MS SQL .

Практическая ценность результатов.

На защиту выносятся

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

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

3. Разработанные средства, обеспечивающие адекватную реализацию модели в среде систем JAVA, Visual FoxPro и MS SQL .

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

Апробация работы Основные научные результаты диссертационной работы были доложены на научных семинарах кафедры теоретической кибернетики и на XV Международной конференции Проблемы теоретической кибернетики (Казань, Россия, 2— 7 июня, 2008).

Публикации

По теме диссертации опубликовано 5 работ, в том числе 1 - в журнале, входящем в Перечень ВАК РФ.

Структура и объем работы Диссертация состоит из введения, четырех глав, заключения и списка использованной литературы из 87 наименований, включая работы автора. Объем диссертации составляет 118 страниц машинописного текста.

КРАТКОЕ СОДЕРЖАНИЕ РАБОТЫ Введение обосновывает актуальность темы, излагаются цели, задачи исследования, новизна и практическая ценность выносимых на защиту результатов.

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

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

Во второй главе предлагаются средства для построения моделей иерархических структур данных на основе алгебраических спецификаций и средств функционального языка программирования с целью последующей реализации модели в реляционной среде. Данные средства предлагаются в связи с тем, что в процессах реализации информационно-расчетных задач традиционно используется реляционная модель представления данных. Однако в этих задачах часто возникает необходимость использования иерархических структур. Для обеспечения преемственности реляционных моделей возникает необходимость их расширения путем включения адекватных средств представления и обработки иерархических структур.

Спецификация обеспечивает формальное описание внутренней структуры классов объектов, включающей описание атрибутов и операций.

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

Любую таблицу базы данных можно представить в виде списка (S,I,T), где S- объект, определяющий структуру таблицы, I -список индексных выражений, а Т - непосредственно сама таблица. Объекты S,I и Т определяются следующим образом:

S=(si, s2, ..., sm), где Sj (i=l..m) - описания атрибутов таблицы. Каждое описание атрибута представим в виде списка s=(a,c, li , 12), где а — наименование атрибута, с - тип атрибута, Ь , 12 - модификаторы длины. Например, (NAME,Char,50,0) - означает атрибут с именем NAME символьного типа с максимальной длиной в 50 символов, (SALARY,Numeric,12,2) - атрибут с именем SALARY численного типа с максимальной длиной в 12 позиций, включая десятичную точку, и 2 -цифры после десятичной точки.

1=( ¡1, 12.....¡к) , где ^ (¡=1..к)- индексное выражение, представляемое

в виде выражения Е(аь а2,.. ..гц), где (¿=1 ..1) - атрибуты таблицы.

Т=( 1,, ..., ^ ) Через ш1 будем обозначать пустую таблицу. Пусть I - запись таблицы Т, то есть I е Т, тогда любую запись I можно представить в виде последовательности I =( аьа2,..., а^), где а!,а2)..., а^ — атрибуты.

Определим специальную функцию бйпс^Т), значением которой будет являться структура таблицы Т, а через тёех(Т) - список индексных вьфажений таблицы Т. Далее, для простоты изложения последующего материала будем в качестве таблицы рассматривать только объект Т, имея в виду, что для любого такого объекта мы можем всегда определить его структуру посредством функции эйис^Т), а список индексных выражений - через функцию ¡пс1ех(Т) . Структурную и индексную части будем рассматривать только в случае необходимости.

Определим следующие операции:

1. 8е1а(М,у) — присвоение значения V 1-ому атрибуту записи I

Б^а^^у) =ЙГ 1Р(1=1,соп8(у,1аП(0,8е1а(1аП(0Д-1,у))), причем

¡=1..п, где п- число атрибутов записи I;

2. пе«г(8) - значением функции является пустая запись, построенная в соответствии со структурой Б;

3. сгеа1е(8,1) — создание таблицы со структурой Б и списком индексов I, то естьТ= сгеа1е(8,1) О бй-исКТ^ & ц^ех(Т)=1;

4. арреп^(Т) — добавление новой пустой записи к таблице Т,

аррепёЬ(Т) =аг cons(new(struct(T)),T);

ЯИег(Т,Ь) - значением функции является новая таблица, включающая в себя все те записи из таблицы Т, которые удовлетворяют условию Ь,

5. Ш1ег(Т,Ь) IF(cond(Head(T),b),cons(Head(T),fllter(tail(T),b), Я11ег(Ы1(Т),Ь)),

где сопё^Ь) — функция, принимающая булевское значение в результате вычисления логического выражения Ь для записи 1;

6. delete(T) - значением функции является новая таблица, которая получается в результате удаления головной записи из таблицы Т, то есть delete(T) =df tail(T)

Следующая ниже алгебраическая спецификация описывает структуру таблицы:

Object Table :

Table = nil [ (List of record)

List of record = record \ record, List of record

record = {List of Aribute)

List of Aribute = Aribute | Aribute,List of Aribute Aribute = Ident

Ident = Letter \ IdentLette r \ IdentDigit Functions

seta(Record, natural, Atom)—> record

new{structure ) —> record

creatc {structiire, index ) —> Table :

structure = List of def

def = {Name, Type, Lenl, Lenl)

Name = Ident

Type = Ident

Lenl = natural

Len2 = natural

appendb {fable ) —> Table

delete {fable ) —> Table

filter{Table,boolean) —» Table

Axioms

create(S, I)=Jf T= create(S, I) <=> struct(T) = S & index(T) = I appendb(T) =li/ cons(new(struct(T)),T)

fiIter(T, b) =<lf IF(cond(Head(T), b), cons(Head(T), filter(tail(T), b), filter(taü(T), b)))

delete(T) =Jf tail(T)

END

Далее предлагаются способы представления иерархических структур на основе приведенных выше формализованных средств.

Традиционные способы представления иерархических структур в реляционных моделях сводятся к следующим: иерархическая структура в рамках од-

9

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

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

Описание модели иерархических структур приводится на основе определенных выше формализмов.

Первый способ представления иерархии

При этом способе представления ключевое выражение таблицы, однозначно идентифицирующее каждую запись таблицы, определяется парой атрибутов <Н Раг>, где Ы — уникальный номер записи, а Раг — номер родительской записи. Пусть Т -некоторая иерархическая таблица, представленная в виде последовательности записей Т^!, ... , Через ш1 будем обозначать пустую таблицу. Пусть г — запись таблицы Т, то есть I е Т, тогда любую запись I можно представить в виде последовательности I =(И,Раг, а1,а2, ... , ак), где а1,а2, ... , ак — все остальные атрибуты. Определим функции й<ОД для выделения собственного номера записи I и фах(1:) для выделения номера родительской записи, то есть Ш(0= И и ¡раг<Х)=Раг. Запись, определяющая начальный уровень иерархии не имеет родителя, поэтому в качестве номера родительской записи будет 0. Для описания модели были использованы средства языка функционального программирования.

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

Это - следующие операции:

1. тахсос!е(Т) — максимальное значение номеров записей таблицы Т

а. а(М(Т,1,р) - добавление записи I в конец таблицы Т с формированием в записи I собственного номера и номера родительской записи р

2. del(T,k) - удаление из таблицы Т записи с идентификационным номером к, при этом вместе с упомянутым элементом удаляются все связанные записи с более низкими уровнями иерархии (дочерние, дочерние дочерних и так до самого конца). Такой способ удаления обеспечивает сохранение целостности иерархической структуры, которая предусматривает наличие родителя для каждого элемента, кроме начального. Начальный элемент является единственным, у которого вместо номера родительского элемента указывается нулевое значение.

3. down(T,k) - обеспечивается выделение всех дочерних записей по отношению к записи с идентификационным номером к

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

Следующая ниже алгебраическая спецификация полностью описывает структуру объектов и основные функции первого способа представления.

Object Iertable:

Iertable = nil | (List of recard)

List of record = Record \ Record, List of record

record = (Seq)

Seq = Id,Par \ Seq,SeqA

Id = natural

Par = natural

SeqA = Aribute | SeqA, Aribute Aribute = Ident

Ident = Letter \ IdentLetter | IdentDigit Functions

fidißecord) -> natural fpar(Record) —> natural max code{lertable) —> natural add(lertable,Record,natural)—> Iertable del(lertable, natural) —> Iertable down(Iertable, natural) -> Iertable up(lertable, natural)Iertable

Axioms

t = {id, Par, al, a2ak ) fid(l) = Id&fpar(t)= par T Ф nil => maxcode(T) =^ m = maxcode(T) о (3< e T(m = fid(t)))&(Vw eT=>m> fld{w)) maxcode(nil) = 0

add{T,t,p)=J, T = (r,,i„)=> t,p) = (f,,t2,...,/„, fdl{T,t,p)) fill{T,t,p)=4 t = (ld,Pcar,a„ai,...,at)^> fill{T, t, p) = (max code(T)+1 ,p,a„ a2 ,..., ak)

del(T, k) IF(T = nil, nil, IF(fid(head(T)) = к OR Isparg(T, head(T),k)), del(tail(T),k), cons(head(T), del(tail(T),k))))

Isparg(T,t,k) =df (t e T) & (Par(t) = к OR (3 w e T(fid(w) = fpar(t) & Isparg(T,w,k)))

down(T,K) = # IF(T = nil, nil, lF{fparg(head(T)) Ф k), del{tail(T),k),

cons(head(T), del{tail(T), k)))) up(T,k) = jf IF(T = nil,nil, lF(jpar(head(T)) = nParPar{T,k),

com(head{T),up(tail(T),k)),up{tail(T),k))) nPar(T,k)=Jf IF {T = и/7,0, IF(fid(head(T)) = k,

fpar{head(T)), nPar(tail(T),k))) nParPar(T,k) nPar(T,nPar(T,k)) END

Второй способ представления иерархии

При этом способе представления ключевое выражение таблицы, однозначно идентифицирующее каждую запись таблицы, определяется атрибутом Id, где Id=(ni ,п2 ,п3 ,....,Пк) - где П; (i=l..к)— натуральные числа, определяющие номера вершин на каждом уровне иерархии. Таким образом данный атрибут представляет из себя список, однозначно определяющий полный путь соответствующей записи, начиная от корня иерархии до текущей записи. Поскольку идентификационное выражение для каждой записи представляется в виде списка, то вместо понятия идентификационного выражения будем употреблять термин «идентификационный список», или для сокращения - «идентификатор». Последнее число идентификатора записи (nk) будем называть собственным номером записи. Для данного способа также определены те же самые основные операции над иерархическими структурами, что и в первом способе.

Однако определения и реализация этих операций являются другими в соответствии с учетом своей специфики кодировки.

Следующая ниже алгебраическая спецификация полностью описывает структуру объектов и основные функции второго способа представления.

Object Iertable:

Iertable= nil | (List of record) List of record = Record | Record, List of record Record = (Seq) Seq = Id|Seq,SeqA Id = (List of natural) | nil List of natural = natural | natural, List of natural SeqA = Attribute | Attribute, SeqA SeqA = Aribute | SeqA,Aribute Aribute = Ident Ident = Letter \ IdentLetter | IdentDigit

Functions

fid(Record) -»Id fpar(Record) Id maxcode(Iertable, Id) natural add(Iertable, Record, Id) —> Iertable del(Iertable, Id) -» Iertable down(Iertable, Id ) —> Iertable up(Iertable, Id) Iertable

Axioms

fid(t) = ift = (Id, a, ,a2,..., ak ) => fid(t) = Id lpar(t) = <lfD(fid(t))

D(s) = ifIf (tail(s) = nil, nil, cons(head(s), D(tail(s)))) T * nil => maxcode(T, s) =a (m = maxcode(T, s)) <s>

(31 g T(m = Iast(fid(w)) & fpar(t) = s)&(Vw<eT&Jpar(w) = s)=> m > last(fid(w))) last(S) =Jf IF{lail(S) = nil,head(S),last(tail(S))), maxcode(n!7,i) = 0

add(T,t,p) = = (f,,/2,...,r„ ) =i> add(T,t,p) = (i,,r2, ...,/„ ,flll(T,l,p))

fill(T,t,p)=if t = (ld,a1,ai,...,aj=>

fill(T,t,p) = (append(fid(p),(maxcode(T,p) + l)),a, ,a2,..., ak) delCT.s)^ IF(T = nil, nil,

IF(prefix(fid(head(T)), s) ,del(tail(T),s),cons(head(T), del(tail(T),s)))) prefix(s,p) =df IF(s = nil, true, IF(head(s) = head(p),prefbc(tail(s),tail(p)),false))) down(T, s) = j, IF(T = nil, nil, IF( lpar(head(T)) = s, cons(head(T), tailfT)), down (tail(T),s)))

up(T,s)=df IF(T = nil, nil, IF(fpar(head(T)) = nParPar(T, s), cons(head(T), up(taiI(T), s)), up(tail(T), s)))

nPai(T, s) = df IF (T = nil, nil, IF(fid(head(T)) = s, fpar(head(T))),

nPar(tail(T),s))) nParPar(T, s) = df nPar(T, nPar(T, s)) END

Третий способ представления иерархии

Данный способ представления иерархии основывается на создании специальных отношений между 2-мя или более таблиц. Здесь ограничимся рассмотрением 2-х таблиц, имея в виду, что все результаты, получаемые в этом случае легко можно обобщить для большего количества таблиц. Такие отношения между таблицами классически делятся на виды: «один ко многим», «один к одному» и «многие ко многим». Для представления иерархии будем рассматривать только первый из перечисленных выше видов отношений. При этом способе представления ключевое выражение первой таблицы, определяется индексным выражением, однозначно идентифицирующее каждую запись таблицы, а в качестве 2-ого элемента отношения выбирается соответствующее индексное выражение второй таблицы. Наложим следующие ограничения на структуры упомянутых выше таблиц:

1)список атрибутов первой из таблиц Ti будем представлять в виде (Id, ai,a2,..., аО, где Id- ключевой атрибут, ai,a2,..., at — все остальные атрибуты таблицы Ть определим функцию fid(t) для выделения уникального номера записи t, то есть fid(t)= Id, причем t е Ti& se Ti&s^t => fid(t) Ф fid(s);

2) список атрибутов второй из таблиц Т2 будем представлять в виде

(Par, аьа2,..., am), где Par - номер родительской записи в таблице Ть а[,а2, ..., аш - все остальные атрибуты таблицы Ti ; функция fpar(t) определяет номер

14

родительской записи в таблице Ti причем se T2=>(3te Ti).(fpar(s)= fid(t)) (нарушение этого условия рассматривается как нарушение целостности соответствующей базы данных).

Таким образом отношение иерархии между таблицами Ti и Т2 можно определить следующим образом:

Н(Т,, Т2) =df (t е Т,& se T,&s#) => fid(t) + fid(s)) & (se T2=>(3te Т1).(фаг(з)= fid(t))) Следующий ниже пример демонстрирует отношение иерархии между двумя таблицами (отношение вида «один ко многим»):

Таблица ^(список университетов)

Id Name

1 Казанский университет

2 Московский университет

Таблица Т2 (список факультетов)

Par Name

1 ВМК

1 ФИЗФАК

2 ВМК

2 ФИЗФАК

В последующем таблицу Ti будем называть родительской, а таблицу Т2-дочерней.

Определим основные операции для иерархических структур. l.Addl(T,t) — добавление записи t в конец таблицы Т с формированием в записи t уникального значения ключевого атрибута, то есть

Т = (/, f2)...,/„)=> add\(T,t,р) = (/, /2,...,t„,fdl\(T,t)\где если t = (ld,al,a1,...,al\mo fill\(T,t) = (maxcode(r) +l,a,,a2,...,at\

maxcode(T) — максимальное значение номеров записей таблицы Т,

то есть:

Т * nil => max codeur) (m = max code(T)) о (3/ 6 T(m = ^(/)))&(Vwе Г => m > j7î/(vv)), max code{nil) = 0

Эта операция применима только к таблице типа Т[.

2.Add2(TbT2,t,p) - добавление записи t в конец таблицы Т2 с формированием в записи t номера родительской записи р, то есть

Т2= (t,, t2,..„ t) & (3te TI)(fîd(t)= p) => Add2(TbT2,t,p) = (t„ t2,..„ ^,«112(1,p)) , где fill2(t,p)=( Р , aba2,..., ak)

3. dell(T,k) — удаление из таблицы T записи с номером к, то есть dell{T, k)=df IF (J = nil, nil, IF{fid{head(T)) = к , dell(lail(T), к), cons(head(T), deIl(tail(T),k))))

Эта операция применима только к таблице типа TV

4. Delcs(TbT2,k) - удаление из таблицы Ti записи с номером к. При удалении записи из родительской таблицы в дочерней таблице происходит удаление всех соответствующих дочерних записей.

Таким образом:

Delcs(Ti,T2,k) =df СП =Dcl 1 (Tbk) & T2'= Del2(T2,k)), где Т/ и T2' определяют новые состояния таблиц Т! и Т2 после выполнения операции удаления,

Del2(T,k) ) =df IF(T=nil, nil, IF(fpar(head(T))=k, Del2(tail(T),k), cons(head(T), Dell(tail(T),k)).

Функция Delcs(Ti,T2,k) определяет так называемое каскадное удаление (CASCADE). Выполнение этой операции возможно лишь в том случае, если на соответствующее отношение не наложено ограничение на удаление (RESTRICT). В противном случае из родительской таблицы разрешено удалять только те записи, для которых нет дочерних записей.

5. Downl(Ti,T2(k) — обеспечивается выделение всех тех записей из таблицы Т2, являющихся дочерними по отношению к записи таблицы Т] с номером к. То есть

Downl(T,,T2,k) =df IF( IsParl(Tbk), Down2(T2,k), nil),

IsParl(T,k) =df (3te T).(fid(t)=k) (функция проверки существования записи с номером к в таблице Т )

Down2(T,k) =df IF(T=nil, nil, IF(fpar(head(T))=k, cons(head(T),

Down2 (tail(T),k)), Down2 (tail(T),k))) 6. Upl(T|,T2) обеспечивается возврат на родительский уровень иерархии, Upl(Ti,T2) =dfTi . Object HREL: HREL = Н(ТаЫе 1, Table2; Tablel = nil\(List of record 1 )

List of record 1 = recordl \record\. List of record 1

recordl = (Seql )

Seql = Id[Seq\,SeqA

Tablel = nil\ (List of recordl )

List of record2 = record2\record2,List of recordl

recordl = (Seql)

Seql = Par\Seql,SeqA

Id = natural

Id = natural

Par = natural

SeqA — Aribute\SeqA,Aribute Aribute = Ident

Ident = Letter\Ident Letter \ldent Digit Functions

H(Table\, Tablel) -> boolean

Add\(Tablel, recordl) Table 1

filIl(Tablel, recordl) -> Table 1

filll(Tablel,recordl) Tablel

AddlfTable 1, Tablel,recordl,Natural) -> Tablel

maxcode(7aWe 1, Id) natural

del\{Table\ , natural) —> Tablel

DeIl(Tablel, natural) -> Tablel

DelcsfTablel ,natural) —» boolean

Down\(Tablel, Tablel,natural) -» Tablel

Downl(Table2,natural) Tablel

Upl(Tablel, Tablel) -> Tablel

Axioms

add\(T,t,p)=df

t=(/,/2...../„)=> addi(T,t,p)=(ttt2,...,t„fiin(T,t))

t - (id, a„ a2.....a, ) => fiU\(T, t) = (maxcode(T) +1, a,, a,,..., a,}

T * nil => max codeur) (m = max code(T)) » (3/ e 7"(m = fid(t)))&(Vwe T => in> ftd(w)\ max code(nil) — 0 Add2(Tl,T2,t,p) =jf

T2 = (tl,t2,...,tn)&(3teTl)(fid(t)=p)=>

Add2(Tl,T2,t,p) = (tl, t2.....tn,fill2(t,p))

fiU2(t,p))=#

t = (Par,a,,a2,...,at)=>fiU2(t,p)) = (p, al,a2,..., ak)

del\!(r,к)= у IF(T = nil,nil,fF(fid(head(T)) = к ,dell(tail(T),k),

cons(head(T), del\{tail{T),k))))

Del2(T,k) =Jf IF(T = nil, nil, IF(fpar(head(T)) = k, Dcl2(tail(T), k), cons(head(T), Dell(taiI(T),k))

Delcs(Tl,T2,k) (TV = Del\(T\.k) cfe Г2' = Del2(T2,k)) Downl(Tl,T2,k) IF(IsParl(Tl.k),Down2(T2,k),nil) IsParl(T,k) (3t e T).(Jid(t) = k)

Down2(T,k) =Jf IF(T = nil, nil, IF(fpar(head(T)) = k, cons(head(T),

Down2 (tail(T), k)), Down2 (tail(T), k))) Upl(Tl,T2)=^ Tl. END

Использование приведенного выше способа представления иерархии для больших глубин иерархии является нецелесообразным, так как требует привлечения большого количества таблиц и соответственно может серьезно снизить эффективность обработки иерархических структур. Третья глава описывает разработанные автором средства, обеспечивающие перевод формализованной модели в соответствующие средства СУБД Visual Foxpro, MS SQL и JAVA среды. Кроме этого предлагаются средства преобразования данных таблицы представления иерархии второго типа в данные таблицы представления иерархии первого типа.

Структура таблицы для первого способа представления иерархии:

-Till It mÉÊÊklÊÊÊtÊÊÊÊMÊSÊÊÊÊÊÊÊÊÈÊiïii

I

Name

Щpar

name

Table Jk ' S 1

Туре Width

Integer (Autolnc 4

Integer 4

Character 20

Character 1

Width Decimal Index NULL

FMe: ....................................... У

Message: u

Def§uft value: .}.. j

f Display ; Format:

Input mask: Caption:

Field validation

Display class:

Autolnciement. £lext Value: (l

• .- . . '••;• ' lie Id comment:

classes

; ltd

; < default) IIS

¡Step: 11 fgjjj

.......щ

...............0]

in«"

Betete

Для данной таблицы:

- Id - уникальный номер записи, имеет числовое значение

- Par - номер родительской записи, имеет числовое значение

- Name - имя записи, имеет символьное значение

- Prs - признак записи, указывающий наличие дочерних элементов, имеет символьное значение

Структура таблицы для второго способа представления иерархии:

Fields ^ IndexesЦ Table j ________''у .

Name Туре Width Decimal Index NULL -Display

НИ ) | Character Ml 21 ш w ri гш Format: _J

□ "а™ □ Р* Character Character 60 Input mask: 3;

Caption: Field validation :: in

Rule: IU

Message: IU

Default value: jU

• Map field type to classes

Dispjay library: .....iU

Dtsglay class: < default > a

Autoincrement

Next Value: j : ? I SJep: \ M

Field comment:

j HI

jv. i i............................................ el

insert | Delete j I 0KJ[ Cancel |

Для данной таблицы:

- kod - уникальный номер записи, имеет символьное значение

- Name - имя записи, имеет символьное значение

- Prs - признак записи, указывающий наличие дочерних элементов, имеет символьное значение

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

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

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

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

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

Заключение

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

Основная особенность упомянутой интегрированной среды разработки заключается в том, что она включает в себя наряду с формализованными средствами модели средства реализации модели в программную среду СУБД Visual Foxpro, MS SQL и системы JAVA.

Благодарности

Автор выражает искреннюю благодарность своему научному руководителю Арслану Ильясовичу Еникееву за постоянное внимание и неизменную поддержку данной работы.

Публикации по теме диссертации:

Работа опубликованная в журнале, входящем в Перечень ВАК:

1. Камашев М.А. Специализированные модели для разработки программных приложений на основе алгебраических спецификаций и средств функционального программирования // Системы управления и информационные технологии. Научно-технический журнал №4(42). - Воронеж: Изд-во «Научная книга», 2010. - С. 73 - 78. ISSN 1729-5068.

Другие публикации:

2. Еникеев А. К, Бендума Т., Камашев М. А. Специализированные объектно-ориентированные модели программных систем // Материалы XV Меж-

дународной конференции Проблемы теоретической кибернетики (Казань, Россия, 2-7 июня, 2008). - Казань: Изд-во «Отечество», Июнь 2008. - С. 36 - 37.

3. Камашев МЛ. Специализированная обьектно-ориентированная модель для представления иерархических структур // Информационные технологии моделирования и управления. Международный научно-технический журнал № 5(64). -Воронеж: Изд-во «Научная книга», 2010. - С. 669 - 678. ISSN 1813-9744

4. Камашев МЛ. О технологии создания специализированных объектно-ориентированных приложений Исследования по информатике. - Вып. 11. - Казань: Изд-во "Отечество", 2007. - С. 123 - 128.

5. Камашев МЛ. Описание программного обеспечения // Техника и технология", №4 (июль). - М.: Изд-во "Спутник+", 2011. - С. 17 - 38.

Отпечатано с готового оригинал-макета в типографии Издательства Казанского университета Тираж 150 экз. Заказ 90/9

420008, г. Казань, ул. Профессора Нужина, 1/37 тел.: (843) 233-73-59,292-65-60

Оглавление автор диссертации — кандидата физико-математических наук Камашев, Мстислав Андреевич

Введение

Глава 1. Анализ методов проектирования и разработки программных систем 8 1.1 Введение в методы проектирования и разработки программных систем

1.20сновы алгебраического подхода

1.3. Способы представления моделей

1.4.Функциональные языки программирования 15 1.5 .Модели иерархически организованных структур 17 1.6. Заключение

Глава 2. Алгебраические спецификации иерархических структур

2.1 Первый способ представления иерархических структур

2.2 Второй способ представления иерархических структур

2.3 Третий способ представления иерархических структур

Введение 2011 год, диссертация по информатике, вычислительной технике и управлению, Камашев, Мстислав Андреевич

Большинство современных подходов к разработке программного обеспечения основывается на формализованных средствах, которые обеспечивают строгое и однозначное описание требований к создаваемому программному продукту. Применение формализованных средств является наиболее эффективным в тех случаях, когда их адекватно использую т на всех необходимых этапах разработки, начиная от постановки задачи до этапа непосредственной реализации и внедрения программного продукта. Кроме компактного и однозначного описания разработки программного продукта в этом случае появляется возможность предварительного исследования и принятия обоснованных решений по методам реализации. Применение формализованных средств предусматривает, как правило, построение формальной модели, с помощью которой обеспечивается не только описание соответствующих компонент программного продукта на всех этапах жизненного цикла программного обеспечения, но и проведение предварительных исследований по выбору адекватных методов разработки и реализации.

Представляемая работа предусматривает построение объектно-ориентированной модели программных систем для автоматизации решения так называемых информационно - расчетных задач, к которым относятся задачи компьютерной бухгалтерии, делопроизводства, статистики и т.п. Основная специфика упомянутого класса задач заключается в использовании относительно простых структур данных, адекватно представляемых аппаратом реляционной алгебры. Однако, такое важное понятие, как иерархия данных, определяющее один из основных принципов объектно-ориентированного подхода, представляется в реляционной модели далеко неадекватными способами, что может существенно отразиться на эффективности функционирования соответствующей интегрированной среды разработки программных приложений. Особенностью предлагаемого подхода является расширение реляционной модели за счет включения в нее специализированного формализованного аппарата описания иерархических структур с целью гибкого сочетания простоты реляционной модели со средствами эффективного представления иерархии данных. Основу упомянутого выше формализованного аппарата составляют алгебраические спецификации вместе со средствами функционального языка программирования. С другой стороны включение в модель алгебраических спецификаций обеспечивает не только описание соответствующих компонент программного продукта на всех этапах жизненного цикла программного обеспечения, но и возможность проведения предварительных исследований по выбору адекватных методов разработки и реализации на основе формального доказательства свойств модели. В последующих этапах предусматривается построение на основе этой модели специализированной интегрированной среды разработки, обеспечивающей возможность эффективного создания различных приложений для автоматизации решения информационно — расчетных задач, связанных с иерархической организацией данных и процессов их обработки.

Цель работы

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

Методы исследования

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

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

Научная новизна

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

2. Создание интегрированной среды разработки информационно-расчетных задач на основе специализированной модели.

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

4. Разработка средств, обеспечивающих адекватную реализацию модели в среде систем JAVA, Visual FoxPro и MS SQL .

Практическая ценность результатов

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

На защиту выносятся

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

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

3. Разработанные средства, обеспечивающие адекватную реализацию модели в среде систем JAVA, Visual FoxPro и MS SQL .

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

Связанные работы

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

- работы по использованию алгебраических спецификаций [12,26,27] ;

- работы по созданию CASE технологий, паттернов проектирования и работы по объектно-ориентированным средствам описания моделей программных систем [6,37,47];

- работы описывающие структуры данных и операций в с использованием средств функционального языка программирования на основе языка LISP[11,14,21,43];

- работы, рассматривающие преимущества функционального программирования [2];

- работы, рассматривающие проблемы объектно-ориентированных моделей для представления иерархических структур[3,22];

Выводы

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

Проведенный анализ современных работ в этой области показывает недостаточность комплексных методов и средств для оценки параметров и свойств обширного разнообразия сложных иерархических структур, сводящие их воедино. Автором предпринята попытка по преодолению этого рода затруднений путем создания и эффективного использования комплексных методов и средств управления данными в сложных иерархических структурах и регулированию процессов в них.

Заключение диссертация на тему "Модели объектно-ориентированных СУБД для информационно-расчетных задач"

ЗАКЛЮЧЕНИЕ

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

Основная особенность упомянутой интегрированной среды разработки заключается в том, что она включает в себя наряду с формализованными средствами модели средства реализации модели в программную среду СУБД Visual Foxpro, MS SQL и системы JAVA.

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

Ill

Библиография Камашев, Мстислав Андреевич, диссертация по теме Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей

1. Абельсон X. Структура и интерпретация компьютерных программ / X. Абельсон, Д. Д. Сассман. М.: Добросвет, 2010. - 608с.

2. Астапов Д. Е. О теоретико-возможностном подходе к построению нечеткой реляционной алгебры / Д. Е. Астапов, А. А. Ерсмко //http://fprog.ru/2010/issue: обращения: 16.09.2011).philo

3. П.Душкин Р. В. Справочник по языку Haskell / Р. В. Душкин. М.: ДМК Пресс, 2008. - 544 с.

4. Еникеев А. И. Специализированные объектно-ориентированные модели программных систем / Л. И. Еникеев, Т. Бендума,, М. А. Камашев // Проблемы теоретической кибернетики: материалы XV Между нар. конф;, г. Казань, 2-7 июня 2008 г. Казань, 2008. - С. 36-37.

5. Еникеев А. И. Языки программирования, методы трансляции ш технологии программирования / А. И. Еникеев, Р. М. Хадиев Казань: ЦИТ, 2005. - 96 с.

6. Иордон Э. Объектно-ориентированный анализ и проект ирование5 систем / Э. Йордон, К. Аргила. М.: Лори, 2010. - 264 с.

7. Камашев М. А. О технологии создания специализированных объектно-ориентированных приложений / М. А. Камашев // Исследования по информатике. — Казань, 2007. — Вып. 11. С. 123—128.

8. Камашев М. А. Описание программного обеспечения / М. А. Камашев //Техника и технология. — 2011 .-№ 4. С. 17-38.

9. Системы управления и информационные технологии. 2010. - № 4 (42). - С. 73-78.

10. Канторович JT. В. Перспективы крупноблочного подхода в прикладной математике, программировании и вычислительной технике / Л. В. Канторович // Записки научных семинаров ЛОМИ. 1974. - Т. 48. -С. 5-11.

11. Кауфман В! Ш. Языки программирования: концепции и принципы / В. Ш. Кауфман. М.: Радио и связь, 1993. - 430 с.

12. Ковалев С. П. Алгебраический подход к проектированию распределенных вычислительных систем / С. П. Ковалев // Сибирский журнал индустриальной математики. 2007. — № 10. - С. 70-84.

13. Когаловский М. Р. Перспективные технологии- информационных систем / М. Р. Когаловский. М.: ДМК Пресс, 2003. - 288 с.

14. Когаловский М. Р. Энциклопедия технологий баз данных / М. Р. Когаловский. — М.: Финансы и статистика, 2002. 800 с.

15. Кузнецов С. Д. Базы данных. Языки и модели / С. Д. Кузнецов. М.: Бином-Пресс, 2008. - 720 с.

16. Кузнецов С. Д. Основы баз данных / С. Д. Кузнецов. М.: Бином. Лаборатория знаний, 2007. - 488 с.

17. Лафоре Р. Структуры данных и алгоритмы Java / Р. Лафоре; пер. с англ. Е. Матвеева. СПб.: Питер, 2010. - 704 с.

18. Левин Н. А. Алгебраический подход к оптимизации обработки информации / Н. А. Левин, В. И. Мунерман // Математические модели и методы информатики, стохастические технологии и системы. М., 2005. — С. 279—294. — (Системы и средства информатики; Спецвып.).

19. Мартин Р. Чистый код. Создание, анализ и рефакторинг / Р. Мартин; пер. с англ. Е. Матвеева. СПб.: Питер, 2010. - 464 с.

20. Машнин Т. Современные JAVA-технологии на практике / Т. Машнин. СПб.: БХВ-Петербург, 2010. - 560 с.

21. Митчелл Дж. Основания языков программирования / Дж. Митчелл; пер. с англ. П. Айткулова, Д. Когетова. — М.: Регулярная и хаотическая динамика, 2010. 720 с.

22. Объектно-ориентированный анализ и проектирование с примерами приложений / Г. Буч и др.. -М.: Вильяме, 2010. 720 с.

23. Поляков А. О. Представление знаний и объектно-ориентированная СУБД Cache Электронный ресурс. / А. О. Поляков, И. А. Семенов. -URL: www.inftech.webservis.ru/it/ii/ar4.html (дата обращения: 16.09.2011).

24. Полякова JI. Н. Создание иерархической структуры данных в среде MS SQL Server / Л. Н. Полякова // Программные продукты и системы. -2001.-№2.-С. 5-9.

25. Приемы объектно-ориентированного проектирования. Паттерны проектирования / Э. Гамма, Р. Хелм, Р. Джонсон, Дж. Влиссидес. — СПб: Питер, 2007.-366 с.

26. Селко Д. SQL для профессионалов. Программирование / Д. Селко; пер. с англ. И. Афанасьева. М.: Лори, 2009. — 464 с.

27. Фаро С. Рефакторинг SQL-приложений / С. Фаро, П. Лерми; пер. с англ. Ф. Гороховского. СПб.: Символ, 2009. — 336 с.

28. Филд А. Функциональное программирование / А. Филд, П. Харрисон. -М.: Мир, 1993.-640 с.

29. Фоулер Ч. Rails: сб. рецептов / Ч. Фоулер. СПб.: Питер, 2007. - 256 с.

30. Хантер Р. Основные компетенции компиляторов / Р. Хантер. — М.: Вильяме, 2002. 252 с.

31. Хендерсон П. Функциональное программирование: применение и реализация / П. Хендерсон. М.: Мир, 1983. - 349 с.

32. ШилдтГ. Java. Методики программирования Шилдта / Г. Шилд. — М.: Вильяме, 2008.-512 с.

33. Шутенко Ю. Visual FoxPro для профессионалов / Ю. Шутенко. СПб.: БХВ-Петербург, 2009. - 576 с.

34. Эккель Б. Философия Java / Б. Эккель; пер. с англ. Е. Матвеева. СПб.: Питер, 2011.-640 с.

35. Abrial J. R. The B-Book / J. R. Abrial. Cambridge: Cambridge Univ. Press, 1996.-850 p.

36. André P. Méthodes formelles et à objet pour le développement du logiciel: études et propositions. PHD thesis / P. André P. Université de Rennes, 1995.

37. BackR. J. Decentralisation of process nets with centralised control / R. J. Back, R. Kurki-Suonio // 2nd ACM SIGACT-SIGOPS Symp. On Principles of Distributed Computing, Montreal, Canada, 17-19 August 1983.-Canada, 1983.-P. 131-142.

38. Berry G. The Esterel Synchronous Programming Language: Design, Semantics, Implementation / G. Berry, G. Gonthier // Science of Computer Programming. 1992. -№19 (2). - P. 87-152.

39. Bolognesi T. Introduction to the ISO specification language LOTOS / T. Bolognesi, E. Brinksma // Computer Networks and ISDN Systems. -1987.-№ 14(1).-P. 25-59.

40. Booch G. The Unified Modeling Language User Guide / G. Booch, I. Jacobson, J. Rumbaugh. - Addison-Wesley, 1998. - 482 p.

41. Bowen J. Seven more myths of formals methods / J. Bowen, M. Hinchey // IEEE. Software, 1995. - P. 34-41.

42. Chen P. The entity-relationship "model — Toward a unifying view of data / P. Chen // ACM Transactions on Database Systems. 1976. - № 1 (1). - P. 9-36.

43. DeLoach S. A. Theory-Based Representation for Object-Oriented Domain Models / S. A. DeLoach, T. A. Hatrym // IEEE transaction on software engineering. 2000. -V. 26, № 6. - P. 500-517.

44. Florescu D. Rethinking Cost and Performance of Database Systems / D. Florescu, D. Kossmann // SIGMOD Record. 2009. - V. 38, № 1. - P. 43-48.

45. Folsom N. Debugging Visual FoxPro Applications / N. Folsom. Whitefish Bay: Wis Hentzenwerke Publishing, 2002. - 113 p.

46. Formal Semantics for Ward and Mellors's Transformation / C. Petersohn, W. P. de Roever, C. Huizing, J. Peleska // 6th Refinement Workshop, Workshop in Computing. Springer-Verlag, 1994. - P. 14-41.

47. Frappier M. EB3: an entity-based black-box specification method for information systems / M. Frappier, R. St-Denis // Software and Systems Modeling. -2003. -№ 2 (2). P. 134-149.

48. Fraser M. D. Informal and Formal Requirement Specification Languages: Bridging the Gap / M. D. Fraser, K. Kumar, V. Vaishnavi // IEEE Transactions on Software Engineering. 1991. - V. 17 (5). - P. 454-465.

49. Fraser M. D. Strategies for incorporating formal specifications in software development / M. D. Fraser, K. Kumar, V. Vaishnavi // Communications of the ACM. 1994. - V. 37 (10). - P. 74-84.

50. Gurevich Y. Evolving Algebras: An attempt to discover semantics / Y. Gurevich // Current Trends in Theoretical Computer Science. World Scientific, 1993.-P. 266-292.

51. Habrias H. Les spécifications formelles pour les systèmes d'information: Quoi? Pourquoi? Comment? / H. Habrias // Ingénierie des systèmes d'information. 1995. -№ 3 (2). - P. 205-253.

52. Hall A. Seven myths of formais methods / A. Hall // IEEE Software, 1990. -P. 11-20.

53. Harel D. Statecharts: A visual formalism for complex systems / D. Harel // Science of Computer Programming. 1987. - № 8 (3). - P. 231-274.

54. Hoare C. A. R. Communicating Sequential Processes / C. A. R. Hoare. -London: Prentice-Hall, 1985. 260 p.

55. Jones C. B. Systematic Software Development using VDM / C. B. Jones. -2nd edition. London: Prentice-Hall, 1990. - 405 p.

56. LUSTRE, a declarative language for programming synchronous systems / P. Caspi, N. Halbwachs, D. Pilaud, J. Plaice // 14th Symposium on Principles of Programming Languages (POPL 87). Munich, 1987. - P. 178-188.

57. MAD Skills: New Analysis 'Practices for Big Data / J. Cohen at al. // Proceedings of the VLDB'09 Conference, Lyon, France, August 24-28, 2009. Lyon, 2009. - P. 1481-1492.

58. MarcaD. SADT: Structured Analysis and Design Technique / D. Marca, C. McGowan. N. Y: McGraw-Hill, 1988. - 392 p.

59. Milner R. Communication and Concurrency / R. Milner. Prentice-Hall, 1989.-260 p.118. ДО

60. Peterson J. L. Petri Net Theory and the Modeling of Systems / J. L. Peterson. London: Prentice-Hall, 1981.-290 p.

61. Peterson J. L. Petri nets / J. L. Peterson // ACM Computing Surveys. 1977. -№9(3).-P. 223-252.

62. Scientific Data Management in the Coming Decade / J. Gray at al. // SIGMOD Record. 2005. - V. 34, № 4.

63. Smith G. The Object-Z Specification Language / G.Smith. Boston: Kluwer Academic Publishers, 2000. - 146 p.

64. Sommerville I. Software Engineering / I. Sommerville. 4th ed. -Wokingham, England: Addison Wesley, 1992. - 649 p.

65. Spivey J. M. The Z notation: a Reference Manual / J. M. Spivey. N. Y.: Prentice-hall, 1992. - 158 p.

66. Srinivas Y. M. Algebraic specifications for domains in software development and maintenance / Y. M. Srinivas // Communications of the ACM. 1990. - V. 33. № 6. - P. 658-667.

67. Srinivas Y. V. Algebraic Specification: Syntax, Semantics, Structure: Technical report TR 90-15 / Univ. of California at Irvine. Irvine: Calif. Dept. of Information and Computer Science, 1990. - 129 p.

68. Strategic Directions in Database Systems Breaking Out of the Box / A. Silberschatz et al. //ACM Computing Surveys. - 1996. - V. 28, № 4. -P. 764-778.

69. The Lowell Database Research Self-Assessment // CACM. 2005. - V. 48 (5).-P. 111-118.

70. The Computer Language Электронный ресурс. URL: http://shootout.alioth.debian.org/ (дата обращения: 16.09.2011).

71. Which programming languages are fastest? Электронный ресурс. URL: http://shootout.alioth.debian.org/u64q/which-programming-languages-are-fastest.php#chart (дата обращения: 16.09.2011).

72. Wing J. A specifier's introduction to formal methods / J. Wing // IEEE Computer. 1990. -V. 23, № 9. - P. 8-24.