LINUX.ORG.RU

Визуализация связей таблиц в базе данных postgres

 ,


0

1

Здравствуйте, подскажите пожалуйста каким инструментом удобнее всего визуализировать связи между полями таблиц в выбранной базе данных. Беглый поиск выдал в качестве инструмента DbVisualizer. Он умеет генерировать png. Но удобнее было бы генерировать текст c визуализацией связей между полями таблиц. В качестве примера:

+------------+         +-----------------+
| fraktsedel |         | fraktsedel_data |
+------------+         +-----------------+
| koda       |<--------| fraktsedel_koda |
| tid        |         | belopp          |
+------------+         +-----------------+


DBeaver. Эта программа просто спасение после адски тормознутой четвёртой версии pgadmin.

ox55ff ★★★★★
()
Ответ на: комментарий от mydibyje

Большое спасибо за ссылку. По описанию Graphviz может либо png либо svg. Но у него очень обширный и удобный функционал. В работе однозначно пригодится.

Попробую ещё в сторону tikz посмотреть. По идее latex может всё.

shimajima
() автор топика

Он умеет генерировать png. Но удобнее было бы генерировать текст c визуализацией связей между полями таблиц.

В качестве примера: (картинка с псевдографикой)

Так может, тебе вообще ER-диаграмма на выходе нужна? Там и картинки, и текст. Если да, то надо гуглить что-то типа «postgresql reverse engineer er diagram».

Первой ссылкой, правда, выдаётся обсуждение того же самого DbVisualizer, но можно поискать ещё. В нём, кстати, не только PNG, я так понял, можно и SQL вытащить, и не только.

Ещё по этому запросу находится ERBuilder:

ERBuilder can generate ER diagram from PostgreSQL databases (reverse engineer feature).

hobbit ★★★★★
()
Последнее исправление: hobbit (всего исправлений: 3)
Ответ на: комментарий от shimajima

По идее latex может всё.

По идее — да. Зависит от задачи. Если тебе нужно эту БД представить в какой-то удобной лично для тебя форме, есть смысл взять универсальный инструмент. И в качестве промежуточного материала тогда есть смысл дербанить сам SQL, его можно хоть pgadmin-ом вытащить.

А если тебя устраивает ER-модель c текстовой расшифровкой — смотри на готовые инструменты, ссылки на которые давали, в т.ч. я.

Но вообще самый удобный инструмент для ER, в т.ч. с реверс-инжинирингом, который я видел — это проприетарный Visual Paradigm. Есть под линукс, в полной версии довольно дорогой, но версий у него много, надо таблицу фич смотреть.

hobbit ★★★★★
()
Последнее исправление: hobbit (всего исправлений: 1)

Так-то я понял, то, что ты хотел — это именно ER-диаграмма, но в «псевдографическом» формате, чтобы из любого текстового редактора можно было невозбранно копировать имена таблиц, полей и др., при этом сохранив наглядность.

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

Всё же такие вещи лучше вертеть и изучать в специальном ER-редакторе, если оттуда надо какие-то названия срисовывать. А если не надо срисовывать, а надо только смотреть — то и экспорт в растр сойдёт.

hobbit ★★★★★
()
Ответ на: комментарий от shimajima

Да, погуглил, plain text для связей там только типа такого:

SYS_FK_10128                               [foreign key, with no action]
  ID <--(0..many) PUBLIC.BOOKS.BOOKAUTHORS.BOOKID  

mydibyje ★★★★
()
Ответ на: комментарий от hobbit

Спасибо за развёрнутый ответ. Изучаю ERBuilder. По поводу неудобства текстового представления больших баз данных - вы правы. Однако моя задача проста. Хочется чтобы изменения в документации касаемо баз данных нормально учитывались в гите. Ну и git diff выводил бы осмысленный лог. Коммитить картинки можно, но что в них поменялось - не особо понятно. А игра «найди десять отличий» на больших проектах несколько утомляет.

shimajima
() автор топика
Ответ на: комментарий от shimajima

Да, тогда PNG не катят. А вот ER-модели в структурированном виде — вполне.

Хочется чтобы изменения в документации касаемо баз данных нормально учитывались в гите. Ну и git diff выводил бы осмысленный лог.

Вот с псевдографикой он совершенно точно осмысленным не будет. Какие-то куски линий вперемежку со знакомыми словами.

XML (в который сохраняет ER-диаграммы тот же Visual Paradigm) в этом смысле куда предпочтительнее, ИМХО. Я делал дифф, появились новые атрибуты — они там видны, в более-менее человеческом виде. Но тут надо смотреть осторожно. ER-редакторы зачастую позволяют сохранять модель в разных вариантах, из них надо выбрать text-based, тот же XML, например, и даже XML в VP есть разных видов. Про ERBuilder не знаю, надо смотреть, в чём он сохраняет…

А игра «найди десять отличий» на больших проектах несколько утомляет.

С этим полностью согласен.

hobbit ★★★★★
()
Последнее исправление: hobbit (всего исправлений: 2)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.