Концептуальная модель

 

Исходная концептуальная модель базы данных представлена на рисунке 2.15.

 


 

Рисунок 2.15 - Концептуальная модель (ER-диаграмма) базы данных

 

После проведения всех этапов минимизации концептуальная модель не изменилась.

 


 

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

 

2.6.1 Построение первого запроса

 

2.6.1.1 Исходный запрос

Первый запрос формулируется следующим образом: «Вывести коды партий футбольных ворот типа «юниорские», которые производятся фирмой Star, относятся к модели K325, поступили не раньше 2007 года и находятся в спортивных залах «Общей физической подготовки»».

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

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

 

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

 


 

Рисунок 2.17 - Исходное операционное дерево для первого запроса

 

Оценка стоимости исходного запроса представлена на рисунке 2.18.

 


 

Рисунок 2.18 – Оценка стоимости исходного запроса

 

2.6.1.2 Минимизированный запрос

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

SELECT code_obj from gate WHERE gate.kind="Стандартные"
         INTO CURSOR C1
SELECT code_obj FROM inventar WHERE 
                   (ALLTRIM(inventar.firm)="Mizuno" AND    
                   ALLTRIM(inventar.model)="K235") INTO CURSOR C2         
SELECT code_obj from arrival_object WHERE
                      ((arrival_object.date)>={^2007-01-01}) INTO CURSOR d5
SELECT * FROM c1 INNER JOIN c2 ON c1.code_obj=c2.code_obj
                        INTO CURSOR C3
SELECT * FROM c3 INNER JOIN d5 ON d5.code_obj=c3.code_obj_a
                       INTO CURSOR C6
SELECT code_obj_a,inv_number from invnum_inv INNER JOIN C6
ON ALLTRIM(code_obj_a)==ALLTRIM(invnum_inv.code_obj)
           INTO CURSOR C7
SELECT code_obj_a,num_p from inv_in_zal INNER JOIN C7 ON inv_in_zal.inv_number=c7.inv_number INTO CURSOR C9
SELECT num_p from zal WHERE
        ALLTRIM(zal.type_zal)="Общей физической подготовки"
                   INTO CURSOR C10
SELECT DISTINCT code_obj_a from C9 INNER JOIN C10
                  ON C9.num_p=C10.num_p

Рисунок 2.19 – Текст минимизированного первого запроса

 

Минимизированное операционное дерево для первого запроса представлено на рисунке 2.20.

 


 

(18)

Рисунок 2.20 - Операционное дерево для минимизированного первого запроса

 

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

 


 

 

 


 

 

Рисунок 2.21- Оценка стоимости минимизированного первого запроса

 


 

2.6.2 Построение второго запроса

Словесная формулировка запроса следующая: «Вывести номера спортивных залов, в которых хранится инвентарь, принадлежащий обеим партиям: 522715, 413998».

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

 

SELECT num_p FROM zal WHERE ALLTRIM(zal.type_zal)=''
INTO CURSOR CR1
 SELECT num_p,code_del FROM del,CR1 INTO CURSOR CR4 
SELECT CR1.num_p,inv_number FROM CR1 INNER JOIN inv_in_zal
        ON CR1.num_p==inv_in_zal.num_p INTO CURSOR CR2
SELECT num_p,code_obj FROM CR2 INNER JOIN invnum_inv
   ON (invnum_inv.inv_number==CR2.inv_number) DISTINCT
INTO CURSOR CR3
SELECT DISTINCT num_p from CR4 WHERE NOT EXISTS
    (SELECT CR3.num_p FROM CR3 WHERE (CR4.num_p==CR3.num_p       
    AND CR4.code_del==CR3.code_obj))into CURSOR CR5
SELECT CR1.num_p,CR5.num_p FROM CR1 LEFT JOIN CR5 ON
   CR1.num_p=CR5.num_p INTO CURSOR CR6
SELECT DISTINCT num_p FROM CR1 WHERE NOT EXISTS (Select CR6.num_p_b from CR6 WHERE CR1.num_p=CR6.num_p_b)

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

 

Операционное дерево для второго запроса представлено на рисунке 2.23.

 


 

Рисунок 2.23 - Операционное дерево для второго запроса

 


 

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

 

3.1 Структура проекта

 

3.1.1 Связь таблиц

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

 

Рисунок 3.1– Схема связей таблиц

 

3.1.2 Перечень форм

Формы, входящие в состав проекта приведенны в таблице 3.1.

 


 

Таблица 3.1 – Перечень форм

Название формы Окружение данных
Инвентарные номера спортивного инвентаря Invnum_inv, Inventar
Спортивный инвентарь Inventar
Универсальный запрос Arrival_object,Gate, Inventar,Invnum_inv
Запросы -

 

3.2 Описание формы

 

На рисунке 3.2. изображена форма «Инвентарные номера инвентаря»

 

                                                                                        Command

TextBox
Grid

Рисунок 3.2 – Форма «Инвентарные номера инвентаря»

 

При создании формы использовались компоненты: TextBox, Command, Grid Каждая кнопка Command имеет событие Сlick. Обработчики событий Click для кнопок представлены в Приложении А.

 


 













Заключение

 

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

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

 


 



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



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