Завершая обсуждение языка SQL, еще раз подчеркнем, что это -- язык запросов. На нем нельзя написать сколько-нибудь сложную прикладную программу, которая работает с базой данных. Для этой цели в современных СУБД используется язык четвертого поколения (Forth Generation Language -- 4GL), обладающий как основными возможностями процедурных языков третьего поколения (3GL), таких как Си, Паскаль, Ада, так и возможностью встроить в текст программы операторы SQL, а также средствами управления интерфейсом пользователя (меню, формами, вводом пользователя и т.д.). Сегодня язык 4GL -- это один из фактических стандартов средств разработки приложений, работающих с базами данных.
2. Постановка задачи (ТЗ)
Подробно рассмотрев теорию о создании Базы данных, можно выделить задачи, которые перед нами ставятся:
1. База данных «Beluga» должна содержать сведения о сотрудниках, должностях, продуктах и меню и заказанных блюдах;
2. формировать информацию об должностях, поставщиках и выполненных заказах;
3. обеспечивать поиск конкретного работника путем указания его ФИО;
4. осуществлять оформление нового сотрудника, возможность редактирования и удаление старых;
5. вести мониторинг деятельности организации;
6. выводить отчет о сотрудниках, должностях и т.д.
В процессе создания базы, мы понимаем какая информация должна содержаться в программе.
В созданной информационной системе имеется таблица сотрудники, т.е. список работников. Каждый работник характеризуется следующими параметрами:
1. Код сотрудника
2. ФИО
3. Возраст
4. Пол
5. Адрес
6. Телефон
7. Паспортные данные
8. Код должности
В базе данных «Beluga» необходимо знать информацию о имеющихся должностях. Кадры характеризуются следующими параметрами:
1. Код должности
2. Наименование должности
3. Оклад
4. Обязанности
5. Требования
Так же присутствуют такие таблицы, как:
· Склад (Код ингредиента, Наименование ингредиента, Дата выпуска, Объём, Срок годности, Стоимость, Поставщик)
· 4) Меню (Код блюда, Наименование блюда, Код ингредиента 1, Объём ингредиента 1, Код ингредиента 2, Объём ингредиента 2, Код ингредиента 3, Объём ингредиента 3, Стоимость, Время приготовления)
· Заказ (Дата, Время, ФИО заказчика, Телефон, Код блюда 1, Код блюда 2, Код блюда 3, Стоимость, Отметка о выполнении, Код сотрудника)
Таким образом получаем следующие таблицы, которые имеют разные типы данных:
1) Сотрудники - таблица, содержащая информацию о работниках (Рис.1);
2) Должности - таблица, которая рассказывает об имеющихся должностях (Рис.2);
3) Склад - таблица, содержащая информацию о продуктах (Рис.3);
4) Меню - таблица, которая представляет информацию об имеющихся блюдах(Рис.4);
5) Заказ - таблица, содержащая информацию о совершенных заказах (Рис.5).
Рис. 1- Типы данных в SQL
Рис. 2 - Типы данных в SQL
Рис. 3 - Типы данных в SQL
Рис. 4 - Типы данных в SQL
Рис. 5 - Типы данных в SQL
Одной из важнейших операций, которые выполняются при работе с данными, является выборка хранящейся в базе данных информации. Для этого пользователь должен выполнить запрос.
В нашей базе данных были разработаны такие запросы:
1. «Запрос Отдел кадров» - это запрос, который содержит информацию о кадрах и должности работников (Рис. 6).
2. «Запрос Меню» - это запрос, который содержит информацию о продуктах на складе и блюдах (Рис. 7).
3. «Запрос Заказ» (Рис. 8).
Рис. 6 - Запрос «Отдел кадров»
Рис. 7 - Запрос «Заказ+меню»
Рис. 8 - Запрос «Склад+ меню»
Для более удобного рассмотрения и анализа выполнения работ были созданы фильтры по специализации («Фильтр директор», «Фильтр бармен», «Фильтр Кассир» и т.д.)
3. Сценарий работы программы
Приложение, с которым может работать пользователь, разработано в среде Visual Studio 2017. Она получает информацию из базы данных SQL-сервера импортированием данных, т.е. в системе создается таблица с аналогичными данными, как у таблицы базы данных SQL-сервера.
Существуют следующие возможности работы с базой данных:
1) добавление записей;
2) редактирование записей;
3) сохранение записей;
4) выполнение выборки данных, фильтрация, сортировка;
5) выведение информации на печать в форме отчета.
При запуске программы открывается заставка (Рис. 9), на которой написано название программы, ее автор и версия.
Рис. 9 - Заставка программы
Заставка длится 3 секунды, после чего открывается главное окно программы (Рис. 10). На главном окне представлены три вкладки, с помощью которых можно переключаться по разделам:
1. Формы- табличный вид
2. Формы - ленточный вид
3. Отчеты
В которых есть кнопки по названию таблиц:
1) «Сотрудники»;
2) «Должности»;
3) «Склад»;
4) «Меню»;
5) «Заказ».
Рис. 10 - Главное окно программы
В разделе «Должности» (Рис. 11) представлена основная информация о должностях ресторана.
Для облегчения работы существует возможность отфильтровать данные по наименованию должности. Также предусмотрена сортировка (по возрастанию и убыванию). Поиск по работнику позволяет производить мониторинг деятельности, то есть смотреть, как работает тот или иной сотрудник. Отменить фильтр и поиск можно, нажав на «Показать все». «Перейти на ленточный вид» позволяет выйти на ленточную форму просмотра данных. Нажатием на «Закрыть» происходит выход из программы.
Рис. 11 - Таблица «Должности» (ленточный вид)
Рис. 12 - Таблица «Должности» (табличный вид)
Так же в Базе данных существуют запросы, которые связывают определенные таблицы (например Отдел кадров, Сотрудники+Должности) (Рис. 13)
Рис. 13 - Запрос «Отдел кадров»
Существует возможность вывести отчет по таблице, это сделано для удобной печатной версии (Рис. 14).
Рис. 14 - Отчет по таблице «Сотрудники»
На главном окне, помимо основных кнопок, также можно заметить кнопку «О программе» (Рис.15).
Рис. 15 - Окно «О программе»
Заключение
В ходе выполнения данной работы были проверены навыки работы с СУБД MS SQ и средой визуальной разработки приложений Visual Basic. Поставленные задачи были выполнены в процессе работы над заданием. Была спроектирована и реализована БД в среде MS SQ. В среде разработки Visual Basic было реализовано приложение, обеспечивающее работу пользователя с БД.
В процессе выполнения работы были использованы знания языка SQL, на котором были написаны запросы к базе данных, которые иллюстрируют ее работоспособность и готовность к применению. SQL (англ. Structured Query Language) -- язык структурированных запросов) -- универсальный компьютерный язык, применяемый для создания, модификации и управления данными в реляционных базах данных
В настоящее время наибольшее распространение получили реляционные базы данных. Картотеками пользовались до появления электронных баз данных. Сетевые и иерархические базы данных считаются устаревшими, объектно-ориентированные пока никак не стандартизированы и не получили широкого распространения. Некоторое возрождение получили иерархические базы данных в связи с появлением и распространением формата XML.
Список использованной литературы
1. Андерсен В. Microsoft Office SQ. Пер. с англ.- М.: АСТ, 2012.- 572 с.
2. Атре Ш. Структурный подход к организации баз данных.- М.: Финансы и статистика, 2013.- 320 с.
3. Бойко В.В., Савинков В.М. Проектирование баз данных информационных систем.- М.: Финансы и статистика, 2015.- 351 с.
4. ГОСТ 34.201-89 Информационная технология. Комплекс стандартов на автоматизированные системы. Виды, комплектность и обозначения документов при создании автоматизированных систем // СПС КонсультантПлюс
5. ГОСТ 34.601-90 Информационная технология. Комплекс стандартов на автоматизированные системы. Автоматизированные системы. Стадии создания // СПС КонсультантПлюс
6. ГОСТ 34.602-89 Информационная технология. Комплекс стандартов на автоматизированные системы. Техническое задание на создание автоматизированной системы // СПС КонсультантПлюс
7. ГОСТ 34.603-92 Информационная технология. Виды испытаний автоматизированных систем // СПС КонсультантПлюс
8. Джексон Г. Проектирование реляционных баз данных.- М.: Мир, 2001.- 252 с.
9. Жданов С.А. Экономические модели и методы управления.- М.: Дело и Сервис, 1998.- 495 с.
10. Информатика. Учебное пособие / Под ред. В.Г. Кирия.- Иркутск: ИрГТУ, 2015.- 382 с.
11. Кириллов В.В. Структурированный язык запросов (SQL).- СПб.: ИТМО, 2014.- 80 с.
12. Лукин С.Н. Visual Basic. Самоучитель для начинающих.- М.: Диалог МИФИ, 2012.- 544 с.
Приложение
Основной код программы.
Главное окно
Public Class Form1
Private Sub Button13_Click(sender As Object, e As EventArgs) Handles Button13.Click
Form7.Show()
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Form2.Show()
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
Form3.Show()
End Sub
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
Form4.Show()
End Sub
Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
Form5.Show()
End Sub
Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click
Form6.Show()
End Sub
Private Sub Button12_Click(sender As Object, e As EventArgs) Handles Button12.Click
Form8.Show()
End Sub
Private Sub Button11_Click(sender As Object, e As EventArgs) Handles Button11.Click
Form9.Show()
End Sub
Private Sub Button10_Click(sender As Object, e As EventArgs) Handles Button10.Click
Form10.Show()
End Sub
Private Sub Button9_Click(sender As Object, e As EventArgs) Handles Button9.Click
Form11.Show()
End Sub
Private Sub Button21_Click(sender As Object, e As EventArgs) Handles Button21.Click
Form12.Show()
End Sub
Private Sub Button20_Click(sender As Object, e As EventArgs) Handles Button20.Click
Form13.Show()
End Sub
Private Sub Button19_Click(sender As Object, e As EventArgs) Handles Button19.Click
Form14.Show()
End Sub
Private Sub Button8_Click(sender As Object, e As EventArgs) Handles Button8.Click
Form16.Show()
End Sub
Private Sub Button7_Click(sender As Object, e As EventArgs) Handles Button7.Click
Form17.Show()
End Sub
Private Sub Button6_Click(sender As Object, e As EventArgs) Handles Button6.Click
Form18.Show()
End Sub
Private Sub Button18_Click(sender As Object, e As EventArgs) Handles Button18.Click
Form19.Show()
End Sub
Private Sub Button17_Click(sender As Object, e As EventArgs) Handles Button17.Click
Form20.Show()
End Sub
Private Sub Button16_Click(sender As Object, e As EventArgs) Handles Button16.Click
Form21.Show()
End Sub
Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Button15.Click
Form22.Show()
End Sub
Private Sub Button14_Click(sender As Object, e As EventArgs) Handles Button14.Click
Form23.Show()
End Sub
Private Sub Button27_Click(sender As Object, e As EventArgs) Handles Button27.Click
Form24.Show()
End Sub
Private Sub Button26_Click(sender As Object, e As EventArgs) Handles Button26.Click
Form25.Show()
End Sub
Private Sub Button25_Click(sender As Object, e As EventArgs) Handles Button25.Click
Form26.Show()
End Sub
Private Sub ДиаграммаToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ДиаграммаToolStripMenuItem.Click
Form28.Show()
End Sub
Private Sub ЗапросыToolStripMenuItem1_Click(sender As Object, e As EventArgs) Handles ЗапросыToolStripMenuItem1.Click
Form24.Show()
End Sub
Private Sub ОПрограммеToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ОПрограммеToolStripMenuItem.Click
AboutBox1.Show()
End Sub
Private Sub ВыходToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ВыходToolStripMenuItem.Click
Me.Close()
End Sub
Private Sub СотрудникиToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles СотрудникиToolStripMenuItem.Click
Form2.Show()
End Sub
Private Sub ДолжностиToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ДолжностиToolStripMenuItem.Click
Form3.Show()
End Sub
Private Sub СкладToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles СкладToolStripMenuItem.Click
Form4.Show()
End Sub
Private Sub МенюToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles МенюToolStripMenuItem.Click
Form5.Show()
End Sub
Private Sub ЗаказToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ЗаказToolStripMenuItem.Click
Form6.Show()
End Sub
Private Sub СотрудникиToolStripMenuItem1_Click(sender As Object, e As EventArgs) Handles СотрудникиToolStripMenuItem1.Click
Form7.Show()
End Sub
Private Sub ДолжностиToolStripMenuItem1_Click(sender As Object, e As EventArgs) Handles ДолжностиToolStripMenuItem1.Click
Form8.Show()
End Sub
Private Sub СкладToolStripMenuItem1_Click(sender As Object, e As EventArgs) Handles СкладToolStripMenuItem1.Click
Form9.Show()
End Sub
Private Sub МенюToolStripMenuItem1_Click(sender As Object, e As EventArgs) Handles МенюToolStripMenuItem1.Click
Form10.Show()
End Sub
Private Sub ЗаказToolStripMenuItem1_Click(sender As Object, e As EventArgs) Handles ЗаказToolStripMenuItem1.Click
Form11.Show()
End Sub
Private Sub ОтделКадровToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ОтделКадровToolStripMenuItem.Click
Form12.Show()
End Sub
Private Sub МенюToolStripMenuItem2_Click(sender As Object, e As EventArgs) Handles МенюToolStripMenuItem2.Click
Form13.Show()
End Sub
Private Sub ЗаказToolStripMenuItem2_Click(sender As Object, e As EventArgs) Handles ЗаказToolStripMenuItem2.Click
Form14.Show()
End Sub
Private Sub СотрудникиToolStripMenuItem2_Click(sender As Object, e As EventArgs) Handles СотрудникиToolStripMenuItem2.Click
Form19.Show()
End Sub
Private Sub ДолжностиToolStripMenuItem2_Click(sender As Object, e As EventArgs) Handles ДолжностиToolStripMenuItem2.Click
Form20.Show()
End Sub
Private Sub СкладToolStripMenuItem2_Click(sender As Object, e As EventArgs) Handles СкладToolStripMenuItem2.Click
Form21.Show()
End Sub
Private Sub МенюToolStripMenuItem3_Click(sender As Object, e As EventArgs) Handles МенюToolStripMenuItem3.Click
Form22.Show()
End Sub
Private Sub ЗаказToolStripMenuItem3_Click(sender As Object, e As EventArgs) Handles ЗаказToolStripMenuItem3.Click
Form23.Show()
End Sub
Private Sub ЗапросМенюToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ЗапросМенюToolStripMenuItem.Click
Form25.Show()
End Sub
Private Sub ЗапросЗаказToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ЗапросЗаказToolStripMenuItem.Click
Form26.Show()
End Sub
End Class
Таблица меню
blic Class Form10
Private Sub МенюBindingNavigatorSaveItem_Click(sender As Object, e As EventArgs) Handles МенюBindingNavigatorSaveItem.Click
Me.Validate()
Me.МенюBindingSource.EndEdit()
Me.TableAdapterManager.UpdateAll(Me.SkladDataSet)
End Sub
Private Sub Form10_Load(sender As Object, e As EventArgs) Handles MyBase.Load
'TODO: данная строка кода позволяет загрузить данные в таблицу "SkladDataSet.Склад". При необходимости она может быть перемещена или удалена.