Реферат по предмету "Информатика, программирование"


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

Федеральноеагентство по образованию
Государственноеобразовательное учреждение высшего профессионального образования
‹‹Курскийгосударственный технический университет››
Кафедрапрограммного обеспечения вычислительной техники
КУРСОВАЯ РАБОТА
по дисциплине ‹‹Базы данных››
на тему ‹‹Хозяйственный учетфутбольного клуба››
Специальность 230105 Программное обеспечение вычислительной техники иавтоматизированных систем
Авторы работы _______________________
            (инициалы, фамилия) (подпись, дата)
Группа ПО — 71
Руководитель работы В. Г. Белов ______________________
                                        (инициалы, фамилия) (подпись,дата)
Работа защищена __________________
                                        (дата)
Оценка____________________
Председатель комиссии
______________________ ______________________
      (инициалы, фамилия)              (подпись, дата)
Члены комиссии
________________________ _________________________
        (инициалы, фамилия)            (подпись, дата)
Курск, 2010 г.

Федеральноеагентство по образованию
Государственноеобразовательное учреждение высшего профессионального образования
‹‹Курскийгосударственный технический университет››
Кафедра программного обеспечениявычислительной техники
ЗАДАНИЕНА КУРСОВУЮ РАБОТУ
Студент шифр 347011 группа ПО — 71
1. Тема Хозяйственный учет футбольного клуба
2. Срок предоставления работы (проекта) к защите ‹‹›› 2010 г
3. Исходныеданные
Неформальное описание предметной областии документы, которые в ней используются
4. Содержание пояснительно записки курсовой работы

Введение
1 Техническое задание
1.1 Основание для разработки
1.2 Назначение разработки
1.3 Стандарты
1.4 Требования к программе илипрограммному изделию
1.4.2 Носители информации
1.4.3 Требования к составу и параметрамтехнических средств
2 Технический проект
2.1 Описание предметной области
2.2 Словарь понятий и терминов
2.3 Определение функциональныхзависимостей
2.4 Синтез схемы базы данных на основаниифункциональных зависимостей
2.4.1 Построение неизбыточного покрытия
2.4.2 Построение леворедуцированногопокрытия
2.4.3 Построение праворедуцированногопокрытия
2.4.4 Построение классов эквивалентности
2.4.5 Построение редуцированного минимальногокольцевого покрытия
2.5 ER-схема базыданных
2.6 Построение запросов на SQL
2.6.1 Построение первого запроса        
3 Рабочий проект
3.1 Связи таблиц
3.2 Внешний вид формы
3.3Функциональные тесты
3.3.1 Тест 1
Заключение
Список использованных источников
Приложение А
Приложение Б

Реферат
Объем данного курсового проекта равен 56 страницам.В курсовом проекте содержится два приложения, в которых приведены ER-схемы базы данных, код программы. Также в КП содержитсяпостановка задачи.
Ключевые слова:
База данных, ER-схема,сущность, атрибут, ключ, связь, функциональная зависимость, системафункциональных зависимостей.
Объект разработки:
Объектом исследования в данной работе являетсяпроектирование базы данных в соответствии с заданным вариантом.
Цель работы:
Спроектировать базу данных «Хозяйственный учетфутбольного клуба».
Метод проведения работы:
Использование ER-диаграмм,минимизация зависимостей, построение запросов.

Summary
This termpaper contains 56 pages.It contains two enclosures, which contain ER-diagrams. Also it contains targetsetting.
Object of development is designof the database according to specified variant.
The aim of work is design of thedatabase, describing « the Economic account of football club ».
It is necessary to makeER-diagram, to minimize functional dependences, to write and minimize SQLqueries.
 

Определения
В данной работеприменены следующие термины с соответствующими определениями:
база данных: Файлы, снабженные описанием хранимыхв них данных и находящиеся под управлением СУБД.
er-диаграмма: Схема базыданных, спроектированная с помощью программы ERWin.
сущность: Любой различимый объект (объект, которыймы можем отличить от другого), информацию о котором необходимо хранить в базеданных.
атрибут: Поименованная характеристика сущности.
ключ: Минимальный набор атрибутов, по значениямкоторых можно однозначно найти требуемый экземпляр сущности.
связь: Ассоциирование двух или более сущностей.
Обозначения и сокращения
В данной работеприменены следующие сокращения:
БД: База данных
СУБД: Система управления базами данных
ФЗ: Функциональная зависимость 
Введение
Необходимоспроектировать базу данных «Хозяйственный учет футбольного клуба». Также цельюданной работы является ознакомление с основными принципами построения,использования и оптимизации реляционных баз данных.
Даннаятема актуальна, так как большое количество людей имеющих отношение к организациифутбольных соревнований заинтересованы в том чтобы вести актуальный учетспортивного и хозяйственного инвентаря.
Необходимопредоставить пользователю информацию о состоянии и наличии инвентаря испортивных снарядов, находящегося в распоряжении футбольного клуба на данныймомент.
Даннаязадача будет решаться с помощью анализа предметной области, ее формализации спомощью функциональных зависимостей. Затем необходимо провести этапыминимизации системы функциональных зависимостей, описывающих предметнуюобласть, и на основании полученной редуцированной системы спроектироватьтребуемую модель базы данных.
Предполагается,что проектируемый продукт будет иметь общественно-социальную значимость впервую очередь для людей имеющих отношение к организации футбольныхсоревнований.
1                  Техническое задание1.1          Основание для разработки
Необходимо разработать базу данных, спомощью которой будет возможно осуществлять учет собственности спортивной базыфутбольного клуба. Основанием для разработки послужило задание на курсовоепроектирование по дисциплине «Базы данных».1.2          Назначение разработки
Программный продуктразрабатывается с целью создания программы для организаторов футбольныхсоревнований.1.3          Стандарты
Данная работаоформлена в соответствии со стандартом СТУ 04.02.030.-2008.1.4          Требования к программе или программномуизделию
Спроектировать базуданных для спортивной базы футбольного клуба. Описать предметную область,разработать словарь понятий и терминов, построить систему функциональныхзависимостей. Синтезировать схему базы данных на основании функциональныхзависимостей (построение неизбыточного покрытия, построение леворедуцированногонеизбыточного покрытия, построение праворедуцированного неизбыточного покрытия,построение классов эквивалентностей, построение минимального покрытия).Построить уточненную концептуальную модель в виде ER-диаграммы,запросы предметной области. Записать минимизированные запросы на языке SQL.
1.4.1    Результирующие компоненты изделия
База данных ввизуальной среде разработки систем управления реляционными базами данных Microsoft Visual FoxPro и все сопровождающие файлы.
 1.4.2    Носители информации
Продукт должен размещаться в видефайлов на CD дисках. Впроцессе работы могут использоваться Flash, CD-R/-RW, DVD-R/RW или другиеносители информации.1.4.3    Требования к составу и параметрам технических средств
Программныйкомплекс должен корректно работать на компьютере со следующими техническими характеристиками:
−                 процессор Pentium V 2200МГц;
−                 оперативная память объемом 1024Мб;
−                 жесткий диск Seagate Barracuda,объемом 120 Гб;
−                 видеоадаптер SVGA;
−                 клавиатура;
−                 манипулятор типа “мышь”;
устройство удаленного доступа ксети: модем или сетевая карта.

 2                   Технический проект 2.1          Описание предметной области
Хозяйственный учетсобственности футбольного клуба представляет собой обобщенную информацию обимуществе, принадлежащем футбольному клубу, а также об игроках, которыетренируются на территории спортивной базы и обо всех сотрудниках.
Спортивная базаимеет множество помещений, все они характеризуются определенной площадью иназначением. Жилые комнаты населяют игроки и сотрудники спортивной базы.
Периодическифутбольный клуб закупает необходимый спортивный инвентарь, технику и мебель.Каждая партия поступающих объектов подлежит регистрации, во время которой ейприсваивается уникальный код, и характеризуется датой поступления, балансовойстоимостью и количеством.
Для инвентаря итехники хранится информация о фирме-изготовителе и модели товара. Для мебелидолжна быть отражена информация о фирме-производителе, цвете, габаритныхразмерах (длина, ширина, высота).
Каждой единице впоступившей партии объектов присваивается инвентарный номер, который ееоднозначно определяет.
Каждая единицаспортивного инвентаря на определенную дату закреплена за одним из спортивныхзалов. Каждая единица техники и мебели, в свою очередь, закреплена закаким-либо помещением.
Инвентарь, техникаи мебель могут быть списаны, при этом хранится дата списания.2.2           Словарь понятий и терминов
Словарь понятий итерминов приведен в таблицах 2.1 – 2.12.
Таблица 2.1 — ОбщаяинформацияАтрибут Смысл Пример sp Серия паспорта 3569 np Номер паспорта 0123654 fam Фамилия Иванов im Имя Иван otch Отчество Иванович pol Пол мужской dateborn Дата рождения 12.05.1960 datevidachi Дата выдачи паспорта 12.24.2000 kemvidan Кем выдан паспорт Отделом милиции №3 УВД г.Москва country Страна Россия city Город Москва street Улица Первомайская numstreet Номер улицы 45 numflat Номер квартиры 12 dolgnost Должность главный врач
Таблица 2.2 –ИгрокиАтрибут Смысл Пример sp Серия паспорта 3569 np Номер паспорта 0123654 date Дата 12.12.2004 rost Рост 180 ves Вес 79 staff Состав основной number Номер 12 status Статус нападающий
Таблица 2.3 –ПомещениеАтрибут Смысл Пример num_p Номер помещения 15 square Площадь 123 naznachenie Назначение столовая

Таблица 2.4 — КомнатаАтрибут Смысл Пример num_p Номер помещения 15 room Номер комнаты 3
Таблица 2.5 –Спортивный залАтрибут Смысл Пример num_p Номер помещения 15 type_zal Тип зала Тренажерный зал sp Серия паспорта 1226 np Номер паспорта 456987
Таблица 2.6 –Поступление объектовАтрибут Смысл Пример code_obj Код объекта 15 Kol Количество 40 date Дата поступления 04.24.2008 balance Балансовая стоимость 450
Таблица 2.7 –Спортивный инвентарьАтрибут Смысл Пример code_obj Код объекта 15 firm_inv Фирма-изготовитель Mizuno model_inv Модель GIM12
Таблица 2.8 –ТехникаАтрибут Смысл Пример значения code_obj Код объекта 15 firm_tec Фирма-изготовитель Samsung model_tec Модель SG-125
Таблица 2.9 –МебельАтрибут Смысл Пример значения code_obj Код объекта 115 firm_meb Фирма-изготовитель «Мир мебели» dlina Длина 125 width Ширина 50 height Высота 70 material_meb Материал Дуб Цвет color_meb Орех
Таблица 2.10– МячАтрибут Смысл Пример значения code_obj Код объекта 15 material_ball Материал кожа
Таблица 2.11 –Футбольные воротаАтрибут Смысл Пример значения code_obj Код объекта 24 kind Вид ворот стандартные height Высота 123 shirina Ширина 365
Таблица 2.12 –ТренажерАтрибут Смысл Пример значения code_obj Код объекта 65 type_tren Тип тренажера беговая дорожка
Таблица 2.13 –ТелевизорАтрибут Смысл Пример значения code_obj Код объекта 65 diagonal Диагональ экрана 54 screen Тип экрана
Таблица 2.14 –ХолодильникАтрибут Смысл Пример значения code_obj Код объекта 668 height Высота 125 width Ширина 105 depth Глубина 90 sum_sq_polok Площадь полок 126 com_volume Общий объем 368 userful_volume Используемый объем 360
Таблица 2.15 –ПылесосАтрибут Смысл Пример значения code_obj Код объекта 268 moshnost Мощность 54
Таблица 2.16 –КроватьАтрибут Смысл Пример значения code_obj Код объекта 45 Type_bed Тип кровати односпальная
Таблица 2.17 – ШкафАтрибут Смысл Пример значения code_obj Код объекта 123 type_shkaf Тип шкафа плательный
Таблица 2.18 – СтолАтрибут Смысл Пример значения code_obj Код объекта 569 type_table Тип стола письменный
Таблица 2.19 –Размещение спортивного инвентаря по заламАтрибут Смысл Пример значения Inv_number Инвентарный номер 123654 date Дата 05.15.2010 num_p Номер зала 56
Таблица 2.20 –Расселение людей по комнатамАтрибут Смысл Пример значения Inv_number Номер помещения 123654 sp Серия паспорта 1236 np Номер паспорта 566002
Таблица 2.21 –Инвентарные номера спортивного инвентаряАтрибут Смысл Пример значения Inv_number Инвентарный номер 123654 code_obj Код объекта 165
Таблица 2.22 –Инвентарные номера техникиАтрибут Смысл Пример значения Inv_number Инвентарный номер 333488 code_obj Код объекта 456
Таблица 2.23 –Инвентарные номера мебелиАтрибут Смысл Пример значения Inv_number Инвентарный номер 5699888 code_obj Код объекта 158
Таблица 2.24 –Списанный спортивный инвентарьАтрибут Смысл Пример значения Inv_number Инвентарный номер 123654 date Дата списания 11.10.2007
Таблица 2.25 –Списанная техникаАтрибут Смысл Пример значения Inv_number Инвентарный номер 123654 date Дата списания 04.05.2007
Таблица 2.26 –Списанная мебельАтрибут Смысл Пример значения Inv_number Инвентарный номер 123654 date Дата списания 12.03.2004 2.3          Определение функциональных зависимостей
У двух и болеелюдей серия и номер паспорта не могут быть одинаковыми.
Fam, Im,Otch, pol, dateborn, datevidachi, kemvidan, country, city, street, numstreet,numflat, dolgnost -> sp, np.
Один человек неможет иметь два разных паспорта.
sp_pl,np_pl -> sp, np -> date, rost, ves, staff, number, status -> Fam, Im,Otch, dateborn, country, city, street, numstreet, numflat.
Футболист не можетиграть в команде определенного состава одновременно под разными номерами вразном качестве.
 sp_pl, np_pl -> date, staff, number,status.
В определенномсоставе под одним номером не могут играть два футболиста.
sp_pl,np_pl -> staff, number, status.
Один человек неможет одновременно жить в двух комнатах.
num_room -> sp, np.
Помещение не можетиметь разные площади и назначения.
square, naznachenie -> num_p.
Номер помещенияоднозначно определяет номер комнаты.
room -> num_room.
Спортивный зал неможет одновременно относиться к разным типам. type_zal-> num_zal.
Объект в одно и тоже время поступает в определенном количестве по определенной цене. kol, date,balance -> code_obj.
Инвентарьпроизводится определенной фирмой и относится к определенной модели. firm_inv, model_inv-> code_inv.
Техникапроизводится определенной фирмой и относится к определенной модели, потребляетопределенную мощность. firm_tec, model_tec -> code_tec.
Мебельизготавливается из определенного материала, определенной длины, ширины, высоты,цвета. firm_meb, dlina, width, height, color -> code_meb.
Единица спортивногоинвентаря не может относиться к двум объектам. code_inv->inv_number_INV .
Единица техники неможет относиться к двум объектам. code_tec ->. inv_number_TEC.
Единица мебели неможет относиться к двум объектам. code_meb -> inv_number_MEB.
Единица спортивногоинвентаря не может быть списана дважды. date_out_inv-> inv_number_INV_out.
Единица техники неможет быть списана дважды. date_out_tec -> inv_number_TEC_out.
Единица мебели неможет быть списана дважды date_out_meb ->. inv_number_MEB_out.
Единица спортивногоинвентаря не может одновременно находиться в нескольких спортивных залах. num_zal-> inv_number_INV, date_IinZal.
Единица техники неможет одновременно находиться в нескольких помещениях. num_р -> inv_number_TEC, date_TecInP.
Единица мебели неможет одновременно находиться в нескольких помещениях. num_р -> inv_number_MEB, date_MebInP.
Мяч не может иметьразные характеристики. material -> code_balls.
Одни и те же воротане могут иметь разные характеристики. height_gate, shirina, kind -> code_gate.
Тренажер не можетбыть одновременно двух видов. type -> code_trenager.
Телевизор не можетиметь разные характеристики. diagonal, screen -> code_TV.
Холодильник неможет иметь разные характеристики. height_ref, widht_ref, depht_ref, sum_sq_polok,com_volume, user_volume -> code_refreg.
Пылесос не можетиметь разные характеристики. moshnost_v -> code_vacuum.
Кровать не можетиметь разные характеристики. type_bed -> code_bed.
Стол не может иметьразные характеристики. type_table, material_table >code_table.
Шкаф не может иметьразные характеристики. type_shkaf -> code_shkaf.
Исходныефункциональные зависимости представлены на рисунке 2.1

/>
Рисунок 2.1 – Исходныефункциональные зависимости
 
2.3.2Функциональные зависимости сохраняющие иерархию
В данном множествеесть следующие зависимости, которые сохраняют иерархию:
Спортивным залом неможет быть несуществующее помещение. num_zal -> num_p.
Не поступавшаяпартия объектов не может быть зарегистрирована как инвентарь. code_inv-> code_obj.
Не поступавшаяпартия объектов не может быть зарегистрирована как техника. code_tec-> code_obj.
Не поступавшаяпартия объектов не может быть зарегистрирована как мебель. code_meb-> code_obj.
Незарегистрированнаяединица инвентаря не может быть списана. inv_number_INV_out-> inv_number_INV.
Незарегистрированнаяединица техники не может быть списана.
inv_number_TEC_out -> inv_number_TEC.
Незарегистрированнаяединица мебели не может быть списана. inv_number_MEB_out-> inv_number_MEB.
Незарегистрированнаяпартия инвентаря инвентаря не может быть партией мячей.
code_balls -> code_inv.
Одна и та же партияворот не может поступить дважды.
code_gate -> code_inv.
Одна и та же партиятренажеров не может поступить дважды.
code_trenager -> type.
Одна и та же партиятелевизоров не может поступить дважды.
code_TV -> diagonal, screen.
Одна и та же партияхолодильников не может поступить дважды.
code_refreg -> height_ref, widht_ref, depht_ref, sum_sq_polok,com_volume, user_volume.
Функциональныезависимости сохраняющие иерархию представлены на рисунке 2.2.

/>
Рисунок 2.2 — Функциональныезависимости, сохраняющие иерархию2.4          Синтез схемы базы данных на основаниифункциональных зависимостей 2.4.1   Построение неизбыточного покрытия
Исходное множествофункциональных зависимостей представлено на рисунке 2.3.sp, np -> Fam, Im, Otch, pol, dateborn, datevidachi, kemvidan, country,   city, street, numstreet, numflat, dolgnost Fam, Im, Otch, dateborn, country, city, street, numstreet, numflat -> sp, np sp_pl, np_pl -> date, rost, ves, staff, number, status date, staff, number, status -> sp_pl, np_pl sp, np -> num_room num_p -> square, naznachenie num_room -> room num_zal -> type_zal num_zal -> num_p code_obj -> kol, date, balance code_inv -> firm_inv, model_inv code_inv -> code_obj code_tec -> firm_tec, model_tec code_tec -> code_obj code_meb -> firm_meb, dlina, width, height, color code_meb -> code_obj inv_number_INV -> code_inv inv_number_TEC -> code_tec inv_number_MEB -> code_meb inv_number_INV_out -> inv_number_INV inv_number_TEC_out -> inv_number_TEC inv_number_MEB_out -> inv_number_MEB inv_number_INV_out -> date_out_inv inv_number_TEC_out -> date_out_tec inv_number_MEB_out -> date_out_meb inv_number_INV, date_IinZal -> num_zal inv_number_TEC, date_TecInP -> num_р inv_number_MEB, date_MebInP -> num_р code_balls -> material code_balls -> code_inv code_gate -> height_gate, shirina, kind code_gate -> code_inv code_trenager -> type code_trenager -> code_inv code_TV -> diagonal, screen code_TV -> code_tec code_refreg -> height_ref, widht_ref, depht_ref, sum_sq_polok, com_volume, user_volume code_refreg -> code_tec code_vacuum -> moshnost_v code_vacuum -> code_tec code_bed -> type_bed code_bed -> code_meb code_table -> type_table, material_table code_table -> code_meb code_shkaf -> type_shkaf code_shkaf -> code_meb
Рисунок 2.3 — Исходное множество функционаьных зависимостей
В ходе построениянеизбыточнго покрытия множество функциональных зависимостей не изменилось.2.4.2    Построение леворедуцированного покрытия
В ходе построениялеворедуцированного покрытия множество функциональных зависимостей неизменилось. 2.4.3   Построение праворедуцированного покрытия
В ходе построенияправоредуцированного покрытия множество функциональных зависимостей неизменилось.

 2.4.4   Построениеклассовэквивалентности
Этапы построенияклассов эквивалентности представлены на рисунке 2.8.1. Ef( sp, np ): sp, np -> Fam, Im, Otch, pol, dateborn, datevidachi, kemvidan, country, city, street, numstreet, numflat, dolgnost Fam, Im, Otch, dateborn, country, city, street, numstreet, numflat -> sp, np sp, np -> num_room 2. Ef( sp_pl, np_pl ): sp_pl, np_pl -> date, rost, ves, staff, number, status date, staff, number, status -> sp_pl, np_pl 3. Ef( num_p ): num_p -> square, naznachenie 4. Ef( num_room ): num_room -> room 5. Ef( num_zal ): num_zal -> type_zal num_zal -> num_p 6. Ef( code_obj ): code_obj -> kol, date, balance 7. Ef( code_inv ): code_inv -> firm_inv, model_inv; code_inv -> code_obj 8. Ef( code_tec ): code_tec -> firm_tec, model_tec; code_tec -> code_obj 9. Ef( code_meb ): code_meb -> firm_meb, dlina, width, height, color; code_meb -> code_obj 10. Ef( inv_number_INV ): inv_number_INV -> code_inv 11. Ef( inv_number_TEC ): 15. Ef( inv_number_MEB_out ): inv_number_MEB_out -> inv_number_MEB inv_number_MEB_out -> date_out_meb 16. Ef( inv_number_INV, date_IinZal ): inv_number_INV, date_IinZal -> num_zal 17. Ef( inv_number_TEC, date_TecInP ): inv_number_TEC, date_TecInP -> num_р 18. Ef( inv_number_MEB, date_MebInP ): inv_number_MEB, date_MebInP -> num_р 19. Ef( code_balls ): code_balls -> material code_balls -> code_inv 20. Ef( code_gate ): code_gate -> height_gate, shirina, kind code_gate -> code_inv 21. Ef( code_trenager ): code_trenager -> type code_trenager -> code_inv 22. Ef( code_TV ): code_TV -> diagonal, screen code_TV -> code_tec 23. Ef( code_refreg ): code_refreg -> height_ref, widht_ref, depht_ref, sum_sq_polok, com_volume, user_volume code_refreg -> code_tec 24. Ef( code_vacuum ): code_vacuum -> moshnost_v code_vacuum -> code_tec 25. Ef( code_bed ): code_bed -> type_bed code_bed -> code_meb 26. Ef( code_table ): code_table -> type_table, material_table code_table -> code_meb 27. Ef( code_shkaf ): code_shkaf -> type_shkaf code_shkaf -> code_meb
Рисунок 2.4 — Этапыпостроения классов эквивалентности2.4.5    Построение минимального покрытия на основе прямойфункциональной определяемости
Этапы построенияминимального покрытия на основе прямой функциональной определяемостипредставлены на рисунке 2.5.2. Проверка: f \ Ef(sp, np) |= sp, np -> sp, np? Да => заменяем sp, np -> Fam, Im, Otch, pol, dateborn, datevidachi, kemvidan, country, city, street, numstreet, numflat, dolgnost и sp, np -> num_room на sp, np -> Fam, Im, Otch, pol, dateborn, datevidachi, kemvidan, country, city, street, numstreet, numflat, dolgnost, num_room. 5. Проверка: f \ Ef(num_zal) |= num_zal -> num_zal? Да => заменяем num_zal -> type_zal и num_zal -> num_p на num_zal -> type_zal, num_p. 6. Проверка: f \ Ef(code_inv) |= code_inv -> code_inv? Да => заменяем code_inv -> firm_inv, model_inv и code_inv -> code_obj на code_inv -> firm_inv, model_inv, code_obj. 7. Проверка: f \ Ef(code_tec) |= code_tec -> code_tec? Да => заменяем code_tec -> firm_tec, model_tec и code_tec -> code_obj на code_tec -> firm_tec, model_tec, code_obj. 8. Проверка: f \ Ef(code_meb) |= code_meb -> code_meb? Да => заменяем code_meb -> firm_meb, dlina, width, height, color и code_meb -> code_obj на code_meb -> firm_meb, dlina, width, height, color, code_obj. 9. Проверка: f \ Ef(inv_number_INV_out) |= inv_number_INV_out -> inv_number_INV_out? Да => заменяем inv_number_INV_out -> inv_number_INV и inv_number_INV_out -> date_out_inv на inv_number_INV_out -> inv_number_INV, date_out_inv. 10. Проверка: f \ Ef(inv_number_TEC_out) |= inv_number_TEC_out -> inv_number_TEC_out? Да => заменяем inv_number_TEC_out -> inv_number_TEC и inv_number_TEC_out -> date_out_tec на inv_number_TEC_out -> inv_number_TEC, date_out_tec. 11. Проверка: f \ Ef(inv_number_MEB_out) |= inv_number_MEB_out -> inv_number_MEB_out? Да => заменяем inv_number_MEB_out -> inv_number_MEB и inv_number_MEB_out -> date_out_meb на inv_number_MEB_out -> inv_number_MEB, date_out_meb. 12. Проверка: f \ Ef(code_balls) |= code_balls -> code_balls? Да => заменяем code_balls -> material и code_balls -> code_inv на code_balls -> material, code_inv. 13. Проверка: f \ Ef(code_gate) |= code_gate -> code_gate? Да => заменяем code_gate -> height_gate, shirina, kind и code_gate -> code_inv на code_gate -> height_gate, shirina, kind, code_inv.
Рисунок 2.5 — Этапыпостроения минимального покрытия на основе прямой функциональной определяемости
Редуцированноеминимальное покрытие представлено на рисунке 2.6Fam, Im, Otch, dateborn, country, city, street, numstreet, numflat > sp, np sp_pl, np_pl > date, rost, ves, staff, number, status date, staff, number, status > sp_pl, np_pl num_p > square, naznachenie num_room > room code_obj > kol, date, balance inv_number_INV > code_inv inv_number_TEC > code_tec inv_number_MEB > code_meb inv_number_INV, date_IinZal > num_zal inv_number_TEC, date_TecInP > num_р inv_number_MEB, date_MebInP > num_р sp, np > Fam, Im, Otch, pol, dateborn, datevidachi, kemvidan, country, city, street, numstreet, numflat, dolgnost, num_room num_zal > type_zal, num_p code_inv > firm_inv, model_inv, code_obj code_tec > firm_tec, model_tec, code_obj code_meb > firm_meb, dlina, width, height, color, code_obj inv_number_INV_out > inv_number_INV, date_out_inv inv_number_TEC_out > inv_number_TEC, date_out_tec inv_number_MEB_out > inv_number_MEB, date_out_meb code_balls > material, code_inv code_gate > height_gate, shirina, kind, code_inv code_trenager > type, code_inv code_TV > diagonal, screen, code_tec code_refreg > height_ref, widht_ref, depht_ref, sum_sq_polok, com_volume, user_volume, code_tec code_vacuum > moshnost_v, code_tec code_bed > type_bed, code_meb code_table > type_table, material_table, code_meb code_shkaf > type_shkaf, code_meb
Рисунок 2.6 — Редуцированное минимальное покрытие  2.4.6   Построение редуцированного минимальногокольцевого покрытия
Определение CF-зависимостейпо классам эквивалентности. Построение кольцевого покрытия
Минимальноекольцевое покрытие представлено на рисунке 2.7( sp, np; Fam, Im, Otch, dateborn, country, city, street, numstreet, numflat; ) -> pol, datevidachi, kemvidan, dolgnost, num_room ( sp_pl, np_pl; date, staff, number, status; ) -> rost, ves ( num_p; ) -> square, naznachenie ( num_room; ) -> room ( num_zal; ) -> type_zal, num_p ( code_obj; ) -> kol, date, balance ( code_inv; ) -> firm_inv, model_inv, code_obj ( code_tec; ) -> firm_tec, model_tec, code_obj ( code_meb; ) -> firm_meb, dlina, width, height, color, code_obj ( inv_number_INV; ) -> code_inv ( inv_number_TEC; ) -> code_tec ( inv_number_MEB; ) -> code_meb ( inv_number_INV_out; ) -> inv_number_INV, date_out_inv ( inv_number_TEC, _out; ) ( inv_number_MEB_out; ) -> inv_number_MEB, date_out_meb ( inv_number_TEC_out; ) -> date_out_tec ( inv_number_INV, date_IinZal; ) -> num_zal ( inv_number_TEC, date_TecInP; ) -> num_р ( inv_number_MEB, date_MebInP; ) -> num_р ( code_balls; ) -> material, code_inv ( code_gate; ) -> height_gate, shirina, kind, code_inv ( code_trenager; ) -> type, code_inv ( code_TV; ) -> diagonal, screen, code_tec ( code_refreg; ) -> height_ref, widht_ref, depht_ref, sum_sq_polok, com_volume, user_volume, code_tec ( code_vacuum; ) -> moshnost_v, code_tec ( code_bed; ) -> type_bed, code_meb ( code_table; ) -> type_table, material_table, code_meb ( code_shkaf; ) -> type_shkaf, code_meb
Рисунок 2.7 — Минимальное кольцевое покрытие
Получениекольцевого минимального редуцированного покрытия
Естественноехарактеристическое множество для кольцевого покрытия представлено на рисунке2.8.f(C): sp, np -> Fam, Im, Otch, dateborn, country, city, street, numstreet, numflat Fam, Im, Otch, dateborn, country, city, street, numstreet, numflat -> sp, np Fam, Im, Otch, dateborn, country, city, street, numstreet, numflat -> pol, datevidachi, kemvidan, dolgnost, num_room sp_pl, np_pl -> date, staff, number, status date, staff, number, status -> sp_pl, np_pl date, staff, number, status -> rost, ves code_tec -> firm_tec, model_tec, code_obj code_meb -> firm_meb, dlina, width, height, color, code_obj inv_number_INV -> code_inv inv_number_TEC -> code_tec inv_number_MEB -> code_meb inv_number_INV_out -> inv_number_INV, date_out_inv inv_number_MEB_out -> inv_number_MEB, date_out_meb inv_number_TEC_out -> date_out_tec inv_number_INV, date_IinZal -> num_zal inv_number_TEC, date_TecInP -> num_р inv_number_MEB, date_MebInP -> num_р code_balls -> material, code_inv code_gate -> height_gate, shirina, kind, code_inv code_trenager -> type, code_inv code_TV -> diagonal, screen, code_tec code_refreg -> height_ref, widht_ref, depht_ref, sum_sq_polok, com_volume, user_volume, code_tec code_vacuum -> moshnost_v, code_tec code_bed -> type_bed, code_meb code_table -> type_table, material_table, code_meb code_shkaf -> type_shkaf, code_meb
Рисунок 2.8 — Естественное характеристическое множество для кольцевого покрытия
Минимальноередуцированное кольцевое покрытие представлено на рисунке 2.9.( sp, np; Fam, Im, Otch, dateborn, country, city, street, numstreet, numflat; ) -> pol, datevidachi, kemvidan, dolgnost, num_room ( sp_pl, np_pl; date, staff, number, status; ) -> rost, ves ( num_p; ) -> square, naznachenie ( num_room; ) -> room ( num_zal; ) -> type_zal, num_p ( code_obj; ) -> kol, date, balance ( code_inv; ) -> firm_inv, model_inv, code_obj ( code_tec; ) -> firm_tec, model_tec, code_obj ( code_meb; ) -> firm_meb, dlina, width, height, color, code_obj ( inv_number_INV; ) -> code_inv ( inv_number_TEC; ) -> code_tec ( inv_number_MEB; ) -> code_meb ( inv_number_INV_out; ) -> inv_number_INV, date_out_inv ( inv_number_TEC, _out; ) ( inv_number_MEB_out; ) -> inv_number_MEB, date_out_meb ( inv_number_TEC_out; ) -> date_out_tec ( inv_number_INV, date_IinZal; ) -> num_zal ( inv_number_TEC, date_TecInP; ) -> num_р ( inv_number_MEB, date_MebInP; ) -> num_р ( code_balls; ) -> material, code_inv ( code_gate; ) -> height_gate, shirina, kind, code_inv ( code_trenager; ) -> type, code_inv ( code_TV; ) -> diagonal, screen, code_tec ( code_refreg; ) -> height_ref, widht_ref, depht_ref, sum_sq_polok, com_volume, user_volume, code_tec ( code_vacuum; ) -> moshnost_v, code_tec ( code_bed; ) -> type_bed, code_meb ( code_table; ) -> type_table, material_table, code_meb ( code_shkaf; ) -> type_shkaf, code_meb
Рисунок 2.9 — Минимальное редуцированное кольцевое покрытие
Естественноехарактеристическое множество представлено на рисунке 2.10.R0 = ( sp, np; Fam, Im, Otch, dateborn, country, city, street, numstreet, numflat, pol, datevidachi, kemvidan, dolgnost, num_room ) K0 = { sp, np; Fam, Im, Otch, dateborn, country, city, street, numstreet, numflat } R1 = ( sp_pl, np_pl; date, staff, number, status, rost, ves ) K1 = { sp_pl, np_pl; date, staff, number, status } R2 = ( num_p, square, naznachenie ) K2 = { num_p } R3 = ( num_room, room ) K3 = { num_room } R4 = ( num_zal, type_zal, num_p ) K4 = { num_zal } R5 = ( code_obj, kol, date, balance ) K5 = { code_obj } R6 = ( code_inv, firm_inv, model_inv, code_obj ) K6 = { code_inv } R7 = ( code_tec, firm_tec, model_tec, code_obj ) K7 = { code_tec } R8 = ( code_meb, firm_meb, dlina, width, height, color, code_obj ) K8 = { code_meb } R9 = ( inv_number_INV, code_inv ) K9 = { inv_number_INV } R10 = ( inv_number_TEC, code_tec ) K10 = { inv_number_TEC } R11 = ( inv_number_MEB, code_meb )   K11 = { inv_number_MEB } R12 = ( inv_number_INV_out, inv_number_INV, date_out_inv )   K12 = { inv_number_INV_out } R13 = ( inv_number_TEC, _out )   K13 = { inv_number_TEC, _out } R14 = ( inv_number_MEB_out, inv_number_MEB, date_out_meb ) K14 = {inv_number_MEB_out } R15 = ( inv_number_TEC_out, date_out_tec )   K15 = { inv_number_TEC_out } R16 = ( inv_number_INV, date_IinZal, num_zal )   K16 = { inv_number_INV, date_IinZal } R17 = ( inv_number_TEC, date_TecInP, num_р )   K17 = { inv_number_TEC, date_TecInP } R18 = ( inv_number_MEB, date_MebInP, num_р )   K18 = { inv_number_MEB, date_MebInP } R19 = ( code_balls, material, code_inv )   K19 = { code_balls } R20 = ( code_gate, height_gate, shirina, kind, code_inv )   K20 = { code_gate } R21 = ( code_trenager, type, code_inv )   K21 = { code_trenager } R22 = ( code_TV, diagonal, screen, code_tec )   K22 = { code_TV } R23 = ( code_refreg, height_ref, widht_ref, depht_ref, sum_sq_polok, com_volume, user_volume, code_tec )   K23 = { code_refreg } R24 = ( code_vacuum, moshnost_v, code_tec )   K24 = { code_vacuum } R25 = ( code_bed, type_bed, code_meb )   K25 = { code_bed } R26 = ( code_table, type_table, material_table, code_meb )   K26 = { code_table } R27 = ( code_shkaf, type_shkaf, code_meb )   K27 = { code_shkaf }
Рисунок 2.10 — Естественное характеристическое множество2.5          Концептуальная модель
Исходнаяконцептуальная модель базы данных представлена на рисунке 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-диаграммы)базы данных; определение функциональных зависимостей; синтез схемы базы данныхна основании функциональных зависимостей; построение оптимизированнойконцептуальной модели; построение запросов на выборку.
Список использованных источников
1.       Атре, Ш., Структурный подход к организации баз данных./ [Текст]: Атре, Ш. — М.: Финансы и статистика, 1983. – 320 с.
2.       Бойко, В.В., Проектирование баз данных информационныхсистем. / [Текст]: Бойко, В.В., Савинков, В.М., – М.: Финансы и статистика,1989. – 351 с.
3.       Гарсия-Молина, Гектор, Ульман, Джеффри, Д., Уидом,Дженнифер Системы баз данных. Полный курс.: Пер. с англ. – М.: Издательскийдом “Вильямс”, 2003. – 188 с.: ил.
4.       Дейт, К., Руководство по реляционной СУБД DB2. /[Текст]: Дейт, К. – М.: Финансы и статистика, 1988. – 320 с.
5.       Джексон, Г., Проектирование реляционных баз данных дляиспользования с микроЭВМ. / [Текст]: Джексон, Г., -М.: Мир, 1991. – 252 с.
6.       Кириллов, В.В., Структуризованный язык запросов (SQL)./ [Текст]: Кириллов, В.В., – СПб.: ИТМО, 1994. – 80 с.
7.       Мартин, Дж., Планирование развития автоматизированныхсистем. / [Текст]: Мартин, Дж., – М.: Финансы и статистика, 1984. – 196 с.
8.       Мейер, М., Теория реляционных баз данных. / [Текст]:Мейер, М.,– М.: Мир, 1987. – 608 с.
9.       Тиори, Т., Проектирование структур баз данных. /[Текст]: Тиори, Т., Фрай, Дж., В 2 кн., – М.: Мир, 1985. Кн. 1. – 287 с.: Кн.2. – 320 с.
10.  Ульман, Дж., Базы данных на Паскале. / [Текст]:Ульман, Дж., – М.: Машиностроение, 1990. – 386 с.
11.   Хаббард, Дж., Автоматизированное проектирование базданных. / [Текст]: Хаббард, Дж., – М.: Мир, 1984. – 294 с.
12.   Цикритизис, Д., Модели данных. / [Текст]:Цикритизис, Д., Лоховски, Ф., – М.: Финансы и статистика, 1985. – 344 с. 
Приложение А
Текст обработчиков событий, связанных с компонентами формы «Инвентарные номера инвентаря»
А.1        Код,связанный с событием Click кнопок «След.» и «Пред.»
* NextIF NOT EOF()
SKIP
IF EOF()
GOBOTTOM
ЕNDIF
ENDIF
THISFORM.Refresh
THISFORM.Buttons
*Previous IF NOT BOF()
SKIP — 1
IF BОF()
G0 TOP
EHDIF
ЕNDIF
THISFORM.Refresh:
THISFORM.Buttons
А.2        Код, связанный с событием Clickкнопки «Найти»
IF NOT USED([Invnum_inv])
 USE Invnum_inv IN 0
ENDIF
IFthisform.container1.text1.Value=" "
ELSE
SELECT Invnum_inv
SET ORDER TO inv_number
LOCATE FOR
(ALLTRIM(inv_number))=ALLTRIM(thisform.container1.text1.value)
IF FOUND()
SEEK inv_number
ENDIF
thisform.refresh
ENDIF
А.3        Код, связанный с событием Click кнопки «Новаязапись»
IF NOT USED([inventar])
USE inventar IN 0
ENDIF
IF NOT USED([Invnum_inv])
USE Invnum_inv IN 0
ENDIF
IF NOTUSED([Arrival_object])
USE Arrival_object IN 0
ENDIF
thisform.Visible= .F.
SET RELATION TO
SET SKIP TO
SELECT Inventar
SET ORDER TO code_obj
SELECT Invnum_inv
SET RELATION TO code_objINTO Inventar
SET SKIP TO Inventar
DO FORM «c:\documentsand settings\yla\мои документы\visual foxpro projects\my_football_new\f_inventar.scx»
А.4        Код, связанный с событием Clickкнопки «Сохранить»
thisform.container2.command1.Enabled=.T.
SELECT invnum_inv
GO RECCOUNT()
IF(invnum_inv.inv_number!=' ')
thisform.Command1.Enabled=.T.
ELSE
MESSAGEBOX(«Введите вседанные!!!»,16, «Ошибка»)
ENDIF
А.5        Код, связанный с событием Clickкнопки «Отмена»
thisform.Height= 260
thisform.container1.command3.Enabled=.t.
thisform.container2.command1.Enabled=.t.
thisform.container2.command2.Enabled=.t.
thisform.container2.command5.Enabled=.t.
thisform.container3.command4.Enabled=.t.
thisform.container3.command3.Enabled=.t.
thisform.container3.command6.Enabled=.f.
А.6        Код, связанный с событием Clickкнопки «Удалить»IF MESSAGEBOX («Удалить этузапись», 4 + 32 + 256 ) = 6
DELETENEXT 1
BLANK
SETDELETED ON
GO TOP
THISFORM.Refresh
ENDIF
А.7        Код, связанный с событием Clickкнопки «Просмотр»
IF NOTUSED([Arrival_object])
USE Arrival_object IN 0
ENDIF
IF NOT USED([inventar])
USE inventar IN 0
ENDIF
IF NOT USED([Invnum_inv])
USE Invnum_inv IN 0
ENDIF
thisform.Height= 454
thisform.container3.command6.Enabled=.t.
thisform.container1.command3.Enabled=.f.
thisform.container2.command1.Enabled=.f.
thisform.container2.command2.Enabled=.f.
thisform.container2.command5.Enabled=.f.
thisform.container3.command4.Enabled=.f.
thisform.container3.command3.Enabled=.f.

Приложение Б
Текст программы обработчика событий «Запрос» на форме «Универсальныйзапрос»
IF NOTUSED([arrival_object])
USE arrival_object IN 0
ENDIF
IF NOT USED([inventar])
USE inventar IN 0
ENDIF
IF NOT USED([invnum_inv])
USE invnum_inv IN 0
ENDIF
IF NOT USED([gate])
USE gate IN 0
ENDIF
IFthisform.container2.txt_height_gate.Value=" "
thisform.container2.txt_height_gate.Value=""
ENDIF
str="(21)"
out_fields=«gate.code_obj»
IF thisform.ch_code.Value= 1
 out_fields=«gate.code_obj»
ENDIF
IFthisform.ch_date_arrival.Value= 1
out_fields = out_fields+", arrival_object.date"
ENDIF
IFthisform.ch_balance.Value = 1
out_fields = out_fields+", arrival_object.balance"
ENDIF
IF thisform.ch_kol.Value =1
 out_fields = out_fields+", arrival_object.kol"
ENDIF
IF thisform.ch_firm.Value =1
out_fields = out_fields+", inventar.firm"
ENDIF
IF thisform.ch_model.Value= 1
 out_fields = out_fields+", inventar.model"
ENDIF
IFthisform.ch_inv_number.Value = 1
out_fields = out_fields+", invnum_inv.inv_number"
ENDIF
IFthisform.container2.ch_height_gate.Value = 1
out_fields = out_fields+", gate.height_gate"
ENDIF
IFthisform.container2.ch_kind_gate.Value = 1
out_fields = out_fields+", gate.kind"
ENDIF
IFthisform.container2.Ch_shirina_gate.Value = 1
out_fields = out_fields+", gate.shirina"
ENDIF
IFALLTRIM(thisform.txt_code_obj.Value) == ""
ELSE
str = str +" AND"+
"((ALLTRIM(gate.code_obj))=ALLTRIM(thisform.txt_code_obj.Value))"
ENDIF
IFALLTRIM(thisform.txt_date_arrival.Value) == ""
ELSE
str = str +" AND"+
"((ALLTRIM(DTOC(arrival_object.date)))=ALLTRIM(thisform.txt_date_arrival.Value))"
ENDIF
IFALLTRIM(thisform.txt_balance.Value) == ""
ELSE
str = str +" AND"+
"((ALLTRIM(STR(arrival_object.balance)))=ALLTRIM(thisform.txt_balance.Value))"
ENDIF
IFALLTRIM(thisform.txt_kol.Value) == ""
ELSE
str = str +" AND"+
((ALLTRIM(STR(arrival_object.kol)))=ALLTRIM(thisform.txt_kol.Value))
ENDIF
IFALLTRIM(thisform.txt_firm.Value )== ""
ELSE
str = str +" AND"+
((ALLTRIM(inventar.firm))=ALLTRIM(thisform.txt_firm.Value))
ENDIF
IFALLTRIM(thisform.txt_model.Value) == ""
ELSE
str = str +" AND"+
"((ALLTRIM(inventar.model))=ALLTRIM(thisform.txt_model.Value))"
ENDIF
IFALLTRIM(thisform.container2.txt_kind_gate.Value) == ""
 ELSE
 str = str +" AND"+
"((ALLTRIM(gate.kind))=ALLTRIM(thisform.container2.txt_kind_gate.Value))"
ENDIF
IFALLTRIM(thisform.container2.txt_height_gate.Value) == ""
ELSE
str = str +" AND"+ "((ALLTRIM(STR(gate.height_gate)))
=thisform.container2.txt_height_gate.Value)"
ENDIF
IFALLTRIM(thisform.container2.txt_shirina_gate.Value)== ""
ELSE
 str = str +" AND"+ "((ALLTRIM(STR(gate.shirina)))=
=ALLTRIM(thisform.container2.txt_shirina_gate.Value))"
ENDIF
IFout_fields=«NULL»
out_fields ="*"
ENDIF
SELECT &out_fields;
FROM(((gate INNER JOINinventar ON
ALLTRIM(inventar.code_obj)==ALLTRIM(gate.code_obj));
INNER JOIN arrival_objectON
ALLTRIM(arrival_object.code_obj)==ALLTRIM(gate.code_obj));
INNER JOIN invnum_inv ON
ALLTRIM(invnum_inv.code_obj)==ALLTRIM(gate.code_obj));
WHERE &str INTO TABLEMy_tab
objExcel=CreateObject(«Excel.Application»)
objExcel.Visible=.T.
objExcel.Workbooks.add
nstol = 0
IF thisform.ch_code.Value= 1
nstol = nstol+1
objExcel.Cells(3,nstol).select
objExcel.Cells(3,nstol).Font.Bold=.T.
objExcel.Cells(3,nstol).Value=«Код партии»
objExcel.Columns[nstol].ColumnWidth= 12
ENDIF
IFthisform.ch_date_arrival.Value= 1
nstol = nstol+1
objExcel.Cells(3,nstol).select
objExcel.Cells(3,nstol).Font.Bold=.T.
objExcel.Cells(3,nstol).Value=«Дата поступления»
objExcel.Columns[nstol].ColumnWidth= 18
ENDIF
IFthisform.ch_balance.Value = 1
nstol = nstol+1
objExcel.Cells(3,nstol).select
objExcel.Cells(3,nstol).Font.Bold=.T.
objExcel.Cells(3,nstol).Value=«Балансовая стоимость»
objExcel.Columns[nstol].ColumnWidth= 25
ENDIF
IF thisform.ch_kol.Value =1
nstol = nstol+1
objExcel.Cells(3,nstol).select
objExcel.Cells(3,nstol).Font.Bold=.T.
objExcel.Cells(3,nstol).Value=«Количество»
objExcel.Columns[nstol].ColumnWidth= 12
ENDIF
IF thisform.ch_firm.Value =1
nstol = nstol+1
objExcel.Cells(3,nstol).select
objExcel.Cells(3,nstol).Font.Bold=.T.
objExcel.Cells(3,nstol).Value=«Фирма-производитель»
objExcel.Columns[nstol].ColumnWidth= 25
ENDIF
IF thisform.ch_model.Value= 1
nstol = nstol+1
objExcel.Cells(3,nstol).select
objExcel.Cells(3,nstol).Font.Bold=.T.
objExcel.Cells(3,nstol).Value=«Модель»
objExcel.Columns[nstol].ColumnWidth= 10
ENDIF
IFthisform.ch_inv_number.Value = 1
nstol = nstol+1
objExcel.Cells(3,nstol).select
objExcel.Cells(3,nstol).Font.Bold=.T.
objExcel.Cells(3,nstol).Value=«Инвентарный номер»
objExcel.Columns[nstol].ColumnWidth= 25
ENDIF
IFthisform.container2.ch_height_gate.Value = 1
nstol = nstol+1
objExcel.Cells(3,nstol).select
objExcel.Cells(3,nstol).Font.Bold=.T.
objExcel.Cells(3,nstol).Value=«Высота ворот»
objExcel.Columns[nstol].ColumnWidth= 15
ENDIF
IFthisform.container2.ch_kind_gate.Value = 1
nstol = nstol+1
objExcel.Cells(3,nstol).select
objExcel.Cells(3,nstol).Font.Bold=.T.
objExcel.Cells(3,nstol).Value=«Вид ворот»
objExcel.Columns[nstol].ColumnWidth= 20
ENDIF
IFthisform.container2.Ch_shirina_gate.Value = 1
nstol = nstol+1
objExcel.Cells(3,nstol).select
objExcel.Cells(3,nstol).Font.Bold=.T.
objExcel.Cells(3,nstol).Value=«Ширина ворот»
objExcel.Columns[nstol].ColumnWidth= 15
ENDIF
IF nstol>0
tt1 =""+CHRTRAN(objExcel.Cells(1,1).Address,"$","")
tt2 =""+CHRTRAN(objExcel.Cells(1,nstol).Address,"$","")
WITH objExcel&&cel
WITH.Range(tt1+":"+tt2)
WITH .Font
Name = «ArialCyr»
FontStyle = «полужирный»
Size = 14
ENDWITH
HorizontalAlignment = 3
VerticalAlignment = 1
WrapText = .F.
Orientation = 0
AddIndent = .F.
IndentLevel = 0
ShrinkToFit = .F.
MergeCells = .F.
Merge
ENDWITH
Range(«A1»).Value =«Данные о партиях футбольных ворот»
ENDWITH
ENDIF
stroka=3
stolbic=1
SELECT my_tab
SCAN
stroka=stroka+1
temp_j = stolbic
IF thisform.ch_code.Value= 1
objExcel.Cells(stroka,temp_j).select
objExcel.Cells(stroka,temp_j).Value = my_tab.code_obj
temp_j = temp_j +1
ENDIF
IFthisform.ch_date_arrival.Value= 1
objExcel.Cells(stroka,temp_j).select
objExcel.Cells(stroka,temp_j).Value = my_tab.date
temp_j = temp_j +1
ENDIF
IFthisform.ch_balance.Value = 1
objExcel.Cells(stroka,temp_j).select
objExcel.Cells(stroka,temp_j).Value = my_tab.balance
temp_j = temp_j +1
ENDIF
IF thisform.ch_kol.Value =1
objExcel.Cells(stroka,temp_j).select
objExcel.Cells(stroka,temp_j).Value =my_tab.kol
temp_j = temp_j +1
ENDIF
IF thisform.ch_firm.Value =1
objExcel.Cells(stroka,temp_j).select
objExcel.Cells(stroka,temp_j).Value = my_tab.firm
temp_j = temp_j +1
ENDIF
IF thisform.ch_model.Value= 1
objExcel.Cells(stroka,temp_j).select
objExcel.Cells(stroka,temp_j).Value = my_tab.model
temp_j = temp_j +1
ENDIF
IFthisform.ch_inv_number.Value = 1
objExcel.Cells(stroka,temp_j).select
objExcel.Cells(stroka,temp_j).Value = my_tab.inv_number
temp_j = temp_j +1
ENDIF
IFthisform.container2.ch_height_gate.Value = 1
objExcel.Cells(stroka,temp_j).select
objExcel.Cells(stroka,temp_j).Value = STR(my_tab.height_gate)
         temp_j = temp_j+1
ENDIF
IFthisform.container2.ch_kind_gate.Value = 1
objExcel.Cells(stroka,temp_j).select
objExcel.Cells(stroka,temp_j).Value =my_tab.kind
temp_j = temp_j +1
ENDIF
IFthisform.container2.Ch_shirina_gate.Value = 1
objExcel.Cells(stroka,temp_j).select
objExcel.Cells(stroka,temp_j).Value =STR(my_tab.shirina)
temp_j = temp_j +1
ENDIF
ENDSCAN
IF nstol>0
tt1 =""+CHRTRAN(objExcel.Cells(3,1).Address,"$","")
tt2 =""+CHRTRAN(objExcel.Cells(stroka,nstol).Address,"$","")
WITH objExcel
WITH.Range(tt1+":"+tt2)
WITH .Font
.Name = «ArialCyr»
Size = 10
ENDWITH
HorizontalAlignment = 3
ENDWITH
ENDWITH
ENDIF
WithobjExcel.Range(tt1+":"+tt2)
Borders(1).LineStyle = 0
Borders(2).LineStyle = 0
With .Borders(1)
LineStyle = 1
Weight = 2
ENDWITH
With .Borders(2)
Weight = 2
ENDWITH
With .Borders(3)
LineStyle = 1
Weight = 2
ENDWITH
With .Borders(4)
LineStyle = 1
Weight = 2
ENDWITH
ENDWITH

Приложение В
Текст программы для заполнения таблицзаписями
IF NOTUSED([Arrival_object])
USE Arrival_object IN 0
ENDIF
IF NOT USED([inventar])
USE inventar IN 0
ENDIF
IF NOTUSED([out_inventar])
USE out_inventar IN 0
ENDIF
IF NOT USED([techno])
USE techno IN 0
ENDIF
IF NOT USED([firm_techno])
 USE firm_techno IN 0
ENDIF
IF NOT USED([firm_inv])
USE firm_inv IN 0
ENDIF
IF NOTUSED([techno_model])
USE techno_model IN 0
ENDIF
IF NOT USED([Mebel])
USE Mebel IN 0
ENDIF
IF NOT USED([invnum_inv])
USE invnum_inv IN 0
ENDIF
IF NOT USED([invnum_tec])
USE invnum_tec IN 0
ENDIF
IF NOT USED([invnum_meb])
USE invnum_meb IN 0
ENDIF
IF NOTUSED([datevidachi_table])
USE datevidachi_table IN 0
ENDIF
IF NOT USED([balls])
USE balls IN 0
ENDIF
IF NOT USED([gate])
USE gate IN 0
ENDIF
IF NOT USED([kind_gate])
USE kind_gate IN 0
ENDIF
IF NOTUSED([shir_and_height_gate])
USE shir_and_height_gateIN 0
ENDIF
IF NOT USED([trenager])
USE trenager IN 0
ENDIF
IF NOT USED([TV])
USE TV IN 0
ENDIF
IF NOTUSED([refrigerator])
USE refrigerator IN 0
ENDIF
IF NOTUSED([vacuum_cleaner])
USE vacuum_cleaner IN 0
ENDIF
IF NOT USED([bed])
USE bed IN 0
ENDIF
IF NOT USED([shkaf])
USE shkaf IN 0
ENDIF
IF NOT USED([table])
USE table IN 0
ENDIF
IF NOT USED([tumbochka])
USE tumbochka IN 0
ENDIF
j=0
k=0
SELECT arrival_object
FOR i=1 TO 1200000
APPEND BLANK
replace code_obj WITHALLTRIM(STR(i))
k=k+1
IF(k
k = k+1
ELSE
k =5
ENDIF
replace kol WITH k
replace balance WITH k*5.8
SELECT datevidachi_table
IF NOT EOF()
replacearrival_object.date WITH date_v
SKIP
ELSE
SKIP -(RECNO())
replacearrival_object.date WITH date_v
SKIP
ENDIF
SELECT arrival_object
ENDFOR
**************************************
kol=0
j=1
SELECT arrival_object
GO 1
DO WHILE NOT EOF()
SELECT inventar
APPEND BLANK
replace code_obj WITHarrival_object.code_obj
kol = arrival_object.kol
SELECT invnum_inv
DO WHILE (kol!=0)
APPEND BLANK
replace inv_number WITHSTR(j)
replace code_obj WITHarrival_object.code_obj
j=j+1
kol=kol-1
ENDDO
SELECT firm_inv
IF NOT EOF()
replace inventar.firm WITHfirm_inv
SKIP
ELSE
GO 1
replace inventar.firm WITHfirm_inv
SKIP
ENDIF
SELECT techno_model
IF NOT EOF()
replace inventar.modelWITH model
SKIP
ELSE
GO 1
replace inventar.modelWITH model
SKIP
ENDIF
********
SELECT Arrival_object
SKIP
IF NOT EOF()
SELECT Techno
APPEND BLANK
replace code_obj WITHarrival_object.code_obj
SELECT firm_techno
IF NOT EOF()
replace Techno.firm_markaWITH firm_marka
SKIP
ELSE
GO 1
replace Techno.firm_markaWITH firm_marka
SKIP
ENDIF
SELECT techno_model
IF NOT EOF()
replace Techno.model WITHmodel
SKIP
ELSE
GO 1
replace Techno.model WITHmodel
SKIP
ENDIF
*********
SELECT Arrival_object
SKIP
IF NOT EOF()
SELECT Mebel
APPEND BLANK
replace code_obj WITHarrival_object.code_obj
********
SELECT Arrival_object
SKIP
ENDIF
ENDIF
ENDDO
&&заполнение таблиц«Спортивный инвентарь»
SELECT inventar
GO 1
DO WHILE NOT EOF()
SELECT balls
APPEND BLANK
replace code_obj WITHinventar.code_obj
********
SELECT inventar
SKIP
IF NOT EOF()
SELECT gate
APPEND BLANK
replace code_obj WITHinventar.code_obj
SELECT kind_gate
IF NOT EOF()
replace gate.kind WITHkind_gate
SKIP
ELSE
GO 1
replace gate.kind WITHkind_gate
SKIP
ENDIF
SELECTshir_and_height_gate
IF NOT EOF()
replace gate.height_gateWITH height
replace gate.shirina WITHshirina
SKIP
ELSE
GO 1
replace gate.height_gateWITH height
replace gate.shirina WITHshirina
SKIP
ENDIF
*********
SELECT inventar
SKIP
IF NOT EOF()
SELECT trenager
APPEND BLANK
replace code_obj WITHinventar.code_obj
SELECT inventar
SKIP
ENDIF
ENDIF
ENDDO
&&заполнение таблиц«Техника»
SELECT techno
GO 1
DO WHILE NOT EOF()
SELECT TV
APPEND BLANK
replace code_obj WITHtechno.code_obj
********
SELECT techno
SKIP
IF NOT EOF()
SELECT refrigerator
APPEND BLANK
replace code_obj WITHtechno.code_obj
*********
SELECT Techno
SKIP
IF NOT EOF()
SELECT vacuum_cleaner
APPEND BLANK
replace code_obj WITHtechno.code_obj
********
SELECT techno
SKIP
ENDIF
ENDIF
ENDDO
&&заполнение таблиц«Мебель»
SELECT Mebel
GO 1
DO WHILE NOT EOF()
SELECT bed
APPEND BLANK
replace code_obj WITHMebel.code_obj
********
SELECT Mebel
SKIP
IF NOT EOF()
SELECT shkaf
APPEND BLANK
replace code_obj WITHmebel.code_obj
*********
SELECT Mebel
SKIP
IF NOT EOF()
SELECT table
APPEND BLANK
replace code_obj WITHmebel.code_obj
********
SELECT Mebel
SKIP
IF NOT EOF()
SELECT tumbochka
APPEND BLANK
replace code_obj WITHmebel.code_obj
SELECT Mebel
SKIP
ENDIF
ENDIF
ENDIF
ENDDO
&&Заполнение таблиц«инвентарный номер»
kol=0
SELECT inventar
GO 1
SELECT invnum_inv
GO 1
SELECT techno
GO 1
SELECT mebel
GO 1
SELECT arrival_object
GO 1
&&Заполнение таблиц списанных«объектов»
SELECT invnum_inv
DO WHILE NOT EOF()
SELECT out_inventar
APPEND BLANK
replace inv_number WITHinvnum_inv.inv_number
SELECT invnum_inv
SKIP 10
ENDDO
IF NOT USED([invnum_inv])
USE invnum_inv IN 0
ENDIF
IF NOT USED([inv_in_zal])
USE inv_in_zal IN 0
ENDIF
IF NOT USED([type_zal])
USE type_zal IN 0
ENDIF
IF NOT USED([pomeshenie])
USE pomeshenie IN 0
ENDIF
IF NOT USED([zal])
USE zal IN 0
ENDIF
IF NOTUSED([pomeshenie_naznach])
USE pomeshenie_naznach IN0
ENDIF
IF NOTUSED([datevidachi_table])
USE datevidachi_table IN 0
ENDIF
SELECT pomeshenie
DELETE ALL
PACK
SELECT zal
DELETE ALL
PACK
SELECT inv_in_zal
DELETE ALL
PACK
SELECT pomeshenie_naznach
GO 1
SELECT pomeshenie
FOR i=1 TO 2000
APPEND BLANK
replace pomeshenie.num_pWITH i
SELECT pomeshenie_naznach
IF NOT EOF()
replace pomeshenie.naznachWITH naznach
SKIP
ELSE
SKIP -(RECNO())
replace pomeshenie.naznachWITH naznach
SKIP
ENDIF
*******************
IF ALLTRIM(pomeshenie.naznach)=«Спортивный зал»
SELECT zal
APPEND BLANK
replace num_p WITHpomeshenie.num_p
SELECT type_zal
IF NOT EOF()
replace zal.type_zal WITHtype_zal
SKIP
ELSE
SKIP -(RECNO())
replace zal.type_zal WITHtype_zal
SKIP
ENDIF
ENDIF
**************
SELECT pomeshenie
ENDFOR
SELECT invnum_inv
GO 1
DO WHILE NOT EOF()
SELECT inv_in_zal
APPEND blank
replace inv_number WITHinvnum_inv.inv_number
SELECT invnum_inv
SKIP
SELECT zal
IF NOT EOF()
replace inv_in_zal.num_pWITH num_p
SKIP
ELSE
SKIP -(RECNO())
replace inv_in_zal.num_pWITH num_p
SKIP
ENDIF
SELECT datevidachi_table
IF NOT EOF()
replace inv_in_zal.dateWITH date_v
SKIP
ELSE
SKIP -(RECNO())
replace inv_in_zal.dateWITH date_v
SKIP
ENDIF
SELECT invnum _ inv
ENDDO
В3. Заполнение таблиц «Общаяинформация и игроки»
IF NOT USED([Person])
USE Person IN 0
ENDIF
IF NOT USED([fam_table])
USE fam_table IN 0
ENDIF
IF NOT USED([im_table])
USE im_table IN 0
ENDIF
IF NOT USED([otch_table])
USE otch_table IN 0
ENDIF
IF NOTUSED([datevidachi_table])
USE datevidachi_table IN 0
ENDIF
IF NOT USED([dateborn])
USE dateborn IN 0
ENDIF
IF NOT USED([Country])
USE Country IN 0
ENDIF
IF NOT used([street])
USE street IN 0
ENDIF
SELECT Person
*GO 1
FOR i=1000 TO 1010
FOR j=100000 TO 100010
APPEND BLANK
replace sp WITH i
replace np WITH j
replace numstreet WITHi-990
replace numflat WITHj-99990
SELECT Fam_table
IF EOF()
SKIP -(RECNO())
replace Person.fam WITHfam
SKIP
ELSE
replace Person.fam WITHfam
SKIP
ENDIF
SELECT Im_table
IF EOF()
SKIP -(RECNO())
replace Person.im WITH im
skip
ELSE
replace Person.im WITH im
SKIP
ENDIF
SELECT Otch_table
IF EOF()
SKIP -(RECNO())
replace Person.otch WITHotch
skip
ELSE
replace Person.otch WITHotch
SKIP
ENDIF
SELECT Datevidachi_table
IF EOF()
SKIP -(RECNO())
replace Person.datevidachiWITH date_v
skip
ELSE
replace Person.datevidachiWITH date_v
SKIP
ENDIF
SELECT Country
IF EOF()
SKIP -(RECNO())
replace Person.countryWITH country
replace Person.city WITHcity
ELSE
replace Person.countryWITH country
replace Person.city WITHcity
SKIP
ENDIF
SELECT Street
IF EOF()
SKIP -(RECNO())
replace Person.Street WITHStreet
ELSE
replace Person.Street WITHStreet
SKIP
ENDIF
SELECT Dateborn
IF EOF()
SKIP -(RECNO())
replace Person.datebornWITH date_b
skip
ELSE
replace Person.datebornWITH date_b
SKIP
ENDIF
SELECT Person
ENDFOR
ENDFOR
browse


Не сдавайте скачаную работу преподавателю!
Данный реферат Вы можете использовать для подготовки курсовых проектов.

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

Пишем реферат самостоятельно:
! Как писать рефераты
Практические рекомендации по написанию студенческих рефератов.
! План реферата Краткий список разделов, отражающий структура и порядок работы над будующим рефератом.
! Введение реферата Вводная часть работы, в которой отражается цель и обозначается список задач.
! Заключение реферата В заключении подводятся итоги, описывается была ли достигнута поставленная цель, каковы результаты.
! Оформление рефератов Методические рекомендации по грамотному оформлению работы по ГОСТ.

Читайте также:
Виды рефератов Какими бывают рефераты по своему назначению и структуре.

Сейчас смотрят :

Реферат A Foul Mood Essay Research Paper The
Реферат Профессия клинического психолога
Реферат Huck Finn And Racism Essay Research Paper
Реферат Жизнь в уездном городе до приезда ревизора (по произведению Гоголя «Ревизор»)
Реферат Вплив морфологічних показників дівчаток 11-12 років що займаються художньою гімнастикою на
Реферат Теоретические основы характеристики рынка ценных бумаг и фондовой биржи
Реферат Краткое содержание Волшебная гора Томас Манн
Реферат Rene Descartes Essay Research Paper Ren DescartesBorn
Реферат Is Ethnomusicology Relevant To Essay Research Paper
Реферат Аль-Каида в странах исламского Магриба
Реферат «Рассмеши нас, пожалуйста! И к нам в окно залети и спой нам, Толстый Карлсон»
Реферат Микроклимат животноводческих помещений
Реферат Валеологический анализ факторов здоровья
Реферат Мелиоративное состояние орошаемых земель в Кыргызской Республике и пути его улучшения
Реферат Алмазова Е. С. Логопедическая работа по восстановлению голоса у детей