Вы находитесь на странице: 1из 13

МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ

ФЕДЕРАЦИИ
федеральное государственное бюджетное образовательное учреждение
высшего профессионального образования
«УЛЬЯНОВСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ»
Колледж экономики и информатики

Специальность 09.02.03 Программирование в компьютерных системах

КУРСОВАЯ РАБОТА
Междисциплинарный курс Технология разработки и защиты баз данных

Тема работы Учет продаж в магазине игрушек

Студент Карсаков И.Д. Группа Пдо-45-17


(фамилия, инициалы)

Преподаватель Головин В.А.


(фамилия, инициалы)

Дата защиты ______________________ Оценка _____________________

Подпись _____________________________

Ульяновск
2020
ВВЕДЕНИЕ
База данных (БД) – это организованная структура, предназначенная для
хранения информации. В современных базах данных хранятся не только
данные, но и информации[1].
С понятием базы данных тесно связано понятие системы управления
базой данных (СУБД). Это комплекс программных средств, предназначенных
для создания структуры новой базы, наполнение её содержимым,
редактирование содержимого и визуализации информации. Под
визуализацией информации базы понимается отбор отображаемых данных в
соответствии с заданным критерием, их упорядочение, оформление и
последующая выдача на устройства вывода или передачи по каналам
связи[2].
Информация базы данных хранится в одной или нескольких таблицах.
Любая таблица с данными состоит из набора однотипных записей,
расположенных друг за другом. Они представляют собой строки таблицы,
которые можно добавлять, удалять или изменять.
Каждая запись является набором именованных полей, или ячеек,
которые могут хранить самую разнообразную информацию, начиная от даты
рождения и заканчивая подробным описанием кулинарного рецепта.
Однотипные поля разных записей образуют столбец таблицы[3].
Создав одну таблицу, вы уже получаете полноценную базу данных.
Однако в реальной жизни структуры баз данных, а соответственно и способы
их создания, намного сложнее.
В мире существует множество СУБД. Несмотря на то, что они могут
по-разному работать с разными объектами и предоставляют пользователю
различные функции и средства, большинство СУБД опираются на единый
устоявшийся комплекс основных понятий. Это даёт нам возможность
рассмотреть одну систему и обобщить её понятия, приёмы и методы на весь
класс СУБД . В качестве такого учебного объекта выбрана СУБД Microsoft
Access 2013, входящую в пакет Microsoft Office. Для того чтобы знать, каким
2
образом можно эффективно управлять информацией, современный человек
должен уметь с помощью компьютеров и средств связи получать,
накапливать, хранить и обрабатывать данные в базах данных. По получению
таких знаний пользователю СУБД существенную помощь в этом может
оказать обучающие-контролирующая программа.
Увеличение объема и структурной сложности хранимых данных,
расширение круга пользователей информационных систем привели к
широкому распространению наиболее удобных и сравнительно простых для
понимания реляционных (табличных) СУБД. Для обеспечения
одновременного доступа к данным множества пользователей, нередко
расположенных достаточно далеко друг от друга и от места хранения баз
данных, созданы сетевые мультипользовательские версии БД основанных на
реляционной структуре. В них тем или иным путем решаются специфические
проблемы параллельных процессов, целостности (правильности) и
безопасности данных, а также санкционирования доступа[4][5].

3
Постановка задачи
Вариант 41.
Учет продаж в магазине игрушек. Магазин разделен на отделы. В каждом
имеются по 2 консультанта, продающих товары. Все работают по сменам.
Определить выручку за смену, за период. Сформировать списки продаж по
отделам и по консультантам.
Модель данных в 3НФ

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


База данных состоит из 6 таблиц, связанных между собой:
1.Таблица “Товары” хранит в себе информацию о товарах и содержит три
атрибута:
 id (товара) – является первичным ключом (тип integer);
 Название – название товара (тип text);
 Цена – цена товара (тип float);
2.Таблица “Проданные товары” хранит в себе информацию о проданных
товарах и содержит четыре атрибута:
 id (проданного товара) – является первичным ключом (тип integer);

4
 id_товара – атрибут, являющийся внешним ключом и связывающий
таблицу “Товары” c таблицей “Проданные товары” (хранит первичный
ключ таблицы “Товары”, тип integer);
 Количество – количество проданного товара (тип integer);
 id_чека – атрибут, являющийся внешним ключом и связывающий таблицу
“Чек” c таблицей “Проданные товары” (хранит первичный ключ таблицы
“Чек”, тип integer);
3. Таблица “Чек” хранит в себе информацию о проданных товарах и
содержит четыре атрибута:
 id чека - является первичным ключом (тип integer);
 Время продажи – время проданного товара (тип time);
 id_консультанта – атрибут, являющийся внешним ключом и
связывающий таблицу “Консультант” с таблицей “Чек” (хранит
первичный ключ таблицы “Консультант”, тип integer);
 id_смены – атрибут, являющийся внешним ключом и связывающий
таблицу “Смены” c таблицей “Чек”(хранит первичный ключ таблицы
“Cмены”, тип integer);
4. Таблица “Консультанты” хранит в себе информацию о консультантах и
содержит четыре атрибута:
 id консультанта - является первичным ключом (тип integer);
 ФИО – ФИО консультанта (тип text);
 Дата рождения – дата рождения консультанта (тип date);
 id_отдела – атрибут, являющийся внешним ключом и связывающий
таблицу “Отдел” c таблицей “Консультант” (хранит первичный ключ
таблицы “Отдел”, тип integer);
5. Таблица “Отдел” хранит в себе информацию об отделе и содержит два
атрибута:
 id отдела - является первичным ключом (тип integer);
 Наименование – название отдела (тип text);

5
6. Таблица “Смены” хранит в себе информацию о смене и содержит четыре
атрибута:
 id_смены - является первичным ключом (тип integer);
 Дата_смены - (тип date);
 Вид_смены – (тип string);
 Ответственный за смену - (тип string);
Создание таблиц:
CREATE TABLE product(id integer primary key,
name nvarchar(255) not null,
price float not null);

CREATE TABLE department(id integer primary key,


name nvarchar(255) not null);

CREATE TABLE consultant(id integer primary key,


FIO nvarchar(255) not null,
Dateofbirth DateTime null,
department_id integer not null,
FOREIGN KEY (department_id) REFERENCES department (id)
on delete cascade);

CREATE TABLE change(id integer primary key,


change_date DateTime not null,
The_hange nvarchar(255) null,
Shift_Manager nvarchar(255) not null);

CREATE TABLE checkk (id integer primary key,


time_of_sale datetime not null,
changes_id integer not null,
consultant_id integer not null,
FOREIGN KEY (consultant_id) REFERENCES consultan (id)
on delete cascade,
FOREIGN KEY (changes_id)
REFERENCES change (id)
on delete cascade);

CREATE TABLE sold_product(id integer primary key,


counts integer not null,
check_id int not null,
product_id integer not null,
FOREIGN KEY (product_id) REFERENCES product(id)
6
FOREIGN KEY (check_id) REFERENCES checkk (id));

Заполнение таблиц.
Для заполнения таблиц созданы тестовые наборы данных. Первыми
заполняются таблицы Товар, Отдел, Консультант, затем Смена и
Продажи(чек) и последней - таблица Проданный товар.
Insert into product (id, name, Price)
Values (1, 'Яблоко', 40.05),
(2, 'Мандарины' ,35.99),
(3, 'Гранат' ,80.70),
(4, 'Ананас' ,120.60),
(5, 'Ручка' ,15.25),
(6, 'Тетрадь' ,32.55);

insert into department (id, Name)


values (1, ' Совмещенный ');

insert into change (id, change_date, The_hange, Shift_Manager)


values (1, '2019-01-23 9:45','дневная','Долгов Виктор Иванович'),
(2, '2019-01-23 20:00','ночная','Долгов Виктор Иванович');

insert into consultant (id, FIO, Dateofbirth, Department_id)


values (1, 'Иванов Иван Иванович' , '1984-07-29' ,1);

insert into checkk (id, time_of_sale, consultant_id, changes_id)


values (1, '2019-01-23 10:26' ,1,1),
(2, '2019-01-23 10:28' ,1,1),
(3, '2019-01-23 10:30' ,1,1),
(4, '2019-01-23 10:31' ,1,1);

insert into sold_product (id,counts,check_id,product_id)


values (1,12,1,1),
(2,4,1,2),
(3,3,1,5),
(4,5,1,6);

7
Результат заполнения таблиц

8
Примеры результатов выборки данных:
Первый запрос проводит выборку значений атрибутов name, price
таблицы product и сортирует по возрастанию поля name(по алфавитному
порядку) и по убыванию значений поля price:

SELECT name,price FROM product ORDER BY name ASC, price DESC;

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


product по полю name и выводит продукты и их количество в порядке
убывания числа соответствующих продукт:

SELECT name,count(*) from product group by name order by count(*) desc;

9
Третий запрос проводит выборку значений таблицы product по
шаблону, относящемуся к полю price (у которых цена между 20 и 100).

SELECT * FROM product WHERE price BETWEEN 20 AND 100;

Четвертый запрос проводит выборку значений таблицы product,


объединенной с таблицей sold_product. Выводится сколько товаров продано.

SELECT product.name, sum(sold_product.counts)


FROM product
INNER JOIN sold_product ON product.id=sold_product.id
GROUP BY product.name;

10
Пятый запрос проводит выборку значений таблицы checkk, объединенной с
таблицей change. Выводится информация о смене консультанта.

SELECT checkk.time_of_sale,change.The_hange
FROM checkk
INNER JOIN change ON checkk.id= change.id
WHERE change.The_hange = "дневная";

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

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

СПИСОК ЛИТЕРАТУРЫ

1. Дунаев В. В., Базы данных, Язык SQL для студента / В.В. Дунаев. - М.:
БХВ-Петербург, 2017. - 288 c.
2. Прайс Джейсон, Операторы SQL и программы PL/SQL / Джейсон Прайс.
- М. ЛОРИ, 2018. - 660 c.

12
3. Голицына, О. Л. Базы данных / О.Л. Голицына, Н.В. Максимов, И.И.
Попов. - М.: Форум, 2019. - 400 c.
4. Персианов В. В., Технология Проектирования Информационной Базы Для
Педагогических Вузов Страны / - Москва: Огни, 2018. - 594 c.
5. Кузнецов С. Д., Основы баз данных / С.Д. Кузнецов. - М.: Бином.
Лаборатория знаний, Интернет-университет информационных
технологий, 2017. - 488 c.

13

Вам также может понравиться