Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Алгоритм оптимизации выражений РА.
Исходные данные – дерево разбора, представляющее выражения РА. Выходные – тоже дерево, но оптимизированное (программа, для вычисления выражения). Метод: 1. Каждую селекцию представляем в виде каскада по правилу 4): ; 2. Перемещаем каждую селекцию насколько это возможно вниз по дереву, используя правила 5)-8); 3. Перемещаем каждую проекцию в дереве вниз настолько, насколько это возможно, используя правило 3), которое приводит к исчезновению некоторых проекций, следствие из 5), которое расщепляет на несколько, и правила 9) и 10); 4. Комбинируем каждый каскад селекций и проекций в одиночную селекцию, одиночную проекцию, или селекцию с последующей проекцией, используя правила 3) – 5); 5. Разбиваем внутренние узлы полученного в результате дерева на группы следующим образом. Каждый внутренний узел представляет собой двуместный оператор (\, ), принадлежащий группе вместе с его непосредственными предками, которые помечены унарными операторами (). Включаем также в группу любую цепь потомков данного узла, помеченных унарными операторами, завершающуюся в листе. Исключением является случай, когда двуместный оператор представляет собой декартово произведение без последующей селекции, которая комбинировалась бы с произведением, образуя эквисоединение. 6. Создаем программу из нескольких шагов для вычисления каждой группы в любом порядке, но так, чтобы никакая группа не вычислялась раньше групп – ее потомков. Шаги алгоритмов могут быть: 1. выполнение одиночной селекции или проекции; 2. выполнение декартового произведения, объединения, либо разности множеств, которые, возможно, предшествуют или за которыми следуют селекция или проекция, применяемая к одному или обоим операндам. Пример: Рассмотрим БД «библиотека», состоящую из отношений: Книги (название; автор; издательство; инв. №) Издатель (издательство; город; адрес) Читатели (ФИО; город; адрес; № читательского билета) Выдача (инв. №; № читательского билета; дата) Для того, чтобы знать, у кого находится какая книга, можно использовать отношения , которые могут быть представлены следующим образом: (1) F=(R3.№_читательского_билета=R4.№_читательского_билета) Ù (R1.инвентарный_№=R4.инвентарный_№)=F1ÙF2 X= название; автор; издательство; инв. №; ФИО читателя; город; адрес; № читательского билета; дата.
Опишем запрос: перечислить книги, которые были выданы до 01.01.2000. После подстановки S в (1) получаем следующее дерево разбора: 1-й шаг: расщепление селекции на две: . 2-й шаг: перемещаем каждую из 3-х селекций как можно ниже в дереве. Селекцию перемещаем ниже проекции и двух селекций по правилам 4) и 5). Селекция применяется к , и т.к. дата – единственный атрибут , то можно записать: Селекция не может быть перемещена ниже соединения, т.к. в используется отношение и . Селекция может быть применима к . 3-й шаг: можно скомбинировать две проекции в одну по правилу 3): 4-й шаг: по обобщенному правилу 5) делаем замену: 5-й шаг: применим правило 9) с целью замены последней проекции на , применим к и , применим к левому операнду декартова произведения более высокого уровня (см. последний рисунок). Последняя проекция взаимодействует с помещенной ниже селекцией по обобщенному правилу 5). В результате получаем каскад: 6-й шаг: последнюю проекцию можно записать в виде (она просеивается через декартово произведение по правилу 9) и частично через селекцию по правилу 5)): Так как в проекции упоминаются все атрибуты , то ее удаляем. Каждое из декартовых произведений является фактически эквисоединением, если скомбинировать его с селекцией, находящейся выше в дереве. Программа, выполняющая этот алгоритм, сначала будет выполнять нижнюю группу, затем верхнюю. - - - – группы операторов.
| ´
| ´
|
||||||||
Последнее изменение этой страницы: 2017-01-25; просмотров: 201; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.12.155.100 (0.009 с.) |