Comment générer un diagramme d'un très grand schéma de base de données (SQL Server)
J'ai une très grande base de données j'ai besoin de diagramme. La base de données est SQL Server 2008 x64. Il est grand, qu'il y a des centaines de tables liées, chacune avec un maximum de 2000 champs (certains sont rares), de multiples relations entre les tables (souvent des centaines de personnes par table, en fait), plusieurs schémas... vous voyez l'idée.
J'ai essayé d'utiliser les Schémas de Base de données fonctionnalité de SQL Server Management Studio, mais il s'est écrasé avec un Win32Exception: "Pas assez de mémoire disponible pour traiter cette commande..."
J'ai essayé d'utiliser Visio ingénierie inverse sur un autre ordinateur afin de se connecter et de diagramme, mais qui va se passer quelques heures avec aucun signe de la perfection.
Les scripts pour construire ce géant de schéma sont un outil que nous avons construit pour le travail. Alors que l'outil est en train de faire son travail très bien, c'est difficile de visualiser sa sortie.
Je suis après un outil pour le coup un schéma de cette base de données afin que nous puissions le faire. Des suggestions?
EDIT:
Juste pour insister, le diagramme est en effet pas censé être utilisé pour utile réelle de référence. C'est une gestion de la relation client périphérique, afin de démontrer la complexité et l'échelle du système.
OriginalL'auteur tomfanning | 2010-08-17
Vous devez vous connecter pour publier un commentaire.
Générer une image de toute nature pour une base de données de cette taille devient tout simplement bonbons pour les yeux qui est collé sur un mur qui tirage de halètements, et honnêtement, ne sert pas à l'exception occasionnelle des regards. Pourquoi ne pas utiliser un outil comme Porte rouge de l'outil de Documentation qui va servir d'un objet réel? S'il vous plaît comprendre, je ne dis pas cela dans un moqueur, mais j'ai été dans cette voie avant d'essayer de schéma d'une base de données énorme, et j'ai réussi à un certain degré, mais n'a jamais trouvé une bonne sortie où il a été d'une certaine utilité.
Peut-être qu'ils vont utiliser un projecteur pour afficher sur le côté de l'immeuble le soir. La base de données équivalent d'un drive-in movie.
Tant qu'il y a pop-corn, je suis là!
Fini la livraison de la sortie de cet outil bien plus utile (outre le fait qu'aucun outil graphique semble être à la hauteur de la tâche)
OriginalL'auteur kd7
J'ai travaillé dans un endroit qui avait plusieurs centaines de tables (près de 1k) et personne ne savait vraiment ce qui se passait dans le système, la société a été en croissance et l'embauche d'un lot. Un gars a été chargé de faire un schéma, et il auto-magiquement créé une gigantesque mosaïque affiche que le contenu de chaque tableau avec des lignes reliant les divers tableaux (passe partout). Je ne suis pas sûr de ce qu'il a utilisé, il a été Unix et Oracle il y a des années (bien avant de Linux et de l'open source). Il n'y a pas de réelle rime ni raison à la disposition des tableaux dans son schéma. Il avait réussi à créer un schéma de chaque table. Le "poster" a été mis sur un mur dans un espace commun, et a obtenu quelques regards, mais personne n'a jamais vraiment utilisé, c'était inutilisable, trop confus, trop mal organisé. En conséquence, j'ai utilisé Word pour créer une seule page diagramme contenant les 20 principaux tableaux (il est passé à travers quelques itérations que j'ai "découvert" les nouveaux tableaux) avec des lignes pour chaque clé étrangère et de chaque table qui se trouve dans une manière logique. J'ai montré le nom de la colonne, le type de données, la possibilité de valeur null, PK, et tous les FKs. J'ai mis mon schéma sur mon mur par mon moniteur. Finalement, tout le monde voulait une copie de mon schéma, y compris la personne qui a fait le "poster". Quand j'ai quitté cet emploi, ils étaient encore donner mon schéma à de nouvelles embauches.
Je vous recommande de travailler comme un explorateur, trouver la clé de tables et de la carte au fur et à mesure, faire comme de nombreux schémas spécifiques nécessaires pour vous faire découvrir le système. Essayer de faire un gigantesque "l'affiche" ne sera pas automatiquement fonctionnent très bien.
+1 - un BEAUCOUP plus sensible. Il y a une limite sur les éléments que l'on peut encore gérer dans un diagramme.
oui,
making as many specific diagrams as necessary
. Qui a un plan de rue du monde entier? vous avez généralement des cartes détaillées pour chaque domaine important, lors de la conduite dans une ville, il n'est pas nécessaire pour plus de détails sur une autre ville.Excellent point, bien que le niveau de la rue de la carte du monde être plutôt cool, si ce n'est que la nouveauté de celle-ci. J'imagine que c'est le genre de chose qu'un GPS fabricant envelopper la totalité de leur bureau comme un gadget marketing.
OriginalL'auteur KM.
Puisque vous avez plusieurs schémas peut-être une bonne idée est de générer des diagrammes par le schéma au lieu
OriginalL'auteur SQLMenace
Utilisation de graphviz. L'utilisation de requêtes SQL pour générer le diagramme, puis exécutez à travers dot.exe pour générer un fichier PDF ou PNG.
Je l'ai utilisé pour générer digrams de données dans des tables SQL Server. Aucune raison pourquoi vous pouvez l'utiliser pour les tables trop.
http://www.graphviz.org/
Il y a aussi java, silverlight, AJAX et utilitaires pour la navigation extra large graphiques, en tant que PDF est pour une seule page.
OriginalL'auteur David Roussel
J'aimerais éviter de faire la chose entière dans un seul diagramme. Comme vous l'avez mentionné, les outils de crash, et ce n'est probablement pas possible de facilement comprendre un diagramme avec des centaines de tables avec potentiellement des milliers d'enregistrements par table. Pouvez-vous générer des diagrammes de petites zones logiques avec un certain chevauchement à d'autres
zones logiques?
Alternativement, vous pouvez essayer d'utiliser quelque chose comme graphviz pour analyser les instructions DDL, puis de produire un graphique. Il sera probablement le taux de désabonnement, pour un temps, mais je me souviens avoir vu dans une université de la taille d'une affiche de diagrammes avec des petits caractères, qui sont probablement de la même complexité que le vôtre. Bonne chance!
OriginalL'auteur FrustratedWithFormsDesigner
FWIW, en supposant que vous ne voulez aller de l'avant avec ce que j'ai personnellement trouvé que le visual studio 2010 de la base de données de la modélisation le plus beau des diagrammes que j'ai rencontré jusqu'à présent - il suffit d'importer votre base de données comme si vous alliez à utiliser pour Linq2SQL
J'ai quitté cette génération d'un diagramme de nuit. Il est toujours en cours. Sera mise à jour de la question et de donner la réponse si ça marche 🙂
Pas de dés. Visual Studio a été complètement insensible lorsque cela a finalement terminé.
Pitié - Désolé, ça ne fonctionne pas
OriginalL'auteur Basic
schemaspy
fournit une interface pratique pour générer des diagrammes interactifs qui s'étendent sur plusieurs schémas à l'aide de graphviz comme un backend. Je n'ai jamais essayé sur quoi que ce soit de cette taille.
OriginalL'auteur cs_alumnus
IntelliJ (plus précisément l'IDÉE que juste essayé avec cela, mais je pense que les autres IDEs offrir cette fonctionnalité https://www.jetbrains.com/) a construit dans le client de base de données installation, à partir d'ici vous pouvez vous connecter à votre base de données et d'analyser les différents tableaux, de la combinaison ou de la table ou à tous vos tables en mettant en évidence le tableau, 'clic droit' et en sélectionnant le "schéma" option. Vous pouvez enregistrer des fins de référence ultérieure et aussi de l'impression. J'ai juste essayé sur un grand DB de+ de 500 tableaux et elle a rendu en quelques secondes, le diagramme vectoriel sert comme une alternative à digérer les structures de base de données visuellement et les relations et les contraintes entre certains tableaux, mais pas recommandé pour l'impression.
OriginalL'auteur Opentuned