Автор работы: Пользователь скрыл имя, 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
,
.
,
,
,
,
,
,
.
Очевидно, что
,
,
,
,
.
.
.
,
где - операция селекции с логической формулой .
Формула имеет вид:
, (2.41)
,
,
, (2.42)
.
Так как операция селекции не изменяет структуру таблицы, то
,
.
,
,
,
,
,
,
.
Очевидно, что
,
,
,
,
.
.
.
,
где - операция селекции с логической формулой .
Формула имеет вид:
, (2.47)
,
,
,
.
Так как операция селекции не изменяет структуру таблицы, то
,
.
,
,
,
,
,
,
.
Очевидно, что
,
,
,
,
.
.
.
,
где - операция селекции с логической формулой .
Формула имеет вид:
,
,
,
,
.
Так как операция селекции не изменяет структуру таблицы, то
,
.
,
,
,
,
,
, (2.56)
.
Очевидно, что
,
,
,
,
.
.
.
Окончательно имеем:
, (2.58)
.
Оптимизированное дерево запроса на основании операции проекции представлено на рисунке 2.15.
|
На рисунке 2.24 представлены результаты Xi, i.
X1={ clients.name, clients.serial_pas, clients.number_pas, clients.name, clients.serial_pas, clients.number_pas, clients.clientid }. X2={ orders.order_execution, orders.orderid, orders.employeeid, orders.productid }. X3={ clients.name, clients.serial_pas, clients.number_pas, clients.name, clients.serial_pas, clients.number_pas, orders.order_execution, orders.employeeid, orders.productid, orders.orderid }. X4={ employees.name, employees.surname, employees.patronomic, employees.serial_pas_e, employees.number_pas_e, employees.employeeid}. X5={ clients.name, clients.serial_pas, clients.number_pas, clients.name, clients.serial_pas, clients.number_pas, orders.orderid, orders.order_execution, orders.productid employees.name, employees.surname, employees.patronomic, employees.serial_pas_e, employees.number_pas_e }. X6={ product.marka_product, product.count, product.cost_one, product.productid, product.data_supply }. X7={ clients.name, clients.serial_pas, clients.number_pas, clients.name, clients.serial_pas, clients.number_pas, orders.order_execution, orders.orderid, employees.name, employees.surname, employees.patronomic, employees.serial_pas_e, employees.number_pas_e, product.marka_product, product.count, product.cost_one, product.data_supply }. X8={supply.data_supply, supply.supplyid, supply.supplierid }. X9={ clients.name, clients.serial_pas, clients.number_pas, clients.name, clients.serial_pas, clients.number_pas, orders.order_execution, orders.orderid, employees.name, employees.surname, employees.patronomic, employees.serial_pas_e, employees.number_pas_e, product.marka_product, product.count, product.cost_one, supply.data_supply, supply.supplierid }. X10={ suppliers.name, suppliers.supplierid}. X11={ clients.name, clients.serial_pas, clients.number_pas, clients.name, clients.serial_pas, clients.number_pas, orders.order_execution, orders.orderid, employees.name, employees.surname, employees.patronomic, employees.serial_pas_e, employees.number_pas_e, product.marka_product, product.count, product.cost_one, supply.data_supply, suppliers.name }. |
Расчет сложности
Расчет сложности
,
где X1={ clients.name, clients.serial_pas, clients.number_pas, clients.name, clients.serial_pas, clients.number_pas, clients.clientid };
,
где - операция селекции с .
,
,
,
.
Так как операция селекции не изменяет структуру таблицы, то
,
.
,
где X2={ orders.order_execution, orders.orderid, orders.employeeid, orders.productid };
,
где - операция селекции с .
, (2.64)
,
,
,
.
Так как операция селекции не изменяет структуру таблицы, то
,
.
,
где
- результат естественного соединения
таблиц;
- таблицы, участвующие в
- псевдонимы, используемые вместо имен таблиц для сокращения записи;
- операция естественного
,
(2.68)
,
,
,
.
,
,
где - число блоков, записанных в таблице ;
- длина одной записи таблицы в блоках;
- длина одной записи таблицы в байтах;
- размер одного блока.
Очевидно, что
, (2.71)
,
,
.
.
.
.
,
где X3={ clients.name, clients.serial_pas, clients.number_pas, clients.name, clients.serial_pas, clients.number_pas, orders.order_execution, orders.employeeid, orders.productid, orders.orderid };
,
где X4={ employees.name, employees.surname, employees.patronomic, employees.serial_pas_e, employees.number_pas_e, employees.employeeid };
,
где - операция селекции с .
, (2.75)
,
,
,
.
Так как операция селекции не изменяет структуру таблицы, то
,
.
,
,
,
,
,
,
.
Очевидно, что
,
,
,
,
.
.
.
,
где X5={ clients.name, clients.serial_pas, clients.number_pas, clients.name, clients.serial_pas, clients.number_pas, orders.orderid, orders.order_execution, orders.productid employees.name, employees.surname, employees.patronomic, employees.serial_pas_e, employees.number_pas_e};
,
где X6={ product.marka_product, product.count, product.cost_one, product.productid, product.data_supply };
,
где - операция селекции с .
, (2.83)
,
,
, (2.84)
.
Так как операция селекции не изменяет структуру таблицы, то
,
.
,
,
,
,
,
,
.
Очевидно, что
,
,
,
,
.
.
.
,
где X7={ clients.name, clients.serial_pas, clients.number_pas, clients.name, clients.serial_pas, clients.number_pas, orders.order_execution, orders.orderid, employees.name, employees.surname, employees.patronomic, employees.serial_pas_e, employees.number_pas_e, product.marka_product, product.count, product.cost_one, product.data_supply };
,
где X8={ supply.data_supply, supply.supplyid, supply.supplierid };
,
где - операция селекции с .
, (2.91)
,
,
, (2.92)
.
Так как операция селекции не изменяет структуру таблицы, то
,
.
,
,
,
,
,
, (2.94)
.
Очевидно, что
,
,
,
,
.
.
.
,
где X9={ clients.name, clients.serial_pas, clients.number_pas, clients.name, clients.serial_pas, clients.number_pas, orders.order_execution, orders.orderid, employees.name, employees.surname, employees.patronomic, employees.serial_pas_e, employees.number_pas_e, product.marka_product, product.count, product.cost_one, supply.data_supply, supply.supplierid};
,
где X10={ suppliers.name, suppliers.supplierid };
,
где - операция селекции с .
, (2.98)