Руководства, Инструкции, Бланки

Mysql Workbench руководство на русском img-1

Mysql Workbench руководство на русском

Рейтинг: 4.5/5.0 (1842 проголосовавших)

Категория: Руководства

Описание

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

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

Цель данного поста — помочь начинающему разработчику быстро освоится и спроектировать простенькую базу с помощью инструмента для визуального проектирования баз данных MySQL Workbench от компании Oralce и получить её ER-модель и SQL-дамп.

Ну что же, меньше слов да больше смысла! Внешний вид окна программы, раздел «Моделирование данных» выглядит так:

Для того, чтобы открыть существующую модель надо нажать на ссылку: Open Existing EER Model. для создания новой модели – выбрать параметр: Create New EER Model. чтобы создать модель «сущность-связь» из существующей базы данных – нажать на параметр: Create EER Model From Existing Database. а для создания EER модели из SQL скрипта нужно выбрать: Create EER Model From SQL Script .
Для создания новой модели, воспользуемся ссылкой Create New EER Model, после нажатия на неё отобразится окно с параметрами:

Для начала необходимо создать таблицы, для этого нажмём на кнопку Add Table. появится следующая форма:

Сначала создадим таблицу users. которая будет хранить данные о пользователях информационной системы, в поле table Name впишем имя таблицы, в разделе формы Columns создадим поля таблицы:
— Первое поле id будет содержать уникальный номер пользователя, зададим ему свойства: Auto Increment, Not Null, Primary key и Unique. в разделе Data type выберем целочисленный тип integer.
— Второе поле fio, где будет хранится Ф.И.О. пользователя, установим полю свойства: Not Null. Primary key. в разделе Data type выберем строковый тип VARCHAR и зададим количество символов в 255 .
— Третье поле login. будет содержать логин пользователя, оно должно быть уникальным, как и поле id. поэтому установим ему свойство Unique и зададим количество символов в 255 .
— Следующие поля: password содержащее пароль, e_mail содержащее адрес электронной почты и поле type содержащее тип пользователя будут без особых свойств, со строковым типом VARCHAR длинной в 255 символов, за исключением последнего поля type которому хватит с 45 символов.
После проделанных манипуляций форма с именем таблицы users будет выглядеть так:

На диаграмме появится таблица users c полями и индексами:

Аналогичным способом создадим таблицу settings с настройками доступа к базе данных ИС, содержащую поля id. host для указания имени хоста (адреса сервера), db – имени базы данных, user и password с именем пользователя и паролем, для установки ИС на удалённый сервер.

Далее по уже известному методу создадим таблицу shops которая будет хранить данные о магазинах в полях: id типа integer – ключевое, ненулевое, уникальное с автоинкрементом, поле name хранящее название магазина, поле address – его физический адрес, поле tel – телефон магазина, site – интернет сайт магазина и поле email с электронным адресом магазина.

Затем создадим таблицу products хранящую данные о продукции магазина в полях: id типа integer – ключевое, ненулевое, уникальное с автоинкрементом, поле name хранящее название магазина, ключевое, ненулевое поле целочисленного типа shop_id хранящее номер магазина, поле type_id с информацией о номере товара из таблицы видов продукции. Поле brand – брэнд изготовителя длинной в 255 символов, поле model – с моделью товара, поле data – с данными и характеристиками товара типа Tinytext. поле img с полным адресом до изображения товара длинной в 255 символов, и поля price с ценой товара и warranty с информацией о сроках гарантии на товар длинной в 45 символов.

Созданные нами таблицы settings, shops и products выглядят следующим образом:

Далее нам понадобится таблица хранящая тип продуктов product_type. она состоит из уникального, ненулевого, ключевого поля id с автоинкрементом целочисленного типа, и уникального поля name длинной в 255 символов, которое содержит название вида продуктов.

Вид таблицы таков:

Последние две таблицы это orders и deliveries. первая содержит информацию о заказах клиентов, а последняя данные о доставке продукции.

Поля таблицы orders. id ключевое, ненулевое, уникальное поле целочисленного типа с автоинкрементом, поле shop_id содержащее номер магазина – ключевое, ненулевое целочисленного типа, поле product_id хранящее номер продукта – ключевое, ненулевое целочисленного типа, поле fio с номером пользователя совершившего заказ — ключевое, ненулевое целочисленного типа, поле date c датой заказа – типа DATE. поле quantity с количеством заказанных товаров – целочисленного типа, поле tel с номером телефона заказчика – строкового типа длинной в 255 символов и поле confirm содержащее информацию о подтверждении заказа – логического типа.

Поля таблицы deliveries. order_id с номером заказа — ключевое, ненулевое, уникальное поле целочисленного типа с автоинкрементом, поле поле fio с номером пользователя совершившего заказ — ключевое, ненулевое целочисленного типа, поле address хранящее адрес доставки товара указанный клиентом – строкового типа длинной в 255 символов, поле time хранящее желаемое время доставки товара – строкового типа длинной в 255 символов, поле date с датой совершения заказа клиентом – типа DATE и поле логического типа confirm хранящее информацию о доставке товара.

Таблицы orders и deliveries выглядят так:

Мы создали базу данных, состоящую из семи таблиц, теперь необходимо связать таблицы, мы уже создали ключевые поля целочисленного типа, они и станут основой для связывания.
Для того чтобы связать две таблицы к примеру products и product_type. необходимо дважды щёлкнуть левой кнопкой мыши на диаграмму с таблицей products и выбрать вкладку Foreign keys (внешние ключи ), далее в поле Foreign key name ввести уникальное имя внешнего ключа, дважды щёлкнуть по вкладке Referenced table и выбрать таблицу product_type. затем в форме расположенной правее выбрать ссылающееся поле type_id и выбрать в всплывающем списке поле id.

Таким образом, оба поля таблицы оказываются связанны, затем нужно задать тип отношений связи между таблицами, откроем окно, кликнув на появившуюся связь между таблицами, и выберем вкладку Foreign Key и в разделе Cardinality выберем тип связи один ко многим, и закроем окно. На диаграмме отобразится связь таблиц:

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

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

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

Таким образом наша база находится в третьей нормальной форме, т.к. каждый не ключевой столбец независим друг от друга. Это наглядно видно на диаграмме нашей базы данных:

Большинство таблиц находятся в отношении один-ко-многим, за исключением таблиц deliveries и orders находящихся в отношении одни-к-одному, т.к. доставлен, может быть только одни заказ, т.е. у одного заказа только одна доставка. Остальные связи наглядно указаны выше.

Теперь загрузим нашу базу данных на сервер. Для этого создадим новое подключение к базе данных, щёлкнув по ссылке New connection в стартовом окне программы:

Затем заполним поля в открывшимся окне:

Укажем имя соединения в поле Connection Name. выберем метод соединения в списке Connection Method. зададим имя хоста и порт во вкладке Parameters. укажем имя пользователя и пароль если он есть и нажмём на кнопку ОК. Затем откроем вкладку EER Diagram. в панели выберем пункт Database и нажмём на параметр Forward Engineer.

После того как появится окно, нажимаем на кнопку “Next”. выбираем параметр Export MySQL Table Objects и нажимаем на кнопку “Next” :

После нажатия кнопки появится вкладка с SQL кодом, можно сохранить его нажав кнопку “Save to file” если это необходимо, а затем нажать на кнопку “Next”. Появится окно с параметрами соединения:

Проверяем, верны ли параметры подключения и нажимаем на кнопку “Execute”. если в SQL коде не содержится ошибок, то после исполнения кода мы увидим окно со списком таблиц, иначе выведется сообщение об ошибке. Теперь наша база загружена на сервер.

Благодарю за внимание, скачать саму программу можно здесь .

Другие статьи

Визуальное создание баз данных с помощью MySQL Workbench

Визуальное создание баз данных с помощью MySQL Workbench Транскрипт

1 Визуальное создание баз данных с помощью MySQL Workbench Author: Pablo Pastor on Apr 14th 2010 Translated by: Jevgeni Agapitov 20th March 2011 Содержание Визуальное создание баз данных с помощью MySQL Workbench. 1 Что такое MySQL Workbench. 2 Планирование базы данных. 3 Отправляемся в MySQL Workbench. 4 Уточнение концепции. 5 Создание таблиц. 6 Переход в визуальный режим. 7 Рисование отношений. 8 Создание кода SQL. 11 Подключение к серверу MySQL. 13 Заключение. 14

2 Что такое MySQL Workbench? MySQL Workbench является мощным инструментом, разработанным для решения трех основных задач: Разработка на языке SQL: Позволяет пользователю подключаться к существующей базе данных для редактирования и выполнения SQL запросов. Моделирование данных: полное визуальное проектирование и моделирование баз данных. Администрирование баз данных: Заменяет программу администрирования mysql. Имеющийся графический интерфейс служит для запуска / остановки серверов, создания учетных записей, редактирования конфигурационных файлов и т.д. В этом учебном пособии мы сосредоточимся на аспекте моделирования данных, создадим базу данных с нуля, а затем только бегло познакомимся с редактором выражений SQL, чтобы выполнить наш сценарий SQL и создать базу данных на сервере MySQL. Программа MySQL Workbench доступна для Windows, Linux и Mac OSX. Существуют два варианта программы: свободный Community OSS Edition и коммерческий Standard Edition. Community Edition, как и следовало ожидать, поставляется с открытым исходным кодом и по лицензии GPL. Это полностью функциональная программа, и именно ее мы будем использовать в этом учебном пособии. В коммерческом варианте добавлены некоторые дополнительные функции, такие как проверка схемы и модели и автоматизированное создание документации.

3 Планирование базы данных Для изучения MySQL Workbench мы будем использовать в качестве примера очень простую базу данных для дистанционного обучения. Пусть группа учителей хочет предложить дистанционное обучение на различные темы, используя Skype или любое другое программное обеспечение для видеоконференций. Будем считать, что в нашем небольшом проекте мы должны хранить следующую информацию: При разработке схемы мы должны знать отношения между этими группами данных, так что лучше подумать об этом сейчас! Один учитель может преподавать многие предметы Один предмет может преподаваться многими учителями Каждого курс преподает только один учитель Один учитель может преподавать много курсов Один студент может изучать много курсов Один курс изучает много студентов Один курс может иметь несколько часов (в неделю) В какой-то конкретный день и час может быть несколько курсов В одном курсе изучается один предмет Один предмет может изучаться во многих к курсах Теперьу нас есть все данные, необходимые для решения задачи

4 Отправляемся в MySQL Workbench Пришло время запустить MySQL Workbench. В разделе моделирования данных на главном экране нажмите на ссылку Create new EER Model (Создать новую EER модель), и появится следующее окно: Когда мы создаем новую модель базы данных, она содержит схему по умолчанию MyDB. Мы можем переименовать ее и использовать в качестве нашей схемы БД. Модель базы данных может иметь несколько различных схем. Каталог справа показывает все элементы нашей схемы и позволяет в случае необходимости перетаскивать элементы на диаграмму. Наличие отдельных разделов для физической схемы и диаграммы EER и возможность включать несколько схем в одну модель базы данных может привести к путанице. В следующем разделе будут объяснены эти понятия и связь между ними.

5 Уточнение концепции Физическая схема содержит все необходимое для определения базы данных: таблицы, столбцы, типы, индексы, ограничения и т.д. Это то, что мы действительно определяем. Каждый объект, добавленный в графическую модель, также показывается в физической схеме. Это, по сути, визуальный способ определить наши схемы. Мы можем иметь несколько схем для одной и той же модели базы данных, так же мы можем иметь несколько баз данных на сервере MySQL. Каждая схема будет базой данных MySQL. Например, на следующем экране у нас есть две закладки схем: Если мы сгенерируем сценарий SQL для создания базы данных, у нас будет два отдельных выражения CREATE DATABASE - на самом деле в сценарии будут выражения CREATE SCHEMA, которые являются просто синонимами. CREATE SCHEMA IF NOT EXISTS `schema1`; CREATE SCHEMA IF NOT EXISTS `schema2`; Эти две схемы будут показаны как базы данных на сервере MySQL, если использовать выражение SHOW DATABASES. Теперь, что такое EER диаграммы? EER обозначает Extended (or Enhanced) Entity- Relationship (расширенная диаграмма сущность-связь). EER диаграммы просто способ моделирования данных и отношений между данными с использованием стандартных символов. EER модели могут быть достаточно сложными, но MySQL Workbench использует только подмножество всех возможных графических элементов, потому что целью такой диаграммы (в этой программе) является, чтобы каждый элемент отображался в физической схеме. Мы можем использовать EER диаграммы для определения всей базы данных или только ее частей. Например, у нас имеется схема с пятью таблицами, затем мы можем создать новую диаграмму, чтобы определить с помощью визуального редактора еще две таблицы. Схема будет содержать только две таблицы, но эти две таблицы также будут включены в схему вместе с пятью предыдущими.

6 Создание таблиц Вернемся к нашему примеру. Мы должны переименовать схему по умолчанию, дважды щелкнув имя mydb. Теперь у нас есть две возможности продолжить работу: мы можем начать добавлять таблицы в физическую схему (на вкладке Model) с помощью значка Add Table или мы можем открыть вкладку EER Diagram и добавить все таблицы на ней. Я предпочитаю с самого начала добавить новую диаграмму и визуально создавать на ней таблицы, однако для того, чтобы показать, как сделать это обоими методами, мы создадим первые две таблицы на вкладке Model, а затем продолжим на вкладке EER Diagram. При нажатии на кнопку Add Table (Добавить таблицу), редактор таблиц откроется в виде вкладки как показано ниже: Используя редактор таблиц, изменим имя таблицы и перейдем на вкладку Columns (на вкладках внизу редактора) для доступа к столбцам. Мы можем выбрать тип данных (есть выпадающий список всех типов данных MySQL), присвоить, если это необходимо, значение по умолчанию, и у нас есть семь флажков, чтобы отметить какое-либо из следующих свойств: PK Primary key (первичный ключ) NN Not null (не null, т.е. значение должно быть определено) UQ Unique (уникальное значение) BIN Binary (двоичное значение) UN Unsigned (беззнаковое значение) ZF Zero fill (заполнено нулями) AI Autoincrement (автоинкремент автоматическое увеличение на 1)

7 Переход в визуальный режим Это еще один из способов добавления таблиц, хотя мы также можем создавать их с помощью диаграмм. Если сейчас мы нажмем на значок Add Diagram (Добавить диаграмму), откроется новая, пустая вкладка диаграмм, и это не то, что мы хотим. Мы хотим, чтобы две таблицы, которые мы только что создали, были на диаграмме. Перейдите в меню и выберите Model/Create Diagram from Catalog Objects (Модель/Создание диаграммы из каталога объектов), теперь у нас есть схема, и мы готовы продолжать. Выберите слева значок таблицы; указатель примет форму руки с таблицей. Затем щелкните в любом месте холста, чтобы создать новую таблицу. Теперь вы просто должны дважды щелкните таблицу, и в редакторе появится вкладка для изменения имени, столбцов, типов и т.д. - так же, как это делалось раньше. После ввода деталей столбца для новых таблиц, мы будем готовы начать рисовать отношения.

8 Рисование отношений В вертикальной панели инструментов слева есть шесть инструментов, доступных для создания отношений. Не беспокойтесь о последнем, мы объясним его назначение позже. Для отношений 1:1 и 1: n, мы имеем два различных типа символов: идентифицирующие и неидентифицирующие. Что это значит? Отношение считается идентифицирующим, когда одна таблица полностью зависит от других, и не может существовать без них. Строка в такой таблице зависит от строки в другой таблице. Типичным примером является создание отдельной таблицы для хранения телефонов пользователей. Их необходимо хранить в другой таблице, потому что у одного пользователя может быть несколько телефонов, но каждая строка в этой таблице, полностью зависит от пользователя - она относится к пользователю. Вы должны знать, что отношения бывают определенных типов. Если мы хотим создать физические таблицы в MySQL, то отношения между таблицами должны быть каким-то образом отображены. Есть несколько правил, которые определяют отношения между таблицами: отношение 1:1. Первичный ключ для одной из таблиц включен в качестве внешнего ключа в другой таблице. отношение 1:n. Первичный ключ из таблицы 1 добавляется в качестве внешнего ключа в таблицу n. отношение n:m. Создается новая таблица (таблица связи). Первичный ключ состоит из первичных ключей двух оригинальных таблиц. Выявление отношения обычно используются для создания связующих таблиц для отношения "многие-ко-многим". Эти новые таблицы полностью зависят от двух оригинальных таблиц. Кроме того, в случае идентифицирующих отношений 1:1 и 1: n введенный внешний ключ становится частью первичного ключа для этой таблицы, образуя составной первичный ключ. Хорошим является то, что MySQL Workbench знает эти правила лучше, чем большинство из нас. Мы просто рисуем линии отношений, и внешние ключи или таблицы связей будут создаваться автоматически. Как мы убедимся в ближайшее время, это также можно сделать вручную. Чтобы нарисовать отношение, щелкните по значку, а затем по двум таблицам, которые необходимо связать. Для отношения "один-ко-многим" щелкните вначале по таблице "многие", а затем по таблице "один". Давайте посмотрим, как сделать это для отношения n:m учителя-предметы и для отношения 1:n учителя-курсы.

9 Имя по умолчанию, назначаемое для внешних ключей, а также для таблиц связи может быть изменено на глобальном уровне в Edit/Preferences/Model Tab, или только для данного проекта в Model/Model Options. Если мы не хотим, чтобы таблицы и внешние ключи были созданы таким образом, мы можем использовать таинственный "шестой символ". "Шестой символ" создает связь с использованием уже существующих колонок, т.е. вы уже включили необходимые внешние ключи в таблицы и создали необходимые таблицы связи (таблицы, отображающие отношение n:m). Поскольку таблицы связи уже созданы, нам не нужно отношение n:m, доступно только отношение 1: n. Когда все отношения определены, наша схема должна выглядит так:

10 Помните, что для диаграмм используются обозначения по умолчанию MySQL Workbench, но вы можете их изменить в Model/Object Notation и Model/Relationship Notation. Это пример нашей модели с классическими обозначениями: На данный момент наша модель готова, и мы можем сгенерировать код SQL для создания базы данных MySQL.

11 Создание кода SQL Выберите File/Export/Forward Engineer SQL CREATE Script. Для генерации файла с кодом SQL понадобятся только три экрана мастера! У нас даже есть возможность просматривать и редактировать сгенерированный код SQL перед его сохранением:

12 И это все. Щелкните по кнопке Finish, скрипт будет создан и сохранен. Теперь мы можем использовать его когда захотим. Например, мы можем загрузить его с помощью командной строки MySQL клиента: mysql> SOURCE scriptname.sql Или, чтобы закончить работу, можно использовать MySQL Workbench, подключившись к серверу MySQL и запустив сценарий.

13 Подключение к серверу MySQL Выбирете Database/Manage Connections, и щелкните по кнопке New. Если вы не установите пароль здесь, то позже при необходимости вам будет предложено это сделать. Нажмите кнопку "Test Connection (Проверить подключение)", чтобы проверить, верны ли параметры, а затем нажмите кнопку "Close (Закрыть)". Теперь, чтобы загрузить сценарий, мы будем использовать редактор SQL. В главном меню выберите Database/Query Database; в появившемся окне вам будет предложено выбрать подключение, а затем на вкладке откроется редактор SQL. Теперь, чтобы выполнить сценарий SQL, щелкните значок молнии, и ваша база данных будет создана! Мы могли бы также сформировать базу данных MySQL непосредственно из модели, без ссылки на сам файл, используя меню Database/Forward Engineer, однако, я считаю полезным создать сценарий, а затем использовать его как хочется.

14 Заключение MySQL Workbench является мощной программой. Мы просмотрели только несколько основных возможностей в части моделирования данных, и заглянули в редактор SQL только во второй половине этого учебного пособия. Мы узнали, как визуально создавать базу данных и рисовать диаграммы, которые могут храниться в качестве документации. Вы можете экспортировать диаграммы как PNG, SVG, PDF или PostScript файл. Спасибо за чтение, и дайте мне знать, что вы думаете!

MySQL Workbench: практическое руководство по проектированию БД

MySQL Workbench: практическое руководство по проектированию БД

Практически любой современный сайт работает с базами данных, если не считать различные продающие страницы, так называемые одностраничники (landing page). И если в случае готовых CMS база данных формируется автоматически при установке системы, то при разработке сайта с нуля БД необходимо проектировать, а для этого есть удобный и мощный инструмент — MySQL Workbench .

Говоря о разработке сайта с нуля, я имею в виду не только сайты на голом PHP, но и на тех же фреймворках, например, Yii-фреймворк. Конечно, и в случае готовых CMS часто приходится корректировать БД и добавлять ее новыми таблицами, но тем не менее основа там уже реализована.

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

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

Первым делом идем на страницу загрузки и качаем программу. К большому счастью всех разработчиков программа доступна для скачивания не только под Windows, но и для Unix-систем. А пока вы качаете, я расскажу немного о том, что же может Workbench, и как он способен ускорить процесс проектирования БД.

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

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

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

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

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

Как установить MySQL Workbench на Windows

Тут особых хитростей нет. Заходите на оффициальный сайт (ссылка указана выше), качаете установочный файл (MSI Installer) и ставите. При установке просто следуйте инструкциям, там всё просто.

Как установить MySQL Workbench на Linux

Здесь может быть чуть сложнее, если вы начнете читать многочисленные мануалы в интернете. На самом деле, столько способов описывают, и автор каждого явно хочет усложнить эту задачу. Я плюнул на все эти способы и поступил намного проще. Открываете Центр приложений, вводите в поиск «MySQL Workbench» и устанавливаете найденную программу.

На момент написания статьи у меня стоит Linux Ubuntu 14.04 LTS, установка Workbench прошла без ошибок, все компоненты исправно работают. Поэтому если у вас будут какие-то проблемы или вопросы, то указывайте в комментариях, какую ось используете.

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

На этом установка закончена. Запускаем приложение и приступаем к работе.

Создание новой модели данных

Для создания новой модели выбери в меню File->New Model или нажмите на плюсик внизу в списке всех моделей. Появится окно для построения таблиц, представлений, схем, ролей, скриптов и т.д. Несмотря на всю эту автоматизацию, я всё равно сначала примерно набрасываю список таблиц на бумаге, опираясь на предметную область, на поставленную задачу и специфику проекта. После этого создаю таблицы в Workbench, а затем уже составляю диаграмму.

Для создания новой таблицы на вкладке физической схемы (Physical Schemas) выберите «Add Table» и заполняйте поля — название таблицы, сравнение, движок и комментарий к таблице.

Далее переходим на вкладку «Columns» и создаем поля таблицы. Я не вдаюсь в подробности этого процесса, тут всё просто — вводите название поля, тип данных, параметры и комментарий к нему. Если не знаете, какой тип лучше использовать для тех или иных полей, то лучше сначала почитайте книги по БД, хотя бы одну, вместо того, чтобы делать абы как. На Хабре на этот счет тоже не мало статей.

Примечание: При выборе типа данных для поля изначально не указывается нигде поля для задания размерности. Но это не значит, что этого сделать нельзя. Советую указывать длину, не стоит отмечать тип поля просто INT, например. Укажите в скобках его размер (к примеру, INT (11)). Т.е. выбираете типа данных и в скобках уже сами дописываете его размер.

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

Если делаете через вкладку «Foreign Keys» (я делаю именно там), то переходите на эту вкладку, вводите название вашего ключа и выбираете таблицу для связи. Дальше в правой части формы, где указана таблица с полями у нужного поля выбираете поля указанной ранее таблицы, т.е. здесь как раз указывается связь между полями. В случае с расхождением типов у этих полей будет выведено соответствующее сообщение, поэтому накосячить тут точно нельзя. Вот простейший пример ключа:

Я не рассматриваю создание представлений, поскольку там нет никаких сложных форм. Кликните «Add View», откроется вкладка нового представления, в которой будет вставлен SQL-редактор. В нем пишите уже код для создания любого нужного вам представления.

Создание диаграммы БД

Для создания диаграммы используем меню Model->Add Diagram (Ctrl+T) либо на вкладке «EER Diagrams» кликаем по кнопке добавления новой диаграммы. У вас откроется клетчатое поле для рисования. Выбираем слева в списке таблиц нужные таблицы и перетаскиваем их мышью на эту клетчатую область. В результате сразу же будет построена полная диаграмма этих таблиц с учетом созданных нами ранее связей.

Как вы могли заметить здесь есть панель инструментов, в которой можно выбрать создание новой таблицы, изображения, блоки комментариев, блоки для объединения таблиц и различные варианты связей между таблицами (один к одному, один ко многим и т.п.). Кстати, если будете здесь создавать новую таблицу визуально, то она сразу же добавится и в саму модель, т.е. дублировать ничего не нужно будет.

Синхронизация с сервером

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

И так, выбираете в меню Database->Synchronize Model… и в появившемся окне вводите параметры вашего сервера. Я показываю на примере локального сервера (какой, кстати, вариант сервера вы при этом используете — не важно, у меня установлен XAMPP).

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

После этого вы уже попадете на список таблиц в вашей моделе в программе и в БД на сервере. Важно, что данный способ синхронизации полностью синхронизирует данные, т.е. не только загружает на сервер новые таблицы, но и, наоборот, может загрузить таблицы с сервера в программу. Для этого достаточно выбрать таблицы в базе и нажать кнопку «Update Model», чтобы они загрузились в модель при синхронизации. Также какие-то таблицы можно запретить к загрузке. Для наглядности я взял реальную базу данных, при синхронизации четко видно куда грузятся какие таблицы, а какие запрещены для загрузки.

После этого вам будет показан SQL-код по созданию новых таблиц, представлений и т.д. Можете его сохранить, скопировать или изменить. Ну, и наконец, снова жмете кнопку «Next». после чего осуществляется непосредственная загрузка данных. Если по какой-либо причине возникнут ошибки, то вы их сразу же увидите. В противном случае все ок, закрываете окно и можете работать с таблицами уже на сервере.

Заключение

Я показал здесь основные моменты в работе с MySQL Workbench. По крайней мере, этого вполне хватает, чтобы проектировать базы данных для проектов различной сложности. В своей работе я использую программу в основном только в тех случаях, когда требуется проектировать с нуля всю базу данных. Если же требуется создать 1-2 небольших таблички, то иногда можно быстрее сделать через phpMyAdmin или аналогичные инструменты. Вопрос выбора лишь в сложности таблиц и самой базы.

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

Не много программ подобного рода я пробовал за свой опыт работы, однако на данный момент, по-моему, это лучшая программа для проектирования БД. Если знаете лучше — пишите в комментариях, будет очень любопытно познакомиться с ними.

Основы работы с MySQL Workbench: быстрый старт, управление схемой данных

Основы работы с 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. о которых я расскажу в продолжении данного обзора .

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