¿Hay alguna herramienta que funcione con SQL Server para generar diagramas tipo árbol a partir de un modelo de datos jerárquicos?¿Qué herramienta genera diagramas a partir de datos jerárquicos de SQL Server?
Estoy trabajando con una gran jerarquía geográfica y me gustaría visualizarla.
Aquí hay un ejemplo.
Tengo una tabla NodeHierarchy que almacena una relación jerárquica entre los nodos. Cada fila en la tabla representa un nodo. Cada nodo, excepto uno, tiene un nodo padre. El nodo que no tiene padre es la raíz si la jerarquía.
Así es como puedo crear mi mesa:
CREATE DATABASE HierarchyTest;
GO
USE HierarchyTest;
GO
CREATE TABLE NodeHierarchy (
PK_NodeID INT NOT NULL
CONSTRAINT PK_NodeHierarchy PRIMARY KEY,
FK_ParentNodeID INT NULL
CONSTRAINT FK_NodeHierarchy_NodeHierarchy FOREIGN KEY
REFERENCES NodeHierarchy(PK_NodeID),
Name NVARCHAR(255) NOT NULL
);
Tengo un ejemplo de jerarquía de ciudades y lugares de Escocia. Escocia es la raíz de la jerarquía. Los descendientes de Escocia son ciudades y lugares. En esta jerarquía, un padre "contiene" un hijo, por lo que decimos que, por ejemplo, "The Barrowlands está en Glasgow, y Glasgow está en Escocia".
Esta declaración rellena la tabla NodeHierachy con los datos eample:
INSERT INTO NodeHierarchy(PK_NodeID, FK_ParentNodeID, Name)
VALUES
(1, NULL, N'Scotland'),
(2, 1, N'Glasgow'),
(3, 1, N'Edinburgh'),
(4, 1, N'St Andrews'),
(5, 2, N'The Barrowlands'),
(6, 2, N'The Cathouse'),
(7, 2, N'Carling Academy'),
(8, 2, N'SECC'),
(9, 2, N'King Tut''s Wah-Wah Hut'),
(10, 3, N'Henry''s Cellar Bar'),
(11, 3, N'The Bongo Club'),
(12, 3, N'Sneaky Pete''s'),
(13, 3, N'The Picture House'),
(14, 3, N'Potterrow'),
(15, 4, N'Aikman''s'),
(16, 4, N'The Union'),
(17, 4, N'Castle Sands');
salida de SELECT * FROM NodeHierarchy;
:
PK_NodeID FK_ParentNodeID Name
----------- --------------- ---------------------------------
1 NULL Scotland
2 1 Glasgow
3 1 Edinburgh
4 1 St Andrews
5 2 The Barrowlands
6 2 The Cathouse
7 2 Carling Academy
8 2 SECC
9 2 King Tut's Wah-Wah Hut
10 3 Henry's Cellar Bar
11 3 The Bongo Club
12 3 Sneaky Pete's
13 3 The Picture House
14 3 Potterrow
15 4 Aikman's
16 4 The Union
17 4 Castle Sands
(17 row(s) affected)
En Freemind hice este esquema equivalente:
Qué herramienta puede hacer esto para mí con un mínimo de esfuerzo manual?
EDIT: principio yo dije que quería para visualizar "todo o parte" de la jerarquía. La solución publicada aquí visualiza toda la jerarquía incondicionalmente. Esto está bien para la jerarquía de ejemplos pequeños, pero para una jerarquía más grande, puede ser más útil visualizar solo una parte de ella.
Como no especifiqué lo que quise decir con "parte", lo eliminé de la pregunta. He preguntado sobre la visualización parcial en another question.
+1 Esta es una gran pregunta. Me gustaría saber la respuesta también. –
+1 Me gusta mucho que hayas incluido 'CREATE DATABASE' y' INSERT' para que pueda cortar y pegar. –
Gracias, Kirk. Está en el espíritu del 'ejemplo corto, autónomo, correcto y compilable': http://sscce.org/. –