Визуализируем разработку БД PostgreSQL

в 7:21, , рубрики: postgresql, Песочница, метки:

Ни для кого не секрет, что проектирование структуры БД является одной из основных и порой очень трудозатратных задач при разработке любого ПО, работающего с данными. Все мы так или иначе проектируем БД, пытаясь представить себе схему взаимосвязей таблиц, а зачастую рисуем, визуализируем структуру БД, прежде чем перенести ее в СУБД. Для моделирования баз данных MySQL есть MySQL Workbench, поставляемый разработчиком, для MS SQL есть Database Diagrams; я до недавнего времени пользовался Dia, а кто-то, может быть, использует для этих целей MS Visio. Но для PostgreSQL я не встречал ни одного адекватного решения, которое позволяло бы максимально просто и точно перенести наброски структуры БД в код ее создания в самой СУБД.

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

Визуализируем разработку БД PostgreSQL

Итак… (текст, много картинок)

Хочу представить вам opensource продукт, распространяемый по лицензии GNU General Public License 3, под названием pgModeler.

Автор официально заявляет, что его продукт (приближенный перевод):

  1. Прост в использовании
    Легко создавать и редактировать модели БД с помощью простого и интуитивно понятного интерфейса;
  2. Поддерживает различные версии PostgreSQL
    Смоделируйте БД один раз, а затем просто экспортируйте в свою версию СУБД. В состав pgModeler входят методы генерации кода, которые дают возможность Вашим моделям быть выгруженными для различных версий PostgreSQL;
    Визуализируем разработку БД PostgreSQL
  3. Кроссплатформенный
    Написанный с помощью Qt, pgModeler может быть скомпилирован для Windows, Linux и MacOSX. Скрипты сборки легко конфигурабельны, что помогает разрешить специфические зависимости в каждой системе;
    Визуализируем разработку БД PostgreSQL
  4. Может быть функционально расширен с помощью плагинов
    Если Вам понадобится какой-то дополнительный функционал, то Вы легко сможете реализовать его в виде плагина к pgModeler. Шаблон плагина и документация любезно включена в сборку;
  5. Является открытым ПО
    Ссылка на исходный код, расположенный на гитхабе, видна на официальном сайте невооруженным глазом.

Вы все (кроме самых любопытных, которые уже сходили по ссылке на официальную страницу), наверное, спросите, чем же уникален этот продукт?

Давайте посмотрим (картинки кликабельны).

Визуализируем разработку БД PostgreSQL

Визуализируем разработку БД PostgreSQL

Визуализируем разработку БД PostgreSQL

Визуализируем разработку БД PostgreSQL

Визуализируем разработку БД PostgreSQL

Что ж, на вид все очень даже вкусно, но так ли это на самом деле? Предлагаю создать тестовую базу.

Для начала необходимо зарегистрировать новое подключение к СУБД в настройках (Меню->Edit->Configurations->Connections):
Визуализируем разработку БД PostgreSQL

Добавим новую роль для нашей тестовой БД. Для этого в древовидном представлении справа необходимо вызвать контекстное меню от самой БД:
Визуализируем разработку БД PostgreSQL

Базу автоматически создавать не будем:
Визуализируем разработку БД PostgreSQL
да, ID для роли придется добавить вручную.

Далее добавляем новую схему:
Визуализируем разработку БД PostgreSQL
Визуализируем разработку БД PostgreSQL

Давайте обусловимся, что в БД у нас будут храниться информация о товарах на складах. Без движений, без остатков, просто реализуем принадлежность товара к определенному складу.

Создаем новую таблицу. Это можно сделать, например, из контекстного меню, вызванного от рабочей области (клетчатое поле):
Визуализируем разработку БД PostgreSQL

В конструкторе создания таблицы можно сразу указать все необходимые колонки, ограничения, триггеры, правила и индексы:
Визуализируем разработку БД PostgreSQL

После принятия всех параметров таблицы она отобразится в рабочей области:
Визуализируем разработку БД PostgreSQL

Создаем таблицу товаров:
Визуализируем разработку БД PostgreSQL
Не стоит создавать колонку для связи двух таблиц. Конструктор это сделает за нас.

Для связи двух таблиц предусмотрено несколько типов отношений:
Визуализируем разработку БД PostgreSQL

Создаем отношение 1-ко-Многим:
Визуализируем разработку БД PostgreSQL

На схеме оно будет выглядеть вот так:
Визуализируем разработку БД PostgreSQL

Теперь мы можем выгрузить нашу схему в файл-скрипт создания, в файл-картинку или напрямую в СУБД:
Визуализируем разработку БД PostgreSQL

а также посмотреть (без возможности изменить) скрипт создания БД для любой из поддерживаемых версий СУБД в нативном формате и в формате XML (в контекстном меню от базы данных в древовидной структуре справа):
Визуализируем разработку БД PostgreSQL

Честно говоря, исходный код можно увидеть для каждой сущности базы данных, будь то роль, схема, база данных или просто таблица.

В качестве заключения

Что ж, заявленные автором возможности данного ПО вполне себя оправдывают. Все очень интуитивно и просто.

Данный проект сейчас находится в версии v0.4.0-rc1 и активно развивается. Функционал достаточно богат, но возможны некоторые баги и недоработки, кои, впрочем, я пока не встретил.

Думаю, pgModeler придется по вкусу всем тем, кто выбирает для своих проектов PostgreSQL в качестве основной СУБД, и он поможет вам в моделировании и визуализации ваших баз данных.


PS: я не являюсь автором pgModeler.
PPS: c автором вы можете связаться сами.

Автор: bvn13

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js