MySQL Workbench — Визуальный редактор MySQL баз

День добрый, дорогие читатели.

Сегодня я решил отступить от обычного своего перемалывания костей обществу, и написать о чем-то, относящемся непосредственно к моей компетенции :). Речь пойдёт о замечательном инструменте MySQL Workbench — инструменте разработки, проектирования и обслуживания баз данных MySQL. Это настоящая находка для программиста PHP, да и не только PHP, которому приходится зачастую, помимо выполнения прямых обязанностей ещё и выступать в роли архитектора баз данных. Этот продукт позволяет создавать новую БД, вносить изменения в уже существующие, устанавливать связи, выполнять запросы — в реальном времени и наглядном виде. Если кто-то пользовался DbDesigner от fabforce — то это почти то же самое, только намного, намного лучше. Достаточно сказать, что связи между таблицами — теперь показываются на EER диаграмме, какие именно поля используются, а заодно, по вашему желанию, создаёт индексы там, где требуется для нормальной и быстрой работы связей. Также есть возможность Reverse Engineer‘инга таблиц из уже рабочей базы. Разработчиком этого продукта является Sun Microsystems, а версия MySQL Workbench Community Edition — полностью бесплатна и доступна для скачивания по этой ссылке: http://www.mysql.com/products/workbench/ — уверяю, MySQL Workbench Community Edition хватит для большинства типовых задач веб-разработки. Тем более, что этот инструмент куда как более удобен в использовании (особенно в конфигурации с несколькими мониторами) нежели популярный phpMyAdmin, с веб интерфейсом (хотя он и незаменим для работы на удалённом хостинге).

Итак, главное окно MySQL Workbench при открытии выглядит примерно так (В версии 5.22):

Главное окно MySQL Workbench версии 5.22
Главное окно MySQL Workbench версии 5.22

Как видите, там у меня уже есть парочка БД, и сохранённое соединение в левом столбце. Соединение это необходимо, чтобы выполнять запросы на сервер БД в реальном времени, ну и синхронизировать модель с «боевой» базой.

Оболочка поддерживает множество типов таблиц БД, по умолчанию там установлена InnoDB, но мне больше нравится MyISAM, потому в пункте Edit -> Preferences я меняю тип по-умолчанию (иначе все экспортируемые запросы будут в InnoDb с кучей лишних параметров, типа CONSTRAINT и т. д.). Впрочем, никто не мешает вам работать с InnoDb, если вам требуется повышенная устойчивость транзакций, либо какие-то другие особенности этого движка.

Окно настроек типа модели в MySQL Workbench 5.22
Окно настроек типа модели в MySQL Workbench 5.22

Затем, стоит рассмотреть такую возможность как MySQL Reverse Engineer. Он позволяет открыть любую БД на сервере, и без труда восстановить структуру таблиц, которая в ней существует. Скажем, в рабочем проекте у меня количество таблиц в БД приближается уже к 70. Workbench спокойно их восстанавливает и представляет на диаграмме. Правда, поскольку они в MyISAM — связи приходится проставлять вручную :)

Кстати говоря, давайте сейчас попробуем провести «реверсивный инженеринг» для стандартной базы движка WordPress. У большинства стоит Денвер для отладки и тестирования приложений (что, в принципе, моветон, ИМХО, но для относительно несложных скриптов, например, не использующих возможности mysqldump и иных подобных утилит, вполне достаточно). Для входа на MySQL сервер там используется пользователь root без пароля. Я и сам его часто использую, задействуя собственную сборку из полноценного apache + php + mysql в случаях относительно сложных скриптов.

Итак, вначале требуется тыкнуть тычку «File -> New model», дабы создать проект, куда мы будем восстанавливать таблицы из базы:

Пустая модель в MySQL Workbench 5.22
Пустая модель в MySQL Workbench 5.22

Затем тыкаем «Database -> Reverse Engineer» и пред ваши очи предстанет окошко примерно такого вида:

MySQL Reverse Engineer в MySQL Workbench 5.22
MySQL Reverse Engineer в MySQL Workbench 5.22

Для денвера настройки по умолчанию подходят, потому кликаем Next, пока не попадём в такое вот окошко (некоторые таблицы я затёр, от греха подальше, у вас таких белых строчек с пустыми квадратиками не будет, само собой):

Reverse Engineer Database в MySQL Workbench 5.22
Reverse Engineer Database в MySQL Workbench 5.22

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

Визуальный редактор таблиц в MySQL Workbench 5.22
Визуальный редактор таблиц в MySQL Workbench 5.22

Как видите, ничего сложного здесь нет. Визуальный редактор SQL таблиц позволяет добавлять/редактировать/удалять поля, индексы, триггеры, и прочее, что только душе угодно. Основное преимущество данной MySQL Workbench — наглядность базы, потому как держать базы всех своих проектов в голове — можно сойти с ума. Я стараюсь даже названия полей в таблицах не запоминать, дабы не засорять память :) В этом я некоторым образом поддерживаю древних эпикурейцев, которые считали, что не следует создавать себе лишние проблемы, если можно их избежать. Иначе говоря, имея возможность избежать страданий, вызванных профессиональными заболеваниями программиста, типа склероза, и рассеянности — надо эту возможность использовать.

Ещё очень и очень приятная возможность — это выполнение запросов к БД прямо из оболочки. Здесь сия возможность намного, намного удобнее реализована, нежели выполнение оных в отдельном окошечке phpMyAdmin’а. Даже подсветка SQL синтаксиса есть. Выглядит это примерно так:

Редактор SQL запросов в MySQL Workbench 5.22
Редактор SQL запросов в MySQL Workbench 5.22

Примерно в таком же окошке идёт прямое редактирование данных, находящихся в нужной таблице. Для отладки каких-нибудь сложных SQL запросов это идеальная среда. Также она поддерживает плагины.

В целом, я описал здесь те возможности MySQL Workbench, которые использую сам чаще всего. Я уверен, что их намного и намного больше. Скажем, я здесь не затронул возможности визуального редактирования EER моделей, хотя они наверняка будут использоваться чаще всего. В целом, учитывая ориентированность материала на коллег, ну или хотя бы достаточно подкованных пользователей, я практически уверен, что они сами до всего докопаются. Логикус очень любит исследовать трудные вещи :)

Таким образом, можно сделать вывод, что MySQL Workbench — отличный инструмент, бесплатный и довольно удобный.

Автор

Алекс Разгибалов

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

MySQL Workbench — Визуальный редактор MySQL баз: 20 комментариев

  1. Gents,
    ровно год назад я поиграл с эти проиложением (версия 5.2.33 под MAC OS X 10.6)

    Сейчас возникла потребность порисовать диаграммы и я вернулся к этому продукту, просмотрев свои старые комментарии.

    В целом, впечатление осталось тогда хорошим.
    Наиболее серьезным (для меня) недостатком было то, что связи прорисовываются не между конкретными полями (PK — FK), а просто между таблицами. На мой взгляд это снижает наглядность.
    Возможно, я просто «не умею готовить кошек»? :)

    1. Не, там есть и между полями конкретными. Правда я как-то всё меньше им пользуюсь — мало стало mysql в деятельности, больше оракл… И то эпизодически весьма. Так что сказать, что там ныне поменялось наверное и не смогу))

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Собирать идеально - не обязательно, просто приблизительно соберите картинку (должен быть включен JavaScript).WordPress CAPTCHA