Проектирование реляционной базы данных "Столовая"

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

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 27.02.2020
Размер файла 4,1 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Федеральное государственное автономное образовательное учреждение высшего профессионального образования

"Сибирский федеральный университет"

Курсовая работа

Проектирование реляционной базы данных "Столовая"

К.С. Пугайкин

Абакан 2015

Задание

Разработать инфологическую модель работы столовой. По полученной модели построить реляционную БД с использованием нормализации. Описание предметной области:

Имеется предприятие общественного питания "Столовая". Предприятие имеет утвержденное меню (список блюд предлагаемых посетителям заведения с указанием стоимости одной порции блюда), каждое блюдо обладает своим индивидуальным набором требуемых продуктов. Продукты подразделяются на типы (мясо, фрукты, молочные изделия, овощи и т.д.). Продукты описываются названием, количеством, датой окончания срока годности. Одинаковый продукт может приобретаться у разных производителей по различной цене. Предприятие имеет возможность самовывоза продуктов у производителей, у предприятия хранится документация о закупках столовой, в которой зафиксирована информация следующего типа, данные о производителе (Ф.И. О. адрес, телефон), информация о закупке (дата, общая стоимость купленных продуктов, наименование продуктов с указанием производителя и количества).

Задание выдал ___________В.И. Кокова

Задание получил _________К.С. Пугайкин

Реферат

Курсовая работа по теме база данных "Столовая" содержит 43 страницы текстового документа, 51 рисунок, 10 таблиц, 3 использованных источников.

БАЗА ДАННЫХ…

В данной курсовой работе в качестве предметной области рассматривается столовая.

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

Содержание

Введение

1. Нормализация БД

2. Структура и создание таблиц в Microsoft Visual FoxPro

3. Создание реляционной модели в Microsoft Visual FoxPro

4. Создание запросов в Microsoft Visual FoxPro

5. Создание отчетов в Microsoft Visual FoxPro

6. Создание кнопочной формы

7. Создание приложения АРР

8. Структура и создание таблиц в My SQL

Заключение

Список использованных источников

Введение

Объектом исследования является предприятие общественного питания "Столовая". инфологический столовая модель

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

Основная цель системы обработки данных в данной курсовой работе заключается в повышении эффективности работы предприятия, учреждения или организации, которая производит и реализует кулинарную продукцию, обеспечивают полноценное питание, состоящее из трех блюд.

В качестве предметной области разрабатываемой базы данных выбрана столовая, которая заинтересована в автоматизации своей деятельности, поэтому база данных должна обеспечивать:

- учет блюд;

- учет продуктов;

- учет производителей блюд.

1. Нормализация БД

Процесс проектирования БД представляет собой нормализацию схем отношений.

Нормализация - это разбиение таблицы на несколько новых, обладающих лучшими свойствами при добавлении, редактировании и удалении данных [1].

Для начала проектирования базы данных "Столовая" создадим 4 сущности: "Блюдо" (таблица 1), "Продукт" представленной в таблице 2, "Производитель" представленной в таблице 3 и "Поставка" представленной в таблице 4.

Атрибуты сущности "Блюдо":

ѕ Код блюда;

ѕ Наименование блюда;

ѕ Тип блюда.

Атрибуты сущности "Продукт":

ѕ Код продукта;

ѕ Наименование продукта;

ѕ Тип продукта;

ѕ Единицы измерения.

Атрибуты сущности "Производитель":

ѕ Код производителя;

ѕ Код типа производителя;

ѕ Наименование производителя;

ѕ Адрес;

ѕ Наименование производимой продукции;

ѕ Цена производимой продукции.

Атрибуты сущности "Поставка":

ѕ Код поставки;

ѕ Дата поставки;

ѕ Поставленное наименование продукции;

ѕ Код производителя;

ѕ Количество;

ѕ Дата окончания срока годности.

Таблица 1 - Блюдо

Код блюда

Наименование блюда

Тип блюда

Таблица 2 - Продукт

Код продукта

Наименование продукта

Тип продукта

Единицы измерения

Таблица 3 - Производитель

Код производителя

Фамилия

Имя

Отчество

Адрес

Наименование производимой продукции

Цена производимой продукции

Таблица 4 - Поставка

Код поставки

Дата поставки

Наименование продукции

Код производителя

Количество

Отношение находится в 1 нормальной форме так как, в любом допустимом значении этого отношения каждый ее кортеж содержит только одно значение для каждого атрибута. Отношение не должно содержать повторяющихся групп данных. Исходя из правил, можно утверждать, что данные отношения находятся в 1 нормальной форме. Для того чтобы преобразовать отношение во 2 нормальную форму нужно избавиться от функциональных зависимостей.

Рассмотрим сущность "Блюдо", первичным ключом является атрибут "Код блюда" - все значения атрибута должны быть уникальными.

Поле "Наименование блюда" содержит уникальную информацию о блюде. Информация, содержащаяся в поле "Наименование блюда" достоверна только для одного блюда. Поле "Тип блюда" содержит не уникальную информацию о блюде, эта информация может совпадать с информацией другого блюда в этом же поле, другими словами может существовать более одного блюда с одинаковым типом, поэтому следует разделить сущность "Блюдо" на две сущности "Блюдо" и "Тип блюда". Однако информация, содержащаяся в поле "Тип блюда" связана с полем "Код блюда" так как содержит информацию, характеризующую конкретное блюдо, чтобы не потерять эту связь необходимо, в сущности "Тип блюда" добавить ключевое поле "Код типа блюда", а так же добавить это поле в сущность "Блюдо". Сущность "Блюдо" представлена в таблице 5, сущность "Тип блюда" представлена в таблице 6.

Таблица 5 - Сущность "Блюдо" после преобразования

Код блюда

Наименование

Код типа блюда

1

Каша манная

1

2

Борщ

2

3

Голубцы с мясом

3

4

Пюре картофельное

4

Таблица 6 - Тип блюда

Код типа блюда

Тип блюда

1

Каша

2

Суп

3

Второе блюдо

4

Гарнир

Рассмотрим сущность "Продукт", первичным ключом является атрибут "Код продукта" - все значения атрибута должны быть уникальными.

Поле "Наименование продукта" содержит уникальную информацию о продукте. Информация, содержащаяся в поле "Наименование продукта" достоверна только для одного продукта. Поле "Тип продукта" содержит не уникальную информацию о продукте, эта информация может совпадать с информацией другого продукта в этом же поле, другими словами может существовать более одного продукта с одинаковым типом, поэтому следует разделить сущность "Продукт" на две сущности "Продукт" и "Тип продукта". Однако информация, содержащаяся в поле "Тип продукта" связана с полем "Код продукта" так как содержит информацию, характеризующую конкретный продукт, чтобы не потерять эту связь необходимо, в сущности "Тип продукта" добавить ключевое поле "Код типа продукта", а так же добавить это поле в сущность "Продукт". Поле "Единицы измерения" так же содержит не уникальную информацию о продукте, поэтому её следует выделить в отдельную сущность "Единицы измерения", однако она отображает информацию о продукте, поэтому в сущность "Единицы измерения" необходимо добавить поле "Код единицы измерения", а также добавить это поле в сущность "Продукт". Сущность "Продукт" представлена в таблице 7, сущность "Тип продукта" представлена в таблице 8, сущность "Единицы измерения" представлена в таблице 9.

Таблица 7 - Сущность "Продукт" после преобразования

Код продукта

Наименование

Код типа продукта

Код единицы измерения

1

Брусника

12

1

2

Вода

2

4

3

Говядина (филе)

7

1

4

Капуста белокочанная

8

1

Таблица 8 - Тип продукта

Код типа продукта

Тип продукта

1

Другое

2

Жидкость

3

Крупа

4

Масло

Таблица 9 - Единицы измерения

Код единицы измерения

Единица измерения

1

г.

2

кг.

3

л.

4

мл.

Рассмотрим сущность "Производитель", первичным ключом является атрибут "Код производителя" - все значения атрибута должны быть уникальными.

Поле "Наименование производителя" содержит уникальную информацию о производителе. Поле "Адрес" также содержит уникальную информацию о производителе, однако это объемная информация, которая состоит из нескольких однотипных блоков информации о стране, населённом пункте, типе адреса, адресе, номере дома, номере корпуса дома и номере квартиры, поэтому поле "Адрес" следует разделить на семь полей "Страна", "Населённый пункт", "Тип адреса", "Адрес", "Номер дома", "Номер корпуса" и "Номер квартиры". Поля "Страна" и "Тип адреса" содержат не уникальную информацию, поэтому следует выделить их в отдельные сущности "Справочник страны" и "Справочник адреса", с сохранением связи посредствам добавления ключевых полей "Код страны" и "Код адреса". Остальные поля, связанные с адресом производителя, так же не являются уникальными, однако выделение их в отдельные сущности не целесообразно, так как это усложнит работу с базой данных и увеличит скорость её работы. Поле "Тип производителя" содержит не уникальную информацию о производителе, эта информация может совпадать с информацией другого производителя в этом же поле, другими словами может существовать более одного производителя с одинаковым типом, поэтому следует выделить это поле в отдельную сущность "Тип производителя" с сохранением связи посредством добавления ключевого поля "Тип производителя". Сущность "Производитель" представлена в таблице 10, сущность "Тип производителя" представлена в таблице 11, сущность "Справочник страны" представлена в таблице 12 и сущность "Справочник адреса" представлена в таблице 13.

Таблица 10 - Сущность "Производитель" после преобразования

Код производителя

Код типа производителя

Наименование

Код страны

Населенный пункт

1

2

Минусинский пивоваренный завод

1

Минусинск

2

2

Т Д Кристал

1

Нижний Новгород

3

2

Бунге СНГ

1

Воронеж

4

3

Простоквашино

1

Красноярск

Код типа адреса

Адрес

Номер дома

Номер корпуса

Номер квартиры

1

Ленина

38

2

Кировский

18 А

1

Пушкина

34

2

1

Сливочная

56

Таблица 11 - Тип производителя

Код типа производителя

Тип производителя

1

ИП

2

ОАО

3

ООО

4

ЗАО

Таблица 12 - Справочник страны

Код страны

Страна

1

Россия

2

Китай

3

Белоруссия

4

Украина

Таблица 13 - Справочник адреса

Код адреса

Адрес

1

ул.

2

т.

3

пер.

Рассмотрим сущность "Поставка", первичным ключом является атрибут "Код поставки" - все значения атрибута должны быть уникальными.

Поле "Дата поставки" содержит уникальную информацию о поставке. Информация, содержащаяся в поле "Дата поставки" достоверна только для одной поставки. Поля "Поставленное наименование продукции", "Код производителя", "Количество", "Дата окончания срока годности" содержат не уникальную информацию о поставке, поэтому следует разделить сущность "Поставка" на две сущности "Поставка" и "Детали поставки" с сохранением связи за счёт добавления в сущность "Детали поставки" поля "Код поставки". Информации хранящейся в поле "Количество" не достаточно что бы отобразить полностью всю информацию о количестве поставленного наименования продукции, помимо информации о количестве необходимо добавить информацию о единицах измерения поставки, для этого добавляем в сущность "Детали поставки" поле "Код единицы измерения" за счёт этого поля будет осуществляться связь между сущностью "Детали поставки" и "Единицы измерения". Поле "Поставленное наименование продукции" содержит не уникальную информацию, которая ко всему прочему не полноценная, так как под наименованием поставленной продукции подразумеваем продукт, произведённый под определённым брендом определённым производителем, который поставляет это наименование продукции по определённой цене, поэтому следует выделить поле "Поставленное наименование продукции" в отдельную сущность "Наименования продукции" и добавить в эту сущность поля "Код производителя", "Код продукта" и "Цена (руб.)". Следует уточнить, что один производитель может производить более одного наименования продукции. Поскольку сущность "Наименования продукции" уже содержит поле "Код производителя" это поле можно убрать из сущности "Детали поставки". Сущность "Поставка" представлена в таблице 14, сущность "Детали поставки" представлена в таблице 15, сущность "Наименование продукции" представлена в таблице 16.

Таблица 14 - Сущность "Поставка" после преобразования декомпозиции

Код поставки

Дата поставки

1

01.01.2015

2

01.02.2015

Таблица 15 - Сущность "Детали поставки"

Код поставки

Код наименования продукции

Количество

Код единицы измерения

Дата окончания срока годности

1

1

50

2

01.06.2015

1

2

100

3

01.02.2015

1

3

50

2

01.06.2015

1

4

15

2

01.06.2015

Таблица 16 - Сущность "Наименование продукции"

Код наименования продукции

Наименование продукции

Код производителя

Код продукта

Цена (в руб.)

1

Брусничка

7

1

25

1

Спаский собор

1

2

10

1

Красный бык

6

3

25

1

Капуста

7

4

15

Каждое блюдо состоит из множества продуктов, каждый продукт в этом множестве имеет некое количество, помимо этого один и тот же продукт может находиться более чем в одном блюде. Для создания связи между сущностью "Блюдо" и "Продукты", которая не будет нарушать условие, описанное выше, необходимо создать связующую сущность с указанием полей "Код блюда", "Код продукта" и "Количество". Связующая сущность "Ассоциация" представлена в таблице 17.

Таблица 17 - Сущность "Ассоциация"

Код блюда

Код продукта

Количество

1

11

90

1

6

8

1

8

4

2

3

80

Теперь следует установить связи между сущностями в соответствии с рисунком 1.1.

Рисунок 1.1 - Информационно-логическая модель

2. Структура и создание таблиц в Microsoft Visual FoxPro

Microsoft Visual FoxPro - объектно-ориентированный и процедурный язык программирования. Он позволяет создавать и разрабатывать базы данных, а так же представлять их в виде приложения, что делает удобным работы с базами данных для пользователей, не имеющих определенных навыков.

Создадим таблицы "assoc", "bl", "naimenovaniya", "prod", "proizvoditel", "spr_address", "spr_bl", "spr_ed_izm", "spr_prod", "spr_proizv", "spr_strana", "spr_bl", "spr_ed_izm" в режиме конструктора в соответствии с рисунками 2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7, 2.8 2.9, 2.10, 2.11, 2.12, 2.13.

Рисунок 2.1 - Таблица "assoc" в режиме конструктора, вкладка "Fiends"

Рисунок 2.2 - Таблица "bl" в режиме конструктора, вкладка "Fiends"

Рисунок 2.3 - Таблица "naimenovaniya" в режиме конструктора, вкладка "Fiends"

Рисунок 2.4 - Таблица "prod" в режиме конструктора, вкладка "Fiends"

Рисунок 2.5 - Таблица "proizvoditel" в режиме конструктора, вкладка "Fiends"

Рисунок 2.6 - Таблица "spr_address" в режиме конструктора, вкладка "Fiends"

Рисунок 2.7 - Таблица "spr_bl" в режиме конструктора, вкладка "Fiends"

Рисунок 2.8 - Таблица "spr_ed_izm" в режиме конструктора, вкладка "Fiends"

Рисунок 2.9 - Таблица "spr_prod" в режиме конструктора, вкладка "Fiends"

Рисунок 2.10 - Таблица "spr_proizv" в режиме конструктора, вкладка "Fiends"

Рисунок 2.11 - Таблица "spr_strana" в режиме конструктора, вкладка "Fiends"

Рисунок 2.12 - Таблица "zakup" в режиме конструктора, вкладка "Fiends"

Рисунок 2.13 - Таблица "zakup_det" в режиме конструктора, вкладка "Fiends"

Далее заполняем таблицы необходимыми данными. На рисунках 2.14, 2.15, 2.16, 2.17, 2.18, 2.19, 2.20, 2.21, 2.22, 2.23, 2.24, 2.25, 2.26, 2.27 представлены таблицы: "assoc", "bl", "naimenovaniya", "prod", "proizvoditel", "spr_address", "spr_bl", "spr_ed_izm", "spr_prod", "spr_proizv", "spr_strana", "spr_bl", "spr_ed_izm", заполненные с помощью команды Browse. Такой метод лучше, тем, что позволяет видеть перед собой все данные таблицы, а не только редактируемую или добавляемую запись, и при необходимости оперативно внести изменения в таблицу.

Рисунок 2.14 - Таблица "assoc" в режиме "Browse"

Рисунок 2.15 - Таблица "bl" в режиме "Browse"

Рисунок 2.16 - Таблица "naimenovaniya" в режиме "Browse"

Рисунок 2.17 - Таблица "prod" в режиме "Browse"

Рисунок 2.18 - Таблица "proizvoditel" в режиме "Browse"

Рисунок 2.19 - Таблица "spr_address в режиме "Browse"

Рисунок 2.20 - Таблица "spr_bl" в режиме "Browse"

Рисунок 2.21 - Таблица "spr_ed_izm" в режиме "Browse"

Рисунок 2.22 - Таблица "spr_prod" в режиме "Browse"

Рисунок 2.23 - Таблица "spr_proizv" в режиме "Browse"

Рисунок 2.24 - Таблица "spr_strana" в режиме "Browse"

Рисунок 2.25 - Таблица "zakup" в режиме "Browse"

Рисунок 2.26 - Таблица "zakup_det" в режиме "Browse"

3. Создание реляционной модели в Microsoft Visual FoxPro

Для создания реляционной модели необходимо при настройке таблиц указывать ключевые поля типа "Primary" и "Regular" в режиме конструктора, во вкладке "Fiends". В дальнейшем в окне Database Designer необходимо настроить связи между таблицами. Ключевые поля, имеющие параметр "Primary" перечислены в списке "indexes" и обозначены жирным шрифтом, ключевое поля типа "Regular" так же перечислены в списке "indexes", но имеют обычный шрифт. На рисунке 3.1 представлена схема данных базы данных "Столовая".

Рисунок 3.1 - Схема данных "Stolovaya"

4. Создание запросов в Microsoft Visual FoxPro

Запрос (query) - это средство выбора необходимой информации из базы данных. Вопрос, сформированный по отношению к базе данных, и есть запрос [2].

Создание запросов в режиме конструктора: добавляем нужные таблицы и указываем поля, которые необходимо отобразить после запроса. В окне "Project Manager" переходим на вкладку "Queryes" и нажимаем кнопку "New" для создания запроса.

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

Можно создавать запросы с условиями отбора, или вычисляемым полем.

Запрос 1

Какие продукты необходимы для приготовления блюда A?

Создание этого запроса будет происходить в режиме конструктора запросов с использованием таблиц "spr_bl", "bl", "assoc", "prod", "spr_prod", "spr_ed_izm", выберем следующие поля необходимые для запроса "name" из таблицы "bl", "name" из таблицы "prod" и "kolvo" из таблицы "assoc", "ed_izm" из таблицы "spr_ed_izm". На рисунке 4.1.1 представлен "запрос 1" в режиме конструктора.

Рисунок 4.1.1 - Запрос 1 в режиме конструктора, вкладка "Fields"

Теперь во вкладке "Filter" панели конструктора запроса введем значение поля идентифицирующего необходимое нам блюдо, например его код "Bl.Bl_id=(1)". Далее закрываем окно конструктора и сохраняем запрос, затем находим наш запрос в окне "Project manager", нажмем на кнопку "Run" (Выполнить). В результате мы увидим таблицу, в которой будут перечислены продукты необходимые для блюда с кодом = 1 (каша манная). На рисунке 4.1.2 представлен "запрос 1" после создания фильтрации данных.

Рисунок 4.1.2 - Результат выполнения запроса 1

Запрос 2

Какие производители производят крупу, по какой цене и под какими брендами?

Создание этого запроса будет происходить в режиме конструктора запросов с использованием таблиц "proizvoditel", "naimenovaniya", "spr_prod", "Prod" выберем следующие поля необходимые для запроса "type" из таблицы "Spr_prod", "type" из таблицы "proizvoditel", "name" из таблицы "naimenovaniya" и "cena_rub" из таблицы "naimenovaniya". На рисунке 4.2.1 представлен "запрос 2" в режиме конструктора.

Рисунок 4.2.1 - Запрос 2 в режиме конструктора, вкладка "Fields"

Теперь во вкладке "Filter" панели конструктора запроса введем значение поля идентифицирующего необходимое нам тип продукта, например его код "Prod.id_type=(3)". На рисунке 4.2.2 представлен "запрос 2" после создания фильтрации данных.

Рисунок 4.2.2 - Запрос 2 в режиме конструктора, вкладка "Filter"

Запрос 3

Какие наименования продукции, в каком количестве, у каких производителей, по какой цене и с какой стоимостью были поставлены столовой в определенной поставке?

Создание этого запроса будет происходить в режиме конструктора запросов с использованием таблиц "zakup", "zakup_det", "naimenovaniya", "proizvoditel" и "spr_proizv" выберем следующие поля необходимые для запроса "date_zakup" из таблицы "zakup", "kolvo" из таблицы "zakup_det", "name" и "cena_rub" из таблицы "naimenovaniya", "name" из таблицы "proizvoditel", "type" из таблицы "spr_proizv". Так же необходимо добавить столбец "стоимость" значения в которой будут выводиться, исходя из стоимости наименования продукции и количестве поставленного товара. Для этого в поле "Function and expressions" окна "Query Designer" необходимо ввести функцию "Naimenovaniya.cena_rub*Zakup_det.kolvo AS стоимость" после чего нажать кнопку "Add". На рисунке 4.2.1 представлен "запрос 3" в режиме конструктор.

Рисунок 4.3.1 - Запрос 3 в режиме конструктора, вкладка "Fields"

Теперь во вкладке "Filter" панели конструктора запроса введем значение поля идентифицирующего необходимую нам поставку, например ее код "Zakup.id_zakup=(1)". Далее закрываем окно конструктора и сохраняем запрос, затем находим наш запрос в окне "Project manager", нажмем на кнопку "Run" (Выполнить). В результате мы увидим таблицу, в которой будут перечислены продукты необходимые для блюда с кодом = 1, представленную на рисунке 4.3.2.

Рисунок 4.3.2 - Результат выполнения запроса 3

5. Создание отчетов в Microsoft Visual FoxPro

Отчеты предназначены для формирования выходных документов и вывода их на печать. В Microsoft Visual FoxPro отчеты создаются аналогично запросам. В окне "Project Manager" переходим на вкладку "Reports" и нажимаем кнопку "New" для создания отчета. Отчеты удобно создавать в режиме мастера и при необходимости можно его отредактировать, добавляя любые элементы.

Отчет №1

Создадим отчет, в котором будет вся информация о произведенных поставках, включая стоимость, дату поставки, список наименований продукции, список цен поставленных наименований продукции, количество единиц поставленных наименований продукции и список производителей. Для создания отчета воспользуемся конструктором отчётов. Разместим все необходимые поясняющие надписи, после чего создадим новую группу данных (рис. 5.1.1). Далее разместим все необходимые поля для отображения информации о поставке. В режиме конструктора созданный отчет будет выглядеть, в соответствии с рисунком 5.1.2.

Рисунок 5.1.1 - Создание новой группы данных для первого отчёта

Рисунок 5.1.2 - Первый отчет в режиме "Report Designer"

На рисунке 5.1.3 показан фрагмент второго отчета о товарах, которые находятся на складе.

Рисунок 5.1.3 - Фрагмент первого отчета

Отчет №2

Создадим отчет, содержащий информацию о стандартах приготовления блюда, в котором будут перечисляться продукты, необходимые для приготовления блюда и их количество в блюде. Для создания отчета воспользуемся конструктором отчётов. Разместим все необходимые поясняющие надписи, после чего создадим новую группу данных (рис. 5.2.1). Далее разместим все необходимые поля для отображения информации о блюде и продуктах входящих в его состав. В режиме конструктора созданный отчет будет выглядеть в соответствии с рисунком 5.2.2.

Рисунок 5.2.1 - Создание новой группы данных для второго отчёта

Рисунок 5.2.2 - Второй отчет в режиме "Report Designer"

На рисунке 5.2.3 показан фрагмент второго отчета о товарах, которые находятся на складе.

Рисунок 5.2.3 - Фрагмент второго отчета

Отчет №3

Создадим отчет содержащий информацию о том какие наименования продукции производят производители и по какой цене. Для создания отчета воспользуемся конструктором отчётов. Разместим все необходимы поясняющие надписи, после чего создадим новую группу данных (рис. 5.3.1). Далее разместим все необходимые поля для отображения информации о блюде и продуктах входящих в его состав. В режиме конструктора созданный отчет будет выглядеть, в соответствии с рисунком 5.3.2.

Рисунок 5.3.1 - Создание новой группы данных для третьего отчёта

Рисунок 5.3.2 - Третий отчет в режиме "Report Designer"

На рисунке 5.3.3 показан фрагмент третьего отчета о товарах, которые находятся на складе.

Рисунок 5.3.3 - Фрагмент третьего отчета

6. Создание кнопочной формы

Для создания кнопочной формы требуется выбрать в менеджере проекта пункт "Forms" кнопку "New", в появившемся окне следует выбрать "NewForms". Главная кнопочная форма будет создаваться в режиме конструктора. Она будет включать в себя три кнопки, с помощью которых можно будет открыть формы с таблицами, запросами и отчетами. Эти формы должны быть созданы заранее.

Итак, главная кнопочная форма будет иметь название "Приложение". На форме в режиме редактирования требуется разместить необходимые компоненты, которые находятся на панели инструментов FormControls. Здесь будут использоваться компоненты:

ѕ Command1. Кнопка, предназначенная для открытия формы "Таблицы".

ѕ Label1. Текстовый элемент, предназначенный для пояснения значения компонента Command1.

ѕ Command2. Кнопка, предназначенная для открытия формы "Запросы".

ѕ Label2. Текстовый элемент, предназначенный для пояснения значения компонента Command2.

ѕ Command3. Кнопка, предназначенная для открытия формы "Отчеты".

ѕ Label3. Текстовый элемент, предназначенный для пояснения значения компонента Command3.

На рисунке 6.1 представлена форма "Приложение" в режиме конструктора.

Рисунок 6.1 - форма "Приложение" в режиме конструктор

В компонентах Command1, Command2, Command3 необходимо создать событие "Click" прописать команду (ее можно найти в окне Command) для открытия нужных таблиц. Используемые команды просмотра таблиц представлены на рисунках 6.2, 6.3 и 6.4.

Рисунок 6.2 - Команда, используемая при событии "Click" компонента "Command1" формы "Приложение"

Рисунок 6.3 - Команда, используемая при событии "Click" компонента "Command2" формы "Приложение"

Рисунок 6.4 - Команда, используемая при событии "Click" компонента "Command3" формы "Приложение"

После чего запустить форму (Рис. 6.5) и сохранить ее.

Рисунок 6.5 - Форма "Приложение"

После чего необходимо создать форму "Таблицы". На форме в режиме редактирования требуется разместить необходимые компоненты, которые находятся на панели инструментов FormControls. Здесь будут использоваться компоненты:

ѕ Command1. Кнопка, предназначенная для открытия таблицы "spr_bl".

ѕ Command5. Кнопка, предназначенная для открытия формы "Тип блюд" (Рис. 6.6).

ѕ Label1. Текстовый элемент, предназначенный для пояснения значения компонента Command1 и Command5.

ѕ Command2. Кнопка, предназначенная для открытия таблицы "bl".

ѕ Command6. Кнопка, предназначенная для открытия формы "Блюдо" (Рис. 6.7).

ѕ Label2. Текстовый элемент, предназначенный для пояснения значения компонента Command2 и Command6.

ѕ Command3. Кнопка, предназначенная для открытия таблицы "spr_prod".

ѕ Command7. Кнопка, предназначенная для открытия формы "Тип продукта" (Рис. 6.8).

ѕ Label3. Текстовый элемент, предназначенный для пояснения значения компонента Command3 и Command7.

ѕ Command4. Кнопка, предназначенная для открытия таблицы "prod".

ѕ Command8. Кнопка, предназначенная для открытия формы "Справочник продукт" (Рис. 6.9).

ѕ Label4. Текстовый элемент, предназначенный для пояснения значения компонента Command4 и Command8.

ѕ Command9. Кнопка, предназначенная для открытия таблицы "spr_ed_izm".

ѕ Command10. Кнопка, предназначенная для открытия формы "Единицы измерения" (Рис. 6.10).

ѕ Label5. Текстовый элемент, предназначенный для пояснения значения компонента Command9 и Command10.

ѕ Command19. Кнопка, предназначенная для открытия таблицы "assoc".

ѕ Command20. Кнопка, предназначенная для открытия формы "Ассоциация блюда-продукты" (Рис. 6.11).

ѕ Label6. Текстовый элемент, предназначенный для пояснения значения компонента Command19 и Command20.

ѕ Command11. Кнопка, предназначенная для открытия таблицы "spr_proizv".

ѕ Command12. Кнопка, предназначенная для открытия формы "Справочник производитель" (Рис. 6.12).

ѕ Label7. Текстовый элемент, предназначенный для пояснения значения компонента Command11 и Command12.

ѕ Command13. Кнопка, предназначенная для открытия таблицы "proizvoditel" .

ѕ Command14. Кнопка, предназначенная для открытия формы "Производители" (Рис. 6.13).

ѕ Label8. Текстовый элемент, предназначенный для пояснения значения компонента Command13 и Command14.

ѕ Command15. Кнопка, предназначенная для открытия таблицы "spr_strana".

ѕ Command16. Кнопка, предназначенная для открытия формы "Справочник страна" (Рис. 6.14).

ѕ Label9. Текстовый элемент, предназначенный для пояснения значения компонента Command15 и Command16.

ѕ Command17. Кнопка, предназначенная для открытия таблицы "spr_strana".

ѕ Command18. Кнопка, предназначенная для открытия формы "Справочник страна" (Рис. 6.15).

ѕ Label10. Текстовый элемент, предназначенный для пояснения значения компонента Command17 и Command18.

ѕ Command21. Кнопка, предназначенная для открытия таблицы "zakup" .

ѕ Command22. Кнопка, предназначенная для открытия формы "Поставка" (Рис. 6.16).

ѕ Label11. Текстовый элемент, предназначенный для пояснения значения компонента Command21 и Command22.

ѕ Command23. Кнопка, предназначенная для открытия таблицы "zakup_det".

ѕ Command24. Кнопка, предназначенная для открытия формы Поставка детали" (Рис. 6.17).

ѕ Label12. Текстовый элемент, предназначенный для пояснения значения компонента Command23 и Command24.

Все запускаемые формы создаётся в режиме мастера.

Рисунок 6.6 - Форма "Тип блюд"

Рисунок 6.7 - Форма "Блюдо"

Рисунок 6.8 - Форма "Тип продукта"

Рисунок 6.8 - форма "Продукт"

Рисунок 6.9 - форма "Единицы измерения"

Рисунок 6.10 - форма "Продукт"

Рисунок 6.11 - форма "Справочник производитель"

Рисунок 6.12 - форма "Производитель"

Рисунок 6.13 - форма "Справочник страна"

Рисунок 6.14 - форма "Справочник адрес"

Рисунок 6.15 - форма "Поставка"

Рисунок 6.16 - форма "Поставка детали"

В компонентах Command1, Command2, Command3, Command4, Command5, Command6, Command7, Command8, Command9, Command10, Command11, Command12, Command13, Command14, Command15, Command16, Command17, Command18, Command19, Command20, Command21, Command22, Command23, Command24 необходимо создать событие "Click" прописать команду (ее можно найти в окне Command) для открытия нужных таблиц. Используемые команды просмотра таблиц представлены на рисунках 6.17, 6.18, 6.19, 6.20, 6.21, 6.22, 6.23, 6.24, 6.25, 6.26, 6.27, 6.28, 6.29, 6.30, 6.31, 6.32, 6.33, 6.34, 6.35, 6.36, 6.37, 6.38, 6.39, 6.40,.

Рисунок 6.2 - Команда, используемая при событии "Click" компонента "Command1" формы "Приложение"

Рисунок 6.3 - Команда, используемая при событии "Click" компонента "Command2" формы "Приложение"

Рисунок 6.4 - Команда, используемая при событии "Click" компонента "Command3" формы "Приложение"

После чего запустить форму (Рис. 6.5) и сохранить ее.

Рисунок 6.5 - Форма "Приложение"

Рисунок 2.4.4 - Форма "Отчеты"

Теперь создание главной формы. После добавления трех кнопок, нужно так же прописать в них необходимые команды для открытия форм таблиц, запросов и отчетов, которые теперь созданы (Рис. 2.4.5).

Команды, используемые в главной кнопочной форме:

ѕ DO FORM "c:\users\admin\documents\visual foxpro projects\app_table_test.scx" ???? Таблицы

ѕ DO FORM "c:\users\admin\documents\visual foxpro projects\form1.scx" ???? Запросы

ѕ DO FORM "c:\users\admin\documents\visual foxpro projects\form3.scx" ???? Отчеты

ѕ

Рисунок 2.4.5 - Главная кнопочная форма "Управление базой данных Сбербанка"

7. Создание приложения АРР

Приложение в MicrosoftVisualFoxProбудет иметь тип Application.

Для создания приложения нужно выбрать в окне ProjectManager главную кнопочную форму и вызвать контекстное меню. Затем выбрать пункт Project info, как показано на рисунке 2.5.1

Рисунок 2.5.1 - ВыборпунктаProjectinfo

Откроется окно Project Information (Рис. 2.5.2). Здесь следует выбрать пункт UpdateNativeCodePages, чтобы обновить машинный код страницы.

Рисунок 2.5.2 - Окно ProjectInformation

Теперь в менеджере проекта нужно выделить главную форму и выбрать кнопку Build. Откроется окно BuildOptions (Рис. 2.5.3). Следует выбрать в BuildAction пункт Application (тип будущего приложения).

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

Рисунок 2.5.3 - Окно создания приложения

После этого откроется окно сохранения приложения. Нужно указать имя файла и его путь.

Приложение готово. Оно имеет вид главной кнопочной формы (Рис. 2.4.5).

8. Структура и создание таблиц в My SQL

Создание базы данных в MySQL очень трудоемкий процесс, поскольку это консольное приложение, то есть в нем отсутствует графический интерфейс, как следствие все операции необходимые для создания базы данных, ее редактирования и вывода на информации, содержащейся в базе данных информации, осуществляется только посредством написания кода SQL вручную. Что бы автоматизировать процесс, тем самым ускорив работу и снизив вероятность допуска ошибок, при работе с системой управления базами данных необходимо использовать графический интерфейс, который устанавливается дополнительно к MySQL. Наиболее доступным и многофункциональным графическим интерфейсом для MySQL является "dbForge Studio for MySQL".

Создадим таблицы "associaciya", "bl", "naimenovaniya", "prod", "proizvod", "spr_address", "spr_bl", "spr_ed_izm", "spr_prod", "spr_proizv", "spr_strana", "spr_bl", "spr_ed_izm" в режиме конструктора в соответствии с рисунками 6.1, 6.2, 6.3, 6.4, 6.5, 6.6, 6.7, 6.8 6.9, 6.10, 6.11, 6.12, 6.13.

Рисунок 6.1 - Таблица "associaciya" в режиме конструктора, вкладка "Общие"

Рисунок 6.2 - Таблица "bl" в режиме конструктора, вкладка "Общие"

Рисунок 6.3 - Таблица "naimenovaniya" в режиме конструктора, вкладка "Общие"

Рисунок 6.4 - Таблица "prod" в режиме конструктора, вкладка "Общие"

Рисунок 6.5 - Таблица "proizvod" в режиме конструктора, вкладка "Общие"

Рисунок 6.6 - Таблица "spr_address" в режиме конструктора, вкладка "Общие"

Рисунок 6.7 - Таблица "spr_bl" в режиме конструктора, вкладка "Общие"

Рисунок 6.8 - Таблица "spr_ed_izm" в режиме конструктора, вкладка "Общие"

Рисунок 6.9 - Таблица "spr_prod" в режиме конструктора, вкладка "Общие"

Рисунок 6.10 - Таблица "spr_proizv" в режиме конструктора, вкладка "Общие"

Рисунок 6.11 - Таблица "spr_strana" в режиме конструктора, вкладка "Общие"

Рисунок 6.12 - Таблица "zakup" в режиме конструктора, вкладка "Общие"

Рисунок 6.13 - Таблица "zakup_det" в режиме конструктора, вкладка "Общие"

Далее заполняем таблицы необходимыми данными. На рисунках 6.14, 6.15, 6.16, 6.17, 6.18, 6.19, 6.20, 6.21, 6.22, 6.23, 6.24, 6.25, 6.26, 6.27 представлены таблицы: "associya", "bl", "naimenovaniya", "prod", "proizvod", "spr_address", "spr_bl", "spr_ed_izm", "spr_prod", "spr_proizv", "spr_strana", "spr_bl", "spr_ed_izm" заполненные с помощью команды Browse. Такой метод лучше, тем, что позволяет видеть перед собой все данные таблицы, а не только редактируемую или добавляемую запись, и при необходимости оперативно внести изменения в таблицу.

Рисунок 6.14 - Фрагмент таблицы "associaciya" в режиме конструктора, вкладка "Данные"

Рисунок 6.15 - Таблица "bl" в режиме конструктора, вкладка "Данные"

Рисунок 6.16 - Фрагмент таблицы "naimenovaniya" в режиме конструктора, вкладка "Данные"

Рисунок 6.17 - Фрагмент таблицы "prod" в режиме конструктора, вкладка "Данные"

Рисунок 6.18 - Таблица "proizvod" в режиме конструктора, вкладка "Данные"

Рисунок 6.19 - Таблица "spr_address в режиме конструктора, вкладка "Данные"

Рисунок 6.20 - Таблица "spr_bl" в режиме конструктора, вкладка "Данные"

Рисунок 6.21 - Таблица "spr_ed_izm" в режиме конструктора, вкладка "Данные"

Рисунок 6.22 - Таблица "spr_prod" в режиме конструктора, вкладка "Данные"

Рисунок 6.23 - Таблица "spr_proizv" в режиме конструктора, вкладка "Данные"

Рисунок 6.24 - Таблица "spr_strana" в режиме конструктора, вкладка "Данные"

Рисунок 6.25 - Таблица "zakup" в режиме конструктора, вкладка "Данные"

Рисунок 6.26 - Фрагмент таблицы "zakup_det" в режиме конструктора, вкладка "Данные"

Структура и создание таблиц в My SQL

Для создания реляционной модели необходимо при настройке таблиц указывать ключевые поля. В дальнейшем необходимо настроить связи между таблицами. На рисунке 3.1 представлена схема данных базы данных "Столовая".

Рисунок 3.1. - Схема данных "Stolovaya"

Создание запросов в My SQL

Создание запросов в режиме конструктора: добавляем нужные таблицы и указываем поля, которые необходимо отобразить после запроса. На главной панели программы необходимо выбрать пункт "Новый запрос". После чего на рабочее поле программы необходимо перетащить необходимые для запроса таблицы. Далее во вкладке выборка необходимо выбрать выводимые в запросе поля таблиц.

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

Можно создавать запросы с условиями отбора, или вычисляемым полем.

Запрос 1

Какие продукты необходимы для приготовления того или иного блюда и в каком количестве?

Создание этого запроса будет происходить в режиме конструктора запросов с использованием таблиц "spr_bl", "bl", "associaciya", "prod", "spr_prod", "spr_ed_izm", выберем следующие поля необходимые для запроса "name" из таблицы "bl", "name" из таблицы "prod" и "kolvo" из таблицы "assoc", "ed_izm" из таблицы "spr_ed_izm". На рисунке 8.1.1 представлен "запрос 1" в режиме конструктора.

Рисунок 8.1.1 - Запрос 1 в режиме конструктора, вкладка "Выборка"

На рисунке 8.1.2 представлен "Запрос 1".

Рисунок 4.1.2 - Фрагмент результата выполнения запроса 1

Запрос 2

Какие производители производят крупу, по какой цене и под какими брендами?

Создание этого запроса будет происходить в режиме конструктора запросов с использованием таблиц "spr_proizv", "spr_strana", "proizvod", "naimenovaniya", "spr_address", "spr_prod", "Prod" выберем следующие поля необходимые для запроса "name", "city", "name_address", "number_dom", "number_korpus", "number_kv" из таблицы "proizvod", "name" и "cena_rub" из таблицы "naimenovaniya", "type" из таблицы "spr_proizv", "name" из таблицы "spr_strana", "type" из таблицы "spr_address", "name" из таблицы "prod", "type" из таблицы "spr_prod". На рисунке 4.2.1 представлен "запрос 2" в режиме конструктора.

Рисунок 4.2.1 - Запрос 2 в режиме конструктора, вкладка "Выборка"

Теперь во вкладке "Условия" панели конструктора запроса введем значение поля идентифицирующего необходимое нам тип продукта, например его код "spr_prod.id_type=3". На рисунке 4.2.2 представлен "запрос 2" после создания фильтрации данных.

Рисунок 4.2.2 - Результат выполнения запроса 2

Заключение

Была осуществлена задача - разработать базу данных своей предметной области. Данная система позволяет автоматизировать действия, связанные с работой столовой. А именно позволяет осуществлять учет поступивших, имеющихся и приобретенных продуктов, предлагаемых блюд и сотрудничающих с предприятием производителей.

В ходе работы были улучшены знания и навыки работы с основными этапами разработки и проектирования автоматизированных систем для работы с реляционными базами данных, улучшены навыки работы с документацией и с данными в выбранной предметной области, а также были получены знания в работе с Microsoft Visual FoxPro и MySQL.

Проводилось проектирование, нормализация, моделирование базы данных по заданной предметной области. Данное приложение возможно использовать и в реально действующих столовых с большим количеством блюд, производителей продуктов и большим потоком продуктов, что повысит скорость оформления необходимых квитанций, а также позволит более продуктивно следить за деятельностью столовой.

Список использованных источников

1. Кокова, В.И. Базы данных: учебное пособие. Для студентов очной и заочной форм обучения направления подготовки бакалавров 230700.62 - "Прикладная информатика" / В.И. Кокова. - Абакан: Сиб. федер. ун-т; ХТИ - филиал СФУ, 2012. - 211 с.

2. Минеев, П.В. Дисциплина проектный практикум / П.В. Минеев // Запросы к БД Delphi: Лекции. / Абакан, Сиб. Федер. ун-т / ХТИ - Филиал СФУ, 2008. - 27 c.

Размещено на Allbest.ru

...

Подобные документы

  • Описание предметной области, определение функциональных требований к системе и построение диаграммы потока данных. Построение модели "сущность-связь", описание сущностей и атрибутов модели. Построение реляционной базы данных и описание ее таблицы.

    курсовая работа [624,5 K], добавлен 30.05.2019

  • Обследование предметной области. Проектирование реляционной базы данных: описание входной и выходной информации, перечень сущностей и атрибутов, создание модели, выбор ключей. Разработка и обоснование представлений для отображения результатов выборки.

    курсовая работа [539,0 K], добавлен 12.12.2011

  • Построение концептуальной модели. Проектирование реляционной модели данных на основе принципов нормализации: процесс нормализации и глоссарий. Проектирование базы данных в Microsoft Access: построение таблиц, создание запросов в том числе SQL – запросов.

    курсовая работа [35,9 K], добавлен 08.11.2008

  • Изучение реляционной модели данных. Выявление потребности задач в данных и определение состава и структуры информационных объектов. Построение концептуальной модели предметной области. Создание форм, запросов и отчетов с помощью конструктора запросов.

    курсовая работа [6,3 M], добавлен 09.10.2021

  • Ограничения, присутствующие в предметной области. Проектирование инфологической модели данных. Описание основных сущностей и их атрибутов. Логический и физический уровни модели данных. Реализация базы данных: представления, триггеры, хранимые процедуры.

    курсовая работа [1,7 M], добавлен 10.02.2013

  • Описание предметной области "Магазин по продаже компьютерных комплектующих". Построение ER и реляционной модели данных, сущности и связи. Создание ER и реляционной модели данных, запросов, представлений, хранимых процедур для предметной области.

    курсовая работа [32,2 K], добавлен 15.06.2014

  • Анализ предметной области и введение ограничений. Выделение базовых сущностей. Концептуальная модель данных. Построение схемы реляционной модели базы данных магазина одежды в третьей нормальной форме. Описание физической БД. Проектирование интерфейса.

    курсовая работа [2,6 M], добавлен 20.11.2013

  • Особенности разработки инфологической модели и создание структуры реляционной базы данных. Основы проектирования базы данных. Разработка таблиц, форм, запросов для вывода информации о соответствующей модели. Работа с базами данных и их объектами.

    курсовая работа [981,4 K], добавлен 05.11.2011

  • Сущность базы данных. Процесс построения концептуальной модели. Построение реляционной модели, создание ключевого поля. Процесс нормализации. Проектирование базы данных в ACCESS. Порядок создание базы данных. Создание SQL запросов и работа в базе данных.

    курсовая работа [185,6 K], добавлен 08.11.2008

  • Разработка базы данных для компании, занимающейся авиагрузоперевозками, снабженной средствами идентификации пользователей. Описание ее предметной области и функций. Разработка интерфейса программы. Построение концептуальной и реляционной модели БД.

    курсовая работа [2,1 M], добавлен 15.06.2014

  • Анализ предметной области с использованием моделей методологии ARIS и разработка ER-диаграммы. Описание входной и выходной информации для проектирования реляционной базы данных. Разработка управляющих запросов и связей между ними с помощью языка SQL.

    курсовая работа [975,2 K], добавлен 30.01.2014

  • Проектирование базы данных, содержащей информацию, которая всесторонне характеризует российский рынок медицинского оборудования. Описание атрибутов сущностей и связей, отраженных в разработанной ER-модели. Разработка отчетов, форм, запросов в базе данных.

    курсовая работа [3,2 M], добавлен 19.06.2015

  • Описание внешних иерархических моделей базы данных. Проектирование нормализованных локальных ER-моделей. Выявление и устранение эквивалентных сущностей и категорий, дублирования атрибутов и связей. Создание внутренней реляционной модели данного проекта.

    курсовая работа [87,9 K], добавлен 20.01.2015

  • Построение инфологической концептуальной модели предметной области. Структура базы данных Microsoft Office Access. Формы, запросы и отчеты. Создание форм, запросов и отчетов в базах данных. Схема данных физической и логической сущности в Erwin 4.0.

    курсовая работа [5,1 M], добавлен 13.12.2011

  • Проектирование даталогической модели в виде логической структуры реляционной базы данных в СУБД Microsoft SQL Server на основе созданной инфологической модели базы данных интернет-магазина музыки. Выделение сущностей и связей, анализ предметной области.

    курсовая работа [724,6 K], добавлен 15.06.2013

  • Построение концептуальной модели, процесс моделирования смыслового наполнения базы данных. Основные компоненты концептуальной модели. Построение реляционной модели. Целостность данных в реляционной базе. Нормализация. Проектирование базы данных в ACCESS.

    курсовая работа [1,8 M], добавлен 29.10.2008

  • Разработка концептуальной модели базы данных "Чемпионат авто": описание предметной области, каталог задач, описание таблиц, схема данных, ER-диаграмма. Проектирование реляционной модели "Спортивный комплекс". Реализация и результат работы базы данных.

    курсовая работа [3,7 M], добавлен 14.06.2011

  • Составление схемы концептуальной модели данных. Разработка структуры реляционной базы данных и интерфейса пользователя. Особенности главных этапов проектирования базы данных. Способы реализации запросов и отчетов. Специфика руководства пользователя.

    курсовая работа [186,9 K], добавлен 18.12.2010

  • Описание предметной области и обоснование актуальности разработки базы данных "Учет фонда библиотеки для Харьковского колледжа текстиля и дизайна". Построение реляционной модели данных. Типы сущностей и связей. Разработка объектно-ориентированной модели.

    курсовая работа [1,1 M], добавлен 24.01.2016

  • Цель инфологического моделирования предметной области. Источники данных, базы данных и система управления, разработка модели. Принципы проектирования базы данных, концептуальная, логическая, материальная разработка. Типы сущностей, атрибутов и связей.

    курсовая работа [188,6 K], добавлен 15.07.2012

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.