Как генерировать диаграмму очень большой схемы базы данных (SQL Server)

StackOverflow https://stackoverflow.com/questions/3503223

Вопрос

У меня очень большая база данных, которой мне нужно диаграмму. База данных SQL Server 2008 на X64. Большое в том, что существуют сотни связанных таблиц, каждая с полями до 2000 (некоторые являются редкими), множественные отношения между таблицами (часто сотни на стол, на самом деле), множественные схемы ... вы получаете идею.

Я попытался использовать функцию диаграмм базы данных Studio Management Studio SQL Server, но она ударила с помощью Win32exception: «Недостаточно хранилища для обработки этой команды ...»

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

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

Я после инструмента, чтобы выбрать диаграмму этой базы данных, чтобы мы могли это сделать. Какие-либо предложения?

РЕДАКТИРОВАТЬ: Просто чтобы подчеркнуть, диаграмма действительно не должна использоваться для реальной полезной ссылки. Это устройство управления взаимоотношениями с клиентами, чтобы продемонстрировать сложность/масштаб системы.

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

Решение

Создание какого -либо изображения для базы данных такого размера просто становится глазной конфеткой, которая застряла на стене, которая рисует вздох, и, честно говоря, не служит реальной цели, кроме случайных взглядов. Почему бы не использовать такой инструмент, как Инструмент документации Red Gate Это будет служить фактической цели? Пожалуйста, поймите, что я не говорю это в издевании, но я был на этой дороге, прежде чем пытаться диаграмма огромной базы данных, и мне удалось в некоторой степени, но никогда не нашли хорошего розетки, где это было некоторое использование.

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

Я работал в месте, у которого было несколько сотен столов (около 1К), и никто не знал, что происходит в системе, компания растет и нанимает много. Парень был поручено выполнять диаграмму, и он автоматически волшебно создал гигантский черепицей плакат, который содержал каждую таблицу с линиями, соединяющими различные таблицы (повсюду). Я не уверен, что он использовал, это был Unix и Oracle годы назад (путь до Linux и открытый источник). Там не было реальной рифмы или причины к компоновке таблиц на его диаграмме. Он успешно создал диаграмму каждой таблицы. «Плакат» был поставлен на стену в общей площади и получил несколько взглядов, но никто никогда не использовал его, это было непригодным, слишком загроможденным, слишком неорганизованным. В результате я использовал MS-Word для создания одной диаграммы страницы, содержащую 20 основных таблиц (он прошел несколько итераций, как я «обнаружил» новые основные таблицы) с линиями для каждого внешнего ключа и каждой таблицы, расположенной в логичном порядке. Отказ Я показал имя столбца, тип данных, Nullability, PK и все ФКС. Я положил свою диаграмму на мою стену на моем мониторе. В конце концов все хотели копию моей диаграммы, в том числе человека, который сделал «плакат». Когда я оставил эту работу, они все еще давали свою диаграмму новым напростране.

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

Поскольку у вас есть несколько схем, может быть, хорошая идея - вместо этого генерировать диаграммы на схему

Используйте Graphviz. Используйте некоторые операторы SQL для генерации Digram, затем запустите его через dot.exe, чтобы генерировать PDF или PNG.

Я использовал его для генерации Digrams данных в таблицах SQL Server. Нет причин, почему вы можете использовать его для таблиц.

http://www.graphviz.org/

Существуют также утилиты Java, Silverlight и Ajax для навигации на очень больших графиков, так как PDF только для одной страницы.

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

С другой стороны, вы можете попробовать использовать что -то вроде Graphviz для анализа операторов DDL, а затем создать график. Вероятно, это будет время на некоторое время, но я помню, как видел на диаграммах размером с плаката университета с крошечным принтом, которые, вероятно, были такой же сложности, как и у вас. Удачи!

FWIW, предполагая, что вы хотите продолжать дальше с этим, я лично обнаружил, что Modeller Visual Studio 2010 Modeller делает самые красивые диаграммы, которые я наткнулся на напротив, - просто импортируйте вашу базу данных, как если бы вы собирались использовать его для Linq2SQL

схемыОбеспечивает удобный интерфейс для генерации интерактивных диаграмм, которые охватывают несколько схем с использованием GraphViz в качестве бэкэнда. Я никогда не пробовал это ни в этом размере, хотя.

Intellij (в частности, идея, как только что попробовал с этим, но я считаю, что их другие IDE предлагают эту функцию https://www.jetbrains.com/) Имеет встроенный клиентский объект базы данных, отсюда, вы можете подключиться к вашей базе данных и анализировать отдельные таблицы, специфическую комбинацию или таблицу или все ваши таблицы, выделив нужные таблицы, «правый щелчок» и выбирая опцию «Диаграмма». Вы можете сохранить позже, а также печатать. Я только что попробовал это на большой ББ в 500+ таблицах, и он отображается за считанные секунды, векторная диаграмма служит альтернативным способом переваривать структуры баз данных визуально и отношения и ограничения между определенными таблицами, но не рекомендуемыми для печати.

enter image description here

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