- •«Курский государственный университет»
- •Курсовая работа
- •1. Техническое задание 2
- •2. Модель предметной области в виде системы функциональных зависимостей 12
- •5. Построение запросов на языке sql 32
- •1.1.2. Объекты предметной области
- •1.1.3. Процессы взаимодействия между объектами, происходящие в предметной области
- •Формализованное описание предметной области
- •1.2.1. Словарь терминов для объектов и элементов данных
- •1.2.2. Первичные и альтернативные ключи
- •2.1.2. Не ключевые функциональные зависимости
- •2.1.3. Функциональные зависимости для сохранения иерархии
- •2.1.4.Функциональные зависимости для устранения потери информации при соединении
- •2.1.5. Исходное множество функциональных зависимостей
- •Неизбыточное редуцированное покрытие системы функциональных зависимостей
- •Построение неизбытычного покрытия
- •3.2. Построениелеворедуцированногопокрытия
- •3.3. Построениеправоредуцированногопокрытия
- •Минимальное кольцевое редуцированное покрытие системы функциональных зависимостей
- •4.1 Естественноехарактеристическоемножество:
- •5.1.1. Выражение для запроса с использованием операций реляционной алгебры
- •5.1.3. Исходный запрос на языке sql
- •5.1.4. Временные характеристики исходного запроса
- •5.1.5. Оптимизированное операционное дерево для запроса
- •5.1.6. Оптимизированный запрос на языке sql
- •5.1.7. Временные характеристики оптимизированного запроса
- •5.2. Многотабличный запрос на выборку по условию нескольких строк и логической формулы условий столбцов с использованием "or"
- •5.2.1. Выражение для запроса с использованием операций реляционной алгебры
- •5.2.2. Исходное операционное дерево для запроса
- •5.2.3. Исходный запрос на языке sql
- •Приложение 1
5.1.5. Оптимизированное операционное дерево для запроса
Оптимизированное операционное дерево получается путем опускания операции селекции вниз по исходному операционному дереву, ближе к листьям дерева.
В результате преобразований получаем оптимизированное операционное дерево, которое на рисунке 5.6 изображено с указанием номеров узлов.
POM.square<47
Рисунок 5.6
5.1.6. Оптимизированный запрос на языке sql
Т
екст
запроса “price”
на SQL.
SELECT ARRIVAL_OBJ.*
FROM ARRIVAL_OBJ
WHERE (((ARRIVAL_OBJ.price)>92000));
Т
екстзапроса
“firm” наSQL.
SELECT INVENTAR.*
FROM INVENTAR
WHERE (((INVENTAR.firm)="МосковскийСпортИнвентарь"));
Т екст запроса “square” на SQL.
SELECTPOMESHENIE.*
FROMPOMESHENIE
WHERE (((POMESHENIE.square)<47));
Т
екст
оптимизированного
запроса
на
SQL.
SELECT price.code_object, price.price, firm.naimenovanie, square.num_p, square.square
FROM (price INNER JOIN firm ON price.code_object = firm.code_object) INNER JOIN ((ZAL INNER JOIN (INVNUM_INV INNER JOIN INV_IN_ZAL ON INVNUM_INV.inv_number = INV_IN_ZAL.inv_number) ON ZAL.num_p = INV_IN_ZAL.num_p) INNER JOIN square ON ZAL.num_p = square.num_p) ON firm.code_object = INVNUM_INV.code_object;
5.1.7. Временные характеристики оптимизированного запроса
Для оценки стоимости выполнения операций реляционной алгебры оптимизированного запроса используется та же статистика, что и для исходного запроса (таблица 5.2).
Для расчета временных характеристик оптимизированного запроса используется оптимизированное операционное дерево, изображенное на рисунке 5.6.
В узле (1) оптимизированного операционного дерева выполняется операция селекции по условию: f1= (Obj.price>92000). Расчет стоимости выполнения операции селекции происходит по формуле:
.
В узле (2) оптимизированного операционного дерева выполняется операция селекции по условию: f2 = (Inv.firm="Московский СпортИнвентарь"). Расчет стоимости выполнения операции селекции происходит по формуле:
.
В узле (7) оптимизированного операционного дерева выполняется операция селекции по условию: f3 = (Pom.square< 47). Расчет стоимости выполнения операции селекции происходит по формуле:
.
Расчет стоимости в узле (3) производится по формуле:
.
Расчет стоимости в узле (4) производится по формуле:
Расчет стоимости в узле (5) производится по формуле:
Расчет стоимости в узле (6) производится по формуле:
Расчет стоимости в узле (8) производится по формуле:
Так как операция проекции располагается последней, то ее не учитывают при расчете сложности запроса.
Окончательно имеем:
.
5.2. Многотабличный запрос на выборку по условию нескольких строк и логической формулы условий столбцов с использованием "or"
В базе данных хранится информация о поступившей бытовой технике, мебели, инвентаре и помещениях, к которым они прикреплены Требуется вывести коды тренажеров, ценой более 92000, производства фирмы «Московский СпортИнвентарь», которые прикреплены к спортивным залам площадью менее 47 кв.м.
Для упрощения записи введем обозначения, представленные в таблице 5.2.
Таблица 5.3– Обозначения и пояснения
Обозначение |
Пояснение |
Obj |
Таблица Arrived_Obj (список объектов) |
Inv |
Таблица Inventar (инвентарь) |
InvNum |
Таблица InvNum_Inv (инвентаризация) |
Inv_Zal |
Таблица Inv_In_Zal (инвентарь, прикреплённый к помещению ) |
Zal |
Таблица Zal (список спортивных залов) |
Pom |
Таблица Pomeshenie (список помещений) |
|
Естественное соединение таблиц |
