Главная страница » Как создать er диаграмму в mysql workbench

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

  • автор:

Русские Блоги

Основы MySQL: используйте MySQL Workbench для создания диаграмм ER

В этой статье описывается, как использовать MySQL Workbench для создания диаграмм ER.

  • MySQL: 8.0.11
  • MySQL Workbench: 6.3.10 (версия CE)

Создать диаграмму ER

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

Шаг 1. Выберите пункт меню «Новая модель».

Откройте MySQL Workbench, а затем выберите пункт меню Reverse Engineer в меню базы данных.

На следующей странице вы увидите следующую информацию.

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

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

Нажмите "Продолжить", чтобы автоматически получить содержимое объекта, созданного в обратном порядке.


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

Нажмите кнопку "Выполнить", чтобы выполнить обратную генерацию.

Нажмите кнопку "Продолжить", чтобы просмотреть полученные результаты.

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

спасти

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

Экспорт в файлы других форматов

Файлы с суффиксом mwb необходимо открывать в MySQL Workbench. Если вы хотите экспортировать в PDF или в формат изображения, используйте следующие параметры меню

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

image

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

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

image

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

image

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

image

Сначала создадим таблицу 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 будет выглядеть так:

image

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

image

Аналогичным способом создадим таблицу 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 выглядят следующим образом:

image imageimage

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

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

image

Последние две таблицы это 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 выглядят так:

imageimage

Связи таблиц

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

image

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

image

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

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

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

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

image

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

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

image

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

image

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

image

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

image

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

image

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

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

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

image

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

image

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

Create ER Diagram of a Database in MySQL Workbench

2. Click on Database -> Reverse Engineer.

3. Select your stored connection (for connecting to your MySQL Server in which database is present) from the dropdown. Then click Next.

4. After the execution gets completed successfully (connection to DBMS), click Next.

5. Select your Database from the MySQL Server for which you want to create the ER Diagram (in our case the database name is “bank”), then click Next.

6. After the retrieval gets completed successfully for the selected Database, click Next.

7. Select the Tables of the Database which you want to be visible on the ER Diagram (In this case I am importing all the tables of the DB), then click Execute>.

8. After the Reverse Engineering Process gets completed successfully, click Next.

Name already in use

PiRIS / articles / 5_1_1_1_erd_workbench.md

  • Go to file T
  • Go to line L
  • Copy path
  • Copy permalink
  • Open with Desktop
  • View raw
  • Copy raw contents Copy raw contents

Copy raw contents

Copy raw contents

Создание ER-диаграммы в среде MySQL Workbench

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

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

Вспомним шаги по разработке диаграммы EER для базы данных:

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

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

Участники — эта сущность будет хранить информацию об участниках.

Фильмы — эта сущность будет содержать информацию о фильмах

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

Прокат фильмов — эта сущность будет хранить информацию о фильмах, сдаваемых в аренду ее членам.

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

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

Участники и фильмы

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

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

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

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

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

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

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

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

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

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

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

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

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

Появляется окно EER Diagram

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

  • Объект таблицы позволяет нам создавать объекты и определять атрибуты, связанные с конкретным объектом.
  • Кнопки отношений позволяет нам определять отношения между объектами.

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

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

Создадим таблицу участников:

Кликните по кнопке «Таблица»

В верхней части окна диаграммы появится запрос параметров для создаваемой таблицы:

В поле Collation Выбираем utf8mb4_0900_ai_ci и кликаем по области диаграммы — появится сущность с названием table1 (остальные параметры не меняем)

  • CI — Case Insensitive — без учета регистра;
  • CS — Case Sensitive — c учетом регистра;
  • AS — Accent Sensitive — с учетом аксонов или диакритических знаков, проще говоря ‘a’ не считается равным ‘ấ’.
  • AI — Accent Insensitive — без учета аксонов или диакритических знаков, проще говоря ‘е’ считается равным ‘ё’.
  • UTF8 — позволяет хранить данные в UTF8.
  • mb4 — минимальное количество байт для хранения символа utf (utf8 без суффикса mb4 использует 3 байта на символ, и в этот набор не входят, например, emoji)
  • bin — простое побитовое сравнение

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

Задайте название сущности (поле Table Name) и добавьте атрибуты (Column Name)

Должно получиться примерно такое:

Повторите эти действия для всех сущностей, в итоге должно получиться примерно так:

  • Таблица связей названа по именам связываемых сущностей
  • В названиях сущностей и атрибутов используем CamelCase и единственное число
  • сразу создаем атрибуты для связей (PaymentId, MemberId, MovieId? CategoryId). В принципе MySQL Workbench может автоматически созавать эти атрибуты при создании связей, но при этом он называет их не по нашему стандарту.

Кликаем по иконке создания связи «один-ко-многим»

Затем последовательно кликаем по внешнему ключу MemberMovie.MemberId и Member.id (нужные поля подсвечиваются под курсором)

Повторяем эти действия для всех связей, в итоге получится примерно следующее:

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

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