Question

J'ai une très grande base de données que je dois schématiser.La base de données est SQL Server 2008 sur x64.Il est vaste dans la mesure où il existe des centaines de tables liées, chacune comportant jusqu'à 2 000 champs (certaines sont clairsemées), de multiples relations entre les tables (souvent des centaines par table, en fait), plusieurs schémas...vous avez eu l'idée.

J'ai essayé d'utiliser la fonctionnalité Diagrammes de base de données de SQL Server Management Studio, mais elle s'est écrasée avec une exception Win32 :"L'espace de stockage disponible n'est pas suffisant pour traiter cette commande..."

J'ai essayé d'utiliser la fonctionnalité d'ingénierie inverse de Visio sur une autre machine pour me connecter et la schématiser, mais cela dure depuis quelques heures sans aucun signe d'achèvement.

Les scripts permettant de créer ce schéma géant proviennent d'un outil que nous avons conçu pour ce travail.Bien que l'outil fasse très bien son travail, il est difficile de visualiser son résultat.

Je recherche un outil pour créer un diagramme de cette base de données afin que nous puissions le faire.Aucune suggestion?

MODIFIER:Juste pour souligner, le diagramme n’est en effet pas censé être utilisé comme référence utile.Il s'agit d'un dispositif de gestion de la relation client permettant de démontrer la complexité/l'échelle du système.

Était-ce utile?

La solution

Génération d'une image de toute sorte pour une base de données de cette taille devient simplement des bonbons pour les yeux qui est collé sur un mur que les hoquets de tirage, et sert honnêtement sans but réel, sauf les regards occasionnels. Pourquoi ne pas utiliser un outil comme outil de documentation de Red Gate qui servira un but réel? S'il vous plaît comprendre que je ne dis pas cela d'un air moqueur, mais je suis sur cette route avant d'essayer de schématiser une base de données énorme, et je parvins à un certain degré, mais jamais trouvé un bon point de vente où il a été d'une certaine utilité.

Autres conseils

Je travaillais dans un endroit qui comptait plusieurs centaines de tables (près de 1 000) et personne ne savait vraiment ce qui se passait dans le système, l'entreprise se développait et embauchait beaucoup.Un gars a été chargé de faire un diagramme et il a créé automatiquement par magie une gigantesque affiche carrelée contenant chaque table avec des lignes reliant différentes tables (allant partout).Je ne suis pas sûr de ce qu'il a utilisé, c'était Unix et Oracle il y a des années (bien avant Linux et l'open source).Il n’y avait aucune véritable rime ou raison dans la disposition des tableaux dans son diagramme.Il avait réussi à créer un diagramme de chaque table.Le "poster" a été accroché au mur d'un espace commun, et a suscité quelques regards, mais personne ne l'a jamais vraiment utilisé, il était inutilisable, trop encombré, trop désorganisé.En conséquence, j'ai utilisé MS-Word pour créer un diagramme d'une seule page contenant les 20 tables principales (il a subi quelques itérations au fur et à mesure que je "découverts" de nouvelles tables principales) avec des lignes pour chaque clé étrangère et chaque table située de manière logique. .J'ai montré le nom de la colonne, le type de données, la nullité, le PK et tous les FK.J'ai affiché mon schéma sur mon mur à côté de mon moniteur.Finalement, tout le monde a voulu une copie de mon diagramme, y compris la personne qui avait réalisé « l'affiche ».Quand j'ai quitté ce poste, ils donnaient encore mon diagramme aux nouvelles recrues.

Je vous recommande de travailler comme un explorateur, de retrouver les tableaux clés et de les cartographier au fur et à mesure, en réalisant autant de schémas précis que nécessaire au fur et à mesure de votre découverte du système.Essayer de créer automatiquement une gigantesque « affiche » ne fonctionnera pas très bien.

Puisque vous avez plusieurs schémas peut-être une bonne idée est de générer des diagrammes par schéma à la place

Utilisez graphviz. Utilisez des instructions SQL pour générer le digram, puis exécutez par dot.exe pour générer un fichier PDF ou PNG.

Je l'ai utilisé pour générer digrammes de données dans des tables SQL Server. Aucune raison pour laquelle vous pouvez l'utiliser pour les tables aussi.

http://www.graphviz.org/

Il y a aussi java, silverlight et utilitaires AJAX pour naviguer graphiques extra large, au format PDF est uniquement pour une page.

Il faut éviter de faire le tout en un seul schéma. Comme vous l'avez mentionné, les outils crash, et il est sans doute pas possible de comprendre facilement un diagramme avec des centaines de tables avec potentiellement des milliers d'enregistrements par table. Pouvez-vous générer des diagrammes de zones plus petites logiques avec un certain chevauchement d'autres zones logiques?

Alternativement, vous pouvez essayer d'utiliser quelque chose comme graphviz pour analyser les instructions DDL et produire un graphique. Il sera probablement le taux de désabonnement pendant un certain temps, mais je me souviens avoir vu dans un des diagrammes format affiche l'université avec petits caractères, qui étaient probablement de la même complexité que le vôtre. Bonne chance!

FWIW, en supposant que vous ne voulez aller de l'avant avec ce que j'ai personnellement trouvé que le studio visuel 2010 base de données modélisateur fait les plus beaux diagrammes que j'ai rencontré à ce jour - suffit d'importer votre base de données comme si vous allez l'utiliser pour Linq2SQL

SchemaSpy fournit une interface très pratique pour générer des diagrammes interactifs qui couvrent plusieurs schémas utilisant graphviz comme un arrière-plan. Je ne l'ai jamais essayé sur quoi que ce soit cette taille bien.

IntelliJ (spécifiquement IDEA juste essayé avec cela, mais je crois que les autres IDEs offrent cette fonctionnalité https: // www .jetbrains.com / ) a construit dans le centre de client de base de données, à partir d'ici, vous pouvez vous connecter à votre base de données et d'analyser des tables individuelles, combinaison spécifique ou une table ou toutes vos tables en mettant en valeur les tables souhaitées, « clic droit » et en sélectionnant l'option « diagramme ». Vous pouvez enregistrer pour référence ultérieure et imprimer. Je viens d'essayer ce sur une grande base de données de plus de 500 tables et rendu en secondes, le diagramme vectoriel sert des structures de base de données façon à digérer autre visuellement et les relations et les contraintes entre certaines tables, mais pas recommandé pour l'impression.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top