Инструмент для того, чтобы автоматически генерировать и разметить диаграмму сущностей и связей?

Я видел много инструментов, которые могут перепроектировать ERD от существующей базы данных, но я не смог найти тот, который способен к автоматической разметке схемы разумным способом. Большинство из них просто шлепается все объекты вниз друг на друге и прекращает дело. Некоторые предпринимают попытку организации объектов, но они не делают очень хорошего задания ее.

Есть ли какой-либо инструмент там, который перепроектирует структуру существующей базы данных и затем автоматически разметит ее способом, который легко понять и показывает организацию базы данных? Если бы я должен был сделать такой инструмент, то у меня был бы он, минимизируют длину строк, соединяющих объекты, минимизируют количество строк, которые пересекают друг друга и заставляют группы связанных объектов стоять друг из друга. Я также попытался бы вывести, какие таблицы являются справочными таблицами, которые mana-many промежуточные таблицы, и т.д. и размечают объекты, таким образом, что эти роли очевидны для человека, смотрящего на схему.

У меня точно нет финансирования для создания вышеупомянутого, но у меня действительно есть некоторое финансирование для покупки инструмента как этот, если это хорошо.

Править: Я должен упомянуть, что пытаюсь схематически изобразить базу данных с 100 + таблицы, таким образом, я хотел бы автоматизировать как можно больше ее. База данных не является той, с которой я очень знаком, таким образом, я надеюсь извлекать уроки из рассмотрения схемы вместо того, чтобы вывести то, что я знаю в схему (который, кажется, то, что большинство инструментов схематического изображения разработано для).

7
задан 17.11.2009, 19:46

4 ответа

Пока у Вас есть внешние ключи в Вашей базе данных, я нашел, что Visio делает довольно хорошее задание. У меня была postgresql база данных приблизительно с 150 таблицами из четырех различных объединенных проектов, которые были соединены через различные внешние ключи, и она сделала потрясающее задание извлечения всех отношений и собирания в группу таблиц. Схема имела только несколько перекрывающихся строк несмотря на обширные внешние ключи. Кроме того, из-за внешних ключей логические элементы группировались приятно, это было ясно который базы данных большинство таблиц, порожденных в.

2
ответ дан 07.12.2019, 15:11

вероятно, зависит, на которой базе данных Вы используете. Я попробовал это Microsoft SQL Server Management Studio, и он создает и размечает схему. Я не могу действительно сказать, отвечает ли это Вашим требованиям, но специальный выпуск свободен, таким образом, всегда возможно испытать его.

0
ответ дан 07.12.2019, 15:11

Я использовал Друида для этого в прошлом и был очень удовлетворен. Это - открытый исходный код / свободный, и можно переместить объекты в схему вокруг. UI может взять маленькое привыкание к, все же.

0
ответ дан 07.12.2019, 15:11

SchemaCrawler автоматически генерирует схемы от баз данных, с помощью GraphViz. Действительная мощность SchemaCrawler - это

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

Просто загрузите SchemaCrawler, поместите его куда-нибудь в Ваш путь Java и выполните его следующим образом:

java -classpath $(echo ../../_schemacrawler/lib/*.jar | tr ' ' ':') schemacrawler.Main -server=mysql -database=your_database_in_localhost -user=your_user -password=your_password -infolevel=maximum -command=graph -outputformat=pdf -outputfile=my_database_diagram.pdf $*

Заметьте также, что можно выбрать различные форматы файлов как

  • png
  • jpg
  • точка
  • svg

и многие другие.

Можно также решить, называет ли внешний ключ, порядковые числа столбца, и названия схемы должны быть отображены путем установки следующих свойств в конфигурационном файле SchemaCrawler, schemacrawler.config.properties.

  • schemacrawler.format.show_ordinal_numbers=true
  • schemacrawler.format.hide_foreignkey_names=true
  • schemacrawler.format.show_unqualified_names=true

Существует больше информации и примеров по http://schemacrawler.sourceforge.net/diagramming.html

2
ответ дан 07.12.2019, 15:11

Теги

Похожие вопросы