Проектирование БД «Оптовая база»
Заказать уникальную курсовую работу- 30 30 страниц
- 8 + 8 источников
- Добавлена 09.06.2023
- Содержание
- Часть работы
- Список литературы
1 Теоретический раздел 4
1.1 Анализ предметной области 4
1.2 Разработка функциональной модели предметной области 5
1.3 Проектирование БД «Оптовая база» 6
1.3.1 Инфологическое проектирование БД «Оптовая база» 9
1.3.2 Логическое проектирование БД «Оптовая база» 9
1.4 Выбор программных средств разработки 10
2. Практическая часть 12
2.1 Разработка БД «Оптовая База» на базе MS SQL Server 12
2.1.1 Структура БД в MS SQL Server 12
2.1.2 Схема данных в MS SQL Server 14
2.1.3 Администрирование базы данных 16
2.2 Разработка интерфейса в среде MS Visual Studio 17
2.3 Тестирование БД «Оптовая база» 23
3. Дальнейшее развитие 28
Заключение 29
Список литературы 30
Для работы с базой данных необходимо создать файл с кодом на Python, который будет содержать функции для установления соединения с базой данных, выполнения запросов и получения результатов. Кроме того, в этом файле можно создать функции для добавления, изменения и удаления данных из базы данных.Для создания интерфейса необходимо создать файл с кодом на Python, который будет содержать код для создания виджетов и настройки их свойств. В этом файле можно создать функции для обработки событий, например, нажатия на кнопки, изменения значений в полях ввода и др.Пример кода для создания окна в среде MS VisualStudio на языке Python с использованием библиотеки Tkinter:(См. Рис 5)[5]Рисунок 5. Создание интерфейса в TkinterЗдесь мы создаем окно с кнопками, каждое которое привязываем к функции с автоматизированным запросом, прописанным внутри нее. Таким образом, при запуске нашего приложения получаем следующее окно.(См. Рис 6) [6]Рисунок 6. Внешний вид окнаДалее создадим обработчик для каждой кнопки и пропишем внутри него автоматизированный запрос из списка приведенных ниже команд:Выбрать поставщиков, которые поставляют все товары.Определить поставщика, который поставляет товар "коврик для мыши" по самой низкой в среднем цене.Вывести названия товаров, цены на которые никогда не повышались. Определить, на сколько единиц возросли поставки товара "инструмент" в 2001 г. по сравнению с предыдущим годом.Для начала реализуем автоматический запрос, привязанный к кнопке для выбора поставщиков, поставляющих все товары.(См. Рис 7) [7][8]Рисунок 7. Автоматизированный запрос поиска поставщика, поставляющего все товарыЗдесь мы подключаемся к нашей базе данных, после чего формируем запрос к ней и выводим данные в консоль. После этого реализуем функцию поиска поставщика, поставляющего «коврик для мыши». Так же обязательно пропишем исключение на тот случай, если такой поставщик не будет найден.(См. Рис 8)Рисунок 8. Автоматизированный запрос поставщика, поставляющего коврики для мыши по самым низким ценамТеперь нам необходимо вывести названия товаров, цены на которые никогда не менялись. Для этого так же напишем отдельную функцию, содержащую в себе запрос и обработку исключения, если такие товары не будут найдены.(См. Рис 9)Рисунок 9. Автоматизированный запрос поиска товаров, цена на поставки которых не меняласьТеперь реализуем функцию, определяющую как изменились и на сколько единиц возросли поставки товара «инструменты» с двухтысячного по две тысячи первый год.(См. Рис 10)Рисунок 10. Автоматизированный запрос, выясняющий насколько возросли поставки с 2000 года по 2001Далее, нам необходимо протестировать работу нашего приложения и работу запросов, а также свериться с имеющимися в нашей БД данными, чтобы определить корректность функционирования автоматизированных запросов.2.3Тестирование БД «Оптовая база»Тестирование базы данных «Оптовая база» включает в себя проверку ее функциональности, корректности работы с данными, а также производительности при работе с большим объемом данных.Для проверки функциональности БД необходимо протестировать все ее функции и процедуры. Проверка корректности работы с данными включает в себя проверку ввода и вывода данных, а также проверку правильности выполнения запросов и обработки ошибок.Для начала проверим запрос, выводящий всех постащиков, поставляющих все товары. Однако, на выходе мы получаем пустой список.(См. Рис 11)Рисунок 11. Результат работы запросаЭто связано с тем, что в нашей БД нет поставщика, поставляющего все виды товаров. Чтобы проверить корректность функционирования дополним нашу БД и попробуем произвести запрос снова.(См. Рис 12)Рисунок 12. Дополняем данные в БДПерезапустим наше приложение и проверим результат. В конечном итоге у нас в консоль должна быть выведен поставщик с ID = 1.(См. Рис 13)Рисунок 13. Результат повторного тестированияПроверяем поставщика по IDиз нашей таблицы «Поставщики», для проверки корректности полученного нами результата. Из скриншота ниже видим, что наша программа отработала корректно.(См. Рис 14)Рисунок 14. Сверяем результаты тестирования с нашей БДТеперь пробуем найти поставщика, поставляющего «Коврик для мыши» по самой выгодной цене.(См. Рис 15)Рисунок 15. Внешний вид окна и запрос на поиск поставщика с самой низкой ценой на коврики для мышиСверимся с нашей базой данных.(См. Рис 16)Рисунок 16. Проверка данных по БДИз данных нашей БД мы видим, что больше никто не поставляет ковриков для мыши. Непорядок. Добавим данные и выполним запрос снова. Пусть условный поставщик с ID= 3 также поставляет коврики для мыши, но по значительно более низкой цене.(См. Рис 17)Рисунок 17. Дополняем таблицу Поставки в БДПри запуске программы получаем следующий результат(См. Рис 18)Рисунок 18. Проверяем результат работы запросаДля верности сравниваем с БД поставщиков и видим, что запрос отработал корректно.(См. Рис 19)Рисунок 19. Проверяем результаты3. Дальнейшее развитиеДальнейшее развитие проекта «Оптовая база» может включать в себя расширение визуального интерфейса приложения и добавление дополнительных полей ввода для удобства пользователей. Например, можно добавить поле для ввода описания поставки товара, поле для выбора типа платежной системы при оплате заказа и т.д.Также следующим шагом может быть развертывание базы данных на сервере. Это позволит использовать базу данных в реальном времени и дать возможность работать с ней нескольким пользователям одновременно.Важно также заботиться о безопасности данных и регулярно проводить их резервное копирование. Для этого можно использовать различные инструменты, такие как инструменты резервного копирования, автоматизированные системы мониторинга и т.д.В целом, дальнейшее развитие проекта будет зависеть от потребностей и требований пользователей, а также от бизнес-задач, которые он должен решать. По мере расширения функциональности приложения и роста числа пользователей, может потребоваться использование более мощных серверов и БД с более высокой производительностью.ЗаключениеВ заключение можно сказать, что разработка базы данных "Оптовая база" на базе MS SQL Server в среде MS VisualStudio с использованием языка программирования Python была успешно завершена. Была выполнена постановка задачи, проведено информационное и логическое проектирование базы данных, разработана и реализована структура БД, разработан интерфейс на языке Python, а также проведено тестирование базы данных.В процессе разработки были использованы современные технологии и программные средства, что позволило создать качественную и удобную базу данных, которая может быть использована в различных сферах оптовой торговли.Таким образом, проект "Оптовая база" может быть использован в коммерческих целях, а также может служить основой для дальнейшей разработки и совершенствования базы данных для оптовых компаний.Список литературыPython: Работа с базой данных, часть 1/2: Используем DB-API – DaneSoul URL: https://habr.com/ru/post/321510/ (дата обращения 08.05.2023)Create First GUI Application using Python-Tkinter URL: https://translated.turbopages.org/proxy_u/en-ru.ru.91ef033d-641bedc6-e7e28b79-74722d776562/https/www.geeksforgeeks.org/create-first-gui-application-using-python-tkinter/ (датаобращения 08.05.2023)Создание графического интерфейса на Python 3 с TkinterURL: https://pythonru.com/uroki/obuchenie-python-gui-uroki-po-tkinter (дата обращения 08.05.2023)Programming with Databases in Python using SQLite - Parul Pandey URL: https://medium.com/analytics-vidhya/programming-with-databases-in-python-using-sqlite-4cecbef51ab9 (датаобращения 08.05.2023)Tkinter — Python interface to Tcl/Tk URL: https://docs.python.org/3/library/tkinter.html (датаобращения 08.05.2023)Введение в TkinterURL: https://habr.com/ru/post/133337/ (дата обращения 08.05.2023)Автоматизация выполнения запросов в SQL с помощью Python - Официальная документация URL: https://vc.ru/dev/286627-avtomatizaciya-vypolneniya-zaprosov-v-sql-s-pomoshchyu-python (дата обращения 08.05.2023)Как подружить Python и базы данных SQL. Подробное руководство - LeoMatyushkin URL: https://proglib.io/p/kak-podruzhit-python-i-bazy-dannyh-sql-podrobnoe-rukovodstvo-2020-02-27 (дата обращения 08.05.2023)
2. Create First GUI Application using Python-Tkinter URL: https://translated.turbopages.org/proxy_u/en-ru.ru.91ef033d-641bedc6-e7e28b79-74722d776562/https/www.geeksforgeeks.org/create-first-gui-application-using-python-tkinter/ (дата обращения 08.05.2023)
3. Создание графического интерфейса на Python 3 с Tkinter URL: https://pythonru.com/uroki/obuchenie-python-gui-uroki-po-tkinter (дата обращения 08.05.2023)
4. Programming with Databases in Python using SQLite - Parul Pandey URL: https://medium.com/analytics-vidhya/programming-with-databases-in-python-using-sqlite-4cecbef51ab9 (дата обращения 08.05.2023)
5. Tkinter — Python interface to Tcl/Tk URL: https://docs.python.org/3/library/tkinter.html (дата обращения 08.05.2023)
6. Введение в Tkinter URL: https://habr.com/ru/post/133337/ (дата обращения 08.05.2023)
7. Автоматизация выполнения запросов в SQL с помощью Python - Официальная документация URL: https://vc.ru/dev/286627-avtomatizaciya-vypolneniya-zaprosov-v-sql-s-pomoshchyu-python (дата обращения 08.05.2023)
8. Как подружить Python и базы данных SQL. Подробное руководство - Leo Matyushkin URL: https://proglib.io/p/kak-podruzhit-python-i-bazy-dannyh-sql-podrobnoe-rukovodstvo-2020-02-27 (дата обращения 08.05.2023)