Разработка пользовательского интерфейса для взаимодействия с базой экспериментальных данных

Основной целью дипломной работы является разработка программы, работающей на платформах Microsoft Windows и Linux и реализующей графический пользовательский интерфейс к базе экспериментальных данных с удобными средствами работы с информацией из базы данных, функционально богатой визуализацией данных, и с загрузкой и выгрузкой данных в виде файлов заданных форматов
Author image
Timur
Тип
Дипломная работа
Дата загрузки
15.01.2023
Объем файла
1677 Кб
Количество страниц
38
Уникальность
Неизвестно
Стоимость работы:
2400 руб.
3000 руб.
Заказать написание работы может стоить дешевле

ВВЕДЕНИЕ

В настоящее время во многих образовательных учреждениях проводятся научные исследования при помощи автоматизированных экспериментальных установок. За десятилетия накоплены огромные объёмы результатов различных экспериментов, которые обычно хранятся в архивах без какой-либо систематизации и описания, и доступны для понимания только автору этих измерений. Найти и обработать первичные данные по информации, опубликованной в статье пятилетней давности, по трудозатратам часто сравнимо с проведением аналогичных повторных измерений. 
Современные технологии, безусловно, шагнули вперед и помогают в работе с такого рода информацией. Поскольку полученные экспериментальные данные необходимо хранить надёжно, но при этом обрабатывать и визуализировать из любого места, где находится исследователь, в современном мире было бы уместно использовать сетевые базы данных и удобный пользовательский интерфейс для работы с ними. Это облегчает и ускоряет работу с результатами экспериментов, позволяет сохранить целостность и доступность информации, а также помогает в интерпретации проведенных экспериментов с помощью визуализации на графиках.
В нашем Петрозаводском государственном университете в физико-техническом институте на кафедре физики твердого тела в учебно-научной лаборатории спектроскопии производятся исследования на автоматизированных спектрометрических установках на базе монохроматоров МДР-23 и SL100M, а также с использованием ИК-спектрометра ФТ-801.
Исторически сложилось так, что у каждой установки свой формат сохранения экспериментальных данных, но иногда очень важно собрать и хранить информацию о каком-либо конкретном объекте исследования со всех трёх установок и проанализировать её в виде наложенных друг на друга графиков (если это позволяет физический смысл эксперимента). 

Содержание

ВВЕДЕНИЕ 5

ГЛАВА I. Литературный обзор 7

1.1. Разновидности баз данных 7

1.2. SQL 9

1.3. СУБД 10

1.4. Языки программирования общего назначения 15

1.5. ORM для Python 17

1.6. Библиотека PyQT – доступ к программированию функционально богатых графических интерфейсов пользователя. 18

1.7. Обоснование выбора конкретных программных средств 19

1.7.1. Выбор языка программирования 20

1.7.2. Выбор СУБД 20

1.7.3. Выбор фреймворка для разработки графического интерфейса 21

1.7.4. Выбор ORM для работы с базой данных на Python 22

ГЛАВА II. Практическая часть 23

2.1. Структура базы данных 23

2.2. Разработка графического интерфейса для вывода экспериментальных данных на графиках 26

2.3. Разработка взаимодействия с базой данных 31

2.4. Разработка доступа к файлам с экспериментальными данными 49

2.5. Апробация программы * 51

2.6. Проведение тестирования программы 52

2.7. Вид интерфейса программы в Windows и Linux 53

ЗАКЛЮЧЕНИЕ 57

Список литературы 58

Список литературы

1. Database development URL: https://it-s.com/what-is-database-development/ (дата обращения 1.05.22)

2. SearchDataManagement URL: https://www.techtarget.com/searchdatamanagement/definition/database (дата обращения 1.05.22)

3. Базы данных и системы управления базами данных URL: http://www.kgau.ru/istiki/umk/ituman/textbox/bdrelatl.htm (дата обращения 1.05.22)

4. OCI // What Is a Database? URL: https://www.oracle.com/cloud/ (дата обращения 3.05.22)

5. javaTpoint // Types of Databases URL: https://www.javatpoint.com/types-of-databases (дата обращения 3.05.22)

6. Джанго Журнал // 7 основных типов баз данных URL: https://jino.ru/journal/articles/7-baz-dannyh/ (дата обращения 3.05.22)

7. Модели транзакций // Свойства транзакций. Способы завершения транзакций URL: http://bourabai.ru/dbt/dbms/11.htm (дата обращения 3.05.22)

8. NOP // Выбор между SQL и NoSQL: ACID и CAP, схема и транзакции транзакций URL: https://nuancesprog.ru/p/14796/ (дата обращения 3.05.22)

9. Business news daily // What Is SQL? URL:  https://www.businessnewsdaily.com/5804-what-is-sql.html (дата обращения 6.05.22)

10. W3schools // Introduction to SQL URL: https://www.w3schools.com/sql/sql_intro.asp (дата обращения 6.05.22)

11. Britannica // SQLcomputer language URL: https://www.britannica.com/technology/SQL (дата обращения 6.05.22)

12. Altexsoft // Comparing Database Management Systems: MySQL, PostgreSQL, MSSQL Server, MongoDB, Elasticsearch, and others URL: https://www.altexsoft.com/ (дата обращения 10.05.22)

13. MariaDB // About MariaDB Software URL: https://mariadb.com/kb/en/about-mariadb-software/ (дата обращения 10.05.22)

14. Cmputer Hope free computer help since 1998 // General-purpose language URL: https://www.computerhope.com/jargon/g/generalp.htm (дата обращения 11.05.22)

15. >hackr.io // C# vs Python URL: https://hackr.io/blog/c-sharp-vs-python (дата обращения 11.05.22)

16. Guru99 // Python vs C++: What’s the Difference? URL:  https://www.guru99.com/python-vs-c-plus-plus.html (дата обращения 11.05.22)

17. Simpplilearn // C++ Vs. Python: Overview, Uses & Key Differences URL: https://www.simplilearn.com/tutorials/cpp-tutorial/cpp-vs-python# (дата обращения 11.05.22)

18. GeeksforGeeks // Difference between Python and C++ URL: https://www.geeksforgeeks.org/difference-between-python-and-c/ (дата обращения 11.05.22)

19. Courser // What Is Python Used For? A Beginner’s Guide URL: https://www.coursera.org/articles/what-is-python-used-for-a-beginners-guide-to-using-python (дата обращения 11.05.22)

20. Geekycodes // Python Programming Language URL: https://geekycodes.in/python/ (дата обращения 11.05.22)

21. Wikipedia // Список ORM-библиотек URL: https://ru.wikipedia.org/wiki (дата обращения 13.05.22)

22. Medium // How I built a simple ORM from scratch in Python URL: https://levelup.gitconnected.com/how-i-built-a-simple-orm-from-scratch-in-python-18b50108cfa3 (дата обращения 13.05.22)

23. Medium // ORM for Python URL: https://medium.com/pragmatech/orm-for-python-b63cfbc39e7f (дата обращения 13.05.22)

24. EBSintegrator // Pro-Tip: Django ORM vs SQLAlchemy in 2021 URL: https://ebs-integrator.com/blog/django-orm-vs-sql-alchemy (дата обращения 13.05.22)

25. PythonCentral // Python’s SQLAlchemy vs Other ORMs URL: https://www.pythoncentral.io/sqlalchemy-vs-orms/ (дата обращения 13.05.22)

26. Auth0 // SQLAlchemy ORM Tutorial for Python Developers URL: https://auth0.com/blog/sqlalchemy-orm-tutorial-for-python-developers/ (дата обращения 13.05.22)

27. SQLObject vs SQLAlchemy URL: https://turbogears.org/1.0/docs/SQLObject/VsSQLAlchemy.html#\ (дата обращения 13.05.22)

28. Tutorialspoint // PyQt URL: Tutorial URL: https://www.tutorialspoint.com/pyqt/index.htm (дата обращения 17.05.22)

29. Eternalost // Популярные инструменты Python: библиотеки и фреймворки URL: https://eternalhost.net/blog/razrabotka/python-biblioteki htm (дата обращения 17.05.22)

30. GeeksforGeeks // Python GUI – PyQt VS TKinter URL: https://www.geeksforgeeks.org/python-gui-pyqt-vs-tkinter/ (дата обращения 17.05.22)

31. Python Pyqt // Learn Python PyQt URL:https://pythonpyqt.com/ (дата обращения 17.05.22)

32. Developer resources // PyQT Vs Tkinter: Differences Between Python GUI URL: https://ssiddique.info/pyqt-vs-tkinter.html (дата обращения 17.05.22)

33. Python и экспериментальные исследования. URL: http://py.scilink.ru/vvedenie/ (дата обращения: 1.05.2022)

34. PyQtGraph // Scientific Graphics and GUI Library for Python URL: https://www.pyqtgraph.org/  (дата обращения: 17.05.22)

Существует обширный список типов данных, которые поддерживает PostgreSQL. Помимо числовых, с плавающей запятой, строковых, логических типов и типов даты (и многих других вариантов внутри них), PostgreSQL также поддерживает uuid, денежные, нумерованные, геометрические, двоичные, сетевые адреса, битовые строки, текстовый поиск, xml, json., массив, составной и диапазонный типы, а также некоторые внутренние типы для идентификации объекта и местоположения журнала. 
Конечно, MySQL, MariaDB и Firebird имеют некоторые из них в разной степени, но только PostgreSQL поддерживает их все.
Исходя из вышеперечисленных плюсов PostgreSQL, а также его широкой поддержке языком Python и его библиотеками (например, драйверы к базе данных, различные ORM и пр.) было принято решение, что для реализации поставленной цели данной работы данная СУБД будет являться хорошим вариантом, по сравнению с другими СУБД. При этом важно отметить, что СУБД PostgreSQL развёрнута на выделенном сервере с доменным именем scilink.ru, который теоретически доступен Интернет-пользователю из любой точки мира. Таким образом, база данных, созданная на этом сервере, может быть доступна через приложение не только из лабораторий ПетрГУ, что увеличивает эффективность представленной разработки. И, наконец, существует приложение для доступа к ранней версии базе данных, написанные для Android-устройств студентами прошлых лет. Однако функциональность этого приложения достаточно низкая: оно может только просматривать список записей и выводить графики формата только одной экспериментальной установки.