Файл: Создание программы обработки финансовых данных работы сотрудников нии, в визуальной системе программирования.doc
Добавлен: 29.10.2023
Просмотров: 54
Скачиваний: 3
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
[2].
1.2 Реляционные базы данных
Базы данных (далее БД) создаются для систематизирования и структурирования больших объемов информации, чтобы потом извлекать необходимые данные быстро и в любых сочетаниях. Реляционная база данных – это связанная информация, хранящаяся в двумерных таблицах. Ячейки таблицы являются пересечением строк и столбцов. В БД каждый столбец имеет свое ключевое имя, по которому и происходит обращение к нужному столбцу или элементу в столбце.
Системы управления базами данных (СУБД) – это программное обеспечение для создания, поддержки БД и доступа к ней. В данной работе будет использоваться СУБД SQLite3, так как язык программирования Python имеет встроенный модуль для работы с SQLite3 и она является наиболее удобной для знакомства с программированием баз данных. SQLite3 поддерживает следующие типы данных: целые числа (integer), вещественные числа (real), строковый тип (text), бинарные данные (blob).
Доступ к БД осуществляется с помощью объекта-соединения. Объект-соединение получают путем вызова функции connect( ). Если указанной БД для него не существует, то она будет создана. Объект-соединение имеет следующие методы:
Метод close( ) закрывает соединение с текущей БД [4].
Метод commit( ) завершает транзакцию и сохраняет изменения. Транзакция – это одна или несколько операций, изменяющих БД [4].
Метод rollback( ) откатывает начатую транзакцию и восстанавливает исходное состояние БД
[4].
Метод cursor( ) возвращает объект-курсор, использующий данное соединение. Курсор хранит информацию о текущей таблице и записи, может быть связан с выполнением только одного SQL-запроса в текущий момент времени, служит для работы с результатами запроса [4].
Для работы с БД в программе будет использован атрибут объекта курсора execute( ), который преобразовывает SQL-команду в строке в исполняемый код.
Основные SQL-команды:
Результаты выборок передаются в виде кортежей.
1.3 Графический интерфейс пользователя
Графический интерфейс пользователя (в дальнейшем GUI) позволяет осуществлять взаимодействие человека с программой в форме диалога с использованием окон, меню и элементов управления (диалоговых панелей, кнопок и т. д.) вместо использования текстовых команд. В настоящее время программы, написанные без использования GUI не актуальны. Разработано много различных вариантов GUI со своими достоинствами и недостатками, поддерживающих различные языки программирования.
Для языка Python существует много различных GUI-библиотек, их полный список представлен на официальном сайте. Наиболее проверенными и популярными кросс-платформенными библиотеками являются PyQt и Tkinter. PyQt является привязкой Qt к языку Python. Qt помимо классов графического интерфейса содержит много различных модулей, Tkinter – исключительно GUI. Tkinter более старая и ограниченная библиотека, чем Qt. PyQt более универсален, чем Tkinter, подходит для проектов высокой сложности, имеет более широкую базу компонентов и более красивый их внешний вид, по нему легче найти документацию примеры использования. По результатам сравнения для разработки визуального интерфейса было решено использовать в данной программе PyQt [11].
В работе были использованы следующие компоненты PyQt:
Создание и управление окном производится посредством класса QWidjet. QWidjet является базовым классом для всех компонентов, поэтому любой компонент, не имеющий родителя будет обладать собственным окном[5].
Надпись – элемент, содержащий текст, может применяться для информирования, вывода подсказок, содержания html-текста и т.д., реализуется классом QLabel. В данной программе используется для подписей полей в окне добавления записи в БД.
Командная кнопка реализуется с помощью класса QPushButton. При нажатии на командную кнопку создается сигнал, при получении которого указанная в методе connect( ) функция выполняет содержащиеся в ней инструкции. В данной программе используется для запуска функций удаления, добавления, редактирования записей и поиска.
Однострочное текстовое поле предназначено для ввода и редактирования текста небольшого объема, реализуется классом QLineEdit[5]. В данной программе используется для ввода строки, по которой будет осуществляться поиск и для ввода значений новой записи.
С помощью класса QComboBox реализуется раскрывающийся список, предоставляющий возможность выбора элемента. В данной программе используется для выбора условий поиска по диапазону.
Класс QGridLayout позволяет выровнять элементы в окне по сетке. В данной программе используется для расположения элементов в обоих окнах.
Таблица реализуется с помощью класса QTableView. Позволяет отобразить данные из БД, не нарушая их структуры. В данной программе используется для визуализации данных БД и их редактирования путем ввода нового значения в ячейку.
1.2 Реляционные базы данных
Базы данных (далее БД) создаются для систематизирования и структурирования больших объемов информации, чтобы потом извлекать необходимые данные быстро и в любых сочетаниях. Реляционная база данных – это связанная информация, хранящаяся в двумерных таблицах. Ячейки таблицы являются пересечением строк и столбцов. В БД каждый столбец имеет свое ключевое имя, по которому и происходит обращение к нужному столбцу или элементу в столбце.
Системы управления базами данных (СУБД) – это программное обеспечение для создания, поддержки БД и доступа к ней. В данной работе будет использоваться СУБД SQLite3, так как язык программирования Python имеет встроенный модуль для работы с SQLite3 и она является наиболее удобной для знакомства с программированием баз данных. SQLite3 поддерживает следующие типы данных: целые числа (integer), вещественные числа (real), строковый тип (text), бинарные данные (blob).
Доступ к БД осуществляется с помощью объекта-соединения. Объект-соединение получают путем вызова функции connect( ). Если указанной БД для него не существует, то она будет создана. Объект-соединение имеет следующие методы:
-
close( ); -
commit( ); -
rollback( ); -
cursor( ).
Метод close( ) закрывает соединение с текущей БД [4].
Метод commit( ) завершает транзакцию и сохраняет изменения. Транзакция – это одна или несколько операций, изменяющих БД [4].
Метод rollback( ) откатывает начатую транзакцию и восстанавливает исходное состояние БД
[4].
Метод cursor( ) возвращает объект-курсор, использующий данное соединение. Курсор хранит информацию о текущей таблице и записи, может быть связан с выполнением только одного SQL-запроса в текущий момент времени, служит для работы с результатами запроса [4].
Для работы с БД в программе будет использован атрибут объекта курсора execute( ), который преобразовывает SQL-команду в строке в исполняемый код.
Основные SQL-команды:
-
создание таблицы в БД – CREATE TABLE <имя таблицы> (<имя поля 1 тип поля>, <имя поля 2 тип поля>, …); -
добавление записи в таблицу БД – INSERT INTO <имя таблицы> VALUES (‘<значение 1>’, ‘<значение 2>’, …); -
выборка из таблицы БД по условию – SELECT (список полей, включенных в выборку) FROM <имя таблицы> WHERE <имя поля > = <значение>; -
выборка из таблицы БД с сортировкой – SELECT (список полей, включенных в выборку) FROM <имя таблицы> ORDER BY <имя поля, по которому производится сортировка>; -
удаление записей из таблицы БД по условию – DELETE FROM <имя таблицы> WHERE <имя поля> = <значение>; -
изменение записей в таблице БД по условию – UPDATE <имя таблицы> SET <имя изменяемого поля> = <новое значение> WHERE <имя поля> = <значение>.
Результаты выборок передаются в виде кортежей.
1.3 Графический интерфейс пользователя
Графический интерфейс пользователя (в дальнейшем GUI) позволяет осуществлять взаимодействие человека с программой в форме диалога с использованием окон, меню и элементов управления (диалоговых панелей, кнопок и т. д.) вместо использования текстовых команд. В настоящее время программы, написанные без использования GUI не актуальны. Разработано много различных вариантов GUI со своими достоинствами и недостатками, поддерживающих различные языки программирования.
Для языка Python существует много различных GUI-библиотек, их полный список представлен на официальном сайте. Наиболее проверенными и популярными кросс-платформенными библиотеками являются PyQt и Tkinter. PyQt является привязкой Qt к языку Python. Qt помимо классов графического интерфейса содержит много различных модулей, Tkinter – исключительно GUI. Tkinter более старая и ограниченная библиотека, чем Qt. PyQt более универсален, чем Tkinter, подходит для проектов высокой сложности, имеет более широкую базу компонентов и более красивый их внешний вид, по нему легче найти документацию примеры использования. По результатам сравнения для разработки визуального интерфейса было решено использовать в данной программе PyQt [11].
В работе были использованы следующие компоненты PyQt:
-
окно; -
надпись; -
командная кнопка; -
однострочное текстовое поле; -
раскрывающийся список; -
менеджер компоновки; -
таблица.
Создание и управление окном производится посредством класса QWidjet. QWidjet является базовым классом для всех компонентов, поэтому любой компонент, не имеющий родителя будет обладать собственным окном[5].
Надпись – элемент, содержащий текст, может применяться для информирования, вывода подсказок, содержания html-текста и т.д., реализуется классом QLabel. В данной программе используется для подписей полей в окне добавления записи в БД.
Командная кнопка реализуется с помощью класса QPushButton. При нажатии на командную кнопку создается сигнал, при получении которого указанная в методе connect( ) функция выполняет содержащиеся в ней инструкции. В данной программе используется для запуска функций удаления, добавления, редактирования записей и поиска.
Однострочное текстовое поле предназначено для ввода и редактирования текста небольшого объема, реализуется классом QLineEdit[5]. В данной программе используется для ввода строки, по которой будет осуществляться поиск и для ввода значений новой записи.
С помощью класса QComboBox реализуется раскрывающийся список, предоставляющий возможность выбора элемента. В данной программе используется для выбора условий поиска по диапазону.
Класс QGridLayout позволяет выровнять элементы в окне по сетке. В данной программе используется для расположения элементов в обоих окнах.
Таблица реализуется с помощью класса QTableView. Позволяет отобразить данные из БД, не нарушая их структуры. В данной программе используется для визуализации данных БД и их редактирования путем ввода нового значения в ячейку.