logo

Визуализация связей таблиц в SQL Server: альтернативы

Быстрый ответ

Выявить связи между таблицами в SQL Server можно обратившись к системным представлениям. Представленный ниже запрос вернёт информацию о всех внешних ключах:

SQL
Скопировать код
SELECT 
    fk.name AS ForeignKey,
    tp.name AS ParentTable,
    cp.name AS ParentColumn,
    tr.name AS ReferencedTable,
    cr.name AS ReferencedColumn
FROM 
    sys.foreign_keys AS fk     
INNER JOIN 
    sys.tables AS tp ON fk.parent_object_id = tp.object_id
INNER JOIN 
    sys.tables AS tr ON fk.referenced_object_id = tr.object_id
INNER JOIN 
    sys.foreign_key_columns AS fkc ON fkc.constraint_object_id = fk.object_id
INNER JOIN 
    sys.columns AS cp ON fkc.parent_column_id = cp.column_id AND fkc.parent_object_id = cp.object_id
INNER JOIN 
    sys.columns AS cr ON fkc.referenced_column_id = cr.column_id AND fkc.referenced_object_id = cr.object_id

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

Экспорт данных в Excel для глубокого анализа

Для проведения более детального анализа отношений между таблицами полезно будет экспортировать результаты выполнения SQL-запроса в Excel:

  1. Выполните запрос в SSMS.
  2. Кликните правой кнопкой мыши по результатам и выберите "Копировать с заголовками".
  3. Вставьте скопированные данные в Excel и примените к ним фильтры, создайте сводные таблицы для анализа.

В итоге вы сможете переключаться между своими таблицами, как крольчонок между туалетом и грядками (здесь имеется в виду некий игровой контекст: кролик, таблицы, огород 😄).

Работа с текстовой документацией

Текстовая документация по таблицам — это ваша сетка безопасности. Важность её незаметна, пока действительно не понадобится. В некоторых случаях она может быть просто незаменимой, например, при работе со сложной структурой базы данных или когда нет возможности использовать графические инструменты.

Выбор правильных инструментов для работы

Оптимальный набор инструментов – залог эффективной работы с базами данных:

  1. Microsoft Visio – ваш навигатор по базам данных, помогающий визуализировать их структуру.
  2. Schemacrawler позволит видеть основные связи PK/FK/UK.
  3. Собственные хранимые процедуры – это ваши проводники по миру взаимосвязей в иерархической структуре.

Совмещение документации и визуализации

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

Визуализация

Вспомним аналогию: если таблицы баз данных – это улицы города, то:

Markdown
Скопировать код
🏢 Таблица A ---- 🚦 ---- 🏬 Таблица B
   |                            |
🚏                            🚏
   |                            |
🏭 Таблица C ---- 🚥 ---- 🏦 Таблица D

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

Углубляемся в отношения баз данных

Применение INFO SCHEMA для сложных запросов

Расширьте своё понимание структуры баз данных, применив запросы к INFORMATION_SCHEMA:

SQL
Скопировать код
SELECT 
    CONSTRAINT_NAME, 
    TABLE_NAME, 
    COLUMN_NAME, 
    REFERENCED_TABLE_NAME, 
    REFERENCED_COLUMN_NAME 
FROM 
    INFORMATION_SCHEMA.KEY_COLUMN_USAGE 
WHERE 
    TABLE_SCHEMA = 'YourSchemaName';

Разбор рекурсивных отношений

В сложных рекурсивных взаимоотношениях ценным станут рекурсивные общие табличные выражения (CTE).

Настройка визуальных и текстовых представлений

Подстройка представления данных под конкретные потребности позволит сбалансировать использование графических схем и чётких текстовых описаний.

Полезные материалы

  1. sys.foreign_keys (Transact-SQL) – SQL Server | Microsoft Learn
  2. Различные способы выполнения пакета SSIS SQL Server
  3. Визуальные инструменты баз данных – Визуальные инструменты баз данных | Microsoft Learn
  4. Как выполнять запросы к информационной схеме в SQL Server