Мегаобучалка Главная | О нас | Обратная связь


Представление базы данных САПФОР



2020-02-03 161 Обсуждений (0)
Представление базы данных САПФОР 0.00 из 5.00 0 оценок




 

База данных САПФОР основана на реляционной модели и представлена более чем двадцатью таблицами, связанными между собой.

Таблицы содержат информацию о некоторых сущностях, введенных для описания программы, результатов анализа, параметров и результатов распараллеливания. К основным сущностям относятся: файлы, программные единицы, циклы, переменные, имена и описания COMMON-блоков, выражения, операторы, вызовы подпрограмм, обращения к элементам массивов и т.д. Зачастую, информация о некоторой сущности разбита между таблицами базы данных. Например, чтобы собрать информацию о переменной var, скажем, программную единицу, в которой объявлена переменная, тип, размерность и атрибуты переменной, необходимо ознакомится с содержимым трех таблиц базы данных. Этот факт достаточно неудобен для организации дополнения базы данных новыми элементами, сравнения двух одинаковых элементов разных баз данных, или сбора информации об определенной сущности базы данных. Именно поэтому было решено создать представление базы данных, для которого будут справедливы следующие утверждения:

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

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

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

1. Хранилище информации о файлах программы

2. Хранилище информации об общих блоках программы

3. Хранилище информации о программных единицах программы

4. Хранилище информации о циклах программы

Рассмотрим каждое хранилище более подробно:

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

a. Структура, содержащая информацию о файле, заключает в себе:

· имя файла

· идентификатор файла в базе данных

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

a. Структура, содержащая информацию об общем блоке, заключает в себе:

· название общего блока

· идентификатор общего блока в базе данных

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

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

· идентификатор программной единицы в базе данных

· название программной единицы

· идентификатор файла в базе данных, в котором описана программная единица

· номер строки, с которой начинается программная единица

· идентификатор цикла в базе данных, который соответствует данной программной единице (программная единица является корнем дерева циклов)

· число параметров программной единицы

· множество структур, каждая из которых содержит информацию о переменной, зарегистрированной в данной программной единице

· соответствие параметров программной единицы зарегистрированным переменным

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

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

· идентификатор переменной в базе данных

· имя переменной

· тип переменной

· список атрибутов переменной

· размерность переменной

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

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

· идентификатор общего блока в базе данных

· идентификатор описания общего блока в базе данных

· информацию о переменных, входящих в это описание общего блока.

d. Структура, содержащая информацию о выражении, заключает в себе:

· идентификатор выражения в базе данных

· текстовое представление выражения

· постфиксное представление выражения

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

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

· идентификатор одночлена в базе данных

· коэффициент при одночлене

· информацию о переменной одночлена

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

a. Структура, содержащая информацию о цикле, заключает в себе:

· идентификатор цикла в базе данных

· тип цикла (цикл или программная единица)

· номер строки начала цикла

· суммарное время выполнения итерации цикла

· информацию о переменной - итераторе цикла

· структуры, содержащие информацию о выражениях начала, конца и шага итератора

· идентификатор программной единицы базы данных, содержащей цикл

· признак тесной вложенности

· список структур, содержащих информацию о дочерних циклах

· список структур, содержащих информацию об операторах внутри цикла

· структуру, содержащую информацию об операторе самого цикла

· список структур, содержащих информацию о зависимостях по данным в цикле

· список структур, содержащих информацию о возможных зависимостях по данным в цикле

b. Структура, содержащая информацию об операторе, заключает в себе:

· идентификатор оператора в базе данных

· номер строки оператора

· список структур, каждая из которых содержит информацию о переходе на другой оператор

· список структур, каждая из которых содержит информацию о доступе к переменной в операторе

· список структур, каждая из которых содержит информацию о вызове функции в операторе

· список особенностей ввода/вывода для оператора

c. Структура, содержащая информацию о зависимости для цикла, заключает в себе:

· тип зависимости

· информацию о переменной зависимости

· тип редукции (для редукционной зависимости)

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

· идентификатор цикла, в который происходит переход

· идентификатор оператора, на который происходит переход

· номер строки оператора, на который происходит переход

· вероятность перехода

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

· идентификатор вызова функции в базе данных

· информацию о программной единице, вызов которой происходит в операторе

· список информаций о параметрах программной единицы

· список доступов к памяти для параметров данного вызова программной единицы

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

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

· идентификатор доступа к переменной в базе данных

· информацию о переменной, к которой осуществляется доступ

· тип доступа к переменной

· список структур, содержащих выражения для размерностей массива в момент доступа, для переменной массива

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

 

Рисунок 6

ИИ

 

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



2020-02-03 161 Обсуждений (0)
Представление базы данных САПФОР 0.00 из 5.00 0 оценок









Обсуждение в статье: Представление базы данных САПФОР

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Как распознать напряжение: Говоря о мышечном напряжении, мы в первую очередь имеем в виду мускулы, прикрепленные к костям ...
Модели организации как закрытой, открытой, частично открытой системы: Закрытая система имеет жесткие фиксированные границы, ее действия относительно независимы...
Почему человек чувствует себя несчастным?: Для начала определим, что такое несчастье. Несчастьем мы будем считать психологическое состояние...
Почему двоичная система счисления так распространена?: Каждая цифра должна быть как-то представлена на физическом носителе...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (161)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.006 сек.)