2010-10-07 5 views
5

Je veux savoir s'il existe des outils pour explorer les données dans une base de données relationnelle et pour explorer les relations maître-détail.Comment puis-je explorer les données dans une base de données SQL, y compris les tables étrangères?

Je sais déjà comment afficher les données dans une seule table, et je sais comment construire des requêtes SQL qui joignent les tables. Cependant, pour obtenir des niveaux N profonds, je dois écrire une instruction SQL, trouver l'ID de l'élément qui m'intéresse et répéter N fois. Il est extrêmement fastidieux et difficile de visualiser les résultats.

Cependant, je veux savoir s'il y a un outil qui me permet de regarder les données dans une table, et s'il y a des clés étrangères, laisse moi développer les données pour montrer les données étrangères. Et j'espère, me permet de percer à travers plusieurs niveaux de détail.

Un tel outil existe-t-il? J'utilise MS SQL et j'utilise SQL Server Management Studio pour exécuter SQL.

+0

Je sais que ce n'est pas un outil en soi, mais https://www.red-gate.com/simple-talk/sql/database-administration/exploring-your-sql-server-databases-with-t-sql/ a quelques bons scripts pour explorer les structures de base de données, y compris un couple pour explorer foreig n touches. – Myles

Répondre

2

Les informations concernant les clés et les informations de table étaient accessibles via les sysobjects et autres tables sys et j'ai vu des scripts personnalisés capables de lire ces tables pour fournir certaines des informations que vous recherchez ici, bien que click drill down fonctionnalité est bien hors de cette portée. Je pense que TOAD (Outil pour les développeurs d'applications Oracle) pourrait avoir quelques options le long de cette route (mais probablement pas dans la version gratuite). Il semble presque que vous cherchiez une configuration de tableau de bord qui vous permettra de visualiser et de cliquer sur les résultats. Je ne suis pas sûr sur le logiciel libre pour cette fonctionnalité, bien que des outils tels que des objets d'affaires, microstrategy, et plusieurs autres vous donneront ce que (je pense) que vous recherchez. Peut-être cher et pourrait prendre un peu de temps à mettre en œuvre en attendant votre configuration ... c'est ce que je suis payé pour faire;)

Juste pour faire écho à Beth, vous pouvez créer des diagrammes avec MSSQL ... ça vous donnera et idée de la relation entre les tables, en supposant que les clés et les relations appropriées ont été configurées.

Editer pour ajouter: autre commentaire à cette partie de vos questions: Je sais déjà comment afficher les données dans une seule table, et je sais construire des requêtes SQL qui joignent les tables. Cependant, pour obtenir des niveaux N profonds, je dois écrire une instruction SQL, trouver l'ID de l'élément qui m'intéresse et répéter N fois. Il est extrêmement fastidieux et difficile de visualiser les résultats.

Je nid mes requêtes (ce qui est une technique de dépannage uniquement, ne vous avisez pas d'essayer de mettre en œuvre quelque chose comme ça pour la production) ...

select * from finaltable where ID in 
    (select id2 for table2 where anotheridcolumn in 
    (select id3 from yetanothertable where yet anotheridcolumn in (input_id_you're_looking_for) 

Je voudrais vraiment pas utiliser cette technique si vous attendez plus de 5 ou 10 lignes retournées à la fin ... mais cela va sauver une partie de la tâche fastidieuse et copier le résultat dans le prochain travail que vous faites

+0

Merci pour vos suggestions! J'ai regardé dans TOAD pour MS SQL, et la version payante a une fonctionnalité appelée "Master-Détails Browser" qui est proche de ce que je cherche. La seule limitation est qu'il vous oblige à créer un diagramme de vos tables et relations, avant de vous laisser voir les données.J'aimerais pouvoir me joindre à n'importe quelle table, à la volée, pendant que j'explore les données. –

+0

L'un des outils énumérés nécessitera la même chose. Il y a juste trop de façons de mettre en place une base de données pour atteindre un résultat donné pour un programme à assembler comme ça à la volée. Une base de données n'est qu'une structure et des données, la logique de l'utilisation de ces données va au-delà de cela. Il y a tellement de méthodes pour faire la même chose ... une valeur que vous cherchez pourrait même être calculée et non directement stockée. J'ai vu un magasin de base de données telco circuits tous dans une des tables, tous ayant 5 couches ... ce qui signifie que la table a été jointe à elle-même 5 fois pour créer un circuit. Aucun programme ne peut choisir cette logique – Twelfth

+0

Incidemment, s'il y a un programme qui fait cela, s'il vous plaît ne le postez pas ... Je pense que je serais sans emploi;) – Twelfth

2

Est-ce que creating a diagram pourrait aider? Ou en utilisant la partie visuelle d'une vue?

+0

Un diagramme est presque EXACTEMENT ce que je veux - mais un diagramme montre juste le schéma. Je veux un diagramme qui montre les données! –

Questions connexes