Что такое формат файла DDL?
Файл .ddl представляет собой текстовый SQL-скрипт, содержащий операторы Data Definition Language (языка определения данных) - подмножества SQL, которое определяет, изменяет или удаляет структуры базы данных. Функционально это файл .sql, отличающийся лишь соглашением: расширение .ddl сигнализирует о том, что скрипт содержит операторы определения схемы, а не манипулирования данными. Основные операторы включают CREATE TABLE, ALTER TABLE, DROP TABLE, CREATE INDEX, CREATE VIEW и определения CONSTRAINT.
DDL отличается от DML (Data Manipulation Language: INSERT, UPDATE, DELETE) и DQL (SELECT). Многие инструменты - MySQL Workbench, DBeaver, SQL Server Management Studio - могут экспортировать схему базы данных в виде файла .ddl, а JPA/ORM-фреймворки, такие как EclipseLink, автоматически генерируют скрипты .ddl на основе сопоставлений сущностей.
Файл не имеет бинарной сигнатуры; он идентифицируется по расширению и содержимому. Кодировка - UTF-8 или ASCII; устаревшие инструменты Windows могут создавать файлы в Windows-1252. Скрипт часто начинается с заголовка-комментария (-- или /* */), созданного инструментом экспорта, за которым следуют последовательные операторы SQL.
Размер файла варьируется от нескольких килобайт для простых схем до десятков мегабайт для полных дампов корпоративных баз данных. Поскольку синтаксис зависит от СУБД - MySQL, PostgreSQL, Oracle, SQL Server и SQLite имеют различия в диалектах - переносимость файла .ddl между движками баз данных без модификации не гарантируется.
Безопасность и защита
РИСК: LOWФайл .ddl является текстовым и не может выполняться сам по себе. Его безопасно открывать в любом текстовом редакторе. Риск заключается в его ЗАПУСКЕ: операторы DDL (особенно DROP TABLE) изменяют или уничтожают структуру базы данных. Всегда проверяйте скрипт DDL перед выполнением, убедитесь в наличии резервной копии и запускайте его только в предназначенном для этого экземпляре базы данных. DDL из ненадежного источника может удалить таблицы или добавить учетные записи с «черным ходом» - относитесь к нему как к любому исполняемому коду.
Детали формата
в двух словах- SoftQuad / SGML DDL (Document Type Definition Link) - Историческое определение схемы, связанное с SGML; в современности практически не используется, не связано с SQL.
- Oracle DDL Export - Инструменты Oracle Database (SQL Developer, Data Pump) экспортируют определения схем как файлы .ddl в синтаксисе Oracle SQL; та же концепция, специфичная для Oracle.
Программы, открывающие файлы DDL
Технические подробности
глубокая спецификация| Кодировка | Простой текст - UTF-8 (современные инструменты), ASCII или Windows-1252 (устаревшие скрипты) |
| Порядок байтов | Неприменимо - текстовый файл |
| Контейнер | Отсутствует - один плоский текстовый файл с SQL-операторами, разделенными строками |
| Магические байты | Отсутствуют - идентифицируется по расширению и структуре ключевых слов SQL; бинарная сигнатура отсутствует |
| Типичный размер | 1 КБ - 50 МБ (скрипты простых таблиц: несколько КБ; дампы полных корпоративных схем: десятки МБ) |
| Подмножество SQL | DDL - определения CREATE, ALTER, DROP, TRUNCATE, RENAME и CONSTRAINT; только структура схемы, без данных |
| Зависимость от диалекта | Синтаксис варьируется в зависимости от СУБД (MySQL, PostgreSQL, Oracle, SQL Server, SQLite); переносимость скриптов между движками без модификации не гарантируется |
| Стандартная база | DDL стандартизирован в ANSI SQL-86 (ISO/IEC 9075:1987); текущий стандарт SQL:2023 (ISO/IEC 9075:2023) |
| Интеграция с ORM | EclipseLink, Hibernate и другие JPA-фреймворки могут автоматически генерировать скрипты .ddl из сопоставлений классов сущностей |
| Соглашения о комментариях | Заголовки файлов, созданные инструментами, используют однострочные -- или блочные /* */ SQL-комментарии; встроенные комментарии следуют тем же соглашениям |
| Поддержка экспорта | MySQL Workbench, DBeaver, pgAdmin, SSMS и Oracle SQL Developer могут экспортировать схему базы данных напрямую в виде скриптов .ddl |
| Рабочий процесс импорта | Выполняется в целевой базе данных с помощью консольных клиентов (mysql, psql, sqlcmd, sqlite3) или графических инструментов; операторы выполняются последовательно |
| Связь с .sql | Функционально идентичны; расширение .ddl сигнализирует о содержимом только для схемы (без манипулирования данными) согласно соглашению разработчиков |
| Переносимость | Переносимость между движками СУБД без модификаций под конкретный диалект не гарантируется |
| Выпущен | SQL DDL concepts introduced with SQL-86 (ISO/IEC 9075:1987); .ddl extension is a convention, not a standard |
| Последняя версия | SQL:2023 (ISO/IEC 9075:2023) |
| Открыть стандартное | Да · без роялти |
| Спецификация | www.iso.org |
Конвертации DDL
Вопросы и ответы сообщества
спрошено пользователямиВопросов пока нет - станьте первым, кто спросит о файлах DDL.