При помощи SQL-скриптов довольно просто создать базу данных из нескольких таблиц. В ней легко ориентироваться и всю схему можно держать в голове. Такие БД встречаются только в небольших или учебных проектах.
В реальных системах базы данных содержат десятки и сотни таблиц, процедур, представлений и триггеров. Невозможно удержать все эти объекты и связи между ними в голове. И когда в такую схему нужно добавить новую таблицу или разобраться в существующей структуре, хочется увидеть все таблицы перед глазами.
С этим может помочь инструмент MySQL Workbench. Он упрощает многие аспекты работы с БД: создание таблиц и связей между ними, создание триггеров и процедур, визуальное представление схемы, настройка БД и создание резервных копий.
В статье мы покажем, как работать с MySQL Workbench. Мы создадим кластер СУБД MySQL, установим Workbench и подключимся к кластеру. Затем попробуем разные способы создания таблиц и работы с данными. Также создадим бекап базы данных и восстановим его. Все это на пошаговых примерах с описанием и скриншотами.
Prevent Your Workbench From Collapsing
Что такое MySQL Workbench
MySQL Workbench — универсальный инструмент для работы и управления базами данных. С его помощью можно создавать и редактировать таблицы и другие объекты, управлять доступом пользователей и полноценно администрировать БД. Workbench может пригодиться разработчикам, администраторам БД и архитекторам систем.
Несмотря на название, он может работать не только с MySQL, но и с другими СУБД: Oracle Database, Microsoft SQL Server, PostgreSQL и другими.
Одна из главных особенностей Workbench — визуальное моделирование. Оно позволяет увидеть все таблицы и связи между ними в наглядном виде. Это намного упрощает проектирование базы данных.
Перейдем к практике.
Создать облачную СУБД MySQL
Перед началом работы с Workbench нужно установить и запустить MySQL. Мы создадим кластер на платформе Selectel, это позволит быстро развернуть БД и не заниматься установкой и настройкой сервера.
Облачные базы данных
Готовые к работе управляемые базы данных MySQL
В панели управления заходим в раздел «Облачная платформа» — «Базы данных», нажимаем кнопку «Создать кластер».
На экране создания кластера выбираем параметры. Мы покажем лишь некоторые параметры, остальные можно оставить по умолчанию. Выбираем «СУБД» — MySQL 8, «Конфигурация нод» — «Фиксированная», 2 vCPU, 4 ГБ оперативной памяти и 32 ГБ места на диске. В разделе «Сеть» нужно выбрать публичную подсеть, чтобы к кластеру можно было подключаться из интернета.
После этого внизу страницы нажимаем кнопку «Создать». Кластер будет создаваться несколько минут, и после того, как он перейдет в статус ACTIVE, можно продолжать настройку. Нажимаем на имя кластера.
На первой вкладке нам нужно записать IP-адрес кластера, чтобы позже подключиться к нему. Также подключаться можно и по DNS-имени.
Затем переходим на вкладку «Пользователи». Нужно создать нового пользователя, для этого нажимаем на соответствующую кнопку.
Интерфейс платформы автоматически предложит имя пользователя и пароль. Не забудьте сохранить пароль, потому что его нельзя восстановить и можно только поменять.
Далее создадим базу данных, в которой мы потом будем создавать таблицы. Перейдите на вкладку «Базы данных», нажмите кнопку «Создать базу данных» и укажите имя.
Все, наш удаленный сервер MySQL готов к работе.
Установить MySQL Workbench и подключиться к кластеру
Теперь установим MySQL Workbench и подключимся к созданному кластеру. Перейдите на страницу загрузки, выберите вашу операционную систему. Мы покажем, как установить MySQL Workbench на примере Windows. Если у вас Linux или MacOS, то после выбора ОС из списка появятся соответствующие инструкции, воспользуйтесь ими.
Нажимаем кнопку Download, и на следующем экране нам предложат войти в аккаунт Oracle или создать его. Отказываемся, нажимаем кнопку No thanks, just start my download, и просто скачиваем установщик.
Запускаем скачанный файл, во всех диалоговых окнах оставляем значения по умолчанию. После установки запускаем MySQL Workbench. При первом запуске нас встретит приветственное окно. Для начала нужно добавить подключение к нашему кластеру. Для этого нажимаем на кнопку «+», рядом с текстом MySQL Connections.
Откроется экран настройки.
- Указываем имя соединения — это позволит различать подключения, если вы работаете с несколькими серверами.
- Указываем IP-адрес кластера и порт. Обратите внимание, что по умолчанию в Workbench указан порт 3306. Нам нужно указать 6033, как указано в параметрах подключения на платформе Selectel.
- Указываем имя пользователя.
Эти настройки сохранятся и в дальнейшем их не нужно будет вводить заново. Нажимаем кнопку OK и в следующем диалоговом окне вводим пароль.
Основы работы с MySQL Workbench: быстрый старт, управление схемой данных
Веб-разработчик растёт вместе с проектами, которые он создаёт и развивает. С ростом проектов увеличивается сложность программной части, неизбежно возрастает количество обрабатываемых ею данных, а так же сложность схемы данных.
Общение с другими вебщиками показывает, что огромной популярностью среди нас пользуются базы данных MySQL, а для управления ими — небезызвестный PHPMyAdmin. Переходя от маленьких проектов к большим, от cms к фреймворкам, многие, как и я, остаются верны MySQL. Однако для проектирования сложной базы данных с большим количеством таблиц и связей, возможностей PHPMyAdmin катастрофически не хватает. Поэтому я решил написать обзор MySQL Workbench — замечательной бесплатной десктопной программы для работы с MySQL.
В первой части обзора я расскажу о самых основах работы с программой, так что, можете использовать эту статью как руководство начинающего пользователя. Вторая часть будет посвящена использованию Workbench в бою при работе с удалённым сервером. В ней я дам базовые инструкции и рекомендации по настройке подключения сервера и синхронизации с ним.
MySQL Workbench — инструмент для визуального проектирования баз данных, интегрирующий проектирование, моделирование, создание и эксплуатацию БД в единое бесшовное окружение для системы баз данных MySQL.
Должен сказать, что программа действительно великолепная. Она позволяет быстро и с удовольствием накидывать схемы данных проекта, проектировать сущности и связи между ними, безболезненно внедрять изменения в схему и так же быстро и безболезненно синхронизировать её с удалённым сервером. А графический редактор EER-диаграмм, напоминающих забавных таракашек, позволяет увидеть общую картину модели данных и насладиться её лёгкостью и элегантностью 🙂 После первой же пробы этот инструмент становится незаменимым помощником в боевом арсенале веб-программиста.
Скачать MySQL Workbench
Дистрибутив MySQL Workbench доступен на этой странице. Самая свежая версия программы на момент написания статьи — Version 6.1. Перед скачиванием требуется выбрать одну из следующих платформ:
- Microsoft Windows (доступны MSI Installer и ZIP архив)
- Ubuntu Linux
- Fedora
- Red Hat Enterprise Linux / Oracle Linux
- Mac OS X
После выбора платформы вам предлагают зарегистрироваться или авторизоваться в 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’).
После ввода данных необходимо сохранить их в локальную базу данных нажатием на кнопку «Apply Changes».
Создание 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, о которых я расскажу в продолжении данного обзора.
Демо-проект из статьи доступен для скачивания по этой ссылке. Желаю успехов и красивых таракашек схем!
Источник: www.mithrandir.ru
MySQL Workbench
MySQL Workbench — приложение для визуального проектирования баз данных, в составе которого инструменты проектирования, моделирования, создание и эксплуатация БД.
MySQL Workbench — преемник систем DBDesigner 4 из FabForce и предлагается в двух вариантах:
Community Edition — распространяется под свободной лицензией GNU GPL Standard Edition — доступна по ежегодной оплачиваемой подписке. Эта версия включает в себя дополнительные функции, которые повышают производительность разработчиков и администраторов БД.
История
Первая версия MySQL Workbench вышла в сентябре 2005 года и стал первым семейством продуктов, которое доступно в двух редакциях.
Возможности программы
- Позволяет наглядно представить модель базы данных в графическом виде.
- Наглядный, функциональный механизм установки связей между таблицами, в том числе «многие ко многим» с созданием таблицы связей.
- Reverse Engineering — восстановление структуры таблиц из уже существующей на сервере БД (связи восстанавливаются в InnoDB, при использовании MyISAM — связи необходимо устанавливать вручную).
- Удобный редактор SQL запросов, позволяющий сразу же отправлять их серверу и получать ответ в виде таблицы.
- Возможность редактирования данных в таблице в визуальном режиме.
2013
MySQL Workbench 6.0
MySQL Workbench 6.0 — новая версия инструмента проектирования, разработки и администрирования баз данных с открытым исходным кодом.
О выпуске Oracle MySQL Workbench 6.0 сообщила пресс-служба 29 августа 2013 года.
- переработанный графический пользовательский интерфейс, который теперь имеет модернизированный основной экран и интерфейс для единого, многозадачного управления базами данных и разработкой
- режим вертикального отображения результатов запросов позволяет представлять результаты в виде списка пар столбец/значение.
- генератор каскадных операторов DELETE автоматизирует создание операторов DELETE для удаления строки, на которую ссылаются внешние ключи.
- улучшена синхронизация визуальных моделей сущностей и связей с динамично обновляющимися схемами. Новая функция Schema Inspector предлагает набор детальных представлений всех объектов в схемах, а также доступ к операциям обслуживания таблиц
- новые средства поиска данных в таблицах обеспечивают текстовой поиск строк, соответствующих заданному шаблону, в любом количестве таблиц и схем
- улучшенная функция Server Status предоставляет краткую сводную информацию о статусе и конфигурации сервера
- Workbench 6.0 поддерживает миграцию на основе мастеров для Microsoft SQL Server, Sybase Adaptive Server Enterprise, PostgreSQL, Sybase SQL Anywhere и SQLite.
Доступность
MySQL Workbench Community Edition распространяется бесплатно по лицензии GPL.
MySQL Workbench Enterprise Edition включена в подписку на MySQL Enterprise Edition.
Корпоративная редакция предоставляет дополнительные функции, в том числе графический пользовательский интерфейс MySQL Enterprise Backup для создания резервных копий и автоматизированного восстановления, а также MySQL Audit Log для анализа данных аудита, генерируемых через MySQL Enterprise Audit.
2014
MySQL Workbench 6.2
6 ноября 2014 года корпорация Oracle заявила о выходе новой версии MySQL Workbench 6.2.
Новые возможности
- Миграция баз данных из Microsoft Access, что помогает пользователям провести миграцию данных Microsoft Access в MySQL.
- Усовершенствован механизм Visual Explain (предназначен для визуальной оценки выбранного плана выполнения запроса), что улучшает и упрощает настройку производительности SQL-запросов.
- Средство просмотра данных ГИС, позволяет пользователям просматривать пространственные данные MySQL с помощью более мощного и надежного «геометрического движка» (geometric engine).
Источник: www.tadviser.ru