База данных склад сотовых телефонов

Автор работы: Пользователь скрыл имя, 03 Ноября 2013 в 12:52, курсовая работа

Описание работы

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

Содержание работы

Введение 7
1 Техническое задание 8
1.1 Основание для разработки 8
1.2 Назначение разработки 8
1.3 Стандарты 8
1.4 Требования к программе или программному изделию 8
1.4.2 Носители информации 9
1.4.3 Требования к составу и параметрам технических средств 9
2 Технический проект 10
2.1 Неформальное описание предметной области 10
2.2 Словарь понятий и терминов 11
2.3 Диаграмма сущность – связь для предметной области. 14
2.4 Построение функциональных зависимостей 15
2.5 Синтез схемы базы данных на основании функциональных зависимостей 17
2.5.1 Построение неизбыточного покрытия 17
2.5.2 Построение леворедуцированного покрытия 20
2.5.3 Построение праворедуцированного покрытия 22
2.5.4 Построение классов эквивалентности 24
2.5.5 Построение редуцированного минимального кольцевого покрытия…………………………………………………………………………. 27
2.6 ER-схема базы данных 33
2.7 Построение запросов на SQL 33
2.7.1 Запрос на выборку 33
Заключение 60
Библиографический список 61

Файлы: 1 файл

БД Магазин сотовых телефонов.docx

— 638.84 Кб (Скачать файл)
        1. Текст запроса на языке SQL

Текст запроса на языке SQL представлен на рисунке 2.20.

 

SELECT clients.name, clients.serial_pas, clients.number_pas, orders.order_execution, product.marka_product, product.count, product.cost_one, suppliers.name, supply.data_supply, employees.name, employees.surname, employees.patronomic, employees.serial_pas_e, employees.number_pas_e

FROM orders

JOIN clients ON orders.clientid = clients.clientid

JOIN employees ON orders.employeeid = employees.employeeid

JOIN product ON orders.productid = product.productid

JOIN supplly ON product.supplyid = supply.supplyid

JOIN suppliers ON suppliers.supplierid = supply.supplierid

WHERE orders.order_execution > 1.01.2010 AND (employees.name = 'Олег' AND employees.surname = 'Попов' AND employees.patronomic = 'Юрьевич' AND employees.serial_pas_e = '3206' AND employees.number_pas_e = 136339) AND (product.count > 1000 AND product.count < 4000) AND product.marka_product = 'Panasonic' AND (product.cost_one > 3000 AND product.cost_one < 10000) AND suppliers.name = 'Panasonic Technolgy' AND (supply.data_supply > 10.05.2009 AND supply.data_supply < 29.12.2009)


Рисунок 2.20 - Текст запроса на языке SQL

 

 

        1. Исходное дерево запроса

Исходное дерево для запроса представлено на рисунке 2.21.

                                      

                                                   

                                                

                                                        

                                              

 

 

                                        

 

                                                                     

 

                                   

                                          

                        

                                                     

       

 

                                    


Рисунок 2.21- Исходное дерево запроса

 

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

 

 

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

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

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

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

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

,                                                                                 (2.2)

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

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

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

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

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

,

,

,

.

,                                                                                   (2.4)

,                                                                                       (2.5)

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

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

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

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

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

,                         (2.6)

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

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

,

,

.

.

.

.

,                                                                                (2.7)                                                                                     

,

,

,

,

.                           (2.8)                                            

.

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

,                                        (2.9)                                  

,

,

,

.

.

.

,                                                                          (2.10)                                                                                     

,

,

,

,

.                             (2.11)                                            

.

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

,               (2.12)                                  

,

,

,

.

.

.

,                                                                           (2.13)                                                                                     

,

,

,

,

.                       (2.14)                                            

.

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

,                                      (2.15)                                  

,

,

,

.

.

.

,                                                                      (2.16)                                                                                     

,

,

,

,

.                            (2.17)                                            

.

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

,                                       (2.18)                                  

,

,

,

.

.

.

                                                                                            (2.19) 
где - операция селекции с логической формулой .

Формула имеет вид:

F: (orders.order_execution > 1.01.2010 AND (employees.name = 'Олег' AND employees.surname = 'Попов' AND employees.patronomic = 'Юрьевич' AND employees.serial_pas_e = '3206' AND employees.number_pas_e = 136339) AND (product.count > 1000 AND product.count < 4000) AND product.marka_product = 'Panasonic' AND (product.cost_one > 3000 AND product.cost_one < 10000) AND suppliers.name = 'Panasonic Technolgy' AND (supply.data_supply > 10.05.2009 AND supply.data_supply < 29.12.2009)),         (2.20)

,

,(2.21)                                                             

.

Так как операция селекции не изменяет структуру таблицы, то

,

.

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

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

,                      (2.22)

.

 

 

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

 

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

                                     

                                                                                                    

                          

                                                             

                                                                        

                                                                                           

                             

        

                                                                                          

                                                                                         

                         

 

                        

                          

                     


Рисунок 2.22 - Оптимизированное дерево запроса

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

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

SELECT suppliers.supplierid, suppliers.name;

FROM suppliers

WHERE (product.count > 1000 AND product.count < 4000) AND product.marka_product = 'Panasonic' AND (product.cost_one > 3000 AND product.cost_one < 10000) INTO TABLE k

SELECT supply.supplierid, supply.data_supply

FROM supply

WHERE (supply.data_supply > 10.05.2009 AND supply.data_supply < 29.12.2009) INTO TABLE k

SELECT employees.employeeid, employees.name, employees.surname, employees.patronomic, employees.serial_pas_e, employees.number_pas_e

FROM employees

WHERE (employees.name = 'Олег' AND employees.surname = 'Попов' AND employees.patronomic = 'Юрьевич' AND employees.serial_pas_e = '3206' AND employees.number_pas_e = 136339) INTO TABLE k

SELECT product.productid, product.marka_product, product.count, product.cost_one;

FROM product

WHERE (product.count > 1000 AND product.count < 4000) AND product.marka_product = 'Panasonic' AND (product.cost_one > 3000 AND product.cost_one < 10000) INTO TABLE k

SELECT clients.name, clients.serial_pas, clients.number_pas, orders.order_execution, orders.orderid, product.marka_product, product.count, product.cost_one, suppliers.name, supply.data_supply, employees.name, employees.surname, employees.patronomic, employees.serial_pas_e, employees.number_pas_e

FROM orders

JOIN clients ON orders.clientid = clients.clientid

JOIN employees ON orders.employeeid = employees.employeeid

JOIN product ON orders.productid = product.productid

JOIN supplly ON product.data_supply = supply.data_supply

JOIN suppliers ON suppliers.supplierid = supply.supplierid

WHERE orders.order_execution > 1.01.2010 AND (employees.name = 'Олег' AND employees.surname = 'Попов' AND employees.patronomic = 'Юрьевич' AND employees.serial_pas_e = '3206' AND employees.number_pas_e = 136339) AND (product.count > 1000 AND product.count < 4000) AND product.marka_product = 'Panasonic' AND (product.cost_one > 3000 AND product.cost_one < 10000) AND suppliers.name = 'Panasonic Technolgy' AND (supply.data_supply > 10.05.2009 AND supply.data_supply < 29.12.2009)

JOIN k ON k.productid = orders.productid


Рисунок 2.23

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

 

,                                                                                  (2.23) 
где - операция селекции с логической формулой .

,

,

,                                                               (2.24)

.

Так как операция селекции не изменяет структуру  таблицы, то

,

.

,                                       (2.25)

где - операция селекции с логической формулой .

Формула имеет вид:

, (2.26)

,

,

,                                                         (2.27)

.

Так как операция селекции не изменяет структуру таблицы, то

,

.

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

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

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

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

,                                                                                 (2.29)

     (2.30) 
          ,

,

,

.

,                                                                                  (2.31)

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

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

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

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

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

,                (2.33) 
,

,

.

.

.

.

,                                                                               (2.34) 
где - операция селекции с логической формулой .

Формула имеет вид:

,                    (2.35)

,

,

,                                                                  (2.36)

.

Так как операция селекции не изменяет структуру таблицы, то

Информация о работе База данных склад сотовых телефонов