Как создать er диаграмму в mysql workbench
Перейти к содержимому

Как создать er диаграмму в mysql workbench

  • автор:

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

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

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

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

Пример схемы данных MySQL Workbench

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

В верхней части экрана находится список подключений к 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»:

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

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

EER диаграмма в MySQL Workbench

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

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

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

Импорт схемы данной из SQL файла

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

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

Как сгененрировать «Реляционную схему базы данных» в mysql workbench?

Пытаюсь выявить связи в существующей системе CMS для интеграции ее в стороннее решение, столкнулся с проблемой труднодоступности выстраивания связей в ACL. В связи с чем хочу узнать, как получить реляционную схему таблиц для того, чтобы быстрее ориентироваться и интегрировать данную систему. Пока нашел только вот это https://www.mysql.com/products/workbench/design/ Но там не слова о генерации на основе уже существующей базы, чтобы можно было удобнее всего отсмотреть связи.

Отслеживать
задан 21 авг 2017 в 9:30
Dima Vasiluk Dima Vasiluk
2,346 3 3 золотых знака 19 19 серебряных знаков 47 47 бронзовых знаков

там не слова о генерации на основе уже существующей базы, чтобы можно было удобнее всего отсмотреть связи. dev.mysql.com/doc/workbench/en/wb-reverse-engineer-live.html

21 авг 2017 в 9:58
Печаль беда, а вообще был у кого-то подобный опыт?
21 авг 2017 в 10:04

В справке описывается процесс построения EER-диаграммы для учебной БД sakila. Не вижу оснований полагать, что для другой БД тот же процесс не сработает.

Как увидеть диаграмму в MySQL WorkBench по готовой БД со всеми связями?

Как увидеть диаграмму в MySQL WorkBench по готовой БД со всеми связями?

  • Вопрос задан более трёх лет назад
  • 30109 просмотров

Комментировать

Решения вопроса 1

Алексей Уколов @alexey-m-ukolov Куратор тега MySQL

Нужно создать новую модель, в меню выбрать Database -> Reverse Engineer. Дальше там более-менее понятно.

P.S. Ужасная, глючная неинтуитивная программа. По крайней мере под Линуксом.

Ответ написан более трёх лет назад

Нравится 10 3 комментария

5) ER Моделирование

Модель сущностных отношений (ER Modeling) – это графический подход к проектированию базы данных. Это модель данных высокого уровня, которая определяет элементы данных и их взаимосвязь для определенной программной системы. Модель ER используется для представления объектов реального мира.

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

  • У сущности есть набор свойств.
  • Свойства объекта могут иметь значения.

В этом уроке вы узнаете

  • Модель улучшенного отношения сущностей (EER)
  • Зачем использовать ER Model?
  • Объекты в библиотеке “MyFlix”
  • Определение отношений между сущностями

Давайте снова рассмотрим наш первый пример. Сотрудник организации – это субъект. Если «Питер» является программистом ( сотрудником ) в Microsoft, он может иметь такие атрибуты ( свойства), как имя, возраст, вес, рост и т. Д. Очевидно, что они содержат значения, относящиеся к нему.

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

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

В моделировании отношений сущностей мы моделируем сущности, их атрибуты и связи между сущностями.

Модель улучшенного отношения сущностей (EER)

Модель Enhanced Entity Relationship (EER) – это модель данных высокого уровня, которая предоставляет расширения для исходной модели Entity Relationship (ER). EER Models поддерживает более детальный дизайн. EER Modeling появилась как решение для моделирования очень сложных баз данных.

EER использует нотацию UML. UML является аббревиатурой от Unified Modeling Language; это язык моделирования общего назначения, используемый при проектировании объектно-ориентированных систем. Сущности представлены в виде диаграмм классов. Отношения представлены в виде ассоциаций между сущностями. Диаграмма, показанная ниже, иллюстрирует диаграмму ER с использованием нотации UML.

Что такое ER моделирование? Учитесь на примере

Зачем использовать ER Model?

Теперь вы можете подумать, зачем использовать ER-моделирование, когда мы можем просто создать базу данных и все ее объекты без ER-моделирования? Одна из проблем, с которыми сталкиваются при проектировании базы данных, заключается в том, что дизайнеры, разработчики и конечные пользователи склонны по-разному воспринимать данные и их использование. Если эту ситуацию оставить без контроля, мы можем в конечном итоге создать систему баз данных, которая не отвечает требованиям пользователей.

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

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

Пример: диаграмма ER для видеотеки “MyFlix”

Давайте теперь поработаем с системой базы данных MyFlix Video Library, чтобы помочь понять концепцию ER-диаграмм. Мы будем использовать эту базу данных для всей практической работы в оставшейся части этого урока

MyFlix – это юридическое лицо, которое сдает в аренду фильмы своим членам. MyFlix хранит свои записи вручную. Теперь руководство хочет перейти на СУБД

Давайте посмотрим на шаги по разработке диаграммы EER для этой базы данных

  1. Определите сущности и определите отношения, которые существуют между ними.
  2. Каждая сущность, атрибут и отношение должны иметь соответствующие имена, которые могут быть легко понятны и нетехническим людям.
  3. Отношения не должны быть связаны напрямую друг с другом. Отношения должны соединять сущности.
  4. Каждый атрибут в данном объекте должен иметь уникальное имя.

Объекты в библиотеке “MyFlix”

Объекты, которые должны быть включены в нашу диаграмму ER:

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

Определение отношений между сущностями

Члены и фильмы

Следующее справедливо в отношении взаимодействия между двумя объектами.

  • Участник может арендовать больше 1, чем фильм в данный период.
  • Фильм может быть арендован более чем одним участником в данный период.

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

Фильмы и категории лиц

Следующее верно для фильмов и категорий.

  • Фильм может принадлежать только к одной категории, но в категории может быть несколько фильмов.

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

Участники и платежные организации

Следующее верно для членов и платежей

  • Участник может иметь только одну учетную запись, но может сделать несколько платежей.

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

Теперь давайте создадим модель EER, используя MySQL Workbench

В рабочей среде MySQL нажмите кнопку «+»

Что такое ER моделирование? Учитесь на примере

Дважды щелкните кнопку Добавить диаграмму, чтобы открыть рабочее пространство для диаграмм ER.

Что такое ER моделирование? Учитесь на примере

Появляется следующее окно

Что такое ER моделирование? Учитесь на примере

Давайте посмотрим на два объекта, с которыми мы будем работать.

Члены организация будет иметь следующие атрибуты

  • Членский номер
  • Полные имена
  • Пол
  • Дата рождения
  • Физический адрес
  • почтовый адрес

Давайте теперь создадим таблицу членов

1. Перетащите объект таблицы с панели инструментов.

2. Поместите его в рабочую область. Появляется сущность с именем таблицы 1

3. Дважды щелкните по нему. Появится окно свойств, показанное ниже

Что такое ER моделирование? Учитесь на примере

  1. Изменить таблицу 1 на Члены
  2. Измените idtable1 по умолчанию на номер_позиции
  3. Нажмите на следующую строку, чтобы добавить следующее поле
  4. Сделайте то же самое для всех атрибутов, указанных в сущности члена.

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

Что такое ER моделирование? Учитесь на примере

Повторите вышеуказанные шаги для всех идентифицированных объектов.

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

Что такое ER моделирование? Учитесь на примере

Позволяет создать отношения между участниками и прокатом фильмов

  1. Выберите отношение места, используя существующие столбцы
  2. Нажмите на номер_ членства в таблице Члены
  3. Нажмите на номер ссылки в таблице MovieRentals

Что такое ER моделирование? Учитесь на примере

Повторите вышеуказанные шаги для других отношений. Ваша диаграмма ER теперь должна выглядеть так:

Резюме

  • Полная форма ER – диаграммы сущностей и отношений. Они играют очень важную роль в процессе проектирования баз данных. Они служат нетехническим средством связи для технических и нетехнических людей.
  • Сущности представляют вещи реального мира; они могут быть концептуальными как заказ на продажу или физическими, например, заказчиком.
  • Все лица должны иметь уникальные имена.
  • Модели ER также позволяют разработчикам баз данных идентифицировать и определять отношения, существующие между объектами.

Вся модель ER прилагается ниже. Вы можете просто импортировать его в MySQL Workbench

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

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