Быстрый старт: Визуальное проектирование базы данных в MySQL Workbench. От модели к физической БД в MySQL WorkBench Как построить схему в workbench

Faq 26.10.2021
Faq

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

На сегодняшний день существуют различные программы и инструменты, которые справляются с подобной задачей: какие-то лучше, какие-то хуже. Но сегодня я хотел бы немного рассказать о MySQL WorkBench - инструменте для визуального проектирования баз данных, интегрирующего проектирование, моделирование, создание и эксплуатацию БД в единое бесшовное окружение для системы баз данных MySQL, который является преемником DBDesigner 4 из FabForce.(c) Wikipedia . MySQL WorkBench распространяется в двух вариантах: OSS - Comunity Edition (распространяется под лицензией LGPL) и SE - Standard Edition - версия, за которую разработчики просят денежку. Но я думаю, что многим достаточно будет и OSS версии (в особенности новичкам и тем, кто не хочет или считает нецелесообразным платить за ПО, а также приверженцам программ с открытым исходным кодом), Тем более, что OSS версия обладает богатым функционалом.

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

Таким образом, любой разработчик MySQL найдет то, что ему необходимо. Кроме того MySQL WorkBench позволяет подключать существующую базу данных, выполнять SQL запросы и SQL скрипты, редактировать и управлять объектами БД.Но для тех кто только начинает осваивать реляционные базы данных,наиболее интересным, на мой взгляд является возможность создания EER модели базы данных. Другими словами - это визуальное представление всех связей между таблицами Вашей БД, которое, при необходимости, легко можно представить в виде SQL скрипта,отредактировать или создать новое представление. Но об этом немного позже. Для начала посмотрим как выглядит главное око MySQL WorkBench (5.2.33 rev 7508 ):
Для того что бы создать EER-модель Вашей БД выбираем "Create New EER Model " . В результате у нас появится вкладка, в которой мы можем добавлять/создавать диаграммы, таблицы, виды, процедуры; задавать различные права доступа для пользователей; создавать модель при помощи SQL скриптов. Выглядит данная вкладка таким образом:
Процесс создания таблиц и БД рассматривать не будем, т.к. тут все просто. Приведу лишь окончательный вариант готовой модели (см. на скриншотах ниже). Причем, если навести курсор на линию связи (пунктирная линия) таблиц, то "связь", первичный ключ, а также внешний ключ выделятся другим цветом. Если навести курсор на какую-либо таблицу, то выделится сама таблица, а также все связи, принадлежащие выбранной таблице.

Для того, что бы отредактировать таблицу, достаточно нажать ПКМ по нужной нам таблице и выбрать "Edit Table ...". В результате внизу окна появится дополнительная область редактирования таблицы, в которой можно изменить имя таблицы, столбцы, внешние ключи и много чего другого. Для того, что бы экспортировать таблицу в SQL-скрипт достаточно нажать ПКМ по нужной нам таблице и выбрать "Copy SQL to Clipboard ", а затем из буфера обмена вставить в нужное место/программу/файл.

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

  • для ОС Windows можно скачать MSI установщик, zip архив программы, а также архив с исходным кодом. Для данной ОС MySQL WorkBench можно скачать лишь для 32-разрядной версии Windows;
  • для пользователей Ubuntu выбор немного богаче, нежели для пользователей ОС Windows - нам предлагают скачать MySQL WorkBench для Ubuntu версий 10.04, 10.10 (на момент написания статьи) и 32- или 64-разрядных версий deb пакетов;
  • для rpm-based дистрибутивов, а в данном случае это Fedora, Suse Linux и RedHat/Oracle Linux, MySQL WorkBench представлены сборки для 32- и 64-разрядной ОС;
  • не забыли и пользователей Macintosh-ей - для них имеется сборка только для 32-разрядной ОС;
  • ну и естественно можно скачать исходный код программы;

Итак, выбираем необходимый вариант загрузки и нажимаем DownLoad . Затем нас любезно попросят представиться: для зарегистрированных пользователей - ввести логин и пароль, для новичков - зарегистрироваться. Если Вы не хотите представляться, то выбираем чуть ниже вариант "» No thanks, just take me to the downloads!" и выбираем ближайшее зеркало для скачивания. Кроме того, перед установкой позаботьтесь о том, что бы у вас был установлен MySQL Client, .а иначе MySQL WorkBench откажется устанавливаться.

О чем нужно помнить и знать пользователям Linux:

Естественно, как и для случая с ОС Windows не забываем про MySQL Client. Для пользователей Ubuntu - необходимо качать версию программы, в соответствии с версией Вашей Ubuntu.Во время установки внимательно смотрим на сообщения об ошибке, если таковые появились, в которых наверняка будет сказано о том, каких пакетов не хватает в Вашей ОС. Об этом читаем ниже.

Как дела обстоят с rmp-base дистрибутивами, я к сожалению не знаю, т.к. ни разу таковыми дистрибутивами не пользовался, но думаю, что примерно также, как и с debian-based.

Возможно Вы заметили, что отсутствует сборка MySQL WorkBench для ОС Debian GNU/Linux . Но, как показала практика - ничего страшного. Для установки MySQL WorkBench в Debian 6.0 (Squeeze) мы воспользуемся deb - пакетом для Ubuntu 10.04 (не забываем про разрядность Вашей ОС: x86 или x64). Напомню, для того, что бы установить скачанный deb пакет можно воспользоваться утилитой gdebi либо ввести в консоли от имени рута команду:

# dpkg -i mysql-workbench-gpl-5.2.33b-1ubu1004-amd64.deb Например, у меня во время установки MySQL WorkBench возникла следующая ошибка:
dpkg: зависимости пакетов не позволяют настроить пакет mysql-workbench-gpl:
mysql-workbench-gpl зависит от libcairomm-1.0-1 (>= 1.6.4), однако:
Пакет libcairomm-1.0-1 не установлен.
mysql-workbench-gpl зависит от libctemplate0, однако:
Пакет libctemplate0 не установлен.
mysql-workbench-gpl зависит от libgtkmm-2.4-1c2a (>= 1:2.20.0), однако:
Пакет libgtkmm-2.4-1c2a не установлен.
mysql-workbench-gpl зависит от libpangomm-1.4-1 (>= 2.26.0), однако:
Пакет libpangomm-1.4-1 не установлен.
mysql-workbench-gpl зависит от libzip1 (>= 0.9), однако:
Пакет libzip1 не установлен.
mysql-workbench-gpl зависит от python-paramiko, однако:
Пакет python-paramiko не установлен.
mysql-workbench-gpl зависит от python-pysqlite2, однако:
Пакет python-pysqlite2 не установлен.
dpkg: не удалось обработать параметр mysql-workbench-gpl (--install):
проблемы зависимостей -- оставляем не настроенным
При обработке следующих пакетов произошли ошибки:
mysql-workbench-gpl

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

# aptitude install libzip1 libcairomm-1.0-dev libctemplate0 libgtkmm-2.4-1c2a

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

Все: MySQL WorkBench благополучно установлен и готов для изучения работы.

upd:
Если не ошибаюсь, то начиная с Ubuntu 12.04 MySQL WorkBench можно найти в репозиториях дистрибутива. Следовательно, процесс установки проходит гораздо проще и без всяких костылей.
Для установки MySQL WorkBench достаточно в терминале ввести команду:
sudo aptitude install mysql-workbench

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

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

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

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

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

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

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

Как создать структуру базы данных MySQL? Как создавать таблицы MySQL? Программа для создания базы данных MySQL Workbench!

Как создать структуру базы данных MySQL, используя MySQL Workbench

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

MySQL Workbench позволяет моделировать базу данных MySQL, используя визуальное представление таблиц. Это устраняет необходимость кропотливо описывать структуру базы данных, в SQL, программа MySQL Workbench будет генерировать код за вас! Скачать программу можно бесплатно на веб-сайте: http://www.mysql.com/downloads/workbench, вы можете скачать как установочную версию, так и ту, которая требует только распаковки (доступные системы включают в себя: Windows, Ubuntu Linux, Fedora, Mac OS Х).

Как использовать программу для создания базы данных MySQL?

Откройте MySQL Workbench, выберите пункт File -> New Model, или нажмите CTRL + N. область моделирования баз данных, отображается на изображении ниже:

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

Заполните соответствующие поля: имя таблицы, атрибуты (помните, что один из них должен быть главным ключом – обозначенным флажком, PK "первичный ключ".).

Когда вы создаете таблицы, вы должны думать о том, как они будут связаны друг с другом.

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

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

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

Теперь объедините таблицу, с тем, чтобы сформировать отношения.

Предположим они будут выглядеть таким образом:

Книга, может принадлежать к одному читателю

Читатель может занять несколько книг

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

Таким образом, мы создаем соединения, как показано на рисунке:

Если вы дважды щелкните на отношения, вы сможем установить дополнительные параметры.

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

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

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

Скачать бесплатно полную русскую версию MySQL Workbench с официального сайта без регистрации и смс.

Системные требования

  • Поддерживаемые ОС: Windows 10, Vista, 8.1, XP, 7, 8
  • Разрядность: 64 bit, 32 bit, x86

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

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



Рекомендуем почитать

Наверх