Добавлен: 31.01.2019
Просмотров: 1585
Скачиваний: 7
Федеральное государственное автономное
образовательное учреждение
высшего профессионального образования
«СИБИРСКИЙ ФЕДЕРАЛЬНЫЙ УНИВЕРСИТЕТ»
ХТИ– филиал СФУ
институт
Электроэнергетика
кафедра
КУРСОВАЯ РАБОТА
Проектирование реляционной базы данных «Столовая»
тема проекта (работы)
Вариант 10
Руководитель __________ В. И. Кокова
подпись, дата инициалы, фамилия
Студент 53-1, К.С. Пугайкин
номер группы, зачетной книжки подпись, дата инициалы, фамилия
Абакан 2015
ЗАДАНИЕ
Разработать инфологическую модель работы столовой. По полученной модели построить реляционную БД с использованием нормализации. Описание предметной области:
Имеется предприятие общественного питания «Столовая». Предприятие имеет утвержденное меню (список блюд предлагаемых посетителям заведения с указанием стоимости одной порции блюда), каждое блюдо обладает своим индивидуальным набором требуемых продуктов. Продукты подразделяются на типы (мясо, фрукты, молочные изделия, овощи и т.д.). Продукты описываются названием, количеством, датой окончания срока годности. Одинаковый продукт может приобретаться у разных производителей по различной цене. Предприятие имеет возможность самовывоза продуктов у производителей, у предприятия хранится документация о закупках столовой, в которой зафиксирована информация следующего типа, данные о производителе (Ф.И.О. адрес, телефон), информация о закупке (дата, общая стоимость купленных продуктов, наименование продуктов с указанием производителя и количества).
Задание выдал ___________В.И. Кокова
Задание получил _________К.С. Пугайкин
РЕФЕРАТ
Курсовая работа по теме база данных «Столовая» содержит 43 страницы текстового документа, 51 рисунок, 10 таблиц, 3 использованных источников.
БАЗА ДАННЫХ…
В данной курсовой работе в качестве предметной области рассматривается столовая.
В столовой готовят различные блюда, приготавливае из неких продуктов, которые столовая закупает у производителей.
СОДЕРЖАНИЕ
2 Структура и создание таблиц в Microsoft Visual FoxPro 15
3 Создание реляционной модели в Microsoft Visual FoxPro 27
4 Создание запросов в Microsoft Visual FoxPro 28
5 Создание отчетов в Microsoft Visual FoxPro 33
8 Структура и создание таблиц в My SQL 53
9 Структура и создание таблиц в My SQL 65
ВВЕДЕНИЕ
Объектом исследования является предприятие общественного питания «Столовая».
В процессе работы проводилось исследование предметной области с целью выявления наиболее значимых сущностей и их атрибутов, разработка запросов, формирование форм, отчетов.
Основная цель системы обработки данных в данной курсовой работе заключается в повышении эффективности работы предприятия, учреждения или организации, которая производит и реализует кулинарную продукцию, обеспечивают полноценное питание, состоящее из трех блюд.
В качестве предметной области разрабатываемой базы данных выбрана столовая, которая заинтересована в автоматизации своей деятельности, поэтому база данных должна обеспечивать:
- учет блюд;
- учет продуктов;
- учет производителей блюд.
1 Нормализация БД
Процесс проектирования БД представляет собой нормализацию схем отношений.
Нормализация – это разбиение таблицы на несколько новых, обладающих лучшими свойствами при добавлении, редактировании и удалении данных [1].
Для начала проектирования базы данных «Столовая» создадим 4 сущности: «Блюдо» (таблица 1), «Продукт» представленной в таблице 2, «Производитель» представленной в таблице 3 и «Поставка» представленной в таблице 4.
Атрибуты сущности «Блюдо»:
-
Код блюда;
-
Наименование блюда;
-
Тип блюда.
Атрибуты сущности «Продукт»:
-
Код продукта;
-
Наименование продукта;
-
Тип продукта;
-
Единицы измерения.
Атрибуты сущности «Производитель»:
-
Код производителя;
-
Код типа производителя;
-
Наименование производителя;
-
Адрес;
-
Наименование производимой продукции;
-
Цена производимой продукции.
Атрибуты сущности «Поставка»:
-
Код поставки;
-
Дата поставки;
-
Поставленное наименование продукции;
-
Код производителя;
-
Количество;
-
Дата окончания срока годности.
Таблица 1 – Блюдо
Код блюда |
Наименование блюда |
Тип блюда |
|
|
|
Таблица 2 – Продукт
Код продукта |
Наименование продукта |
Тип продукта |
Единицы измерения |
|
|
|
|
|
|
Таблица 3 – Производитель
Код производителя |
Фамилия |
Имя |
Отчество |
|
|
|
|
Продолжение таблицы 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.