Настройка оборудования и программного обеспечения

Особенности и использование mysql workbench. Быстрый старт: Визуальное проектирование базы данных в MySQL Workbench

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


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

Как создать базу данных MySQL? Можно создавать таблицы вручную и устанавливать между ними связи, но это не так удобно.

Специально для этого была создана бесплатная программа Workbench. С её помощью можно визуально создавать базы данных MySQL. Смоделировать их при помощи софта проще, удобнее и в разы быстрее.

Workbench поможет создать базу данных MySQL

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

После обычной установки программы, чтобы создать базу данных MySQL необходимо проделать следующие действия:

  1. Сначала нужно открыть новую модель, это делается через меню или комбинацией клавиш Ctrl+N:

  2. Первый шаг при создании базы данных, это добавление таблицы, поэтому выбираем соответствующую функцию:

  3. Дальше выполняется заполнение таблицы. Указывайте имя и атрибуты, учитывайте, что один из атрибутов это главный ключ, помеченный флажком. Заранее думайте, как потом таблицы будут связываться между собой:

  4. Заполнив необходимые данные, создавайте диаграмму для определения связей между субъектами:
  5. Вы увидите таблицу в рабочей области. Для удобства, можно развернуть структуры таблиц:

  6. Теперь необходимо задать связи между элементами, это делается специальным инструментом на рабочей панели:
  7. В итоге у вас должны быть представлены таблицы в рабочей области и между ними установлены связи:

  8. Двойной щелчок на связи открывает окно, в котором задаются дополнительные параметры:

Внимание, поскольку WorkBench обновился, то я написал , которая состоит из теории и практики построения БД из WorkBench.

В разделе “Foreign Key Options” настраиваем поведение внешнего ключа при изменении соответствующего поля (ON UPDATE) и удалении (ON DELETE) родительской записи:

  • RESTRICT – выдавать ошибку при изменении / удалении родительской записи
  • CASCADE – обновлять внешний ключ при изменении родительской записи, удалять дочернюю запись при удалении родителя
  • SET NULL – устанавливать значение внешнего ключа NULL при изменении / удалении родителя (неприемлемо для полей, у которых установлен флаг NOT NULL! )
  • NO ACTION – не делать ничего, однако по факту эффект аналогичен RESTRICT

Сохранение из модели в реальную / физическую базу данных

“File → Export→ Forward Engineer MySQL Create Script…”

Отмечаем необходимые галочки, мне нужна была только одна Generate INSERT Statements for Tables. Если нужно сохранить скрипт в файл – пропишите директорию в поле сверху.

В следующем окне можно настроить – какие объекты мы будем экспортировать. Если внимательно присмотреться, то у нас создано всего 2 таблицы.

Выполнение скрипта – создания базы данных и таблиц

Жмем на “домик” в верхнем левом углу программы…

Потом 2 раза кликаем на MyConnection….

Перед нами открывается такая вкладка…

Это наше соединение с сервером, здесь мы и будем выполнять наш скрипт. Обратите внимание, слева базы данных, которые были созданы в программе WorkBench….

Теперь, нужно дать команду этот скрипт исполнить, для этого жмем в верхнем меню, Query Execute (All or Selection)

Итак, если все нормально, то в нижнем окне output, вы увидите все “зеленые галочки”. А когда нажмете Refresh в контекстном меню в списке баз данных, то увидите, вновь созданную базу mydatabase1.

Напоследок, построим ER диаграмму. ER расшифровывается как Entity Relation – удачная модель “Сущность – связь”, которая, в частности разрабатывалась Питером Ченом. Итак, возвращаемся на вкладку модели и жмем на Add Diagramm…

Мы создали связь один ко многим. На одном факультете могут учиться несколько студентов. Обратите внимание, связь возле таблицы Students расщепляется – это означает “ко многим”.

Итак, мы создали модель, из неё через выполнение скрипта – реальную базу с таблицами. А также создали диаграмму ER.


Каким бы ни был разработчик баз данных: начинающий (в особенности) или бородатый профессионал, ему всегда проще и нагляднее представлять то над чем он трудится, что разрабатывает. Лично я отношу себя к первой категории и для понимания материала мне бы хотелось видеть визуально то, что я проектирую/разрабатываю.

На сегодняшний день существуют различные программы и инструменты, которые справляются с подобной задачей: какие-то лучше, какие-то хуже. Но сегодня я хотел бы немного рассказать о MySQL WorkBench - инструменте для визуального проектирования баз данных, интегрирующего проектирование, моделирование, создание и эксплуатацию БД в единое бесшовное окружение для системы баз данных MySQL, который является преемником DBDesigner 4 из FabForce.(c) Wikipedia . MySQL WorkBench распространяется в двух вариантах: OSS - Comunity Edition (распространяется под лицензией LGPL) и SE - Standard Edition - версия, за которую разработчики просят денежку. Но я думаю, что многим достаточно будет и OSS версии (в особенности новичкам и тем, кто не хочет или считает нецелесообразным платить за ПО, а также приверженцам программ с открытым исходным кодом), Тем более, что OSS версия обладает богатым функционалом.

Итак, как видно из названия, данный инструмент предназначен для работы с MySQL базами данных,и поддерживает большое количество различных типов моделей MySQL (см. скриншот ниже) и станет незаменимым инструментом для лучшего понимания и изучения реляционных БД (в частности MySQL) для новичков:

Таким образом, любой разработчик MySQL найдет то, что ему необходимо. Кроме того MySQL WorkBench позволяет подключать существующую базу данных, выполнять SQL запросы и SQL скрипты, редактировать и управлять объектами БД.Но для тех кто только начинает осваивать реляционные базы данных,наиболее интересным, на мой взгляд является возможность создания EER модели базы данных. Другими словами - это визуальное представление всех связей между таблицами Вашей БД, которое, при необходимости, легко можно представить в виде SQL скрипта,отредактировать или создать новое представление. Но об этом немного позже. Для начала посмотрим как выглядит главное око MySQL WorkBench (5.2.33 rev 7508 ):
Для того что бы создать EER-модель Вашей БД выбираем "Create New EER Model " . В результате у нас появится вкладка, в которой мы можем добавлять/создавать диаграммы, таблицы, виды, процедуры; задавать различные права доступа для пользователей; создавать модель при помощи SQL скриптов. Выглядит данная вкладка таким образом:
Процесс создания таблиц и БД рассматривать не будем, т.к. тут все просто. Приведу лишь окончательный вариант готовой модели (см. на скриншотах ниже). Причем, если навести курсор на линию связи (пунктирная линия) таблиц, то "связь", первичный ключ, а также внешний ключ выделятся другим цветом. Если навести курсор на какую-либо таблицу, то выделится сама таблица, а также все связи, принадлежащие выбранной таблице.

Для того, что бы отредактировать таблицу, достаточно нажать ПКМ по нужной нам таблице и выбрать "Edit Table ...". В результате внизу окна появится дополнительная область редактирования таблицы, в которой можно изменить имя таблицы, столбцы, внешние ключи и много чего другого. Для того, что бы экспортировать таблицу в SQL-скрипт достаточно нажать ПКМ по нужной нам таблице и выбрать "Copy SQL to Clipboard ", а затем из буфера обмена вставить в нужное место/программу/файл.

А теперь непосредственно об установке MySQL WorkBench . Естественно, что для начала нужно скачать MySQL WorkBench. Для этого переходим на страницу загрузки MySQL WorkBench , внизу страницы в выпадающем списке выбираем нужную нам операционную систему. В результате нам будет предложено несколько вариантов загрузки:

  • для ОС Windows можно скачать MSI установщик, zip архив программы, а также архив с исходным кодом. Для данной ОС MySQL WorkBench можно скачать лишь для 32-разрядной версии Windows;
  • для пользователей Ubuntu выбор немного богаче, нежели для пользователей ОС Windows - нам предлагают скачать MySQL WorkBench для Ubuntu версий 10.04, 10.10 (на момент написания статьи) и 32- или 64-разрядных версий deb пакетов;
  • для rpm-based дистрибутивов, а в данном случае это Fedora, Suse Linux и RedHat/Oracle Linux, MySQL WorkBench представлены сборки для 32- и 64-разрядной ОС;
  • не забыли и пользователей Macintosh-ей - для них имеется сборка только для 32-разрядной ОС;
  • ну и естественно можно скачать исходный код программы;

Итак, выбираем необходимый вариант загрузки и нажимаем DownLoad . Затем нас любезно попросят представиться: для зарегистрированных пользователей - ввести логин и пароль, для новичков - зарегистрироваться. Если Вы не хотите представляться, то выбираем чуть ниже вариант "» No thanks, just take me to the downloads!" и выбираем ближайшее зеркало для скачивания. Кроме того, перед установкой позаботьтесь о том, что бы у вас был установлен MySQL Client, .а иначе MySQL WorkBench откажется устанавливаться.

О чем нужно помнить и знать пользователям Linux:

Естественно, как и для случая с ОС Windows не забываем про MySQL Client. Для пользователей Ubuntu - необходимо качать версию программы, в соответствии с версией Вашей Ubuntu.Во время установки внимательно смотрим на сообщения об ошибке, если таковые появились, в которых наверняка будет сказано о том, каких пакетов не хватает в Вашей ОС. Об этом читаем ниже.

Как дела обстоят с rmp-base дистрибутивами, я к сожалению не знаю, т.к. ни разу таковыми дистрибутивами не пользовался, но думаю, что примерно также, как и с debian-based.

Возможно Вы заметили, что отсутствует сборка MySQL WorkBench для ОС Debian GNU/Linux . Но, как показала практика - ничего страшного. Для установки MySQL WorkBench в Debian 6.0 (Squeeze) мы воспользуемся deb - пакетом для Ubuntu 10.04 (не забываем про разрядность Вашей ОС: x86 или x64). Напомню, для того, что бы установить скачанный deb пакет можно воспользоваться утилитой gdebi либо ввести в консоли от имени рута команду:

# dpkg -i mysql-workbench-gpl-5.2.33b-1ubu1004-amd64.deb Например, у меня во время установки MySQL WorkBench возникла следующая ошибка:
dpkg: зависимости пакетов не позволяют настроить пакет mysql-workbench-gpl:
mysql-workbench-gpl зависит от libcairomm-1.0-1 (>= 1.6.4), однако:
Пакет libcairomm-1.0-1 не установлен.
mysql-workbench-gpl зависит от libctemplate0, однако:
Пакет libctemplate0 не установлен.
mysql-workbench-gpl зависит от libgtkmm-2.4-1c2a (>= 1:2.20.0), однако:
Пакет libgtkmm-2.4-1c2a не установлен.
mysql-workbench-gpl зависит от libpangomm-1.4-1 (>= 2.26.0), однако:
Пакет libpangomm-1.4-1 не установлен.
mysql-workbench-gpl зависит от libzip1 (>= 0.9), однако:
Пакет libzip1 не установлен.
mysql-workbench-gpl зависит от python-paramiko, однако:
Пакет python-paramiko не установлен.
mysql-workbench-gpl зависит от python-pysqlite2, однако:
Пакет python-pysqlite2 не установлен.
dpkg: не удалось обработать параметр mysql-workbench-gpl (--install):
проблемы зависимостей -- оставляем не настроенным
При обработке следующих пакетов произошли ошибки:
mysql-workbench-gpl

Для устранения данной ошибки мне достаточно было набрать в консоли команду для установки некоторых пакетов:

# aptitude install libzip1 libcairomm-1.0-dev libctemplate0 libgtkmm-2.4-1c2a

Для установки, приведенных выше пакетов, потребуются еще дополнительные пакеты, которые менеджер apt любезно предложит скачать. После установки всех необходимых пакетов MySQL WorkBench устанавливается без проблем.

Все: MySQL WorkBench благополучно установлен и готов для изучения работы.

upd:
Если не ошибаюсь, то начиная с Ubuntu 12.04 MySQL WorkBench можно найти в репозиториях дистрибутива. Следовательно, процесс установки проходит гораздо проще и без всяких костылей.
Для установки MySQL WorkBench достаточно в терминале ввести команду:
sudo aptitude install mysql-workbench

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

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

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

Должен сказать, что программа действительно великолепная. Она позволяет быстро и с удовольствием накидывать схемы данных проекта , проектировать сущности и связи между ними, безболезненно внедрять изменения в схему и так же быстро и безболезненно синхронизировать её с удалённым сервером. А графический редактор EER-диаграмм , напоминающих забавных таракашек, позволяет увидеть общую картину модели данных и насладиться её лёгкостью и элегантностью:) После первой же пробы этот инструмент становится незаменимым помощником в боевом арсенале веб-программиста.

Скачать MySQL Workbench

Дистрибутив MySQL Workbench доступен на этой странице . Самая свежая версия программы на момент написания статьи - Version 6.1 . Перед скачиванием требуется выбрать одну из следующих платформ:

После выбора платформы вам предлагают зарегистрироваться или авторизоваться в Oracle. Если не хотите, внизу есть ссылка "No thanks, just start my download" - жмите на неё ;)

Начало работы

Стартовый экран программы отражает основные направления её функциональности - проектирование моделей баз данных и их администрирование:

В верхней части экрана находится список подключений к MySQL серверам ваших проектов, а список последних открытых моделей данных - в нижней части экрана. Работа обычно начинается с создания схемы данных или загрузки существующей структуры в MySQL Workbench . Приступим к работе!

Создание и редактирование модели данных

Для добавления модели нажимаем плюсик рядом с заголовком "Models" или выбираем "File → New Model" (Ctrl + N):

На этом экране вводим имя базы данных, выбираем кодировку по умолчанию и, если нужно, заполняем поле комментария. Можно приступать к созданию таблиц.

Добавление и редактирование таблицы

Список баз данных проекта и список таблиц в пределах базы данных будет располагаться во вкладке "Physical Schemas". Чтобы создать таблицу, дважды кликаем на "+Add Table":

Откроется удобный интерфейс для редактирования списка полей и их свойств. Здесь мы можем задать название поля, тип данных, а так же установить для полей различные атрибуты: назначить поле первичным ключом (PK) , пометить его Not Null (NN) , бинарным (BIN) , уникальным (UQ) и другие, установить для поля авто-инкремирование (AI) и значение по умолчанию (Default) .

Управление индексами

Добавлять, удалять и редактировать индексы таблиц можно во вкладке "Indexes" интерфейса управления таблицей:

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

Связи между таблицами

Установка внешних ключей и связывание таблиц возможно только для таблиц InnoDB (эта система хранения данных выбирается по умолчанию). Для управления связями в каждой таблице находится вкладка "Foreign Keys":

Для добавления связи открываем вкладку "Foreign Keys" дочерней таблицы , вводим имя внешнего ключа и выбираем таблицу-родителя . Далее в средней части вкладки в графе Column выбираем поле-ключ из дочерней таблицы, а в графе Referenced Column - соответствующее поле из родительской таблицы (тип полей должен совпадать). При создании внешних ключей в дочерней таблице автоматически создаются соответствующие индексы .

В разделе "Foreign Key Options" настраиваем поведение внешнего ключа при изменении соответствующего поля (ON UPDATE) и удалении (ON DELETE) родительской записи:

  • RESTRICT - выдавать ошибку при изменении / удалении родительской записи
  • CASCADE - обновлять внешний ключ при изменении родительской записи, удалять дочернюю запись при удалении родителя
  • SET NULL - устанавливать значение внешнего ключа NULL при изменении / удалении родителя (неприемлемо для полей, у которых установлен флаг NOT NULL! )
  • NO ACTION - не делать ничего, однако по факту эффект аналогичен RESTRICT

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

При создании проекта в базу данных часто нужно добавлять стартовые данные. Это могут быть корневые категории, пользователи-администраторы и т.д. В управлении таблицами MySQL Workbench для этого существует вкладка "Inserts":

Как видно из примера, в случае, если перед записью в базу данных к данным нужно применить какую-то функцию MySQL, это делается с помощью синтаксиса \func functionName("data") , например, \func md5("password") .

Создание EER диаграммы (диаграммы "сущность-связь")

Для представления схемы данных, сущностей и их связей в графическом виде в MySQL Workbench существует редактор EER-диаграмм. Для создания диаграммы в верхней части экрана управления базой данных дважды кликаем на иконку "+Add Diagram":

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

Для экспорта схемы данных в графический файл выберите "File → Export" , а затем один из вариантов (PNG, SVG, PDF, PostScript File) .

Импорт существующей схемы данных (из SQL дампа)

Если у нас уже есть схема данных, её можно без труда импортировать в MySQL Workbench для дальнейшей работы. Для импорта модели из SQL файла выбираем "File → Import → Reverse Engineer MySQL Create Script..." , после чего выбираем нужный SQL файл и жмём "Execute >"

В MySQL Workbench так же предусмотрен импорт и синхронизация модели данных нарямую с удалённым сервером. Для этого потребуется создать подключение удалённого доступа к MySQL , о которых я расскажу в продолжении данного обзора .

Демо-проект из статьи доступен для скачивания по этой ссылке . Желаю успехов и красивых таракашек схем!

Понравилась статья? Поделитесь с друзьями!
Была ли эта статья полезной?
Да
Нет
Спасибо, за Ваш отзыв!
Что-то пошло не так и Ваш голос не был учтен.
Спасибо. Ваше сообщение отправлено
Нашли в тексте ошибку?
Выделите её, нажмите Ctrl + Enter и мы всё исправим!