Расчет сложности запроса

Расчет сложности исходного запроса приведен ниже.

 

,                                                                   (2.27)

 

где - результат естественного соединения таблиц;

- таблицы, участвующие в соединении;

 - псевдонимы, используемые вместо имен таблиц для сокращения записи;

 - операция естественного соединения.

 

, (2.28)

                                        (2.29)

 

где  - число записей в таблице ;

 - число записей в таблице С;

 - число записей в таблице O;

 - число различных значений в столбце clientid таблицы Clients;

 - число различных значений в столбце clientid таблицы Orders.

 

,

,

,

.

,                                                                        (2.30)

,                                                                               (2.31)

 

где  - число блоков, записанных в таблице ;

 - длина одной записи таблицы  в блоках;

 - длина одной записи таблицы  в байтах;

- размер одного блока.

Очевидно, что

 

,                                                (2.32)

 

где  - объем в байтах поля ;

- объем в байтах поля ;

 

,

,

.

.

.

.

, (2.33)

,

,

,

,

.                         (2.34)

.

 

Очевидно, что

 

,                               (2.35)

,

,

,

.

.

.

                                                                                  (2.36)

 

где  - операция проекции из таблицы  атрибутов .

 

.

.

,

,

.

 

Так как операция группировки является последней, то для нее не производится расчет сложности.

Окончательно имеем:

 

,                                                         (2.37)

 

Птимизированное дерево запроса

Оптимизированное дерево запроса представлено на рисунке 2.25.

 

                                                                       
 


                                                  

                 

 

 

 


                                                                     q2

 


 

                                    

                          q1

 


                                                                 

 

                                                                clients

                                 

 

 

 


                       product           orders

 

Рисунок 2.25

 






Текст оптимизированного запроса на языке SQL

Текст оптимизированного запроса представлен на рисунке 2.26

SELECT COUNT(*); FROM product INTO ARRAY Ar SELECT clients.clientid, clients.name; FROM ((orders JOIN Ar ON orders.productid = Ar.productid) JOIN clients ON orders.clientid = clients.clientid); GROUP BY clients.clientid, clients.name; HAVING COUNT(*)=Ar;

Рисунок 2.26

Расчет сложности оптимизированного запроса

Расчет сложности оптимизированного запроса приведен ниже.

 

.                                                            (2.38)

,

,

,

,                                  (2.39)

.

 

Очевидно, что

 

,                                             (2.40)

,

,

,

.

.

.

 (2.41)

,                                   (2.42)

,

,

.

 

Очевидно, что

 

,                                               (2.43)

,

,

,

.

.

.

                                                                                  (2.44)

 

где  - операция проекции из таблицы  атрибутов .

 

.

.

,

,

.

 

Так как операция группировки является последней, то для нее не производится расчет сложности.

 

Окончательно имеем:

 

,                                                         (2.45)

 


 

3 Рабочий проект

 


Связи таблиц

 

Связи таблиц представлены на рисунке 3.1

 

Рисунок 3.1

Внешний вид формы

 

В состав проекта входит форма Расходы аптеки, которая представлена на рисунке 3.2.

 


 

Рисунок 3.2

 


Функциональные тесты

Тест 1

Тест на проверку построения отчета в Excel.

Входные данные: запрос на выборку из базы данных.

Выходные данные: результирующая таблица.

Работа теста приведена на рисунке 3.4.

 


 

Рисунок 3.4

 


 



Заключение

 

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

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

 




Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: