Вопрос

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

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

Мне было интересно, какие инструменты рекомендуются для этого.Я знаю о Visio, но я надеялся, что там есть какие-нибудь хорошие бесплатные приложения с открытым исходным кодом.Мне это вообще не нужно для изменения базы данных.Просто прочтите это и создайте какое-нибудь наглядное пособие, которое поможет мне понять, как все устроено, и попытаться выяснить, что думал дизайнер о том, как должны соотноситься данные.


Дополнительные данные для ответа:SchemaSpy был именно тем, что я искал, но, давным-давно мало что сделав с командной строкой, я решил использовать SchemaSpyGUI ( Схемаспиги ).Также нужно было привыкнуть к некоторой конфигурации, поскольку я не очень много работаю с Java, но конечный результат был тем, что я искал (о замене ER-диаграмм Visio с открытым исходным кодом).

Это было полезно?

Решение

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

Другие советы

Попробуйте DBVis - скачать можно по адресу http://www.minq.se/products/dbvis/ - существует pro-версия (не требуется) и открытая версия, которой должно быть достаточно.

Все, что вам нужно сделать, это получить правильный JDBC - драйвер базы данных, инструмент показывает таблицы и ссылки ортогональными, иерархическими, по кругу ;-) и т.д.просто нажав одну-единственную кнопку.Наслаждайтесь!

Какую СУБД (Систему управления базами данных) вы используете?Многие современные СУБД, такие как SQL server и Access, могут создать для вас диаграмму E-R.

Microsoft Visio - отличный инструмент, который может реконструировать SQL из любого источника данных.

DDT (инструмент проектирования баз данных) может выполнять обратный инжиниринг из необработанного SQL в Windows и является очень легким (очень маленькая бесплатная загрузка).

MySQL Workbench является одним из наиболее популярных инструментов MySQL и имеет свободно загружаемую версию.

SQLFairy может сделать то же самое для MySQL в Linux.

dbdesc это не бесплатно, но я слышал о нем очень хорошие вещи.Он работает с несколькими основными существующими базами данных.

Мне повезло в том, что мне еще не приходилось расшифровывать схемы баз данных других людей.Я использую набор шаблонов, которые поставляются вместе с Кодировщик.

Во-первых, позвольте мне сказать, что я чувствую вашу боль!
Вот пара моих советов:

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

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

Одной из приятных особенностей visio является то, что вы можете выполнять обратный инжиниринг, а затем создавать свои собственные диаграммы на основе схемы обратного инжиниринга.Выполнение этого - очень хороший способ изучить схему и понять ее, поскольку вы выполняете эту работу как часть интерактивного создания справочного документа для схемы.Я использовал эту технику для обратного проектирования всего, начиная с Системы калькуляции затрат, основанные на деятельности Для Системы страхового андеррайтинга, как правило, без особой помощи со стороны поставщика.Возня с диаграммами Visio довольно расслабляет.

Между этим и небольшой проверкой гипотезы о связях FK (если FK физически не присутствует в таблице) вы можете разобраться в довольно сложных схемах.Я обнаружил, что такой подход к построению диаграмм делает Visio безоговорочным лидером, потому что вы можете легко взаимодействовать с реверсивно спроектированной моделью довольно удобным способом.Вы можете заполнять недостающие внешние ключи, создавать диаграммы предметной области и добавлять примечания к диаграммам.Интерактивность этого процесса делает его хорошим инструментом обучения.

Это несколько субъективный взгляд, но интерактивность для меня очень хорошо работает в процессе обучения, и это, безусловно, мой предпочтительный подход.Большинство сайтов не пожалеют вам 300 фунтов стерлингов или около того за лицензию, если у них ее еще нет в наличии.Единственный сайт, на котором я когда-либо работал, где им приходилось это внедрять, был потому, что у них был Visio Standard вместо Pro.Я вежливо попросил, и PHB подписала его.

Я использую mysql workbench (http://www.mysql.com/products/workbench/) для баз данных mysql.Вы можете подключить workbench к своей базе данных, и он нарисует для вас ER-диграмму.

Используя pgsql / win32, я обнаружил, что самым простым решением было написать perl-скрипт, который использовал Graph::Easy из CPAN.Запросите в базе данных связи по внешнему ключу, создайте ориентированный граф с таблицами в качестве узлов и связями FK в качестве ссылок.Если это ваша настройка, я могу опубликовать код.

Мне нравится пытаться посмотреть, есть ли у приложений, использующих базу данных, способы протоколирования используемого ими SQL (или самого серверной части базы данных, но это, как правило, менее податливо).Представление о том, какие запросы выполняются к базе данных, поможет вам сосредоточиться на важных таблицах.

Как и в большинстве случаев, здесь применяется правило 80/20:20% таблиц будут содержать 80% интересного материала.После того как вы с ними разобрались, диаграмма редко бывает необходима.

Посмотрите на отношения первичного ключа с внешним ключом, которые были настроены в качестве отправной точки.

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

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

У меня есть довольно хороший опыт работы с Студия обработки данных Aqua для обратного проектирования схемы БД.Он очень многофункциональный и поддерживает еще более экзотические базы данных, такие как Informix или Sybase.

Это помогло мне с созданием диаграмм ER на MS SQL Server 2012:

MS SQL Server Management Studio > Меню "Файл" > "Подключить обозреватель объектов" Выберите нужный узел базы данных и разверните его.под этим узлом вы найдете подузел под названием "Диаграммы базы данных" Щелкните правой кнопкой мыши "Диаграммы базы данных" > "Новая диаграмма базы данных" > "Добавить таблицы, в которых вы хотите видеть их столбцы, связи"...

Используйте Visio.При использовании Vision 2010 вам нужно будет использовать общий поставщик OLEDB для SQL Server, чтобы гарантировать отсутствие проблем с подключением к драйверу Visio.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top