Анализ, разработка и реализация базы данных информационной системы OpenPOS
Назначение для информационной системы OpenPOS для автоматизации рабочих процессов в заведениях общественного питания. Состав и структура исходных данных. Основные сведения о предметной области, ее моделирование. Создание и запуск базовых запросов SQL.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 28.01.2016 |
Размер файла | 2,2 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
CREATE INDEX ind_employee ON employee_info (employee_lname);
CREATE INDEX ind_dish ON menu_items (item_name);
Листинг 19 - создание индексов
Удаление индексов выполняется с помощью команды DROP INDEX. Данная операция была применена для всех индексов, созданных в ходе написания данного раздела.
ALTER TABLE employee_info DROP INDEX ind_employee;
ALTER TABLE menu_items DROP INDEX ind_dish;
Листинг 20 - удаление индексов из таблиц
4.8 Выводы по разделу
Основной задачей данного раздела являлось ознакомление с комплексными SQL-запросами к предметной области. В данном разделе рассмотрены несколько комплексных запросов: выборка из таблиц-объединений, подзапросы, создание, редактирование и удаление дополнительных таблиц. Также описаны понятие индексации, принципы работы с индексами. В приложении Б.3 находится SQL-скрипт, в котором собраны комплексные запросы к разработанной БД openpos.
5. Создание и использование представлений
5.1 Общие сведения о представлениях
Представления (view) - это одно из мощных средств языка SQL, предназначенное для реализации механизм подсхем пользователей базы данных. Представления позволяют скрыть от пользователей схему базы данных. Они представляют собой хранимые в базе данных запросы, выраженные операторами SELECT. На базе одних представлений могут быть созданы новые представления, которые наследуют все свойства базовых представлений. Формировать представления могут пользователи с привилегиями SELECT для используемых в представлениях таблиц (базовых таблиц).
В данном разделе рассматривается создание представлений, процесс манипуляции данными из представлений (выборка данных), а также удаление представлений из базы данных.
5.2 Создание представлений в базе данных
Представления создаются с помощью команды CREATE VIEW. Структура и хранимые сущности БД openpos позволяют создать несколько представлений для конечного отображения в пользовательском интерфейсе информационной системы OpenPOS. Например, можно создать представление, в котором будут ФИО сотрудников и их адрес. Данное представление покажет наглядную информацию о местах проживания каждого сотрудника организации. На рисунке 18 показана структура созданного представления.
CREATE VIEW employee_place AS
SELECT ei. employee_id, CONCAT (ei. employee_fname, ` ', ei. employee_mname, ` ', ei. employee_lname) AS `Employee', CONCAT (ea. city, ` `, ea. street, ` `, ea. home, ` `, ea. apt) AS `Address'
FROM employee_info ei INNER JOIN employee_address ea ON ea. employee_id=ei. employee_id ORDER BY ei. employee_id;
Листинг 21 - создание представления данных из нескольких таблиц
Рисунок 18 - структура представления, созданного в БД openpos.
Также можно создать представление в виде сводной таблицы о персонале предприятия общественного питания и соответствующим им счетам.
CREATE VIEW employee_activity AS
SELECT b. bill_id, e. employee_fname, e. employee_lname, b. bill_time, b. bill_tips, b. bill_total, b. bill_status, b. bill_method
FROM bills_info b
INNER JOIN employee_info e ON e. employee_id=b. employee_id
ORDER BY e. employee_id;
Листинг 22 - создание представления с использованием скалярной функции
5.3 Операции с представлениями базы данных
Данные из представлений считываются точно так же, как и данные из базовых таблиц - с помощью команды SELECT. Из представления, созданного в БД openpos, можно выделить статистику по определенному каналу call-центра. На рисунке 28 показана структура созданного подзапроса.
SELECT * FROM employee_place WHERE employee_id<5;
Листинг 23 - выборка данных из представления
Рисунок 19 - выборка представления, созданного в БД openpos.
Представления удаляются с помощью команды DROP VIEW. Ниже наглядно показан процесс удаления представления из базы данных.
DROP VIEW employee_place;
DROP VIEW employee_activity;
Листинг 20 - удаление представлений
5.4 Выводы по разделу
Основной целью данного раздела было формирование SQL-представлений в моделируемой предметной области, а также проведение операций с представлениями. В разделе описаны общие сведения о представлениях, их актуальность и области применения, создание представлений на основе данных анализируемой и разработанной БД, манипуляции с данными представлений и процесс удаления представлений из БД. В приложении Б.4 находится скрипт создания и манипулирования SQL-представлениями, выполненный в БД openpos, включающий в себя все операции, описанные в разделе.
Заключение
В рамках данной курсовой работы были выполнены задачи, направленные на формирование распределенной структуры хранения данных на базе РСУБД и поставленные в рамках данной курсовой работы:
1) проанализирована предметная область проектируемой ИС;
2) по итогам анализа создан план по реализации БД, хранящей информацию, необходимую для функционирования субъекта предметной области;
3) создана схема БД с её последующей реализацией и внедрением в СУБД;
4) реализовано моделирование рабочих процессов БД посредством передачи в БД SQL-запросов создания, изменения, удаления хранимых данных, а также манипуляции данными посредством выборки из таблиц.
В ходе выполнения курсовой работы:
1) проанализирована предметная область;
2) разработана структура распределенной системы хранения данных, обеспечивающей корректное функционирование проектируемой ИС;
3) спроектирована диаграмма сущность-связь БД информационной POS-системы OpenPOS посредством визуального моделирования схемы в EA;
4) создана БД в РСУБД MySQL посредством переноса структурированной схемы из EA с последующим заполнением данных из текстового файла;
5) визуализирована диаграмма отредактированной БД с помощью утилиты моделирования БД phpMyAdmin;
6) созданы базовые SQL-запросы (выборка, добавление/изменение/удаление строк) к СУБД с их последующим применением на практике;
7) созданы комплексные SQL-запросы (подзапросы, выборка из нескольких таблиц, индексация, создание/добавление/удаление таблиц) к СУБД с их последующим применением на практике;
8) созданы представления данных с их последующим применением на практике.
В рамках дальнейшей работы над проектом планируется:
1) более углубленное изучение и анализ предметной области, выявление её специфик, известных только участниками деятельности в предметной области;
2) разработка информационной системы OpenPOS (продумывание алгоритма работы ИС, написание исходного кода, отладка работы программы, тестирование ИС на целевом аппаратном комплексе);
3) автоматизация работы информационной системы с БД, реализованной в рамках данной курсовой работы;
4) презентация разработанного проекта и дальнейшее внедрение в структуру предприятий общественного питания;
5) дальнейшая модификация ИС посредством добавления программных модулей, решающих те или иные проблемы предметной области, улучшение пользовательского интерфейса и т.д.
Список литературы
Основная литература
1. Андрей Кондрашин. Ресторанный бизнес в малых городах. Секреты успешного открытия и эффективного управления. - Ресторанные ведомости, 2015
2. Виолетта Гвоздовская Управление рестораном, который любит гостей. - Ресторанные ведомости, 2013
3. Кевин Янк. PHP и MySQL. От новичка к профессионалу. - Эксмо, 2013
4. Бэрон Шварц, Вадим Ткаченко. MySQL. Оптимизация производительности - Символ-плюс, 2010г.
5. Алекс Кригель, Борис Трухнов. SQL. Библия пользователя - Вильямс, 2010г.
Дополнительная литература
6. Стефан Фаро. Рефакторинг SQL-приложений - Символ, 2009 г.
7. Алан Бьюли. Изучаем SQL. - Символ, 2007г.
8. Мартин Грабер. SQL - Лори, 2007г.
9. Д. Крёнке. Теория и практика построения баз данных. - Питер, 2005 г.
10. Крис Фиайли. SQL. Руководство по изучению языка - ДМК Пресс, 2004 г.
Интернет ресурсы
11. Database Engineering with Enterprise Architect 12 [Электронный ресурс] URL https: // www.youtube.com/watch? v=LLtp49TU1H8 (дата обращения: 09.11.2014г.)
12. Loading Data into a Table [Электронный ресурс] URL: https: // dev. mysql.com/doc/refman/5.5/en/loading-tables.html (дата обращения: 22.11.2015г.)
13. LOAD DATA INFILE Syntax [Электронный ресурс] URL: https: // dev. mysql.com/doc/refman/5.5/en/load-data.html (дата обращения: 22.11.2015г.)
14. Configuring the Character Set and Collation for Applications [Электронный ресурс] URL: https: // dev. mysql.com/doc/refman/5.7/en/charset-applications.html (дата обращения: 22.11.2015г.)
15. How Do I Enable Remote Access To MySQL Database Server?. [Электронный ресурс] URL: http://www.cyberciti. biz/tips/how-do-i-enable-remote-access-to-mysql-database-server.html (дата обращения: 23.11.2015г.)
Перечень принятых сокращений
1) БД - База данных
2) СУБД - Система управления баз данных
3) РСУБД - Реляционная система управления баз данных
4) EA - Sparx Enterprise Architect
5) ПО - Программное обеспечение
Приложения
Приложение А. 2 - схема подструктуры базы данных openpos в phpMyAdmin
Приложение Б
SQL-код базы данных
DROP TABLE IF EXISTS `bills_info` CASCADE;
CREATE TABLE `bills_info`
(
`bill_id` INT NOT NULL,
`bill_tickets` INT,
`member_id` INT 0,`employee_id` INT,
`bill_time` TIMESTAMP (0),
`bill_tips` INT,
`bill_total` INT,
`bill_status` VARCHAR (20),
`bill_method` VARCHAR (20),
CONSTRAINT `PK_bills_info` PRIMARY KEY (`bill_id`)
);
ALTER TABLE `bills_info`
ADD INDEX `IXFK_bills_info_employee_info` (`employee_id` ASC)
;
ALTER TABLE `bills_info`
ADD INDEX `IXFK_bills_info_membership` (`member_id` ASC)
;
SET FOREIGN_KEY_CHECKS=1
Приложение Б.1 - создание таблицы
SELECT * FROM employee_info ORDER BY employee_birthday DESC;
SELECT bill_id, member_id, employee_id, bill_total, bill_time FROM bills_info WHERE return_date IS NULL;
SELECT * FROM employee_military WHERE employee_mil_status IS NOT NULL;
INSERT INTO tickets VALUES (932, 1, 1, 50);
INSERT INTO membership VALUES (11, Shilyn, Kirill, 0.1, active);
UPDATE employee_paperwork SET employee_passport=5609911911 WHERE employee_id=5;
DELETE FROM employee_info WHERE employee_lname='Novikov';
SELECT employee_id, employee_card_exp, (CASE employee_card_exp WHEN employee_card_exp < '2017-01-01' THEN 'expiring' ELSE 'non-expiring' END) AS 'state' FROM employee_account ORDER BY 3 DESC;
SELECT CONCAT (employee_fname, ` `, employee_mname, ` ', employee_lname) AS `Full name', employee_position FROM employee_info;
SELECT bill_id, COUNT (ticket_id) AS `Tickets' FROM bills_components GROUP BY bill_id;
SELECT MAX (bill_total) AS 'Bill record' FROM bills_info;
Приложение Б.2 - скрипт создания базовых запросов
SELECT bi. bill_id, m. member_fname, m. member_lname, menu. item_name, bi. bill_status;
FROM bills_info bi
INNER JOIN membership m ON bi. member_id=m. member_id
INNER JOIN bills_components bc ON bc. bill_id=bi. bill_id
INNER JOIN tickets t ON t. ticket_id=bc. ticket_id
INNER JOIN menu_items menu ON menu. item_id=t. item_id
ORDER BY m. member_id;
SELECT bill_id, bill_time, bill_total, bill_status, bill_method FROM bills_info WHERE bill_id IN
(SELECT bill_id, COUNT (ticket_id) AS `quantity' FROM bills_components WHERE quantity > 1 GROUP BY bill_id);
CREATE TABLE menu_ingredients
(
item_id INT NOT NULL,
ingredient_id INT NOT NULL,
ingredient_name VARCHAR (20),
ingredient_price INT NOT NULL,
PRIMARY KEY (ingredient_id),
FOREIGN KEY (item_id) REFERENCES menu_items (item_id)
);
ALTER TABLE menu_ingredients ADD COLUMN ingredient_quantity INT;
DROP TABLE menu_ingredients;
CREATE INDEX ind_employee ON employee_info (employee_lname);
CREATE INDEX ind_dish ON menu_items (item_name);
ALTER TABLE employee_info DROP INDEX ind_employee;
ALTER TABLE menu_items DROP INDEX ind_dish;
Приложение Б.3 - скрипт создания комплексных запросов
CREATE VIEW employee_place AS
SELECT ei. employee_id, CONCAT (ei. employee_fname, ` ', ei. employee_mname, ` ', ei. employee_lname) AS `Employee',
CONCAT (ea. employee_city, ` `, ea. employee_street, ` `, ea. employee_home, ` `, ea. employee_apt) AS `Address'
FROM employee_info ei INNER JOIN employee_address ea ON ea. employee_id=ei. employee_id ORDER BY ei. employee_id;
CREATE VIEW employee_activity AS
SELECT b. bill_id, e. employee_fname, e. employee_lname, b. bill_time, b. bill_tips, b. bill_total, b. bill_status, b. bill_method
FROM bills_info b
INNER JOIN employee_info e ON e. employee_id=b. employee_id
ORDER BY e. employee_id;
SELECT * FROM employee_place WHERE employee_id<5;
DROP VIEW employee_place;
DROP VIEW employee_activity;
Размещено на Allbest.ru
Подобные документы
- Анализ, разработка и реализация базы данных встраиваемого модуля информационной системы IP-телефонии
Анализ предметной области. Проектирование диаграммы "сущность-связь" в Enterprise Architect. Общие сведения о базовых запросах. Создание базы данных в MySQL. Выделение сущностей, атрибутов, ключей, связей. Применение табличных и скалярных функций.
курсовая работа [1,8 M], добавлен 28.01.2016 Разработка базы данных информационной системы для автоматизации предметной области. Программа контроля и просмотра услуг, предоставляемых магазином "Стройматериалы". Схема данных, создание запросов, отчёты. Описание технологии ведения базы данных.
курсовая работа [2,5 M], добавлен 21.10.2012Задачи, функции и структура филиала университета. Оценка информационных потоков и UML-моделирование. Анализ структуры информационной системы и системы навигации. Проектирование базы данных, физическая реализация и тестирование информационной системы.
дипломная работа [6,0 M], добавлен 21.01.2012Анализ предметной области. Перечень хранимой информации: таблицы, поля, типы. Выделение сущностей, атрибутов, ключей, связей. Начальное заполнение данными БД. Создание и запуск базовых запросов. Проектирование базы данных в среде Enterprise Architect.
курсовая работа [1,6 M], добавлен 16.02.2016Реализация базы данных и серверной части информационной системы склада средствами СУБД Microsoft SQL Server. Анализ предметной области, информационных задач, пользовательской системы. Программа реализации проекта. Выработка требований и ограничений.
курсовая работа [2,4 M], добавлен 15.11.2015Разработка информационной системы для предметной области с использованием заданных структур данных. Создание и проверка базы данных, которая позволяет вводить информацию, хранить её в файле, осуществлять поиск, модификацию, сортировку и удаление данных.
курсовая работа [240,0 K], добавлен 29.03.2016Описание предметной области и определение предметной области информационной системы детского сада. Разработка логической и физической модели базы данных дошкольного образовательного учреждения. Анализ функционала информационной системы детского сада.
курсовая работа [1,6 M], добавлен 20.04.2015Выбор инструментальной среды для разработки базы данных. Подсистема сбора, обработки и загрузки данных. Укрупненный алгоритм разрабатываемой информационной системы. Формирование области запросов базы, интерфейс ввода и редактирования входных данных.
курсовая работа [2,2 M], добавлен 25.12.2012Анализ существующих информационных систем для автоматизации деятельности предприятий общественного питания. Моделирование основных бизнес-процессов, выполняемых в автоматизированной информационной системе. Этапы разработки информационной системы.
дипломная работа [1,8 M], добавлен 14.11.2017Создание базы данных для информационной системы "Грузоперевозки". Анализ предметной области, разработка концептуальной и логической модели базы данных, с использованием средства MS Micrоsоft SQL Server 2005, реализация физического проектирования базы.
курсовая работа [1,3 M], добавлен 01.07.2011