Как создать схему схемы очень большой базы данных (SQL Server) - PullRequest
13 голосов
/ 17 августа 2010

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

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

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

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

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

EDIT: Просто чтобы подчеркнуть, что диаграмма на самом деле не должна использоваться для реальной полезной ссылки. Это устройство управления взаимоотношениями с клиентами, демонстрирующее сложность / масштаб системы.

Ответы [ 8 ]

14 голосов
/ 17 августа 2010

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

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

9 голосов
/ 17 августа 2010

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

2 голосов
/ 17 августа 2010

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

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

http://www.graphviz.org/

Существуют также утилиты java, silverlight и AJAX для навигации по очень крупным графикам, поскольку PDF предназначен только для одной страницы.

2 голосов
/ 17 августа 2010

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

0 голосов
/ 19 июля 2016

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

enter image description here

0 голосов
/ 25 марта 2016

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

0 голосов
/ 17 августа 2010

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

0 голосов
/ 17 августа 2010

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

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

...