Как я могу исследовать данные в базе данных SQL, включая внешние таблицы?

Я хочу знать, существуют ли какие-либо инструменты для изучения данных в реляционной базе данных и детализации взаимосвязей master-detail.

Я уже знаю, как просматривать данные в одной таблице, и я знаю, как создавать SQL-запросы, которые соединяют таблицы. Однако, чтобы получить N-уровни в глубину, мне нужно написать оператор SQL, найти идентификатор интересующего меня элемента и повторить N раз. Это очень утомительно и трудно визуализировать результаты.

Однако я хочу знать, есть ли инструмент, который позволяет мне просматривать данные в таблице, и если есть внешние ключи, позволяет мне расширить данные, чтобы отобразить внешние данные. И, надеюсь, позволит мне детально изучить несколько уровней детализации.

Существуют ли такие инструменты?

Я использую MS SQL и использую SQL Server Management Studio для выполнения SQL.


person Scott Rippey    schedule 07.10.2010    source источник
comment
Я знаю, что это не инструмент как таковой, а red-gate.com/simple-talk/sql/database-administration/ содержит несколько хороших сценариев для изучения структур базы данных, в том числе пару для изучения внешних ключей.   -  person Myles    schedule 28.07.2017


Ответы (2)


Информация о ключах и информации о таблицах может быть доступна через sysobjects и другие таблицы sys, и я видел некоторые пользовательские сценарии, которые способны читать эти таблицы, чтобы предоставить некоторую информацию, которую вы ищете здесь, хотя функция детализации щелчка хорошо вне этой сферы. Я думаю, что TOAD (инструмент для разработчиков приложений Oracle) может иметь некоторые варианты на этом пути (хотя, вероятно, не в бесплатной версии).

Это почти звучит так, как будто вы ищете настройку панели мониторинга, которая будет визуализировать и позволит вам щелкать и детализировать результаты. Я не уверен в бесплатном программном обеспечении для этой функциональности, хотя такие инструменты, как бизнес-объекты, микростратегия и некоторые другие, дадут вам то, что (я думаю) вы ищете. Возможно, это дорого и может занять довольно много времени для реализации в ожидании вашей настройки ... это то, за что мне платят;)

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

Редактирование для добавления: еще один комментарий к этой части ваших вопросов: я уже знаю, как просматривать данные в одной таблице, и я знаю, как создавать SQL-запросы, которые соединяют таблицы. Однако, чтобы получить N-уровни в глубину, мне нужно написать оператор SQL, найти идентификатор интересующего меня элемента и повторить N раз. Это очень утомительно и трудно визуализировать результаты.

Я вложу свои запросы (это только метод устранения неполадок, не смей пытаться реализовать что-то подобное для производства)...

 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)

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

person Twelfth    schedule 07.10.2010
comment
Спасибо за ваши предложения! Я изучил TOAD для MS SQL, и в платной версии есть функция под названием Master-Details Browser, которая близка к тому, что я ищу. Единственное ограничение заключается в том, что вам нужно создать диаграмму ваших таблиц и отношений, прежде чем вы сможете увидеть данные. Я хотел бы просто присоединиться к любой таблице на лету, когда я изучаю данные. - person Scott Rippey; 09.10.2010
comment
Для любого из перечисленных инструментов потребуется то же самое. Слишком много способов настроить базу данных для достижения любого заданного результата, чтобы программа могла собрать их на лету. База данных — это просто структура и данные в ней, логика использования этих данных выходит за рамки этого. Существует так много способов сделать одно и то же... значение, которое вы ищете, может быть даже вычислено, а не сохранено напрямую. Я видел, как базы данных телекоммуникационных компаний хранят все каналы в одной таблице, все из которых имеют 5 слоев... это означает, что таблица была соединена сама с собой 5 раз для создания канала. Ни одна программа не может выделить эту логику - person Twelfth; 11.10.2010
comment
Кстати, если есть программа, которая это делает, пожалуйста, не публикуйте ее... Думаю, я останусь без работы ;) - person Twelfth; 11.10.2010
comment
Ну, я понимаю, что программа не может автоматически установить все соединения, но я предполагаю, что воображаю программу, которая позволяет мне направлять ее для установления соединений. Что-то с графическим интерфейсом для визуализации данных. - person Scott Rippey; 27.10.2010
comment
TOAD, безусловно, ближе всего к ответу, к которому я пришел. Даже бесплатная версия помогает с ее интеллектом, который может автоматически присоединяться к таблице на основе ограничений внешнего ключа. Это спасло меня от набора текста! - person Scott Rippey; 27.10.2010

Поможет ли создание диаграммы? Или используя визуальную часть представления?

person Beth    schedule 07.10.2010
comment
Диаграмма - это почти ТОЧНО то, что я хочу, но диаграмма просто показывает схему. Я хочу диаграмму, которая показывает данные! - person Scott Rippey; 09.10.2010