Найти в Дзене

Разработка приложения "Дневник Енотика": Часть 1 - Использование Draw.io, установка GIT и Проектирование Базы Данных

Оглавление

Всем привет! 🦝 Это продолжение цикла статей про разработку приложения "Дневник Енотика". Сегодня мы установим ещё одно ПО, которое облегчит процесс проектирования БД. А также приступим непосредственно к самому проектированию, сперва погрузимся в теорию. Предыдущую статью можно найти по ссылке ниже.

💿Установка Draw.io

Процесс установки этой программы, пожалуй, самый простой из всего с чем мне приходилось сталкиваться в процессе эксплуатации Astra Linux. Установка очень простая. Переходим на официальный git и скачиваем установочный deb пакет для архитектуры amd64.

Releases · jgraph/drawio-desktop
-2

После окончания загрузки, переходим в папку с установочным пакетом и кликаем по нему дважды (прям как в Windows). Нас поприветствует Программа для установки пакетов. Нужно будет немного подождать...

-3

На всякий случай рекомендую добавить репозитории Debian в Astra Linux, как это сделать я писал в одной из своих статей.

После ожидания, в появившемся окошке нажимаем на кнопку Установить пакет.

-4

Вводим пароль администратора и дожидаемся окончания процесса установки. После окончания установки, Draw.io добавиться в меню пуск в раздел Графика.

-5

В данной программе весьма удобно рисовать различные диаграммы и блок-схемы. Нам же она понадобиться для рисования структуры нашей будущей БД. Но перед тем, как мы приступим к проектированию БД, давайте добавим в систему Astra Linux CE последнее, что нам понадобиться в разработке приложения - систему управления версиями GIT.

💿Установка системы управления версиями GIT

Я думаю прожжённым разработчикам не стоит объяснять все прелести использования управления версиями (GIT) при разработке программы. Она обеспечивает эффективное управление изменениями, улучшает совместную работу разработчиков и способствует стабильности и целостности проекта. В своей практике я не раз сталкивался с необходимостью отказа изменений и GIT в этом очень помогал.

Для того, чтобы узнать установлен ли в системе GIT, выполним простую команду в терминале:

git --version

Если выведется версия GIT'a значит все хорошо. Если напишет, что команда не найдена, как на скриншоте ниже.

-6

Тогда просто установите GIT из официальных репозиториев Astra Linux CE:

sudo apt install git
-7

Про работу и настройку GIT я напишу в следующих статьях, когда он нам понадобиться

🗜️Проектирование БД

Процесс проектирования базы данных состоит из нескольких этапов:

  1. Концептуальное проектирование - это процесс определения требований к БД, определение данных, которые БД должна в себе хранить, создание ER-диаграмм, для описания сущностей, а также выявление функций и запросов, которые БД должна поддерживать.
  2. Логическое проектирование - это уже процесс преобразования концептуальной модели в схему базы данных с использованием нормализации, разделение данных на отдельные таблицы для уменьшения избыточности и обеспечения целостности, определение полей таблиц, ключей и ограничений. Также приведение базы данных к нормальным формам для оптимизации структуры.
  3. Физическое проектирование - это процесс в котором таблицы уже создаются непосредственно в СУБД, создается так называемая, физическая модель БД. Для таблиц выбираются типы данных, с учетом особенностей конкретной СУБД.

Я описал всё достаточно коротко, старался лить поменьше воды, а так каждый из этапов делиться на подэтапы, а они на подзадачи и огого сколько еще всего интересного. В целом процесс проектирования БД весьма веселое занятие и одновременно скучное. Главное на этапе проектирования БД - это точно знать, что необходимо в ней хранить, дабы на этапе эксплуатации не оказалось, что чего-то не хватает или необходимо по-другому описать объект.

А теперь по порядку и не спеша. Что нам нужно? Нам необходимо создать модель базы данных электронного дневника. Стоит начать с того, что из себя вообще представляет личный дневник.

Личный дневник - это форма записи событий, мыслей, чувств и наблюдений, которые происходят в жизни человека, в нашем случае Енотика :) ... Если немного приплести психологии, а мы тут знаете ли иногда размышляем и на эту тему. То, ведение личного дневника позволяет вспоминать события, происходившие в жизни, и делать рефлексию над ними, что впоследствии помогает в самопознании и личностном развитии. Но вернемся к программированию.

Отлично, уже что-то есть - это запись, как правило состоящая из текста. И из опыта ведения личного дневника добавлю, что каждая запись имеет дату. Давайте отразим наши мысли на ER-диаграмме сущностей.

-8

Как вы могли заметить я добавил ещё один атрибут к сущности это ID. Уникальные идентификаторы это прямая необходимость в базе данных для обеспечения целостности данных. Это так называемый первичный ключ. К слову первичный ключ может быть и составным - это уникальная комбинация нескольких полей таблицы. Но применение составных ключей могут очень усложнить архитектуру запросов. Но что-то мы отвлеклись...

Давайте ещё пофантазируем на тему личного, электронного дневника. Я бы ещё добавил к записям категории. Чтобы можно было отдельно писать про жизненные ситуации и например о работе, в разных категориях. В дальнейшем в интерфейсе программы можно будет организовать фильтрацию по категориям. А ещё к записям было бы неплохо прикреплять фотографии. А уж как мы их будем хранить в базе, это тема для отдельной статьи.

Давайте дополним имеющуюся диаграмму дополнительными атрибутами и немного поменяем форму диаграммы.

-9

🎉У нас получилась сущность Запись. Некоторые прожжённые спецы уже наверно догадались что означают цвета у атрибутов :) ... Ну, а на сегодня всё. Продолжение следует. В следующей статье мы закончим ER-диаграмму, дополнив её остальными сущностями и установим связи между ними. И скорее всего в следующей статье уже приступим к этапу физического проектирования.

Спасибо за прочтение! Всем удачного проектирования!

-10