Всем привет! 🦝 Это продолжение цикла статей про разработку приложения "Дневник Енотика". Сегодня мы установим ещё одно ПО, которое облегчит процесс проектирования БД. А также приступим непосредственно к самому проектированию, сперва погрузимся в теорию. Предыдущую статью можно найти по ссылке ниже.
💿Установка Draw.io
Процесс установки этой программы, пожалуй, самый простой из всего с чем мне приходилось сталкиваться в процессе эксплуатации Astra Linux. Установка очень простая. Переходим на официальный git и скачиваем установочный deb пакет для архитектуры amd64.
После окончания загрузки, переходим в папку с установочным пакетом и кликаем по нему дважды (прям как в Windows). Нас поприветствует Программа для установки пакетов. Нужно будет немного подождать...
На всякий случай рекомендую добавить репозитории Debian в Astra Linux, как это сделать я писал в одной из своих статей.
После ожидания, в появившемся окошке нажимаем на кнопку Установить пакет.
Вводим пароль администратора и дожидаемся окончания процесса установки. После окончания установки, Draw.io добавиться в меню пуск в раздел Графика.
В данной программе весьма удобно рисовать различные диаграммы и блок-схемы. Нам же она понадобиться для рисования структуры нашей будущей БД. Но перед тем, как мы приступим к проектированию БД, давайте добавим в систему Astra Linux CE последнее, что нам понадобиться в разработке приложения - систему управления версиями GIT.
💿Установка системы управления версиями GIT
Я думаю прожжённым разработчикам не стоит объяснять все прелести использования управления версиями (GIT) при разработке программы. Она обеспечивает эффективное управление изменениями, улучшает совместную работу разработчиков и способствует стабильности и целостности проекта. В своей практике я не раз сталкивался с необходимостью отказа изменений и GIT в этом очень помогал.
Для того, чтобы узнать установлен ли в системе GIT, выполним простую команду в терминале:
git --version
Если выведется версия GIT'a значит все хорошо. Если напишет, что команда не найдена, как на скриншоте ниже.
Тогда просто установите GIT из официальных репозиториев Astra Linux CE:
sudo apt install git
Про работу и настройку GIT я напишу в следующих статьях, когда он нам понадобиться
🗜️Проектирование БД
Процесс проектирования базы данных состоит из нескольких этапов:
- Концептуальное проектирование - это процесс определения требований к БД, определение данных, которые БД должна в себе хранить, создание ER-диаграмм, для описания сущностей, а также выявление функций и запросов, которые БД должна поддерживать.
- Логическое проектирование - это уже процесс преобразования концептуальной модели в схему базы данных с использованием нормализации, разделение данных на отдельные таблицы для уменьшения избыточности и обеспечения целостности, определение полей таблиц, ключей и ограничений. Также приведение базы данных к нормальным формам для оптимизации структуры.
- Физическое проектирование - это процесс в котором таблицы уже создаются непосредственно в СУБД, создается так называемая, физическая модель БД. Для таблиц выбираются типы данных, с учетом особенностей конкретной СУБД.
Я описал всё достаточно коротко, старался лить поменьше воды, а так каждый из этапов делиться на подэтапы, а они на подзадачи и огого сколько еще всего интересного. В целом процесс проектирования БД весьма веселое занятие и одновременно скучное. Главное на этапе проектирования БД - это точно знать, что необходимо в ней хранить, дабы на этапе эксплуатации не оказалось, что чего-то не хватает или необходимо по-другому описать объект.
А теперь по порядку и не спеша. Что нам нужно? Нам необходимо создать модель базы данных электронного дневника. Стоит начать с того, что из себя вообще представляет личный дневник.
Личный дневник - это форма записи событий, мыслей, чувств и наблюдений, которые происходят в жизни человека, в нашем случае Енотика :) ... Если немного приплести психологии, а мы тут знаете ли иногда размышляем и на эту тему. То, ведение личного дневника позволяет вспоминать события, происходившие в жизни, и делать рефлексию над ними, что впоследствии помогает в самопознании и личностном развитии. Но вернемся к программированию.
Отлично, уже что-то есть - это запись, как правило состоящая из текста. И из опыта ведения личного дневника добавлю, что каждая запись имеет дату. Давайте отразим наши мысли на ER-диаграмме сущностей.
Как вы могли заметить я добавил ещё один атрибут к сущности это ID. Уникальные идентификаторы это прямая необходимость в базе данных для обеспечения целостности данных. Это так называемый первичный ключ. К слову первичный ключ может быть и составным - это уникальная комбинация нескольких полей таблицы. Но применение составных ключей могут очень усложнить архитектуру запросов. Но что-то мы отвлеклись...
Давайте ещё пофантазируем на тему личного, электронного дневника. Я бы ещё добавил к записям категории. Чтобы можно было отдельно писать про жизненные ситуации и например о работе, в разных категориях. В дальнейшем в интерфейсе программы можно будет организовать фильтрацию по категориям. А ещё к записям было бы неплохо прикреплять фотографии. А уж как мы их будем хранить в базе, это тема для отдельной статьи.
Давайте дополним имеющуюся диаграмму дополнительными атрибутами и немного поменяем форму диаграммы.
🎉У нас получилась сущность Запись. Некоторые прожжённые спецы уже наверно догадались что означают цвета у атрибутов :) ... Ну, а на сегодня всё. Продолжение следует. В следующей статье мы закончим ER-диаграмму, дополнив её остальными сущностями и установим связи между ними. И скорее всего в следующей статье уже приступим к этапу физического проектирования.