Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции_БД.doc
Скачиваний:
16
Добавлен:
11.11.2019
Размер:
2.89 Mб
Скачать

Правила построения табло запросов:

  1. Столбцы снабжены метками .

  2. Каждая выделенная переменная может встретиться лишь в одном столбце.

  3. Если в столбце стоит выделенная переменная, то она должна встречаться и в резюме этого запроса.

  4. В строках должны стоять только символы (а не пробелы).

  5. В резюме должны стоять только выделенные переменные, константы и пробелы.

  6. Если в столбце с меткой стоит константа C, то эта константа принадлежит домену .

Резюме будем обозначать , а строки .

Пример:

Пусть – ТЗ со схемой , резюме и строками . – ТЗ с резюме ; выделенная переменная из столбца в обоих табло. Отображение из символов в символы называется отображением включения запроса в запрос , если выполняется:

  1. ;

  2. ;

  3. строка , .

ТЗ называется простым, если в любом столбце, где есть парная невыделенная переменная, никакой другой символ не повторяется. ТЗ из примера – простое. Припишем строку:

  • уже не является простым.

Простые ТЗ эффективно минимизируются и эквивалентность минимальных ТЗ легко проверить.

Теорема: Для простого ТЗ существует подтабло , которое является минимальным, эквивалентным ТЗ .

Метод нахождения min-го запроса для простого тз.

Пусть – простое ТЗ, которое не минимально. По теореме у имеется подтабло , эквивалентное . Пусть строка , которая не принадлежит . Имеется отображение включения из в и строка из такая, что (*).

Чтобы минимизировать ТЗ , ищутся такие строки и и отображение из в , что выполняется (*). и эквивалентны и содержит меньшее число строк. Если не минимально, то процесс повторяется с новыми , и .

Помощью при поиске такого отображения служит сопровождающее множество строк относительно (СОПР ) – это наименьшее множество , содержащее и удовлетворяющее условию замкнутости: если – строка из ; строки из , а атрибут такой, что – невыделенная переменная, причем , то лежит в .

Если покрывает СОПР , то отображение выбирается таким образом, что каждая строка из СОПР отображается в , а все остальные строки в себя.

Ищутся строки такие, что . Т.е. сокращаем количество строк минимизируем.

Строка поглощает строку , если для каждого атрибута – либо выделенная переменная, либо константа, и выполняется условие: .

Пусть заданы 2 множества строк . Множество покрывает множество , если для каждой строки существует такая, что поглощает .

ТЗ покрывает табло , если строки покрывают строки .

  1. Строится сопровождающее множество СОПР и ;

  2. Находим атрибут А: – невыделенная переменная и ;

  3. Ищем строки Если нашли ;

В результате, если строка поглощает каждую из строк множества W, то строим отображение Строки

Пример: 1) построить СОПР

Поглощает ли строка строки множества W? – да. Т.е. поглощает

  1. СОПР .

поглощает .

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]