Mysql

Mysql workbench создание базы данных: MySQL Workbench. Создание базы данных

Содержание

MySQL Workbench. Создание базы данных

С появлением в составе MySQL программы MySQL Workbench был значительно упрощён процесс создания баз данных (БД). Ведь то, что раньше приходилось делать вручную с помощью SQL скрипта и командной строки, теперь можно сделать «в визуальном режиме» с помощью дружественного графического интерфейса.

Рассмотрим процесс создания БД с помощью MySQL Workbench более подробно.

На скриншоте ниже представлен общий вид окна программы MySQL Workbench.

 

Для того чтобы создать БД нужно в левой панели в области со списком БД (обозначена как SCHEMAS) кликнуть правой кнопкой мыши и в контекстном меню выбрать «Create Schema».

После этого появится вкладка, в которой следует указать название новой БД и указать параметры сортировки. БД, для примера, будет названа mynewdatabase. Параметры сортировки можно либо выбрать из выпадающего списка либо оставить те, что предлагаются по умолчанию (в данном примере оставлены параметры по умолчанию).

После этого, для продолжения создания БД, следует нажать кнопку «Apply”. В появившемся диалоговом окне будет показан сгенерирванный MySQL Workbench SQL скрипт создания БД. В случае необходимости, этот скрипт можно отредактировать прямо в этом окне.

В верхней части окна имеется область Online DDL. Она предназначена для установки параметров выполнения скрипта. Эти параметры могут быть полезны при манипуляциях с уже существующей БД. При создании БД рекомендуется оставить значения по умолчанию («Default»).

При нажатии кнопки «Apply» новая БД будет создана.

Для того, чтобы закрыть окно следует нажать кнопку «Finish».

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

Визуальное проектирование базы данных в MySQL Workbench / Хабр

Цель данного поста — помочь начинающему разработчику быстро освоится и спроектировать простенькую базу с помощью инструмента для визуального проектирования баз данных MySQL Workbench от компании Oracle и получить её 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 коде не содержится ошибок, то после исполнения кода мы увидим окно со списком таблиц, иначе выведется сообщение об ошибке. Теперь наша база загружена на сервер.

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

UPD:

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

После этого связи таблиц примут вид:

Также есть возможность изменить вид таблиц, для этого нужно поставить галочку в вышеуказанном разделе меню и в нижеследующем Object Notation:

Вот так выглядит таблица на диаграмме приведенная к стандарту IDEF1X:

Благодарю за дельные комментарии!

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

Веб-разработчик растёт вместе с проектами, которые он создаёт и развивает. С ростом проектов увеличивается сложность программной части, неизбежно возрастает количество обрабатываемых ею данных, а так же сложность схемы данных. Общение с другими вебщиками показывает, что огромной популярностью среди нас пользуются базы данных 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, о которых я расскажу в продолжении данного обзора.

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


Как создать базу данных MySQL с помощью Workbench?

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

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

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

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

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

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

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

  1. Сначала нужно открыть новую модель, это делается через меню или комбинацией клавиш Ctrl+N:
  2. Первый шаг при создании базы данных, это добавление таблицы, поэтому выбираем соответствующую функцию:
  3. Дальше выполняется заполнение таблицы. Указывайте имя и атрибуты, учитывайте, что один из атрибутов это главный ключ, помеченный флажком. Заранее думайте, как потом таблицы будут связываться между собой:
  4. Заполнив необходимые данные, создавайте диаграмму для определения связей между субъектами:
  5. Вы увидите таблицу в рабочей области. Для удобства, можно развернуть структуры таблиц:
  6. Теперь необходимо задать связи между элементами, это делается специальным инструментом на рабочей панели:
  7. В итоге у вас должны быть представлены таблицы в рабочей области и между ними установлены связи:
  8. Двойной щелчок на связи открывает окно, в котором задаются дополнительные параметры:

Выполнив все настройки и проделав каждое действие, вы получаете готовую MySQL базу данных. Теперь можно нажать на File, выбрать экспорт и перенести её куда угодно (в том числе и на хостинг).

Вам может пригодиться решение серьезной проблемы. Ошибка 1062 при переносе базы данных нередко появляется, но с ней легко справиться.

Теперь вам известно не только о моделировании новых баз данных, вы знаете, как создать таблицу в базе данных MySQL без серьезных знаний и усилий. Загружайте полезную программу, тренируйтесь, с ней работать намного проще.

Вам также будет интересно:
— Ошибка установки соединения с базой данных, что делать?
— Секреты монетизации сайта
— Бесконечный источник статей для блога

подключение удалённого сервера и синхронизация с ним

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


Экспорт модели MySQL Workbench в SQL дамп

Самый быстрый путь для того, чтобы схема данных из MySQL Workbench попала на сервер — создание SQL дампа mwb модели. Для этого не потребуется создавать удалённое подключение в программе, однако этот способ хорош лишь в случае, если требуется однократная заливка структуры и базовых данных на сервер. Дальнейшая поддержка, обновление и синхронизация модели данных в этом случае будет весьма проблематична (хотя, в MySQL Workbench есть функционал и для этого, но он не входит в планы моего обзора). Итак, открываем нашу модель и выбираем «File → Export → Forward Engineer SQL CREATE Script…» (Ctrl + Shift + G):

Если требуется записать дамп в файл, указываем путь до файла в поле «Output SQL Script File» (если оставить поле пустым, SQL скрипт можно будет скопировать на последнем шаге в буфер обмена). Мы видим окно настроек экспорта. Настройки стандартные, чтобы понять их суть, достаточно перевести их названия. Поясню только то, что галочка «Generate INSERT Statements for Tables» включает в дамп базовые данные, располагающиеся во вкладке «Inserts» интерфейса редактирования таблиц модели. После нажатия «Next» мы видим список того, что вообще можно экспортировать. Для экспорта таблиц выбираем «Export MySQL Table Objects», а чтобы экспортировать их выборочно, нажимаем «Show Filter» и выбираем нужные нам таблицы:

Нажав «Next» мы увидим в окне готовый SQL скрипт, откуда сможем скопировать его в буфер обмена или же записать в какой-либо файл.

Путей, которыми структура и данные попадут к вам на сервер масса, а самый распространённый из них — импорт через PHPMyAdmin.

Создание удалённого подключения к серверу MySQL

А вот это уже необходимо для постоянной работы с сервером. Советую не лениться и всегда создавать эти подключения — они дают массу новых возможностей!

На стартовом экране нажимаем плюсик рядом с надписью или выбираем «Database → Manage Connections…», в открывшемся окне нажимаем кнопку «New». MySQL Workbench предлагает три способа подключения к серверу: прямое подключение через пользователя, которому разрешён удалённый доступ к MySQL (обычно доступ таких пользователей ограничивают по ip), socket / pipe подключение через файл сокета (для Unix) или pipe (для Windows), а так же подключение через ssh-туннель (требует наличие ssh доступа и юзера ssh и MySQL с соответствующими правами). Рассмотрим варианты подключения к удалённому серверу:

Через удалённого пользователя MySQL (Standard: TCP/IP)

В диалоговом окне создания подключения выбираем тип подключения «Standard: TCP/IP»:

  • В поле «Host» вводим адрес сервера MySQL или адрес сайта (если MySQL сервер находится на самом веб сервере)
  • «Port» по умолчанию чаще всего 3306
  • Вводим имя пользователя MySQL («Username»), пароль («Password») и имя базы данных («Default Schema»)
  • После создания подключения нажимаем «Test Connection» и ждём сообщения «Connection parameters are correct.»

Если что-то пошло не так, проверяем, включен ли у нашего пользователя удалённый доступ, а так же наличие ip адреса нашего компьютера в списке разрешённых для данного юзера.

Через SSH туннель (TCP/IP over SSH)

В диалоговом окне создания подключения выбираем тип подключения «Standard: TCP/IP over SSH»:

  • Тут нам придётся ввести адрес веб сервера («SSH Hostname») (порт, если нужно, указывается через двоеточие, например, «linuxsc.pro:18752»)
  • Вводим логин и пароль SSH пользователя («SSH Username» и «SSH Password»)
  • Адрес MySQL сервера нужно вводить относительно веб сервера, то есть в случае, если MySQL и веб сервер находятся на одной машине, в поле «MySQL Hostname» оставляем «127.0.0.1»
  • «MySQL Server Port» по умолчанию 3306
  • В поля «Username» и «Password» вводим логин и пароль пользователя MySQL
  • Проверяем подключение при помощи кнопки «Test Connection»

Список доступных подключений можно просмотреть в диалоговом окне, выбрав «Database → Manage Connections…»

Синхронизация структуры данных

Для синхронизации структуры базы данных и локальной модели в MySQL Workbench существует специальный инструмент. Открыв нужную модель, выбираем «Database → Synchronize Model…» (Ctrl + Shift + G), после чего мы можем выбрать одно из сохранённых удалённых подключений и отредактировать его параметры. Жмём «Next» для подключения к базе данных:

После подключения к серверу и нажатия «Next» мы увидим список моделей (в левой колонке) и баз данных (в правой колонке), доступных для синхронизации:

Выбрав галочкой нужную базу и схему, нажимаем «Next», запуская процедуру сравнения структур удалённой базы данных и нашей модели:

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

Тут мы можем настроить объединение таблиц: протолкнуть наши изменения на сервер («Update Source»), втянуть в локальную модель конфигурацию с сервера («Update Model») или игнорировать отличия («Ignore»). При чём, доступен как вариант настройки для всей базы, так и отдельно для каждой таблицы. При выделении одной из таблиц и выборе способа объединения мы можем видеть SQL запросы, которые выполнятся в процессе синхронизации, а нажав «Next» — увидим полный стек этих запросов:

Просмотрев SQL запросы, нажимаем «Execute >», запуская этим выполнение синхронизации. Если всё пройдёт успешно, мы увидим такой отчёт:

В случае возникновения ошибок их лог отобразится в этом же диалоговом окне. Некоторые из них разобраны в конце этой статьи 😉

Выгрузка на сервер схемы и стартовых данных

Описанная выше синхронизация осуществляет лишь объединение структуры схемы данных удалённой базы и локальной модели, но никак не затрагивает стартовые данные, внесённые в модель («Inserts»). Если требуется выгрузить их, выбираем «Database → Forward Engineer…» (Ctrl + G), затем выбираем одно из сохранённых ранее подключений (или создаём новое) и нажимаем «Next». В остальном механизм выгрузки аналогичен механизму экспорта mwb модели, описанному в начале статьи. Его можно так же использовать, если требуется простая выгрузка схемы данных на сервер без синхронизации.

Администрирование базы данных

MySQL Workbench может быть прекрасной альтернативой PHPMyAdmin и в администрировании данных. Потребуется лишь создать подключение к MySQL серверу. Поскольку я использую Workbench с самого старта разработки, настроенное подключение у меня уже имеется в наличии. Кликаем на нужное подключение на стартовом экране или выбираем «Database → Connect to Database…» (Ctrl + U) и выбираем подключение из списка.

Список доступных для редактирования баз данных можно увидеть в левой панельке в разделе «SCHEMAS». Открыв нужную базу данных, можно увидеть список таблиц в ней:

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

Для просмотра, создания или редактирования записей нажимаем на нужную таблицу правой кнопкой и выбираем «Select Rows — Limit 1000» или выполняем нужный для выборки SQL запрос:

В открывшейся вкладке мы увидим симпатичный и человекопонятный грид, в котором интуитивно и без труда сможем работать с данными. Протолкнуть изменения в базу можно при помощи кнопки «Apply», а отменить — кнопкой «Cancel» в нижней части вкладки редактора.

Управление сервером, создание и восстановление бэкапов

Создать backup базы данных очень просто, выбрав Server → Data Export при наличии активного подключения к удалённому серверу:

Крутизна, да? 🙂 Можно бэкапить как всю базу, так и по частям. Можно хранить все бэкапы удобно и упорядоченно. Блин, можно всё что хочешь!

Восстановить backup тоже проще простого. Выбираем Server → Data Import, находим нужный файл и не долго думая нажимаем «Start Import»:

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

Такую красивую статистику просто скушать хочется! Приятно смотреть на такую эффективную эффективность моих ключей и индексов 🙂 А вот над буфером InnoDB нужно подумать.

Вместо заключения (о некоторых подводных камнях)

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

Программа периодически подвисает или «падает»

Суть проблемы: некоторая неустойчивость MySQL Workbench прослеживалась у меня на разных компах с разными ОС. Видимо, разработчики о ней тоже знают — в процессе работы изменения записываются в *.bak файл, что не раз выручало меня после «падения».

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

Ошибка «Error 1292: Incorrect date / datetime value» при синхронизации

Суть проблемы: чаще всего такая ошибка возникает при попытке синхронизации с таблицей, в которой есть запись со значением ‘0000-00-00’ или ‘0000-00-00 00:00:00’ в полях типа DATE или DATETIME соответственно. В некоторых случаях настройки MySQL позволяют создавать такие записи, но не позволяют редактировать схему таблицы.

Решение: вообще, при синхронизации или экспорте данных MySQL Workbench добавляет специальные запросы, как бы оборачивая основной SQL код:

Вчитавшись в этот код, начинаешь думать, что программа пытается решить эту проблему самостоятельно. Парадокс в том, что для решения проблемы эти строки нужно удалить:


# Удалить эту строку из начала SQL кода
SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL,ALLOW_INVALID_DATES';
...
# Удалить эту строку из конца SQL кода
SET SQL_MODE=@OLD_SQL_MODE;
                    

Ошибка «Error 1005: Can’t create table ‘…’ (errno: 150)» при синхронизации

Суть проблемы: обычно эта ошибка касается неправильной настройки внешних ключей (вкладка «Foreign Keys» в настройках таблиц). У меня она возникала в том случае, если я делал ключом поле с меткой NOT NULL, а в поведении внешнего ключа указывал SET NULL — это абсурд, ведь InnoDB не сможет установить значение NULL в поле, где такое значение запрещено.

Решение: внимательно следим за настройкой поведения внешних ключей. Если необходимо поведение SET NULL, у поля-ключа в дочерней таблице не должен стоять флаг NOT NULL.

Ошибка «Field … can not be null» при выгрузке стартовых данных

Суть проблемы: независимо от настроек таблицы, все поля в «Inserts» имеют по умолчанию значение NULL, даже если такое значение не разрешено для данного поля. Соответственно, при выгрузке на сервер может возникнуть ошибка.

Решение: при добавлении стартовых данных следим за тем, чтобы значение NULL оставалось лишь в тех полях, где это разрешено. Если нужно сделать поле пустой строкой, делаем финт ушами: ставим в него курсор, нажимаем пробел, затем стираем его (во всяком случае, я не придумал ничего получше на такой случай :)).

Ошибка Сan’t connect to MySQL server on … (10061) при подключении

Суть проблемы: говорят, что может быть несколько причин. Я встечал такую ошибку в случае, если в файле my.cnf была установлена настройка «skip-networking» — по сути она не даёт MySQL работать с сетью.

Решение: закомментировать данную опцию:


# skip-networking
                    

Конец

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

Приятной разработки!


MySQL. Workbench. Проектируем БД. Теория и практика

Данная статья посвящена проектированию БД. Основана на книге Д. Осипова “Базы данных и Delphi” и некотором личном опыте. В качестве инструмента БД я буду использовать программу MySQL Workbench 6.3 CE.

Согласно Дмитрию Осипову при проектировании БД мы можем использовать как минимум 2 подхода.

Первый – модель ER или по другому сущность-связь.

И второй подход – нормализация.

Модель сущность-связь (ER модель Питера Чена)

Алгорим проектирования БД в псевдокоде можно изобразить, например так

Выделить все сущности, подлежащие хранению в БД (отделы, сотрудники, заказы)

Выявить атрибуты (у отделов – название, у сотрудников – имя, фамилия, зарплата, у заказов – имя, количество)

Выявить взаимосвязи между сущностями – отсутствие, один к одному (1:1), один ко многим (1:M), многие ко многим (M:N). Связь один ко многим это когда в одном отделе работает несколько сотрудников, у одного поставщика несколько контрактов и так далее).

Разделить сущности на сильные (независимые) и слабые (зависимые) – если есть взаимосвязь и одна сущность зависит от другой, то говорят, что зависимая сущность – слабая, независимая сильная. Пример – отделы и сотрудники.

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

Нотации ER моделей

-Нотация Питера Чена

-Нотация Crow’s foot (“Воронья лапка”)

Нотация Питера Чена

Что касается нотации Питера Чена (схематического изображения), то она может выглядеть так…

 

Вот принятые обозначения в нотации Питера Чена

Более сложный пример мог бы выглядеть так. Пример из английской Википедии


Нотация  Gordon Everest (Гордона Эверста). Под назаванием Crow’s Foot  или Fork (вилка).

Самый простой пример мог бы выглядеть так. Как видите справа у нас “воронья лапка”, означающая связь один ко многим. Один артист может спеть несколько песен. Этот пример также из английской Википедии, который есть почти во всех русских блогах на эту тему 🙂

А вот пример из книги Дмитрия Осипова. Одна вертикальная черта означает “один”, воронья лапка справа “ко многим”.


Нормализация базы данных

В книге Д.Осипова говорится о 5 нормальных формах, для практической работы, на мой взгляд, достаточно четырех

1NF – атомарность или 1 поле 1 значение.

2NF – каждой таблице свой уникальный ключ.

3NF – 1 сущность 1 таблица (моя интерпретация)

4NF – каждую связь M:N (многие ко многим) разбить на многие к одному.

В своей книге Дмитрий приводит такой пример, берет вот такую таблицу и последовательно приводит её к 4 нормальной форме.

Как видно таблица – “плохая” в качестве БД, в одном поле несколько значений, уникального ключа нет, да и вообще все данные, все сущности в одной таблице, есть связи многие ко многим (авторы и жанры, и так далее). В общем, ни одной нормальной формы не соблюдено.

Повторим за Дмитрием вкратце его шаги

Приведение к 1NF – одно поле одно значение


Приведение ко 2NF – прописывание уникального ключа таблице. На рисунке ниже указаны ключ и поля таблицы.


Приведение к 3NF – разбиение на отдельные, независимые таблицы. Как видно из рисунка выше – все поля у нас в одной таблице, какие-то поля являются атрибутами для других, если смотреть при помощи модели Питера Чена. С точки зрения пользователя БД это очень, очень неудобно.  На 3 шаге сделаем следующее – разобьем 1 большую таблицу на несколько таблиц, соответствующих сущностям и свяжем их. Атрибуты сгруппируем по сущностям. Каждой таблице пропишем свой уникальный ключ. В результате, по книге Дмитрия Осипова, у нас получится следующее.


4NF  – разбить каждую зависимость многие ко многим на 2 зависимости 1 ко многим.  Это можно сделать введя искусственную коммутационную таблицу.

В нашем случае

-1 автор может написать несколько книг. И также можно сказать – несколько авторов могли написать 1 книгу. Поэтому вводим тип сущности WRITERS_BOOKS

-В 1 жанре может быть несколько книг. 1 книга может быть написана в нескольких жанрах. Вводим GENRES_BOOKS

В принципе этот ряд можно было бы и продолжить

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

Но остановимся на том, что написано в книге Дмитрия. Для понимания, думаю, этого достаточно.


Как разбить связь многие ко многие (M:N) на 2 связи один ко многим (1:M) ?

Пример из жизни – разные сотрудники выполняют разные заказы. Дмитрий в своей книге делает вот так, что вполне логично.


Итак, попробуем решить ту же задачу самостоятельно, используя все накопленные знания. Для начала – поймем, что у нас на входе и что требуется получить на выходе.

На входе

 

В приведенном к 1NF виде

На выходе

Готовая реляционная БД MySQL, соответствующая 4 нормальным формам.

Рисуем ER диаграмму

Идём по алгоритму, описанному выше, позволю себе его напомнить


Алгорим проектирования БД в псевдокоде можно изобразить, например так

Выделить все сущности, подлежащие хранению в БД (отделы, сотрудники, заказы)

Выявить атрибуты (у отделов – название, у сотрудников – имя, фамилия, зарплата, у заказов – имя, количество)

Выявить взаимосвязи между сущностями – отсутствие, один к одному (1:1), один ко многим (1:M), многие ко многим (M:N). Связь один ко многим это когда в одном отделе работает несколько сотрудников, у одного поставщика несколько контрактов и так далее).

Разделить сущности на сильные (независимые) и слабые (зависимые) – если есть взаимосвязь и одна сущность зависит от другой, то говорят, что зависимая сущность – слабая, независимая сильная. Пример – отделы и сотрудники.

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


В реальной ситуации о полях таблицы (атрибутах сущностей) мы будем догадываться, например, у человека есть руки, у клиентов есть заказы, у складов есть товары и так далее, у книжного магазина есть книги, продавцы, клиенты, поставщики, филиалы, да что угодно! Список это можно перечислять до бесконечности!!!

Важно при проектировании БД выделять те атрибуты, которые непосредственно относятся к решению задачи в техническом задании иначе из проектирования БД можно вообще не вылезти)))

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

1 и 2 Этап – поиск сущностей и атрибутов

Cущности (в скобках атрибуты)

1. Supplier

2. Contracts (ContrDate)

3. Order (OrderDate)

4. Writer

5. Book (Titile) // <<Этой сущности не было в таблице, мы увидели её и создали

6. Genre

7. Publisher

8. Deliveries (Amount, Price) // <<Этой сущности не было в таблице, мы увидели её и создали

Как отделить сущность от атрибута?

Верный знак – связь 1:1. Например, у контракта может быть только одна дата. У заказов – аналогично. У книг – только одно название. У поставок поставщиков – только одно количество поставок на конкретную дату и также при поставке – только одна цена.

В общем, логика прослеживается.

Сущность – Атрибут имеет взаимосвязь 1:1 в общем случае

Сущность – Сущность имеет взаимосвязь 1:M или M:N в общем случае

3 и 4 этап – установка взаимосвязей

Здесь можно, конечно как угодно действовать, рисовать на бумаге, рисовать в программах для интеллект-карт, но мне кажется лучше всего воспользоваться готовым софтом для ER-моделирования. Можно 1000 раз переставлять сущности, менять взаимосвязи. Итак, откроем MySQL WorkBench.

File >NewModel >AddDiagram

2 раза кликаем по AddDiagram. И перед нами открывается поле для действий.

 

Начинаем заполнять. Сначала добавим все сущности с атрибутами. А потом установим взаимосвязи.

Как добавить хотя бы 1 таблицу и заполнить её?

 

Заполняем таблицу так как нам надо…

 

Создадим таким образом все таблицы, которые нам нужны. Всего 8 таблиц как и заказывали.

 

Перед тем как мы будем налаживать взаимосвязи, разберемся в следующем.


В чем разница между identifying and non-identifying relationships?

Теперь, собственно попробуем наладить взаимосвязи! Но прежде, разберемся с пунктирными и непунктирными линиями во взаимосвязях.

 

Классные объяснения на английском находятся здесь. Больше всего мне понравилось вот это объяснение

A book belongs to an owner, and an owner can own multiple books. But the book can exist also without the owner and it can change the owner. The relationship between a book and an owner is a non-identifying relationship.

A book however is written by an author, and the author could have written multiple books. But the book needs to be written by an author it cannot exist without an author. Therefore the relationship between the book and the author is an identifying relationship.

Если книга может существовать без владельца, а она может, тогда  non-identifying relationship

Если книга не может существовать без автора,а она не может, тогда  identifying relationship

Технически это отражается следующим образом

identifying relationship:

Parent
——
ID (PK)
Name

Child
——
ID (PK)
ParentID (PK, FK to Parent.ID) — notice PK
Name



Parent

——

ID (PK)

Name

 

Child

——

ID (PK)

ParentID (PK, FK to Parent.ID) — notice PK

Name

non-identifying relationship:

Parent
——
ID (PK)
Name

Child
——
ID (PK)
ParentID (FK to Parent.ID) — notice no PK
Name



Parent

——

ID (PK)

Name

 

Child

——

ID (PK)

ParentID (FK to Parent.ID) — notice no PK

Name

То есть, в случае identifying в ключ ребенка встроен ключ родителя. А в случае non-identifying, в ключе ребенка нет ключа родителя.


Строим взаимосвязи

 

Последний штрих – разрушим связи многие ко многим

В нашем случае

-1 автор может написать несколько книг. И также можно сказать – несколько авторов могли написать 1 книгу. Поэтому вводим тип сущности WRITERS_BOOKS

-В 1 жанре может быть несколько книг. 1 книга может быть написана в нескольких жанрах. Вводим GENRES_BOOKS

Технически это просто

-удаляем старые взаимосвязи

-Теперь выбираем на палитре инструментов связь n:m, соединям наши таблицы и получаем следующее – 2 промежуточные таблицы.


 

 

Ну и последний шаг – создаем физическую базу

DataBase > Forward Engeneer

 

Выбираем опции и настройки, которые нам нужны

 

 

Далее собственно выполнение скрипта

 

Проверяем – создалась ли база и таблицы в реальной базе данных

MySQL Workbench Tutorial — CoderLessons.com

1. О MySQL Workbench

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

  • Создание базы данных
  • Управление доступом к базе данных и свойствами
  • Разработка в базе данных
  • Проектирование структуры базы данных
  • Администрирование и поддержка базы данных

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

2. Установка MySQL Workbench

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

Когда у вас есть готовая локальная или удаленная настройка сервера MySQL, убедитесь, что сервер работает, проверив процессы / службы на наличие запущенного процесса сервера MySQL или подключившись к удаленному хосту с помощью соответствующего онлайн-плагина. Чтобы начать установку MySQL Workbench, перейдите к загрузке соответствующего установочного файла по этой ссылке . Как показано ниже, MySQL Workbench доступен для Windows, MacOSX и нескольких вариантов систем Linux.

Варианты установки MySQL Workbench

Процесс установки довольно прост. В следующих подразделах описан процесс установки.

2.1 Установка в MacOSX

Для установки в MacOSX загрузите установочный пакет .dmg . Пакет установщика открывает окно приложения, которое позволяет скопировать приложение в папку приложений. Окно приложения показано ниже:

Установка MySQL Workbench в Mac OSX (Источник: https: //dev.mysql.com/)

2.2 Установка в ОС Windows

Чтобы установить MySQL Workbench в Windows, загрузите. EXE- файл для настройки. Выполните настройку после загрузки. Программа установки проверяет установку сервера MySQL перед установкой Workbench. После того, как проверки пройдены, приступайте к их установке. Более подробную информацию об установке Workbench в Windows можно найти здесь

2.3 Установка в вариантах Linux

Для вариантов Linux MySQL доступен в виде файла .deb . Файл deb похож на exe. Это может быть выполнено как обычная установка для установки. Однако для Linux разработчики обычно предпочитают командную строку для установки инструментов. Чтобы установить MySQL Workbench с помощью командной строки, сначала установите менеджер пакетов apt для mysql, выполнив следующие команды.

1

2

$ sudo dpkg -i mysql-apt-config_0.5.3-1_all.deb

$ sudo apt-get update

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

1

$sudo apt-get install mysql-workbench-community

Таким образом, MySQL Workbench может быть легко установлен. После установки запускается MySQL верстак. Workbench часто меняет свою версию экрана приветствия на версию.

3. Начало работы с MySQL Workbench

Как только MySQL Server и MySQL Workbench успешно установлены, запустите приложение Workbench. В зависимости от установленной версии вы увидите экран приветствия, аналогичный показанному ниже.

Экран приветствия MySQL Workbench

По умолчанию отображается локальное соединение. Эти соединения могут быть отредактированы в любой момент времени. Также возможно добавлять и управлять несколькими подключениями одновременно. Локальный сервер может быть подключен, только если был установлен локальный сервер MySQL. Чтобы подключиться к работающему локальному серверу, просто щелкните метку экземпляра, показанную в прямоугольном поле.

3.1 Добавление и настройка соединений

Чтобы добавить новые соединения, нажмите символ +, показанный рядом с меткой соединений MySQL. Откроется небольшое окно, как показано ниже.

Новое соединение с базой данных в MySQL Workbench

В окне есть определенные обязательные значения, которые необходимо заполнить. Они перечислены ниже:

  1. Название соединения
  2. Способ подключения
  3. Hostname
  4. порт
  5. имя пользователя
  6. Пароль (Вы можете сохранить его или вводить каждый раз)

Параметр «Имя соединения» обычно используется для псевдонима, который будет использоваться для идентификации соединения. Метод подключения останется стандартным методом TCP / IP. В имени хоста вам необходимо указать IP-адрес удаленного сервера MySQL или localhost в случае локального сервера. Порт по умолчанию 3306, так как он настроен сервером MySQL в качестве порта по умолчанию. Имя пользователя и пароль — учетные данные для подключения.

После того, как учетные данные были добавлены, можно проверить соединение перед сохранением сведений. Чтобы проверить соединение, нажмите кнопку « Проверить соединение» в вышеприведенных окнах. Если появится предупреждение о несовместимости, нажмите Да, чтобы продолжить. Если соединение установлено успешно, должен отображаться ответ, показанный ниже.

Тест соединения

3.2 Подключение к базе данных в первый раз

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

  1. управление
  2. Пример
  3. Производительность
  4. Schemas

Каждый раздел подробно описан ниже.

Экран приветствия базы данных Workbench

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

Второй раздел — это раздел Экземпляр . Раздел экземпляра позволяет запускать или останавливать сервер в любой момент времени. Однако это требует, чтобы сервер MySQL был установлен в расположении по умолчанию, поскольку MySQL Workbench пытается найти файл конфигурации, а также сценарии, связанные с сервером, в расположении по умолчанию.

Следующий раздел — это раздел « Производительность », в котором представлен превосходный анализ производительности и отчеты. Однако эта функция ограничена MySQL Server версии 5.6.6 или выше. Следовательно, чтобы использовать эту функцию, убедитесь, что сервер баз данных имеет более высокий выпуск.

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

4. Создание и управление схемой и таблицами базы данных.

С точки зрения разработчика, создание и управление схемой и таблицами — это самое важное, что нужно сделать в инструменте базы данных. Следовательно, мы подробно рассмотрим этот процесс, прежде чем перейти к функциям, которые характерны для администраторов баз данных или разработчиков баз данных. Почти каждая операция с базой данных может быть выполнена тремя способами с использованием MySQL Workbench.

  1. Используйте графический интерфейс для выполнения команды
  2. Написать и выполнить запрос SQL в окне SQL
  3. Откройте командную строку SQL и выполните запросы с помощью консоли SQL.

Здесь мы начнем использовать первые два способа создания схемы.

4.1 Создание схемы

Чтобы создать схему с использованием графического интерфейса, щелкните правой кнопкой мыши любую из существующих схем или в пустом окне схемы. В открывшемся всплывающем меню выберите « Создать схему», как показано ниже.

Создать схему

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

1

CREATE SCHEMA `Tutorial` ;

Теперь при нажатии кнопки «Применить» схема создается и отображается в окне «Схема». Закройте вкладку Новая схема сейчас.
Чтобы выполнить ту же операцию с использованием MySQL-запроса, перейдите на вкладку « Запрос 1», которая открывается по умолчанию, и введите указанный выше запрос. Окно запроса содержит множество символов, которые будут рассмотрены далее в статье. На данный момент, после ввода запроса, используйте Ctrl / Cmd + Enter для выполнения запроса. Результат выполнения запроса можно увидеть в окне вывода Action, как показано ниже.

Действие Выход

4.2 Отбрасывание схемы

Теперь, когда мы создали дополнительную схему, которая в настоящее время бесполезна, мы можем выбрать удаление схемы таким же образом. Щелкните правой кнопкой мыши схему в разделе «Схемы» на левой боковой панели. Выберите Drop Schema. Точно так же, как Create Schema показала соответствующий SQL, Drop Schema также показывает соответствующий SQL. Вы можете применить его, чтобы удалить схему.

Таким же образом схема также может быть отброшена простым выполнением соответствующего SQL.

4.3 Создание таблицы с использованием графического интерфейса

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

Создать таблицу в Workbench

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

Создать таблицу в Workbench

Первый и второй столбец выше говорят сами за себя. Остальные столбцы описаны ниже.

ПК: первичный ключ

NN: не нуль

UQ: уникальные данные

BIN: содержит двоичные данные

ООН: содержит неподписанные данные

ZF: подставки для заполненных нулями колонн

AI: Авто Увеличение значения поля

G: Сгенерированный столбец. Значение генерируется с использованием формулы для столбца

Установите соответствующие флажки, чтобы создать таблицу. Это не конец вариантов. Как видно на вкладке создания таблицы, существует множество дополнительных вкладок для настройки различных параметров. Они будут обсуждаться дальше. Нажмите « Применить», чтобы создать таблицу. Вы заметите, что так же, как Create Schema показала соответствующий SQL-скрипт, DDL создания таблицы появляется во всплывающем окне. Вы можете внести любые изменения, если это необходимо, в сценарии и нажать «Применить».

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

4.4 Настройка внешних ключей, триггеров и других параметров для таблицы

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

Конфигурация рабочего стола

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

Вкладка «Индексы» используется для создания индекса по конкретным столбцам в дополнение к первичному ключу. Вы можете изучить параметры, щелкнув вкладку Индексы. Доступные опции не требуют пояснений, если пользователь обладает достаточными знаниями о базе данных MySQL. На данный момент эта таблица больше не нуждается в создании индексов. Следовательно, мы перейдем к следующей вкладке.

Вкладка «Внешние ключи» позволяет назначать ограничения внешнего ключа для столбцов таблицы. На вкладке отображается пользовательский интерфейс, как показано ниже.

настроить внешние ключи в MySQL Workbench

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

Триггеры следующей вкладки очень важны, когда разработчик разрабатывает крупномасштабную систему. Однако триггеры в основном создаются и разрабатываются администраторами базы данных. Чтобы использовать эту вкладку, необходимо создать триггеры с помощью графического интерфейса Trigger. После создания они могут быть привязаны к условию, например, «Перед обновлением», «После обновления» или другим, если необходимо.

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

4.5 Таблица изменения и удаления

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

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

Настройки — открывает окно создания таблицы, чтобы вы могли изменить таблицу

Select Rows — третий значок выполняет запрос на выборку для таблицы, чтобы извлечь все строки таблицы

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

Чтобы удалить таблицу или схему, все, что вам нужно сделать, это щелкнуть правой кнопкой мыши по соответствующим объектам и выбрать таблицу удаления или схему удаления соответственно. Он отобразит SQL-скрипт отбрасываемой таблицы или схемы отбрасывания и, нажав «применить», выполнит операцию.

5. Создание модели в MySQL Workbench

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

Создание модели — это альтернативный способ создания схемы и таблиц. Следовательно, мы сократили бы процесс создания таблицы здесь. Тем не менее, мы бы рассмотрели создание EER диаграммы из того же.

5.1 Создание схемы с использованием интерфейса модели Workbench

Модель является точной копией схемы, за исключением того, что она отображается визуально в виде диаграммы EER. Чтобы начать с создания новой модели, перейдите к File-> New Model . Открывается вкладка Новая модель. Во вкладке вверху есть несколько значков. Первые три значка на изображении, показанном ниже, относятся к операциям с файлом, таким как создание нового документа, открытие существующей модели и сохранение модели. За этими значками следуют значки отмены и повтора. Следующая группа значков необходима здесь.

Создать модель в Workbench

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

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

Модель в SQL Workbench

Откроется новая вкладка с пустым листом диаграммы EER. На левой панели есть раздел Каталога, помеченный красным прямоугольником внизу.

Новая вкладка EER Diagram

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

EER Diagram в верстаке

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

6. Экспорт и импорт данных

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

6.1 Экспорт данных

Чтобы экспортировать данные, перейдите к Серверу -> Экспорт данных. Он открывает вкладку, как показано ниже.

Интерфейс экспорта данных

Всякий раз, когда присутствует несколько схем, это позволяет выбрать схему. При выборе схемы для переноса на правой панели отображаются соответствующие таблицы. Это также позволяет вам выбрать таблицы для переноса. На нижней панели вы можете найти параметры для миграции хранимых процедур, событий, а также триггеров. Дополнительные параметры экспорта позволяют выбрать, следует ли экспортировать объекты в виде отдельных файлов или в виде отдельного файла. Дамп в папку проекта создает отдельный файл для каждого объекта, выбранного для экспорта.

Для понимания процесса импорта просто выберите « Экспорт в автономный файл» на данный момент после выбора схемы, созданной на предыдущих этапах. Теперь удалите схему, созданную ранее. В случае несоответствия объекта будет отображаться предупреждение. Тем не менее, это абсолютно безопасно для обработки, если вы не использовали что-то специфическое для предыдущей версии. Введите пароль при появлении запроса. Файл будет сохранен в папке назначения.

6.2 Импорт данных

Чтобы импортировать данные в базу данных MySQL, откройте пользовательский интерфейс импорта данных, перейдя к Серверу -> Импорт данных . В открывшемся интерфейсе выберите опцию автономного файла и найдите сохраненный файл дампа. Если вы планируете импортировать таблицы в другую схему, выберите схему и нажмите «Импорт». Он импортирует всю структуру таблицы в выбранную или новую схему.

7. Обратный инжиниринг

Часто случается, что разработчик кода непосредственно начинает создание таблиц вместо того, чтобы сначала следовать процессу создания EER, а затем переходить к таблицам. В таком случае, когда количество таблиц увеличивается, сложно создать диаграмму ER с нуля. MySQL Workbench решает эту проблему для вас. Благодаря функции обратного проектирования Workbench, MySQL workbench позволяет создавать диаграммы EER из любой существующей схемы в любой момент времени. Это не конец этого. Это также позволяет создавать EER любых других удаленных баз данных, к которым можно иметь доступ.

Переход к обратному проектированию

Чтобы создать диаграмму EER, просто перейдите в базу данных-> Обратный инженер . Откроется окно с запросом выбора соединения с базой данных, которое будет использоваться для реверс-инжиниринга. После выбора соединения нажмите «Продолжить». Он подключается к базе данных и проверяет соединение. Позже он выбирает список доступных объектов из базы данных. На следующем экране отображается успех этих шагов, как показано ниже.

Обратный Инжиниринг Шаг 2

Следующий шаг позволяет вам выбрать схемы, для которых нужно сгенерировать EER. Можно также создать комбинированную диаграмму EER для нескольких схем. После того как схемы выбраны, Workbench извлекает список объектов для выбранных схем и на следующем шаге обрабатывает диаграмму EER. Также можно выбрать объекты для отображения диаграммы EER.

В последнем окне вывода отображаются таблицы в формате диаграммы EER. Можно перетаскивать и размещать таблицы для большой базы данных, а также покрывать их на ограниченной области листа. Следующее — сохранить диаграмму как изображение, чтобы поместить ее в документ. Чтобы сохранить диаграмму, перейдите к File -> Export. Выберите вариант в соответствии с вашими потребностями и сохраните диаграмму.

8. Заключение

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

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

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

В следующем примере мы создаем новую базу данных под названием «VegeShop».

  1. Щелкните значок для создания новой схемы (вы найдете его на панели инструментов Workbench):
  2. Введите имя схемы (в данном случае VegeShop ) и параметры сортировки по умолчанию (в данном случае latin1 - параметры сортировки по умолчанию ), затем нажмите кнопку Применить :
  3. Вам будет предложено просмотреть оператор SQL, который будет запущен для создания базы данных.Чтобы запустить инструкцию (и создать базу данных), нажмите Применить :
  4. После создания базы данных вы должны увидеть следующий экран:

База данных создана. Теперь вы увидите свою новую базу данных в списке на вкладке SCHEMAS на левой панели:

Установка базы данных по умолчанию

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

Вы можете определить, является ли база данных базой данных по умолчанию, потому что ее имя отображается полужирным шрифтом :

Создание баз данных программным способом

Как уже упоминалось, вы также можете создавать свои базы данных программно.Это так же быстро и просто, как написать СОЗДАТЬ БАЗУ ДАННЫХ VegeShop . Вы также можете добавить код, который проверяет наличие любых баз данных, которые уже используют это имя.

Создание таблиц

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

.

Как создать ER-диаграмму для существующей базы данных MySQL с помощью MySQL Workbench

Эта статья покажет вам, как создать диаграмму для существующей базы данных MySQL или MariaDB с помощью MySQL Workbench .

Обратное проектирование базы данных

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

Узнайте о обратном проектировании и моделях в MySQL Workbench

Для обратного проектирования базы данных перейдите в меню База данных и выберите Reverse Engineer… вариант.

Укажите сведения о подключении к базе данных и щелкните Далее . Дождитесь подключения и снова нажмите Next .

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

Дождитесь считывания схем и перейдите к Далее . На следующем экране у вас есть возможность выбрать типы объектов и , отфильтровать определенные объекты .Давайте проигнорируем это и импортируем все объекты. Щелкните Execute> .

Подождите, пока начнется обратный инжиниринг, и когда закончите, перейдите к Next . На последнем экране отображается сводка импорта. Закрываем Заканчиваем .

Диаграмма по умолчанию

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

Схема очистки

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

Чтобы удалить таблицу с диаграммы, выберите ее, щелкните правой кнопкой мыши и выберите опцию Remove Figure .

Будьте осторожны, не выбирайте опцию «Удалить» , так как она удалит не только таблицу формы, но и каталог моделей. Без предупреждения!

Расставить столы

Для расстановки столов вы можете попробовать опцию autoarrange , но помимо этого вам потребуется некоторая ручная работа.

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

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

Сохранить модель

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

Схема экспорта

Когда ваша диаграмма будет полной и безопасной, вы можете экспортировать ее в png , pdf , ps или svg .

Чтобы экспортировать диаграмму, перейдите в меню, выберите File , затем Export , выберите один из доступных форматов и укажите папку и имя файла.

Вот моя диаграмма:

Посмотреть в других форматах:

Лучший способ поделиться диаграммами: Dataedo

Есть лучший способ создавать и публиковать диаграммы для существующих баз данных — Dataedo. Вот пример экспорта полной документации базы данных с диаграммами:

См. Живой пример документации базы данных HTML

Некоторые преимущества:

  1. Простой и удобный обмен в интерактивном HTML
  2. Рисование диаграмм для баз данных без ограничений FK
  3. Приложить полный словарь данных

Попробовать бесплатно

.

Создание таблицы с помощью MySQL Workbench

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

В следующем примере мы создаем новую таблицу «Овощи» в нашей базе данных VegeShop.

  1. Когда выбранная база данных развернута на вкладке SCHEMAS , щелкните правой кнопкой мыши Tables и выберите Create Table… :

  2. Введите имя таблицы вверху (рядом с Имя: ) и добавьте все имена столбцов, их типы данных, ограничения, значения по умолчанию и любые другие необходимые сведения.Вот мой пример:

  3. Вам будет предложено просмотреть оператор SQL, который будет выполняться для базы данных. Чтобы запустить выписку (и создать базу данных), нажмите Применить :

  4. После создания таблицы вы должны увидеть следующий экран. Нажмите Закрыть :

Таблица создана. Теперь вы увидите свою новую таблицу в списке под базой данных на вкладке SCHEMAS на левой панели.Если вы развернете узлы, вы увидите новую таблицу и ее столбцы, а также индекс первичного ключа:

Создание таблиц базы данных программным способом

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

.

MySQL :: MySQL Workbench

MySQL Workbench — это унифицированный визуальный инструмент для архитекторов баз данных, разработчиков и администраторов баз данных. MySQL Workbench обеспечивает моделирование данных, разработку SQL и комплексные инструменты администрирования для настройки сервера, администрирования пользователей, резервного копирования и многого другого. MySQL Workbench доступен в Windows, Linux и Mac OS X.

Проект

MySQL Workbench позволяет администраторам баз данных, разработчикам или архитекторам данных визуально проектировать, моделировать, генерировать и управлять базами данных.Он включает в себя все, что необходимо специалисту по моделированию данных для создания сложных моделей ER, прямого и обратного проектирования, а также предоставляет ключевые функции для выполнения сложных задач управления изменениями и документирования, которые обычно требуют много времени и усилий.
Подробнее »

Разработка

MySQL Workbench предоставляет визуальные инструменты для создания, выполнения и оптимизации SQL-запросов. Редактор SQL обеспечивает цветовую подсветку синтаксиса, автозаполнение, повторное использование фрагментов SQL и историю выполнения SQL.Панель подключения к базе данных позволяет разработчикам легко управлять стандартными подключениями к базе данных, включая MySQL Fabric. Обозреватель объектов обеспечивает мгновенный доступ к схеме и объектам базы данных.
Подробнее »

Администрирование

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

Панель визуальной производительности

MySQL Workbench предоставляет набор инструментов для повышения производительности приложений MySQL. Администраторы баз данных могут быстро просматривать ключевые показатели эффективности с помощью панели мониторинга производительности. Отчеты о производительности обеспечивают простую идентификацию и доступ к точкам доступа ввода-вывода, дорогостоящим операторам SQL и многому другому. Кроме того, одним щелчком мыши разработчики могут увидеть, где оптимизировать свой запрос, с помощью улучшенного и простого в использовании плана Visual Explain Plan.
Подробнее »

Миграция базы данных

MySQL Workbench теперь предоставляет полное, простое в использовании решение для миграции Microsoft SQL Server, Microsoft Access, Sybase ASE, PostreSQL и других таблиц, объектов и данных СУБД в MySQL.Разработчики и администраторы баз данных могут быстро и легко преобразовать существующие приложения для работы в MySQL как на Windows, так и на других платформах. Миграция также поддерживает переход с более ранних версий MySQL на последние версии.
Подробнее »

.

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

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