
- •Введение
- •Краткое описание предметной области
- •2 Описание входных документов для заполнения базы данных
- •Выделение сущностей
- •4 Анализ сущностей и связей между ними
- •5 Описание пользователей информационной системы
- •Заполнение таблицы transactions
- •7 Составление запросов к базе данных и их инкапсуляция в процедуры
- •8 Описание выходных документов
- •9 Триггеры
- •10 Проектирование пользовательского интерфейса
- •11 Обработка данных
- •12 Заключение
- •Список использованных источников
- •Приложение а. Первоначальное наполнение таблиц базы данных
- •Приложение б. Код функциия для заполнения таблицы transactions
- •Приложение в. Полный код для генерации пользовательского интерфейса
- •Приложение г. Код функций для выполнения запросов к бд
- •Приложение д. Код создание бд
4 Анализ сущностей и связей между ними
Была создана ER-модель данной базы данных. Модель сущностных отношений (ER Modeling) – модель данных, позволяющая описывать концептуальные схемы предметной области. ER-модель используется при высокоуровневом (концептуальном) проектировании баз данных[15].
В ER-модели связи делятся на три типа по множественности:
один-к-одному;
один-ко-многим;
многие-ко-многим.
Связь «один-к-одному» означает, что экземпляр одной сущности связан только с одним экземпляром другой сущности.
Связь «один-ко-многим» означает, что один экземпляр сущности, расположенный слева по связи, может быть связан с несколькими экземплярами сущности, расположенными справа по связи.
Связь «многие-ко-многим» означает, что один экземпляр первой сущности может быть связан с несколькими экземплярами второй сущности, и наоборот, один экземпляр второй сущности может быть связан с несколькими экземплярами первой сущности.
ER-модель созданной базы данных представлена на рисунке 1.
Рисунок 1 – ER-диаграмма базы данных
Первоначальное содержимое таблиц представлено в приложении А.
5 Описание пользователей информационной системы
В контексте системы управления финансовыми операциями в банке, база данных представляет собой критически важный ресурс, содержащий конфиденциальную и чувствительную информацию о клиентах, их счетах, транзакциях и финансовых потоках. Учитывая высокую степень ответственности и значимость этой информации, а также строгие требования к безопасности, тип пользователей базы данных ограничивается только одним - администратором с полным доступом к базе данных.
В условиях, когда финансовые потоки и персональные данные клиентов являются объектом повышенного внимания для потенциальных злоумышленников, строгий контроль за доступом к базе данных становится важным мероприятием по обеспечению безопасности информации.
Только сотрудники банка, обладающие специальными полномочиями и доступом к системе, могут эффективно следить за состоянием банковской системы, проводить анализ финансовых потоков, а также принимать меры по предотвращению и расследованию возможных злоупотреблений или преступлений.
Предоставление полного доступа к базе данных только администратору обеспечивает контролируемый и защищенный уровень доступа к конфиденциальной информации, минимизируя риски несанкционированного доступа или утечки данных. Такая стратегия доступа также облегчает аудит действий пользователей и обеспечивает соблюдение требований по защите информации в соответствии с законодательством и стандартами безопасности в области финансовых услуг.
Заполнение таблицы transactions
Для тестирования работы базы данных, все таблицы были наполнены случайными записями. Также, была разработана функция, которая позволяет по нажатию кнопки в пользовательском интерфейсе заполнить таблицу “transactions” случайным количеством новых транзакций на день. Код функции представлен в приложении Б. Данная функция работает следующим образом:
1. Генерация случайного количества транзакций:
- В начале функция генерирует случайное количество транзакций от 1 до 1000.
2. Выбор потенциальных отправителей и получателей:
- Затем из таблицы bank_accounts выбираются счета, которые могут быть использованы как отправители (с account_type равным 2 в случае покупки или 4 в случае пополнения наличными через банкомат) и как получатели (с account_type равным 1 или 3 в случае покупки или в случае снятия наличных через банкомат).
3. Цикл для генерации случайных транзакций:
- Функция запускает цикл, который повторяется n_transactions раз.
- Для каждой транзакции генерируются сумма, дата и время.
- Определяется отправитель и получатель транзакции.
- Информация о транзакции добавляется в таблицу transactions.
4. Коммит[16] изменений:
- После каждой успешно добавленной транзакции происходит коммит изменений в базу данных с помощью метода conn.commit()[17].
5. Обработка исключений:
- Если в процессе выполнения возникает ошибка, она обрабатывается с помощью конструкции try-except[18]. Если возникает ошибка, она печатается в консоль, и выполнение функции продолжается с помощью ключевого слова continue[19].