База данный "Хозяйственный учет футбольного клуба"

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование



Исходная концептуальная модель базы данных представлена на рисунке 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.

={^2007-01-01})INTOCURSORd5SELECT*FROMc1INNERJOINc2ONc1.code_obj=c2.code_objINTOCURSORC3SELECT*FROMc3INNERJOINd5ONd5.code_obj=c3.code_obj_aINTOCURSORC6SELECTcode_obj_a,inv_numberfrominvnum_invINNERJOINC6ONALLTRIM(code_obj_a)==ALLTRIM(invnum_inv.code_obj)INTOCURSORC7SELECTcode_obj_a,num_pfrominv_in_zalINNERJOINC7ONinv_in_zal.inv_number=c7.inv_numberINTOCURSORC9SELECTnum_pfromzalWHEREALLTRIM(zal.type_zal)=""INTOCURSORC10SELECTDISTINCTcode_obj_afromC9INNERJOINC10ONC9.num_p=C10.num_p">SELECT code_obj from gate WHERE gate.kind="Стандартные" INTO CURSOR C1SELECT 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 d5SELECT * FROM c1 INNER JOIN c2 ON c1.code_obj=c2.code_obj INTO CURSOR C3SELECT * FROM c3 INNER JOIN d5 ON d5.code_obj=c3.code_obj_a INTO CURSOR C6SELECT code_obj_a,inv_number from invnum_inv INNER JOIN C6 ON ALLTRIM(code_obj_a)==ALLTRIM(invnum_inv.code_obj) INTO CURSOR C7SELECT code_obj_a,num_p from inv_in_zal INNER JOIN C7 ON inv_in_zal.inv_number=c7.inv_number INTO CURSOR C9SELECT num_p from zal WHERE ALLTRIM(zal.type_zal)="Общей физической подготовки" INTO CURSOR C10SELECT DISTINCT code_obj_a from C9 INNER JOIN C10 ON C9.num_p=C10.num_pРисунок 2.19 Текст минимизированного первого запроса

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

Рисунок 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 CR2SELECT 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 CR5SELECT CR1.num_p,CR5.num_p FROM CR1 LEFT JOIN CR5 ON CR1.num_p=CR5.num_p INTO CURSOR CR6SELECT 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

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

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

Заключение

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

Для достижения цели был решен ряд задач: составление описания предметной области; составление словаря понятий и терминов; построение и