Бесплатное программное обеспечение для обратной разработки существующих сложных схем баз данных в SQL Server 2008+
Еще несколько лет назад я использовал Microsoft Visio, чтобы преобразовать существующую базу данных в диаграмму. Эта функция уже давно устарела , и я довольно застрял в поиске альтернативы.
Требования
FAQ для этого нового сайта SE указывает мне быть точным в требованиях, поэтому я сделаю все возможное. Большинство из этих требований были в Visio, хотя и не все. Я думаю, найти какой-то программный продукт, в котором они есть, нереально, но я бы хотел подойти ближе.
Важный:
Базы данных SQL Server 2012 ;
Таблицы обратного инжиниринга со всеми столбцами и указанием первичного / внешнего ключа;
Обратный инжиниринг внешних ключей как соединителей между таблицами;
Ручная раскладка коробок и разъемов (хочу визуально сгруппировать вещи);
Основные темы : выберите цвета фона для таблиц;
Способен обрабатывать сложные модели, например, более 100 таблиц ;
Возможность выбрать, какие элементы отображать или нет (например, пропустить определенные таблицы и т. Д.);
По крайней мере, доступна бесплатная пробная версия;
Экспорт в различные форматы для распространения и печати, наиболее предпочтительным является PDF, я думаю, PNG тоже;
WYSIWYG ;
Основные бонусные баллы:
Работает на Windows 8 (хотя я бы установил виртуальную машину Linux для программного обеспечения, отвечающего всем важным требованиям)
Автоматическая компоновка и маршрутизация соединителя для минимизации перекрытия;
Умеет делать SQL Server 2008 и 2008R2 ;
Возможность обратного проектирования взглядов ;
Бесплатная (или бесплатная версия );
Инкрементное обновление , например, перепроектировать заново и добавить / удалить таблицы и т. Д., Сохранив тему, существующий макет и т. Д.
Красивые диаграммы (современный внешний вид, сглаживание, выбор шрифтов, цветов, градиентов, теней, тематика и т. Д.);
Кривая дружественного обучения (я могу справиться со многими сложными функциями, если легко быстро освоить основы);
ДОЛЖЕН ИМЕТЬ:
- Установщик не тайно устанавливает панели инструментов в моем браузере и не меняет мою домашнюю страницу! ;-)
Мое исследование
Конечно, этот вопрос задавался и раньше, даже на родственных сайтах (с некоторым успехом, хотя они там не по теме). Вот несколько из них:
И немного похоже, из DBA.SE:
- Как вы документируете свои базы данных? (sql-сервер, 103 голоса)
Кроме того, в Википедии есть таблица, сравнивающая несколько пакетов программ для функции «обратного инжиниринга»:
Пытался
Вот что я пробовал попутно:
Visio 2003 (это то, что я использовал). Не бесплатный, устаревший, но в остальном он отвечает всем требованиям. Больше не вариант, хотя.
Visio 2010 и 2013 (это то, что у меня сейчас). Обратный инжиниринг больше не поддерживается. Хотя я решил написать плагин или использовать VBA для совместной работы. Не уверен, насколько это будет сложно. Это не бесплатно (за исключением того, что, я думаю, у меня это уже есть), но отвечает многим другим пунктам.
Графвиз . Пробовал это довольно давно, из того, что я помню, у него была немного крутая кривая обучения, и я не был в состоянии вручную определить окончательный макет.
Схемы SSMS . Это работает для маленьких случаев, но может быть громоздким для больших случаев.
Visual Studio 2012 ADO.NET Entity Data Model. Расположение коннекторов вручную ограничено, их нет вообще, они действительно предназначены для целей, отличных от документации, и показывают (например, по умолчанию вы получаете «Свойства навигации» и т. Д.), И это не работает для 100+ столы. Это может быть полезно для меньших сценариев, но не подходит для меня.
И я думаю, что, возможно, попробовал несколько предложений из SO-тем, хотя я не могу вспомнить особенности.
Итак: что бы вы порекомендовали?
Йерун
Вот рекомендация, которую я в итоге использовал (после долгих исследований и опробования множества разных вариантов):
Для этого используйте обычный Visio.
Объяснение этого подхода:
Не существует инструмента, который бы удобно удовлетворял всем указанным требованиям, даже такого, который удовлетворял бы только основным требованиям. Visual Studio 2012 близок, но ему не хватает поддержки тем и он не очень хорошо работает для большого количества таблиц.
У меня работал следующий процесс:
Создайте пустой шаблон Visio Flowchart 1 . Выберите дизайн, который вам нравится. Установите размер страницы и печати на то, что вы хотите (я выбрал альбомный формат A3 и тему «Линейный»).
Откройте запрос 2 в SSMS сбоку, чтобы получить детали, которые вам понадобятся позже: таблицы, имена столбцов и информация IS NULL .
Начните добавлять таблицы одну за другой. Выберите вручную, какие таблицы и столбцы вы хотите включить.
Это пример того, как выглядит конечный результат:
Или уменьшенный скриншот всей модели (так как это был ручной труд, я решил включить значительно меньше, чем все 100+ таблиц):
Процедура, которую я использовал, чтобы «таблицы» выглядели так, как они делают:
- Заголовки выделены жирным шрифтом и шрифтом большего размера.
- Разделители - это не строки, а просто жирный шрифт — тире после друг друга.
- Четыре «секции»: TableName, Первичный ключ, Внешние ключи, простые столбцы.
- Жирный для столбцов NOT NULL .
- Белый для TableName и разделителей, черный для имен столбцов.
Кроме того, я выбрал для внешних ключей:
- Никогда не допускайте пересечения соединителей, а вместо этого создавайте небольшие «опорные» блоки, которые ссылаются на таблицу, которая находится где-то на другой стороне модели.
- Не включать все таблицы (т.е. есть больше внешних ключей, чем соединителей).
Надеюсь, что выше будет полезно и для других.
Требования из вопроса:
В итоге, я рекомендую этот подход, главным образом потому, что в итоге вы получаете визуально привлекательную модель и высокую степень контроля. Этот подход не соответствует всему счету все же. Вот как это соответствует требованиям:
Подключение данных:
- Базы данных SQL Server 2012
- Таблицы обратного инжиниринга со всеми столбцами и указанием первичного / внешнего ключа
- Обратный инжиниринг внешних ключей как соединителей между таблицами
± Это все возможно, но не автоматизировано. Так что «более или менее».
Контроль и визуальные эффекты:
- Ручная верстка, основные темы, возможность выбрать, какие элементы отображать
- Возможность обрабатывать сложные модели, например, более 100 таблиц
✓ Да, все это очень хорошо работает с простым Visio.
Денежные средства:
- По крайней мере, бесплатная пробная версия доступна
✓ AFAIK есть бесплатная пробная версия Office доступна. Я не смотрел на это, хотя у меня есть Visio.
Другой:
- Экспорт в различные форматы
- WYSIWYG;
✓ Да, это доступно в Visio.
Бонусные очки:
Имеет около половины бонусных баллов:
- работает на Windows 8
- SQL 2008 также поддерживается
- хорошенький
- дружественная кривая обучения
1. Я также пробовал UML-шаблон и фигуры, но это приводит в бешенство при маршрутизации соединителя . Не рекомендуется!
2. Это был мой запрос:
мотылек Йерун Йерун Йерун sixtytreesNotre1
Проверьте SQL Power Architect . Он может подключаться к значительной части базы данных, для которой вы можете сконфигурировать JDBC-коннектор, и может выполнять всю обратную разработку, которую вы ищете. Однако я работаю только с базовыми типами данных, поэтому при импорте вы должны конвертировать такие вещи, как DATETIME, в DATE.
Вы можете изменить «Цвет таблицы», но, по правде говоря, это действительно меняет цвет имени / заголовка таблицы, чем изменение цвета фона для всей таблицы.
Суале Фатехи
SchemaCrawler - это бесплатный инструмент для обнаружения баз данных с открытым исходным кодом, который может реконструировать вашу существующую базу данных.
- Базы данных SQL Server 2012 - SchemaCrawler работает с базами данных SQL Server 2012
- Таблицы обратного инжиниринга со всеми столбцами и указаниями первичного / внешнего ключа - SchemaCrawler создаст диаграммы со всеми столбцами и внешними ключами
- Обратный инжиниринг внешних ключей в качестве соединителей между таблицами SchemaCrawler создаст диаграммы со всеми столбцами и внешними ключами
- Ручная разметка коробок и соединителей (я хочу визуально сгруппировать вещи) - SchemaCrawler может также генерировать GraphViz DOT, и вы можете использовать другой инструмент для точной настройки разметки
- Основные темы: выбирайте цвета фона для таблиц - SchemaCrawler может также генерировать GraphViz DOT, и вы можете использовать другой инструмент для точной настройки макета
- Возможность обрабатывать сложные модели, например, более 100 таблиц - SchemaCrawler может обрабатывать большое количество таблиц - еще лучше, вы можете предоставить критерии поиска регулярных выражений для создания нескольких диаграмм подмножеств вашей схемы
- Возможность выбирать, какие элементы отображать или нет (например, пропустить определенные таблицы и т. Д.) - SchemaCrawler позволяет вам предоставлять критерии поиска регулярных выражений для создания нескольких диаграмм подмножеств вашей схемы
- По крайней мере, бесплатная пробная версия - SchemaCrawler с открытым исходным кодом и бесплатно
- Экспорт в различные форматы для распространения и печати, наиболее предпочтительным является PDF, я думаю, PNG также подойдет - SchemaCrawler является открытым исходным кодом и бесплатен
- WYSIWYG - SchemaCrawler - командная строка
Основные бонусные баллы:
- Работает в Windows 8 (хотя я бы установил виртуальную машину Linux для программного обеспечения, отвечающего всем важным требованиям) - SchemaCrawler является кроссплатформенным
- Автоматическая разметка и маршрутизация соединителей для минимизации перекрытия - SchemaCrawler выполняет автоматические разметки, используя GraphViz за кулисами
- Умеет делать SQL Server 2008 и 2008R2 - SchemaCrawler поддерживает все версии SQL Server
- Возможность обратного проектирования представлений - SQL Server может преобразовать представления
- Бесплатно (или бесплатная версия) - SchemaCrawler с открытым исходным кодом и бесплатно
- Инкрементное обновление, например, перепроектировать заново и добавить / удалить таблицы и т. Д., Сохранив тему, существующий макет и т. Д. - Сохраните команду командной строки SchemaCrawler и повторите
- Красивые диаграммы (современный внешний вид, сглаживание, выбор шрифтов, цветов, градиентов, теней, темы и т. Д.) - некоторые примеры с веб-сайта SchemaCrawler
- Кривая дружественного обучения (я могу справиться со многими сложными функциями, если легко быстро освоить основы) _ Зависит от вас :-)
- Установщик не тайно устанавливает панели инструментов в моем браузере и не меняет мою домашнюю страницу! ;-) - в SchemaCrawler нет установщика - разархивируйте и запустите
JohnOsb
Ваш список требований полностью покрыт Lucidchart . Ну, это не бесплатно, но есть бесплатная пробная версия.
С помощью Lucidchart вы запускаете указанный запрос, а затем импортируете результаты запроса. Это создает коллекцию таблиц, которые вы можете перетащить на диаграмму, например трафарет. Lucidchart рисует связи между клавишами выбранных вами таблиц. Вы можете изменить порядок расположения таблиц и соединений, удалить поля, изменить цвета и шрифты и т. Д. Насколько я могу судить, вы сэкономите 90% времени, необходимого для рисования от руки в новых версиях Visio, и получите большую часть гибкость в форматировании. И не беспокойтесь о опечатках. Недостатком является то, что это не прямое соединение с вашей базой данных, поэтому для обновления вам нужно будет поработать вручную.
Вы можете экспортировать в различные графические форматы (PNG, PDF, JPG) и в Visio (VDX).
sixtytrees
Рассмотрим SQL Server Management Studio (SSMS).
Перейдите в базу данных -> Диаграммы базы данных -> щелкните правой кнопкой мыши -> Добавить новую диаграмму -> Добавить нужные таблицы для вашей ERD.
Плюсы: Поставляется с SSMS, может извлекать и красиво отображать имена столбцов. Минусы: Пропускает связанные ключи.
Обратите внимание, что ни один из перечисленных выше бесплатных или опробованных инструментов не подобрал связанные ключи для моей базы данных.