46885 (588451), страница 4
Текст из файла (страница 4)
Рисунок 2.15 - Концептуальная модель (ER-диаграмма) базы данных
После проведения всех этапов минимизации концептуальная модель не изменилась.
2.6 Построение запросов
2.6.1 Построение первого запроса
2.6.1.1 Исходный запрос
Первый запрос формулируется следующим образом: «Вывести коды партий футбольных ворот типа «юниорские», которые производятся фирмой Star, относятся к модели K325, поступили не раньше 2007 года и находятся в спортивных залах «Общей физической подготовки» ».
Т
SELECT *;
FROM((((gate INNER JOIN inventar ON
ALLTRIM(inventar.code_obj)==ALLTRIM(gate.code_obj));
INNER JOIN arrival_object ON
ALLTRIM(arrival_object.code_obj)==ALLTRIM(gate.code_obj));
INNER JOIN invnum_inv ON
ALLTRIM(invnum_inv.code_obj)==ALLTRIM(gate.code_obj));
INNER JOIN inv_in_zal ON ALLTRIM(inv_in_zal.inv_number)==ALLTRIM(invnum_inv.inv_number))
INNER JOIN zal ON zal.num_p==inv_in_zal.num_p;
WHERE ALLTRIM(gate.kind)="Стандартные";
AND (ALLTRIM(inventar.firm)="Mizuno");
AND (ALLTRIM(inventar.model)="K235");
AND ((arrival_object.date)>={^2007-01-01});
AND (ALLTRIM(zal.type_zal)="Общей физической подготовки")
INTO CURSOR cur
SELECT DISTINCT code_obj_a FROM cur ;
екст первого запроса на языке SQL представлен на рисунке 2.16.Риунок 2.16 - Текст первого запроса на языке SQL
Исходное операционное дерево для первого запроса представлено на рисунке 2.17.
Рисунок 2.17 - Исходное операционное дерево для первого запроса
О
,
,
,
,
,
,
,
,
,
,
,
,
Р
,
,
.
,
;
;
;
;
;
;
;
Оценка: 525613610
исунок 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.
,
,
,
,
,
,
,
,
,
,
,
,
,
,
.
,
;
,
,
,
,
,
;
,
,
,
,
,
,
,
, ,
,
Оценка:59271026
Рисунок 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
Grid
TextBox
Рисунок 3.2 – Форма «Инвентарные номера инвентаря»
П
ри создании формы использовались компоненты: TextBox, Command, Grid Каждая кнопка Command имеет событие Сlick. Обработчики событий Click для кнопок представлены в Приложении А.
Заключение
В ходе выполнения курсовой работы была достигнута цель работы – проектирование базы данных хозяйственного учета футбольного клуба.
Для достижения цели был решен ряд задач: составление описания предметной области; составление словаря понятий и терминов; построение исходной модели (ER-диаграммы) базы данных; определение функциональных зависимостей; синтез схемы базы данных на основании функциональных зависимостей; построение оптимизированной концептуальной модели; построение запросов на выборку.
Список использованных источников
-
Атре, Ш., Структурный подход к организации баз данных. / [Текст] : Атре, Ш. - М.: Финансы и статистика, 1983. – 320 с.
-
Бойко, В.В., Проектирование баз данных информационных систем. / [Текст] : Бойко, В.В., Савинков, В.М., – М.: Финансы и статистика, 1989. – 351 с.
-
Гарсия-Молина, Гектор, Ульман, Джеффри, Д., Уидом, Дженнифер Системы баз данных. Полный курс. : Пер. с англ. – М. : Издательский дом “Вильямс”, 2003. – 188 с. : ил.
-
Дейт, К., Руководство по реляционной СУБД DB2. / [Текст] : Дейт, К. – М.: Финансы и статистика, 1988. – 320 с.
-
Джексон, Г., Проектирование реляционных баз данных для использования с микроЭВМ. / [Текст] : Джексон, Г., -М.: Мир, 1991. – 252 с.
-
Кириллов, В.В., Структуризованный язык запросов (SQL). / [Текст] : Кириллов, В.В., – СПб.: ИТМО, 1994. – 80 с.
-
Мартин, Дж., Планирование развития автоматизированных систем. / [Текст] : Мартин, Дж., – М.: Финансы и статистика, 1984. – 196 с.
-
Мейер, М., Теория реляционных баз данных. / [Текст] : Мейер, М.,– М.: Мир, 1987. – 608 с.
-
Тиори, Т., Проектирование структур баз данных. / [Текст] : Тиори, Т., Фрай, Дж., В 2 кн., – М.: Мир, 1985. Кн. 1. – 287 с.: Кн. 2. – 320 с.
-
Ульман, Дж., Базы данных на Паскале. / [Текст] : Ульман, Дж., – М.: Машиностроение, 1990. – 386 с.
-
Хаббард, Дж., Автоматизированное проектирование баз данных. / [Текст] : Хаббард, Дж., – М.: Мир, 1984. – 294 с.
-
Цикритизис, Д., Модели данных. / [Текст] : Цикритизис, Д., Лоховски, Ф., – М.: Финансы и статистика, 1985. – 344 с.
Приложение А
Текст обработчиков событий, связанных с компонентами формы «Инвентарные номера инвентаря»
-
Код, связанный с событием Click кнопок «След.» и «Пред.»
* Next IF NOT EOF()
SKIP















