Инструменты баз данных и SQL

ER-диаграмма из SQLпо объявленным ограничениям

Просмотрите DDL как граф, перечень столбцов и структуру для экспорта. Сначала выберите диалект исходного текста.

ER-диаграмма из SQL

Входной SQL DDL

Обзор структуры

Введите SQL или выберите пример.

Обработка локально в браузере. Нет подключения к базе или сохранённой истории.

Диалект и правила разбора

Только CREATE TABLE и CREATE INDEX по именованным столбцам. Связи строятся по явным внешним ключам; SQL не выполняется.

До 50 000 единиц UTF-16, 50 таблиц, 1 000 столбцов и суммарно 200 ключей, индексов, CHECK и внешних ключей. Столбцы выводятся по 50.

TypeScript описывает прочитанные строки: большие целые и точные дроби — string, неизвестные типы и SQLite — unknown. Проверьте формат данных драйвера.

Результат устарел. Обработайте текущий ввод перед экспортом.

ER-диаграмма из SQL помогает разобрать файл определений, когда подключения к базе нет. Составной первичный ключ и ссылки на таблицы за пределами фрагмента требуют более внимательной проверки, чем простой перечень имён.

В примере есть две таблицы, внешний ключ, столбцы с NULL, уникальный ключ и обычный индекс. Сопоставьте схему с исходником: имя customer_id само по себе не доказывает существование связи.

ER-диаграмма из SQL с проверяемыми связями

Отделяйте объявления в файле от предположений о предметной области.

Показывать только объявленные связи

ER-диаграмма из SQL соединяет таблицы только при наличии явного внешнего ключа. Отсутствующая целевая таблица остаётся пунктирным внешним узлом: частичный фрагмент не выглядит полным описанием базы.

Три карточки таблиц: две соединены объявленной ссылкой, третья остаётся отдельно.

Один разбор для разных представлений

Граф помогает сориентироваться, JSON сохраняет перечень объектов, TypeScript предлагает форму прочитанной строки. Переключение представлений использует один результат и не меняет трактовку DDL.

Одно определение таблицы разветвляется в граф связей, дерево структуры и документ типов.

Что проверить перед экспортом

01

Выбрать правильный диалект

Переключатель меняет грамматику и правила имён, но не переводит SQL между диалектами. Для MySQL нужен отдельный FOREIGN KEY; PostgreSQL и SQLite также принимают ссылки на уровне столбца.

  • После смены диалекта экспорт старого результата заблокирован до успешного разбора.
02

Сверить ненайденные цели

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

  • Ссылки без имени схемы сопоставляются только с такими же таблицами; search_path не моделируется.
03

Понять смысл типов строки

DEFAULT не делает свойство прочитанной строки необязательным. Точные числа представлены string, а известные типы nullable-столбцов получают объединение с null.

  • При выключенном автоматическом режиме доступны кнопка и Ctrl/Cmd + Enter.

Структура для проверки и документации

Три явно выбранные грамматики

Поддерживается часть DDL MySQL, PostgreSQL и SQLite. Имена в кавычках и квалифицированные таблицы сохраняются. PostgreSQL приводит имена без кавычек к нижнему регистру, чтобы правильно различать идентификаторы.

Составные ключи без упрощений

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

Исходные определения столбцов

Проверьте написание SQL-типа, допустимость NULL и принадлежность к первичному ключу. Исходный текст сохраняет DEFAULT, CHECK и генерацию значений. Явные индексы содержат порядок столбцов и направление сортировки.

JSON как снимок структуры

Экспорт включает идентификаторы таблиц, столбцы, ключи, индексы, проверки и ссылки, в том числе ненайденные цели. Это схема базы данных для документации и последующих скриптов, а не валидатор JSON Schema.

Осторожное преобразование типов

Интерфейсы TypeScript получают безопасные номера, свойства — имена в кавычках. Даты становятся string, двоичные значения — Uint8Array, JSON и неизвестные типы — unknown. Сопоставьте результат с фактическими значениями драйвера.

Визуализация SQL в SVG

Граф можно сохранить в SVG. Карточки показывают первые пять столбцов и при необходимости сокращают длинные имена. Полный список остаётся в подробном представлении и JSON, поэтому к общей схеме можно приложить проверяемые детали.

Границы структурного разбора

Только часть инструкций DDL
Принимаются CREATE TABLE и CREATE INDEX по именованным столбцам. ALTER, INSERT, представления, триггеры, процедуры и CREATE TABLE AS/LIKE останавливают весь пакет. Индексы по выражениям, префиксные и частичные индексы также отклоняются, а не упрощаются.
Без догадок о предметной области
Суффикс _id не создаёт стрелку. Граф не доказывает бизнес-кратность, уникальность целевых столбцов или применение ограничений движком хранения. Недостающие правила следует явно добавить в исходные определения.
Без восстановления настроек сервера
PostgreSQL приводит имена без кавычек к нижнему регистру и сохраняет имена в кавычках. MySQL сравнивает таблицы точно, столбцы — без учёта регистра. SQLite не различает регистр ASCII. Пропущенные схемы и search_path не подставляются.
Ссылки внутри столбца MySQL отклоняются
MySQL игнорирует такую форму REFERENCES. Инструмент требует отдельный FOREIGN KEY, чтобы не изображать игнорируемый синтаксис как действующую связь. Даже объявление на уровне таблицы не гарантирует применение ограничения в рабочей базе.
Особые правила SQLite
Обычный первичный ключ не типа INTEGER может допускать NULL. Для INTEGER и поддерживаемого WITHOUT ROWID действуют соответствующие правила не-null. Из-за динамической типизации все свойства прочитанной строки SQLite экспортируются как unknown.
Лимиты действуют на весь ввод
До 50 000 единиц UTF-16, 50 таблиц и 1 000 столбцов. Ключи, явные индексы, сохранённые CHECK и внешние ключи вместе ограничены 200 объектами. Дополнительно: 15 000 токенов, 32 уровня скобок и 250 инструкций. Превышение блокирует весь результат.
Результат доступен только для чтения
DEFAULT и CHECK сохраняются без вычисления. Нет подключения, импорта файлов, ИИ-проектирования, облачного хранения, редактирования графа, генерации миграций и экспорта PNG/DBML. TypeScript не является DTO для вставки или проверкой данных во время выполнения.

ER-диаграмма из SQL: вопросы и ответы

Можно ли редактировать схему прямо на диаграмме?

Нет. Измените исходный DDL и запустите разбор снова. Перетаскивание узлов и редактирование модели на рисунке не предусмотрены. Единственным источником структуры остаётся SQL, поэтому между визуальной моделью и исходным файлом не возникает отдельной версии схемы.

Как сохранить схему для документации Confluence?

Сохраните SVG для схемы и при необходимости JSON для полного перечня объектов. Возможность встроить SVG зависит от настроек вашей системы документации. Прямой интеграции с Confluence нет; при запрете SVG преобразуйте файл в разрешённый формат внешним средством.

Какой размер схемы допустим?

До 50 000 единиц UTF-16, 50 таблиц и 1 000 столбцов. Ключи, индексы, сохранённые CHECK и внешние ключи имеют общий предел 200 объектов. При превышении лимита весь результат блокируется. Большую схему лучше разделить по предметным областям.

Как показать на ER-диаграмме ссылки на таблицы-справочники?

Добавьте явный внешний ключ с исходными и целевыми столбцами. Справочник должен быть обычной таблицей в DDL; его бизнес-название не меняет поведение. Если определения справочника в тексте нет, цель всё равно будет показана как внешняя или не найденная.

Почему после импорта DDL не появились линии связей?

Проверьте наличие FOREIGN KEY в переданном тексте. Совпадающие имена и поля с суффиксом _id не считаются ограничениями. MySQL также игнорирует REFERENCES, записанный прямо у столбца; для него нужна отдельная декларация внешнего ключа.

Нашли проблему с оформлением?

Проверьте следующий фрагмент

ER-диаграмма из SQL для небольшого законченного фрагмента поможет сверить ключи и ненайденные цели перед использованием экспорта.

Чтобы изменить структуру, редактируйте DDL; выходные представления не меняют исходник.