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

Автор работы: Пользователь скрыл имя, 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 Кб (Скачать файл)

 

g:

    data_supply, time_supply -> supplierid

    data_voz, time_voz, productid -> clientid

    productid, data_voz, time_voz -> employeeid

    employeeid, data_voz, time_voz -> clientid

    employeeid, data_cost, time_cost -> clientid

    productid, data_cost, time_cost, clientid -> employeeid

    productid, data_zakaza, employeeid -> clientid

    clientid, data_zakaza, productid -> employeeid

    month_r, year_r -> arenda, kommunal_yslygi, reklama, vnutr_rashodi

    month_d, year_d -> viruchka_emploee

    employeeid -> month_d, year_d

    month, year -> rashodid, dohodid

    emloyeeid -> oklad, premia, avans, zarplata

    productid -> artikulid

Леворедуцированное покрытие

g:

    data_supply, time_supply -> supplierid

    data_voz, time_voz, productid -> clientid

    productid, data_voz, time_voz -> employeeid

    employeeid, data_voz, time_voz -> clientid

    employeeid, data_cost, time_cost -> clientid

    productid, data_cost, time_cost, clientid -> employeeid

    productid, data_zakaza, employeeid -> clientid

    clientid, data_zakaza, productid -> employeeid

    month_r, year_r -> arenda, kommunal_yslygi, reklama, vnutr_rashodi

    month_d, year_d -> viruchka_emploee


 

Рисунок 2.5 - Построение леворедуцированного покрытия

 

    employeeid -> month_d, year_d

    month, year -> rashodid, dohodid

    emloyeeid -> oklad, premia, avans, zarplata

    productid -> artikulid


 

Рисунок 2.6 - Построение леворедуцированного покрытия

      1.      Построение праворедуцированного покрытия

 

Этапы построения праворедуцированного покрытия представлены на рисунках 2.7 – 2.9.

Построение праворедуцированного покрытия.

 

g:

    data_supply, time_supply -> supplierid

    data_voz, time_voz, productid -> clientid

    productid, data_voz, time_voz -> employeeid

    employeeid, data_voz, time_voz -> clientid

    employeeid, data_cost, time_cost -> clientid

    productid, data_cost, time_cost, clientid -> employeeid

    productid, data_zakaza, employeeid -> clientid

    clientid, data_zakaza, productid -> employeeid

    month_r, year_r -> arenda, kommunal_yslygi, reklama, vnutr_rashodi

    month_d, year_d -> viruchka_emploee

    employeeid -> month_d, year_d

    month, year -> rashodid, dohodid

    emloyeeid -> oklad, premia, avans, zarplata


 

Рисунок 2.7 - Построение праворедуцированного покрытия

   productid -> artikulid

 

2. data_voz, time_voz, productid -> clientid

2.1. Если удаляем clientid

Проверяем: f |= data_voz, time_voz, productid -> clientid

Да => g=f

g:

    data_supply, time_supply -> supplierid

    data_voz, time_voz, productid ->

    productid, data_voz, time_voz -> employeeid

    employeeid, data_voz, time_voz -> clientid

    employeeid, data_cost, time_cost -> clientid

    productid, data_cost, time_cost, clientid -> employeeid

    productid, data_zakaza, employeeid -> clientid

    clientid, data_zakaza, productid -> employeeid

    month_r, year_r -> arenda, kommunal_yslygi, reklama, vnutr_rashodi

    month_d, year_d -> viruchka_emploee

    employeeid -> month_d, year_d

    month, year -> rashodid, dohodid

    emloyeeid -> oklad, premia, avans, zarplata

    productid -> artikulid

 

 

Удаление зависимостей вида X->

 

 

Праворедуцированное покрытие


 

Рисунок 2.8 - Построение праворедуцированного покрытия

 

g:

    data_supply, time_supply -> supplierid

    productid, data_voz, time_voz -> employeeid

    employeeid, data_voz, time_voz -> clientid

    employeeid, data_cost, time_cost -> clientid

    productid, data_cost, time_cost, clientid -> employeeid

    productid, data_zakaza, employeeid -> clientid

    clientid, data_zakaza, productid -> employeeid

    month_r, year_r -> arenda, kommunal_yslygi, reklama, vnutr_rashodi

    month_d, year_d -> viruchka_emploee

    employeeid -> month_d, year_d

    month, year -> rashodid, dohodid

    emloyeeid -> oklad, premia, avans, zarplata

    productid -> artikulid


 

Рисунок 2.9 - Построение праворедуцированного покрытия

      1.      Построение классов эквивалентности

 

Этапы построения классов эквивалентности  представлены на рисунках 2.10 – 2.12.

Построение классов эквивалентности.

 

1. Ef( data_supply, time_supply ):

    data_supply, time_supply -> supplierid

 

2. Ef( productid, data_voz, time_voz ):

    productid, data_voz, time_voz -> employeeid


 

Рисунок 2.10 - Построение классов эквивалентности

3. Ef( employeeid, data_voz, time_voz ):

    employeeid, data_voz, time_voz -> clientid

 

4. Ef( employeeid, data_cost, time_cost ):

    employeeid, data_cost, time_cost -> clientid

 

5. Ef( productid, data_cost, time_cost, clientid ):

    productid, data_cost, time_cost, clientid -> employeeid

 

6. Ef( productid, data_zakaza, employeeid ):

    productid, data_zakaza, employeeid -> clientid

    clientid, data_zakaza, productid -> employeeid

 

7. Ef( month_r, year_r ):

    month_r, year_r -> arenda, kommunal_yslygi, reklama, vnutr_rashodi

 

8. Ef( month_d, year_d ):

    month_d, year_d -> viruchka_emploee

 

9. Ef( employeeid ):

    employeeid -> month_d, year_d

 

10. Ef( month, year ):

    month, year -> rashodid, dohodid

 

11. Ef( emloyeeid ):

    emloyeeid -> oklad, premia, avans, zarplata


 

Рисунок 2.11 - Построение классов эквивалентности

 

12. Ef( productid ):

    productid -> artikulid

 

 

Построение минимального покрытия на основе

прямой функциональной определяемости

 

1. Проверка: f \ Ef(productid, data_zakaza, employeeid) |= productid,

data_zakaza, employeeid -> clientid, data_zakaza, productid?

Нет => множество ФЗ не изменяется.

 

 

Редуцированное минимальное покрытие

 

g:

    data_supply, time_supply -> supplierid

    productid, data_voz, time_voz -> employeeid

    employeeid, data_voz, time_voz -> clientid

    employeeid, data_cost, time_cost -> clientid

    productid, data_cost, time_cost, clientid -> employeeid

    productid, data_zakaza, employeeid -> clientid

    clientid, data_zakaza, productid -> employeeid

    month_r, year_r -> arenda, kommunal_yslygi, reklama, vnutr_rashodi

    month_d, year_d -> viruchka_emploee

    employeeid -> month_d, year_d

    month, year -> rashodid, dohodid

    emloyeeid -> oklad, premia, avans, zarplata

    productid -> artikulid


 

Рисунок 2.12 - Построение классов эквивалентности

      1.     Построение редуцированного минимального кольцевого покрытия

 

Определение CF-зависимостей по классам эквивалентности представлено на рисунках 2.13 – 2.19.

Построение кольцевого покрытия.

Минимальное кольцевое покрытие

 

( data_supply, time_supply; ) -> supplierid

( productid, data_voz, time_voz; ) -> employeeid

( employeeid, data_voz, time_voz; ) -> clientid

( employeeid, data_cost, time_cost; ) -> clientid

( productid, data_cost, time_cost, clientid; ) -> employeeid

( productid, data_zakaza, employeeid; clientid, data_zakaza, productid; )

( month_r, year_r; ) -> arenda, kommunal_yslygi, reklama, vnutr_rashodi

( month_d, year_d; ) -> viruchka_emploee

( employeeid; ) -> month_d, year_d

( month, year; ) -> rashodid, dohodid

( emloyeeid; ) -> oklad, premia, avans, zarplata

( productid; ) -> artikulid

 

 

Получение кольцевого минимального

редуцированного покрытия

 

Естественное характеристическое множество

для кольцевого покрытия


Рисунок 2.13 - Построение редуцированного минимального кольцевого покрытия

f(C):

    data_supply, time_supply -> supplierid

    productid, data_voz, time_voz -> employeeid

    employeeid, data_voz, time_voz -> clientid

    employeeid, data_cost, time_cost -> clientid

    productid, data_cost, time_cost, clientid -> employeeid

    productid, data_zakaza, employeeid -> clientid, data_zakaza, productid

    clientid, data_zakaza, productid -> productid, data_zakaza, employeeid

    month_r, year_r -> arenda, kommunal_yslygi, reklama, vnutr_rashodi

    month_d, year_d -> viruchka_emploee

    employeeid -> month_d, year_d

    month, year -> rashodid, dohodid

    emloyeeid -> oklad, premia, avans, zarplata

    productid -> artikulid

 

 

Левая редукция или перенос в  правую часть

 

1. Проверка CF-зависимости:

         ( data_supply, time_supply; ) -> supplierid

 

2. Проверка CF-зависимости:

         ( productid, data_voz, time_voz; ) -> employeeid

 

3. Проверка CF-зависимости:

         ( employeeid, data_voz, time_voz; ) -> clientid


 

Рисунок 2.14 - Построение редуцированного минимального кольцевого покрытия

 

4. Проверка CF-зависимости:

         ( employeeid, data_cost, time_cost; ) -> clientid

 

5. Проверка CF-зависимости:

         ( productid, data_cost, time_cost, clientid; ) -> employeeid

 

6. Проверка CF-зависимости:

         ( productid, data_zakaza, employeeid; clientid, data_zakaza,

productid; )

 

7. Проверка CF-зависимости:

         ( month_r, year_r; ) -> arenda, kommunal_yslygi, reklama,

vnutr_rashodi

 

8. Проверка CF-зависимости: 

         ( month_d, year_d; ) -> viruchka_emploee

9. Проверка CF-зависимости: 

         ( employeeid; ) -> month_d, year_d

 

10. Проверка CF-зависимости: 

         ( month, year; ) -> rashodid, dohodid

 

11. Проверка CF-зависимости: 

         ( emloyeeid; ) -> oklad, premia, avans, zarplata

 

12. Проверка CF-зависимости: 

         ( productid; ) -> artikulid


 

Рисунок 2.15 - Построение редуцированного минимального кольцевого покрытия

Проверка покрытия на праворедуцированность

 

1. Проверка CF-зависимости: 

         ( data_supply, time_supply; ) -> supplierid

 

2. Проверка CF-зависимости:

         ( productid, data_voz, time_voz; ) -> employeeid

 

3. Проверка CF-зависимости:

         ( employeeid, data_voz, time_voz; ) -> clientid

 

4. Проверка CF-зависимости:

         ( employeeid, data_cost, time_cost; ) -> clientid

 

5. Проверка CF-зависимости:

         ( productid, data_cost, time_cost, clientid; ) -> employeeid

 

6. Проверка CF-зависимости:

         ( month_r, year_r; ) -> arenda, kommunal_yslygi, reklama,

vnutr_rashodi

 

7. Проверка CF-зависимости: 

         ( month_d, year_d; ) -> viruchka_emploee

 

8. Проверка CF-зависимости: 

         ( employeeid; ) -> month_d, year_d


 

Рисунок 2.16 - Построение редуцированного минимального кольцевого покрытия

 

9. Проверка CF-зависимости: 

         ( month, year; ) -> rashodid, dohodid

 

10. Проверка CF-зависимости: 

         ( emloyeeid; ) -> oklad, premia, avans, zarplata

 

11. Проверка CF-зависимости: 

         ( productid; ) -> artikulid

 

 

Минимальное редуцированное кольцевое  покрытие

 

C

    ( data_supply, time_supply; ) -> supplierid

    ( productid, data_voz, time_voz; ) -> employeeid

    ( employeeid, data_voz, time_voz; ) -> clientid

    ( employeeid, data_cost, time_cost; ) -> clientid

    ( productid, data_cost, time_cost, clientid; ) -> employeeid

    ( productid, data_zakaza, employeeid; clientid, data_zakaza, productid;

)

    ( month_r, year_r; ) -> arenda, kommunal_yslygi, reklama, vnutr_rashodi

    ( month_d, year_d; ) -> viruchka_emploee

    ( employeeid; ) -> month_d, year_d

    ( month, year; ) -> rashodid, dohodid

    ( emloyeeid; ) -> oklad, premia, avans, zarplata

    ( productid; ) -> artikulid


 

Рисунок 2.17 - Построение редуцированного минимального кольцевого покрытия

 

Естественное характеристическое множество

 

f(C):

    data_supply, time_supply -> supplierid

    productid, data_voz, time_voz -> employeeid

    employeeid, data_voz, time_voz -> clientid

    employeeid, data_cost, time_cost -> clientid

    productid, data_cost, time_cost, clientid -> employeeid

    productid, data_zakaza, employeeid -> clientid, data_zakaza, productid

    clientid, data_zakaza, productid -> productid, data_zakaza, employeeid

    month_r, year_r -> arenda, kommunal_yslygi, reklama, vnutr_rashodi

    month_d, year_d -> viruchka_emploee

    employeeid -> month_d, year_d

    month, year -> rashodid, dohodid

    emloyeeid -> oklad, premia, avans, zarplata

    productid -> artikulid

 

 

R0 = ( data_supply, time_supply, supplierid )   K0 = { data_supply,

time_supply }

R1 = ( productid, data_voz, time_voz, employeeid )   K1 = { productid,

data_voz, time_voz }

R2 = ( employeeid, data_voz, time_voz, clientid )   K2 = { employeeid,

data_voz, time_voz }

R3 = ( employeeid, data_cost, time_cost, clientid )   K3 = { employeeid,

data_cost, time_cost }


 

Рисунок 2.18 - Построение редуцированного минимального кольцевого покрытия

 

R4 = ( productid, data_cost, time_cost, clientid, employeeid )   K4 = {

productid, data_cost, time_cost, clientid }

R5 = ( productid, data_zakaza, employeeid; clientid, data_zakaza,

productid )   K5 = { productid, data_zakaza, employeeid; clientid,

data_zakaza, productid }

R6 = ( month_r, year_r, arenda, kommunal_yslygi, reklama, vnutr_rashodi )  

K6 = { month_r, year_r }

R7 = ( month_d, year_d, viruchka_emploee )   K7 = { month_d, year_d }

R8 = ( employeeid, month_d, year_d )   K8 = { employeeid }

R9 = ( month, year, rashodid, dohodid )   K9 = { month, year }

R10 = ( emloyeeid, oklad, premia, avans, zarplata )   K10 = { emloyeeid }

R11 = ( productid, artikulid )   K11 = { productid }


 

Рисунок 2.19 - Построение редуцированного минимального кольцевого покрытия

    1.  ER-схема базы данных

 

В приложении А приведена схема базы.

    1. Построение запросов на SQL

      1. Запрос на выборку

        1. Словесная формулировка запроса

Перечислить всех клиентов и их паспортные данные, которые оформили заказ у продавца-консультанта Попова Олега Юрьевича и приобрели от 1000 до 4000 наименований продукции марки Panasonic, стоимостью от 3000 рублей до 10000 рублей, не ранее 1.01.2010 г., поставленных на склад компанией Panasonic Technology с 10.05.2009 г. по 29.12.2009 г.

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