Глава 9. Проектирование и моделирование баз данных

Моделирование упрощает проектирование баз данных и обслуживание, позволяя вам, архитектору данных, визуализировать вопросы проектирования и требования. Управляемое моделью проектирование баз данных это эффективная методология для создания хороших баз данных, обеспечивая гибкость, чтобы ответить на развивающиеся требования к данным. Модели используются, чтобы построить диаграммы ER и физические базы данных MySQL.

MySQL Workbench обеспечивает обширные возможности по созданию и управлению моделями базы данных, включая:

Это не исчерпывающий список. Следующие разделы описывают эти и дополнительные возможности моделирования данных.

9.1. Моделирование интерфейса

Моделирование понятий и интерфейсных элементов описано в следующих секциях.

9.1.1. Model Editor

Когда Model Editor вызван с домашнего экрана, MySQL Workbench показывает страницу MySQL Model. Страница MySQL Model имеет есть три главных панели: Description Editor, User Types List/History и Model Overview.

Рис. 9.1. Страница MySQL Model

Content is described in the surrounding text.

Description Editor и панель User Types List/History содержатся в рамках боковой панели. Она может быть перемещена, используя диалог Workbench Preferences.

Панель Model Overview включает следующие разделы:

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

Следующие разделы далее обсуждают страницу MySQL Model.

9.1.1.1. Моделирование меню

Некоторые пункты меню не доступны в MySQL Workbench Community Edition, а есть только в MySQL Workbench Commercial Editions. Это обозначается, когда применимо.

9.1.1.1.1. Меню File

Используйте меню File, чтобы открыть проект, начать новый проект или сохранить проект. Выбор Model открывает схему по умолчанию mydb. Выбор Open Model открывает диалоговое окно файла с типом файла по умолчанию MySQL Workbench Models (mwb). Чтобы показать список недавно открытых файлов MWB, выберите Open Recent из меню. Клавиша быстрого вызова, чтобы создать новый проект: Control+N, чтобы открыть существующий проект Control+O.

Закрыть в настоящее время активную вкладку MySQL Model или EER Diagram можно через меню Close Tab. Можно также сделать это с клавиатуры, нажав Control+W. Чтобы вновь открыть вкладку MySQL Model см. раздел 9.1.1.1.3. Чтобы вновь открыть вкладку EER Diagram, дважды щелкните EER Diagram в секции EER Diagrams страницы MySQL Model.

Используйте пункты меню Save Model или Save Model As, чтобы сохранить модель. Когда вы сохраняете модель, ее имя появляется в заголовке окна. Если вы внесли изменения в проект и не сохранили их, звездочка появляется в заголовке окна после имени модели. Когда вы сохраняете модель, она сохраняется как файл MySQL Workbench с расширением mwb.

Используйте пункт меню Import, чтобы импортировать определение данных MySQL (DDL) файл скрипта. Например, это могло бы быть файлом, созданным, дав команду mysqldump --no-data . MySQL Workbench обращается со скриптом следующим образом:

Для получения дополнительной информации об импортировании скрипта DDL посмотрите раздел 9.4.2.1.

В подменю Import можно также импортировать файлы DBDesigner4.

Есть множество пунктов в подменю Export. Можно произвести SQL-операторы, необходимые, чтобы создать новую базу данных или изменить существующую. Для получения дополнительной информации об этих пунктах меню, посмотрите раздел 9.4.1.1.

Используя подменю Export, можно также экспортировать диаграмму EER как PNG, SVG, PDF или файл Postscript. Для примера файла PNG посмотрите рис. 9.29.

Меню Page Setup позволяет вам установить формат бумаги, ориентацию и края для печати.

Параметры печати позволены, только если выбрана вкладка EER Diagrams. У вас есть выбор печати вашей модели непосредственно на вашем принтере, печать ее как файл PDF или создание файла PostScript. Для получения дополнительной информации посмотрите раздел 9.2.1.

Параметры печати доступны только в MySQL Workbench Commercial.

Используйте пункт меню Document Properties , чтобы установить следующие свойства вашего проекта:

9.1.1.1.2. Меню Edit

Используйте меню Edit, чтобы внести изменения в объекты. Текстовые описания пункта меню изменяются, чтобы отразить название выбранного объекта.

У этого меню есть пункты для вырезки, копирования и вставки. Эти действия могут также быть выполнены, используя ключевые комбинации Control+X, Control+C и Control+V. Отмените удаление, используя Undo Delete 'object_name'. Ключевая комбинация Control+Z может также использоваться, чтобы отменить операцию. Также возможно выполнить Redoиспользуя пункт меню или ключевую комбинацию Control+Y.

Также найдите пункт Delete 'object_name' для удаления в настоящее время выбранного объекта. Команда с клавиатуры для этого действия: Control+Delete. Можно также щелкнуть правой кнопкой мыши по объекту и выбрать опцию "Удалить" из всплывающего меню.

Меню Delete 'object_name' ведет себя по-другому в зависимости от обстоятельств. Например, если активна EER Diagram и таблица это в настоящее время выбранный объект, диалоговое окно может открыть выяснение, хотите ли вы удалить таблицу только из листа или из базы данных также. Для получения информации об урегулировании поведения по умолчанию, удаляя из EER Diagram, см. раздел 3.2.4.

Если активна страница MySQL Model, выбранный объект удален из каталога и не будет никакого диалогового окна подтверждения .

Выберите Edit Selected, чтобы отредактировать в настоящее время выбранный объект. Можно также редактировать в новом окне выбором Edit Selected in New Window. Клавиши быстрого вызова для Edit Selected и Edit Selected in New Window это Control+E и Control+Shift+E.

Меню Select имеет следующие подменю:

Эти пункты меню активны только, когда вкладка EER Diagram выбрана. Пункты Similar Figures и Connected Figures отключены, если никакой объект в настоящее время не выбирается на диаграмме EER.

Когда многократные объекты были отобраны, используя один из этих пунктов меню, можно перейти между выбранными пунктами, выбрав Go to Next Selected или Go to previous Selected.

Отбор объектов изменяет некоторые пункты меню Edit. Если только один объект отобран, имя объекта появляется после Cut, Copy и Delete. Если больше чем один объект отобран, эти пункты меню показывают количество отобранных объектов.

9.1.1.1.2.1. Диалоговое окно Find

Каждое окно MySQL Workbench включает функциональность поиска. Панель Find с Find & Replace показан на рисунке.

Рис. 9.2. Панель Find с Find & Replace

Content is described in the surrounding text.
Опции Find

Опции диалога Find описаны в следующем списке:

MySQL Workbench Commercial Editions включает продвинутое средство Find для моделей, как обозначено на рисунке ниже.

Рис. 9.3. Окно Find

Content is described in the surrounding text.

Можно искать следующие местоположения:

Введите текст, который вы хотите искать, в поле Find Text. Можно также выбрать любые из следующих опций:

Любой текст в поле Find Text сохраняется на время вашей сессии. Используйте кнопки Next или Previous, чтобы найти случаи вашего критерия поиска.

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

-Используйте это окно, чтобы перейти к объектам. Например, двойной щелчок по Description объекта, расположенного на EER диаграмме, проводит к определенной диаграмме и выбирает объект. Заметьте, что свойства объекта показаны на панели Properties.

Диалог Find может также быть открыт, используя ключевую комбинацию Control+F. Используйте Control+G, чтобы найти следующее вхождение и Control+Shift+G, чтобы найти предыдущее. Закройте окно Find нажатием на x в правом верхнем углу или нажимая клавишу Esc.

9.1.1.1.2.2. Workbench Preferences

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

9.1.1.1.3 Меню View

Это меню с учетом контекста показывает общие возможности для изменения представления в MySQL Workbench. Варианты изменяются в зависимости от текущей вкладки, доступные пункты меню View:

General options:

Model/EER options:

9.1.1.1.4. Меню Arrange

Меню Arrange применяются только к объектам на листе диаграммы EER и позволены, только если представление диаграммы EER активно. У меню Arrange есть эти пункты:

9.1.1.1.5. Меню Model

Когда модель открыта, это меню показывает действия для вашей модели, у него есть эти пункты:

9.1.1.1.5.1. Диалог DBDoc Model Reporting (MySQL Workbench Commercial)

Диалог находится в меню Model DBDoc - Model Reporting....

DBDoc - Model Reporting... доступен только в MySQL Workbench Commercial.

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

9.1.1.1.5.2. Подменю Validation (MySQL Workbench Commercial)

Меню Model имеет два подменю проверки, Validation и Validation (MySQL). Используйте эти подменю для общей проверки и MySQL-проверки объектов и отношений, определенных в вашей модели.

Эти пункты доступны только в MySQL Workbench Commercial.

У подменю Validation есть эти пункты:

У подменю Validation (MySQL) есть эти пункты:

Для получения дальнейшей информации посмотрите раздел 9.2.3.

9.1.1.1.5.3. Подменю Object Notation

Пункты в подменю Object Notation применяется исключительно к диаграмме EER.

В подменю Object Notation есть эти пункты:

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

Если вы планируете экспортировать или напечатать диаграмму EER, выберите стиль сначала. Изменение стилей после помещения объектов в диаграмму, может значительно изменить вид диаграммы.

9.1.1.1.5.4. Подменю Relationship Notation

Пункты подменю Relationship Notation применяются исключительно к диаграмме EER:

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

Стиль отношений, который вы выбираете, сохраняется на время вашей сессии MySQL Workbench и сохранен наряду с вашей моделью. Когда MySQL Workbench перезапущен, стиль отношений возвращается к Crow's Foot .

Если вы планируете экспортировать или напечатать диаграмму EER, выберите стиль сначала. Изменение стилей после помещения объектов в диаграмму, может значительно изменить диаграмму.

9.1.1.1.6. Меню Database

Это меню показывает действия для подключенного сервера MySQL. У меню Database есть эти пункты:

9.1.1.1.7. Меню Tools
9.1.1.1.8. Меню Scripting

Это меню показывает сценарии GRT и опции плагинов. У меню Scripting есть эти пункты:

9.1.1.1.9. Меню Help

Используйте меню Help, когда вы требуете поддержки, или когда вы хотите помочь улучшить MySQL Workbench. У этого меню есть следующие пункты:

9.1.1.1.9.1. System Info

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

MySQL Workbench Community (GPL) for Windows version 6.1.4revision 11773 build 1454
Configuration Directory: C:\Users\philip\AppData\Roaming\MySQL\Workbench
Data Directory: C:\Users\philip\Desktop\MySQL\MySQL Workbench 6.1.4 CE
Cairo Version: 1.8.8
OS: Microsoft Windows 7Service Pack 1 (build 7601), 64-bit
CPU: 4x Intel(R) Core(TM) i5-2400 CPU @ 3.10GHz, 8.0 GiB RAM
Active video adapter NVIDIA GeForce GT 610
Installed video RAM: 1024 MB
Current video mode: 1920 x 1080 x 4294967296 colors
Used bit depth: 32
Driver version: 9.18.13.2049
Installed display drivers: nvd3dumx.dll,nvwgf2umx.dll,nvwgf2umx.dll,nvd3dum,nvwgf2um,nvwgf2um
Current user language: English (United States)

9.1.1.2. Панель инструментов

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

Другие инструменты появляются на панели инструментов в зависимости от контекста.

9.1.1.2.1. Определенные для инструмента пункты панели инструментов

Когда лист диаграммы EER выбран, следующие символы появляются справа от значков стрелки:

Панель инструментов также изменяется, в зависимости от активного инструмента в вертикальной панели инструментов. Для обсуждения этих инструментов посмотрите раздел 9.1.2.1.

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

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

9.1.1.3. Диаграммы EER

Используйте Add new Diagram в области MySQL Model, чтобы создать диаграммы EER. Когда вы добавляете диаграмму EER, новая вкладка появляется ниже панели инструментов. Используйте ее, чтобы перейти к недавно созданной диаграмме EER. Для дальнейшего обсуждения диаграмм EER посмотрите раздел 9.1.2.

9.1.1.4. Панель Physical Schemata

Панель Physical Schemata страницы MySQL Model показывает активные схемы и объекты, что они содержат.

Раскройте Physical Schemata дважды щелкая по стрелке слева от заголовка окна Physical Schemata. Когда секция Physical Schemata расширена, она показывает все в настоящее время загруженные схемы.

Каждая схема показывается как вкладка. Чтобы выбрать определенную схему, щелкните по ее вкладке. Когда MySQL Workbench открыт, схема по умолчанию mydb. Можно начать работать с этой схемой или загрузить новый файл модели MySQL Workbench (расширение .mwb).

Есть множество способов добавить схему к панели Physical Schemata. Можно открыть файл MWB, перепроектировать скрипт MySQL или, если вы используете MySQL Workbench Commercial, можно перепроектировать базу данных, соединившись с сервером MySQL.

Можно также добавить новую схему, щелкнув + справа вверху на панели Physical Schemata. Чтобы удалить схему, щелкните по ее вкладке и нажмите кнопку - слева от +. Налево от этих кнопок есть три кнопки, которые управляют, как показаны символы объекта базы данных:

9.1.1.4.1. Панель Schema Objects

Панель Physical Schemata имеет следующие разделы:

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

Любые объекты базы данных, добавленные к листу диаграммы EER, также обнаруживаются в Physical Schemata. Для получения информации о добавлении объектов к листу диаграммы EER посмотрите раздел 9.1.2.

9.1.1.5. Панель Schema Privileges

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

Рис. 9.4. Роли и привилегии

Content is described in the surrounding text.
9.1.1.5.1. Добавление ролей

Чтобы добавить роль, дважды щелкните Add Role . Это создает роль с именем по умолчанию role1. Щелчок правой кнопкой мыши по роли открывает всплывающее меню со следующими пунктами:

Чтобы переименовать роль, щелкните по ролевому имени. Тогда вы будете в состоянии отредактировать текст.

Все определенные роли перечисляются под Roles на левой стороне ролевого редактора. Двойной щелчок по ролевому объекту открывает ролевой редактор внизу страницы.

Рис. 9.5. Редактор ролей

Content is described in the surrounding text.

Выберите роль, к которой вы хотите добавить объекты. Можно перетащить объекты из Physical Schemas в секцию Objects ролевого редактора. Чтобы назначить привилегии на роль, выберите ее из секции Roles, затем выберите объект в секции Objects. В секции Privileges проверьте права, которые вы хотите назначить на эту роль. Например, роль web_user могла бы иметь только привилегию SELECT и только для объектов из базы данных, которые выставляются через веб-интерфейс. Создание ролей может сделать процесс назначения прав новым пользователям намного легче.

9.1.1.5.2. Добавление пользователей

Чтобы добавить пользователя, дважды щелкните Add User. Это создает пользователя с именем по умолчанию user1. Двойной щелчок по этому пользователю открывает пользовательский редактор.

В User Editor установите имя и пароль пользователя, используя поля Name и Password. Назначьте одну роль или много ролей пользователю, выбрав желаемые роли из области справа и затем щелкнув кнопку <. Роли могут быть отменены, переместив их в противоположном направлении.

Щелчок правой кнопкой мыши по пользователю открывает всплывающее меню. Пункты и функции меню описаны в разделе 9.1.1.5.1.

9.1.1.6. Панель SQL Scripts

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

Если вы создали свой проект из скрипта SQL и планируете создать скрипт ALTER, можно хотеть добавить оригинальный скрипт здесь, потому что будет необходимо создать скрипт ALTER. См. раздел 9.4.1.1.2.

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

Рис. 9.6. Редактор скриптов SQL

Content is described in the surrounding text.

9.1.1.7. Панель Model Notes

Используйте панель Model Notes, чтобы написать проектные записки. Любые скрипты или добавленные примечания будут сохранены с вашим проектом.

9.1.1.8. Палитра History

Используйте палитру History, чтобы рассмотреть меры, которые вы приняли. Нажатие на запись открывает всплывающее меню с пунктом Copy History Entries to Clipboard. Выберите этот пункт, чтобы выбрать один элемент. Можно выбрать многократные смежные записи, нажав Shift и щелкнув по записям, которые вы хотите скопировать. Выберите записи состоящие из нескольких несмежных участков при помощи Control.

Только действия, которые изменяют модель MySQL или изменяют диаграмму EER, захватываются палитрой History.

9.1.1.9. Панель Model Navigator

Панель Model Navigator или Bird's Eye предоставляет обзор объектов, помещенных на лист диаграммы EER, и поэтому является самой полезной, когда диаграмма EER активна. Любые объекты, которые вы поместили на лист, должны быть видимы в навигаторе.

Model Navigator показывает общую площадь диаграммы EER. Черный прямоугольный контур указывает на порт представления на видимую область листа. Чтобы изменить порт представления диаграммы EER, щелкните по этой черной схеме и тяните ее к желаемому местоположению. Можно увеличить масштаб отобранных областей диаграммы EER при помощи инструмента ползунка у основания этого окна. Размеры порта представления изменяются, как вы увеличиваете и уменьшаете масштаб. Если у инструмента ползунка есть центр, можно также изменить масштаб изображения с использованием клавиш курсора.

Рис. 9.7. Model Navigator: пример

Content is described in the surrounding text.

Размер по умолчанию Model Navigator: две страницы. Используйте страницу Model, Diagram Properties and Size, чтобы изменить название диаграммы и размер. Следующие данные показывают пример диалога Diagram Properties.

Рис. 9.8. Палитра Model Navigator

Content is described in the surrounding text.

9.1.1.10. Палитра Catalog Tree

Палитра Catalog Tree показывает все схемы, которые присутствуют в секции Physical Schemata страницы MySQL Model. Расширьте представление об объектах, содержавшихся в определенной схеме, щелкнув > слева от названия схемы. Это показывает следующие значки папок:

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

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

9.1.1.11. Палитра Layers

Эта палитра показывает все слои и рисунки на диаграмму EER. Если слой или рисунок в настоящее время выбраны, X появляется около названия объекта, и его свойства показаны в палитре Properties. Это полезно, определяя выбранные объекты, используя опции в меню Select. См. раздел 9.1.1.1.2.

Отбор объекта в палитре Layers также регулирует порт представления к области листа, где объект расположен.

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

При некоторых обстоятельствах можно хотеть сделать объект на диаграмме EER невидимым. Выберите объект и в палитре Properties установите свойство visible в False.

Палитра Layer обеспечивает легкий способ определить местонахождение объекта, такого как отношения, которые были установлены в hidden. Откройте палитру Layers и выберите объект, дважды щелкая по нему. Можно тогда отредактировать объект и изменить его настройки видимости к Fully Visible.

9.1.1.12. Палитра Properties

Палитра Properties используется, чтобы показать и отредактировать свойства объектов на диаграмме EER. Это особенно полезно для редактирования экранных объектов, таких как слои и примечания.

Отбор объекта в диаграмме EER показывает свойства в палитре Properties.

У всех объектов кроме связей есть следующие свойства за исключением отмеченного:

У таблиц есть следующие дополнительные свойства:

Для обсуждения свойств связи посмотрите раздел 9.1.4.3.

9.1.2. Редактор диаграмм EER

Диаграммы EER создаются, дважды щелкая Add Diagram. Можно создать любое количество диаграмм EER, как можно создать любое количество физических схем (баз данных). Каждая диаграмма EER изображается схематически как вкладка под панелью инструментов, определенная диаграмма EER выбрана, щелкнув по ее вкладке.

Нажатие на вкладку диаграммы EER проводит к листу, используемому для того, чтобы графически управлять объектами базы данных. Vertical Toolbar находится на левой стороне этой страницы.

Этот инструмент для создания и редактирования диаграмм EER для модели. Чтобы отредактировать существующую базу данных, перепроектируйте базу данных, чтобы создать модель, или синхронизируйте вашу модель с базой данных. Для получения дополнительной информации посмотрите разделы 9.4.2.2 и 9.5.

9.1.2.1. Вертикальная панель инструментов

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

Рис. 9.9. Вертикальная панель инструментов

Content is described in the surrounding text.

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

Более подробное описание каждого из этих инструментов следует.

9.1.2.1.1. Стандартный указатель мыши

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

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

9.1.2.1.2. Ручной инструмент

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

Чтобы определить ваше положение на листе, посмотрите на панель Model Navigator в верхнем правом углу. Если панель Model Navigator не открыта, используйте View, Windows, Model Navigator, чтобы ее открыть.

Чтобы активировать ручной инструмент с клавиатуры, используйте клавишу H.

Можно также изменить порт представления диаграммы EER, используя панель Model Navigator, см. раздел 9.1.1.9.

9.1.2.1.3. Инструмент резинки

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

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

Чтобы активировать инструмент резинки с клавиатуры, используйте клавишу D.

Можно также удалить объект, выбрав его и нажав Control+Delete или щелкнув правой кнопкой мыши по нему и выбрав Delete из всплывающего меню.

9.1.2.1.4. Инструмент Layer

Инструмент layer это прямоугольный символ с буквой L в левом нижнем углу. Используйте инструмент слоя, чтобы организовать объекты на листе диаграммы EER. Это полезно для группировки подобных объектов. Например, можно использовать его, чтобы сгруппировать все представления.

Щелкните по инструменту слоя и используйте его, чтобы потянуть прямоугольник на листе. Измените на стандартный инструмент указателя мыши и возьмите любые объекты, которые требуется поместить в недавно созданный слой.

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

Можно также внести изменения в слой, выбрав слой и изменив свойства в панели Properties. Использование панель Properties это единственный способ изменить название слоя.

Чтобы активировать инструмент слоя с клавиатуры, используйте клавишу L. См. раздел 9.1.7.

9.1.2.1.5. Инструмент Text

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

Чтобы добавить текст к текстовому объекту, щелкните правой кнопкой мыши по текстовому объекту и выберите Edit Note... или Edit in New Window....

Можно управлять свойствами текстового объекта, выбирая его и затем изменяя его свойства в панели Properties.

Чтобы активировать текстовый инструмент с клавиатуры, используйте клавишу N. См. see раздел 9.1.9.

9.1.2.1.6. Инструмент Image

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

Чтобы активировать инструмент изображения с клавиатуры, используйте клавишу I. См. раздел 9.1.10.

9.1.2.1.7. Инструмент Table

Используйте этот инструмент, чтобы составить таблицу на листе диаграммы EER.

Нажатие на лист составляет таблицу. Чтобы отредактировать таблицу редактором таблиц MySQL, щелкните правой кнопкой мыши по ней и выберите Edit Table... или Edit in New Window... из всплывающего меню. Можно также дважды щелкнуть по таблице, чтобы загрузить ее в редактор таблиц.

Чтобы активировать инструмент таблицы с клавиатуры, используйте клавишу T. См. раздел 8.1.10.

9.1.2.1.8. Инструмент View

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

После выбора этого инструмента, щелчок по листу создает новое представление. Чтобы отредактировать это представление, щелкните правой кнопкой мыши по нему и выберите Edit View... или Edit in New Window... из всплывающего меню.

Чтобы активировать инструмент представления с клавиатуры, используйте клавишу V. См. раздел 9.1.5.

9.1.2.1.9. Инструмент Routine Group

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

После выбора этого инструмента, щелчок по листу создает новую подпрограмму. Чтобы ее отредактировать, щелкните правой кнопкой мыши по ней и выберите Edit Routine Group... или Edit in New Window... из всплывающего меню.

Чтобы активировать инструмент с клавиатуры, используйте клавишу G. См. раздел 9.1.6.2.

9.1.2.1.10. Инструменты отношений

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

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

9.1.3. Составление таблиц

9.1.3.1. Добавление таблиц к физическим схемам

Двойной щелчок по значку Add table в части Physical Schemas вкладки Model Overview добавляет таблицу с именем по умолчанию table1. Если таблица с этим именем уже существует, новую таблицу называют table2.

Добавление новой таблицы автоматически открывает редактор таблиц, см. see раздел 8.1.10.

Щелчок правой кнопкой мыши по таблице открывает контекстное меню со следующими пунктами:

Если редактор таблиц не открыт, Edit 'table_name' открывает его. Если это уже открыто, выбранная таблица заменяет предыдущую. Edit 'table_name ' in New Tab открывает дополнительную вкладку редактора таблиц.

Любые таблицы, добавленные к разделу Physical Schemas, также обнаруживается в палитре Catalog Tree во вкладке EER Diagram. Они могут быть добавлены к диаграмме EER перетаскиванием их из этой палитры.

9.1.3.2. Добавление таблиц к диаграмме EER

Таблицы могут также быть добавлены к диаграмме EER, используя инструмент table на вертикальной панели инструментов. Удостоверьтесь, что вкладка EER Diagram выбрана, затем щелкните правой кнопкой мыши по значку таблицы на вертикальной панели инструментов. Значок таблицы это прямоугольный табличный символ.

Щелкание мышью на этом символе изменяет указатель мыши на указатель таблицы. Можно также изменить указатель мыши на указатель таблицы, нажав клавишу T.

Выбор инструмента table меняет содержание панели инструментов, которая немедленно появляется ниже строки меню. Когда указатель Tables активен, эта панель инструментов содержит список схем, список механизмов хранения, список сопоставлений и список цветовых схем. Используйте эти списки, чтобы выбрать соответствующую схему, сопоставление и цветной акцент для новой таблицы. Удостоверьтесь, что вы связываете новую таблицу с базой данных. Механизм хранения и сопоставление таблицы могут быть изменены, используя редактор таблиц. Цвет вашей таблицы может быть изменен, используя палитру Properties. Значения Default Engine и Default Collation относятся к умолчаниям базы данных.

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

Рис. 9.10. Таблица на диаграмме EER

Content is described in the surrounding text.

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

Щелчок правой кнопкой мыши по таблице открывает всплывающее меню со следующими пунктами:

За исключением пункта удаления, эти пункты меню функционируют, как описано в разделе 9.1.3.1. Поведение удаления определяется вашими параметрами настройки MySQL Workbench, см. раздел 3.2.4 .

9.1.4. Создание отношений внешнего ключа

Ограничения внешнего ключа поддерживаются только для механизма хранения InnoDB. Для других вариантов синтаксис внешнего ключа правильно разобран, но не осуществлен. Для получения дополнительной информации посмотрите Foreign Key Differences.

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

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

9.1.4.1. Добавление отношений внешнего ключа, используя диаграмму EER

У вертикальной панели инструментов на левой стороне диаграммы EER есть шесть инструментов внешнего ключа:

Различия включают:

Создайте или перетащите таблицы, которые вы хотите соединить. Гарантируйте, что есть первичный ключ в таблице, которая будет на стороне one отношений. Нажмите на соответствующий инструмент для типа отношений, которые вы хотите создать. Если вы создаете связь "один ко многим", сначала щелкните по таблице, которая находится на стороне many отношений, затем на таблице, содержащей ключ, на который ссылаются. Это создает столбец в таблице на стороне многих отношений. Имя по умолчанию этого столбца table_name_key_name, где имя таблицы и ключа относятся к таблице, содержащей ключ, на который ссылаются.

Когда инструмент many-many активен, двойной щелчок по таблице составляет ассоциативную таблицу с many-many отношениями. Для этого инструмента должен быть первичный ключ, определенный в начальной таблице.

Используйте меню Model, Menu Options чтобы установить определенное для проекта имя по умолчанию для столбца внешнего ключа (см. раздел 9.1.1.1.5.4). Чтобы изменить глобальное умолчание, посмотрите раздел 3.2.4.

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

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

Рис. 9.11. Соединитель отношений

Content is described in the surrounding text.

Если размещение заголовка связи не подходит, можно сменить его положение, таща его к иному месту. Если вы установили вторичный заголовок, его положение может также смениться. Для получения дополнительной информации о вторичных заголовках, посмотрите раздел 9.1.4.3. Где стиль примечания разрешает, например, Classic, индикаторы количества элементов могут также быть передвинуты.

Стиль примечания отношений на рис. 9.11 crow's foot, принятый по умолчанию. Можно изменить это, если вы используете Commercial Edition MySQL Workbench. См. раздел 9.1.1.1.5.4.

Можно выбрать многократные связи, удержав Control, когда вы щелкаете по связи. Это может быть полезно для выдвижения на первый план определенных отношений на диаграмме EER.

9.1.4.2. Редактор отношений

Двойной щелчок по отношениям на листе диаграммы EER открывает редактор отношений. У него есть две вкладки: Relationship и Foreign Key.

Вкладка Relationship

На вкладке Relationship можно установить заголовок отношений, используя поле Caption. Это имя показывается на листе и является также именем, используемым для самого ограничения. Значение по умолчанию для этого имени fk_ source_table_destination_table. Используйте меню Model, Menu Options, чтобы установить определенное для проекта имя по умолчанию для внешних ключей. Чтобы изменить глобальное умолчание, посмотрите раздел 3.2.4.

Можно также добавить вторичный заголовок и заголовок к отношениям.

Секция Visibility Settings используется, чтобы определить, как отношения показаны на листе диаграммы EER. Fully Visible это умолчание, но вы также можете скрыть линии связей или использовать линии разделения. Стиль линии разделения показывают на следующем рисунке.

Рис. 9.12. Соединитель разделения

Content is described in the surrounding text.

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

Чтобы установить нотацию отношений используют меню Model, Relationship Notation, см. раздел 9.1.1.1.5.4.

Вкладка Foreign Key

Вкладка Foreign Key содержит несколько секций: Referencing Table, Cardinality и Referenced Table.

Опции Mandatory используются, чтобы выбрать, обязательны ли таблица ссылки и таблица, на которую ссылаются. По умолчанию оба из этих ограничений true.

Секция Cardinality имеет ряд кнопок, которые позволяют вам выбрать отношения one-to-one или one-to-many. Есть также опция, которая позволяет вам определить, являются ли отношения отношениями с идентификацией.

9.1.4.3. Свойства связи

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

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

Если вы сделаете отношение невидимым, скрывая его, используя Visibility Settings редактора отношений, и затем закроете редактора отношений, вы больше не будете в состоянии выбрать отношения, чтобы что-то с ними сделать в редакторе отношений. Чтобы сделать отношения видимыми снова, необходимо расширить объект таблицы, касающийся отношений, в палитре Layers и выбрать объект связи. Чтобы отредактировать выбранный объект, щелкните правой кнопкой мыши по нему, затем выберите Edit Object. Можно тогда установить Visibility Settings в Fully Visible. Отношения тогда будут видимы в окне EER Diagram.

9.1.5. Создание представлений

Можно добавить представления в базу данных из секции Physical Schemas страницы MySQL Model или из диаграммы EER.

9.1.5.1. Добавление представлений в физические схемы

Чтобы добавить представление, дважды щелкните Add View в секции Physical Schemas страницы MySQL Model. Имя по умолчанию представления: view1. Если представление с этим именем уже существует, новое представление называют view2.

Добавление нового представления автоматически открывает редактор представления, см. раздел 9.1.5.3.

Щелчок правой кнопкой мыши по представлению открывает всплывающее меню со следующими пунктами:

Если редактор таблиц не открыт, Edit View... открывает его. Если это уже открыто, выбранная таблица заменяет предыдущую. Edit in New Window... открывает новый редактор представления.

Пункты cut и copy полезны для копирования представлений между различными схемами. Copy SQL to Clipboard копирует в буфер команду CREATE VIEW.

Используйте Delete 'view_name', чтобы удалить представление из базы данных. Не будет никакого диалогового окна подтверждения.

Любые представления, добавленные к секции Physical Schemas также обнаруживаются в палитре Catalog на левой стороне приложения. Они могут быть добавлены к диаграмме EER во вкладке EER Diagram перетаскиванием их от этой палитры.

9.1.5.2. Добавление представлений е диаграмме EER

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

Нажатие на этот символ изменяет указатель мыши на указатель представления. Чтобы изменить указатель мыши на указатель представления с клавиатуры, используйте клавишу V.

Выбор инструмента View изменяет содержание панели инструментов, которая появляется ниже строки главного меню. Когда указатель Views активен, эта панель инструментов содержит список схем и список цветовых схем. Используйте эти списки, чтобы выбрать соответствующую схему и цветной акцент для нового представления. Удостоверьтесь, что вы связываете новое представление с базой данных. Цвет вашей точки зрения может быть изменен, используя палитру Properties.

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

Щелчок правой кнопкой мыши по представлению открывает всплывающее меню. За исключением пункта delete, эти пункты меню функционируют, как описано в разделе 9.1.5.1. Поведение выбора delete определяется вашими параметрами настройки MySQL Workbench, см. раздел 3.2.4.

9.1.5.3. Редактор представления

Чтобы вызвать редактор представления, дважды щелкните по объекту представления на листе диаграммы EER или дважды щелкните по представлению в секции Physical Schemas страницы MySQL Model. Это открывает редактор представления. Любое количество представлений может быть открыто в то же время. Каждое дополнительное представление появляется как вкладка наверху редактора представления.

Есть три вкладки у основания редактора представления: View, Comments и Privileges. Переходите между различными вкладками, используя мышь или с клавиатуры, нажав Control+Alt+Tab.

Вкладка View

Используйте вкладку View, чтобы выполнить следующие задачи:

Вкладка Comments

Вкладка позволяет вам ввести комментарии для конкретного представления.

Вкладка Privileges

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

9.1.5.4. Изменение представления, используя палитру Properties

Когда вы выбираете представление на листе диаграммы EER, его свойства показаны в палитре Properties. Большинство свойств, доступных из палитры Properties, относятся к появлению представления на листе диаграммы EER.

Для списка свойств, доступных через палитру Properties см. раздел 9.1.1.12.

9.1.6. Создание подпрограмм и групп подпрограмм

Можно добавить группу подпрограмм к базе данных из секции Physical Schemata страницы MySQL Model или из диаграммы EER. Подпрограмма может быть добавлена только из секции Physical Schemata страницы MySQL Model.

Чтобы рассмотреть существующую схему, наряду с ее подпрограммами, выбирают Database, Reverse Engineer... из главного меню. После того, как схема была добавлена к текущей модели, вы видите объекты схемы на панели Physical Schemata страницы MySQL Model.

MySQL Workbench объединяет сохраненные функции и процедуры в один логический объект, названный Routine. Routine Groups используется, чтобы сгруппировать связанные подпрограммы. Определите подпрограмму через Routine Group Editor , чтобы назначить определенную подпрограмму на группу, используя интерфейс перетаскивания.

Проектируя диаграмму EER, можно разместить Routine Groups на листе перетаскивая ее из Catalog Palette. Размещение отдельной подпрограммы на диаграмме не разрешено, поскольку это загромоздило бы лист.

9.1.6.1. Подпрограммы

9.1.6.1.1. Добавление подпрограмм к физическим схемам

Чтобы добавить подпрограмму, дважды щелкните Add Routine в разделе Physical Schemata страницы MySQL Model. Имя по умолчанию: routine1. Если подпрограмма с этим именем уже существует, новая называется routine2.

Добавление новой подпрограммы автоматически открывает редактор, см. раздел 9.1.6.1.2.

Щелчок правой кнопкой мыши по подпрограмме открывает всплывающее меню со следующими пунктами:

Edit Routine... открывает редактор.

Пункты cut и paste полезны для копирования подпрограмм между различными схемами.

Удаление кода из вкладки Routines в Routine Group Editor приводит к удалению объекта из модели.

Чтобы удалить подпрограмму из группы, используйте вкладку Routine Group в Routine Group Editor.

Действие опции delete варьируется в зависимости от того, как вы формировали MySQL Workbench. См. раздел 3.2.4.

9.1.6.1.2. Routine Editor

Чтобы вызвать редактор подпрограмм, дважды щелкните по подпрограмме в разделе Physical Schemata на странице MySQL Model. Это открывает редактор. Любое количество подпрограмм может быть открыто в то же время. Каждая дополнительная появляется как вкладка редактора.

Вкладки Routine и Privileges появляются внизу редактора. Перемещайтесь между вкладками, используя мышь или с клавиатуры, нажав Control+Alt+Tab.

9.1.6.1.2.1. Вкладка Routine

Используйте вкладку Routine, чтобы выполнить следующие задачи:

9.1.6.1.2.2. Вкладка Privileges

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

Когда эта вкладка открыта, все роли, которые были созданы, показаны в списке справа. Переместите роли, которые вы хотите связать с этой таблицей, в список Roles слева. Сделайте это, выбрав роль и затем щелкнув <. Используйте клавишу Shift, чтобы выбрать многократные смежные роли и Control, чтобы выбрать роли из нескольких несмежных участков.

Чтобы назначить привилегии на роль, щелкните по роли в списке Roles. Это показывает все доступные привилегии в списке Assigned Privileges. Привилегии, которые показаны:

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

Если роли уже предоставили привилегии на определенной таблице, те привилегии показаны, как уже зарегистрированные в списке Assigned Privileges.

9.1.6.2. Routine Groups

9.1.6.2.1. Добавление Routine Groups в Physical Schemata

Двойной щелчок Add Routine Group в разделе Physical Schemata страницы MySQL Model добавляет группу с именем по умолчанию routines1. Если группа с этим именем уже существует, новую группу называют routines2.

Добавление новой группы автоматически открывает редактор групп, см. раздел 9.1.6.2.3.

Щелчок правой кнопкой мыши по обычной группе открывает всплывающее меню со следующими пунктами:

Edit Routine Group... открывает редактор группы, который описан в разделе 9.1.6.2.3.

Пункты cut и paste полезны для копирования групп между различными схемами.

Удаление группы из страницы MySQL Model удаляет группу, но не удаляет подпрограмм, содержавшихся в той группе.

Любые группы, добавленные к Physical Schemata, также обнаружатся в палитре Catalog на правой стороне приложения. Они могут быть добавлены к диаграмме EER перетаскиванием их от этой палитры.

9.1.6.2.2. Добавление Routine Groups к диаграмме EER

Чтобы добавить группы к диаграмме EER, используйте инструмент Routine Groups на вертикальной панели инструментов. Удостоверьтесь, что вкладка EER Diagram выбрана, затем щелкните правой кнопкой мыши по символу групп на вертикальной панели инструментов. Символ групп находится над самым низким сепаратором панели инструментов.

Щелкание мышью на этом символе изменяет указатель мыши на указатель группы. Можно также изменить указатель мыши на указатель, нажав клавишу G.

Выбор инструмента Routine Group изменяет содержание панели инструментов, которая появляется ниже строки меню. Когда указатель Routine Groups активен, эта панель инструментов содержит список схем и список цветовой схемы. Используйте эти списки, чтобы выбрать соответствующую схему и цветной акцент для новой группы. Удостоверьтесь, что вы связываете новую группу с базой данных. Цвет вашей группы может быть изменен позднее с использованием палитры Properties.

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

Щелчок правой кнопкой мыши по группе открывает всплывающее меню. За исключением пунктов delete и rename, эти опции меню функционируют как описано в разделе 9.1.6.2.1. Логика опции delete определяется вашими параметрами настройки MySQL Workbench, см. раздел 3.2.4 .

9.1.6.2.3. Routine Group Editor

Чтобы вызвать редактора группы, дважды щелкните по объекту группы на листе диаграммы EER или дважды щелкните по группе в секции Physical Schemata страницы MySQL Model. Любое количество групп может быть открыто в то же время. Каждая дополнительная группа появляется как вкладка наверху редактора.

Вкладки Routine group и Privileges появляются внизу редактора. Перемещайтесь между различными вкладками, используя мышь или с клавиатуры, нажав Control+Alt+Tab.

9.1.6.2.3.1. Вкладка Routine Groups

Используйте вкладку Routine Groups редактора групп, чтобы выполнить следующие задачи:

9.1.6.2.3.2. Вкладка Privileges

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

9.1.6.2.3.3. Изменение Routine Group через палитру Properties

Когда вы выбираете группу на листе диаграммы EER, ее свойства показаны в палитре Properties. Все свойства, доступные из палитры Properties, относятся к появлению группы на листе диаграммы EER.

Для списка свойств, доступных через палитру Properties, см. раздел 9.1.1.12.

9.1.7. Создание слоев

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

9.1.7.1. Добавление слоев к диаграмме EER

Чтобы добавить слои к диаграмме EER, используйте инструмент Layer на вертикальной панели инструментов. Выберите вкладку EER Diagram и щелкните по символу слоя на вертикальной панели инструментов. Символ слоя это прямоугольник с символом L в левом нижнем углу, ниже символа резинки.

Щелкание мышью на этом символе изменяет указатель мыши на указатель слоя. Можно также изменить указатель мыши на указатель слоя, нажав клавишу L.

Выбор инструмента Layer изменяет содержание панели инструментов, которая появляется ниже строки меню. Когда указатель Layers активен, эта панель инструментов содержит список цветовой схемы. Используйте этот список, чтобы выбрать цветной акцент для нового слоя. Цвет вашего слоя может быть изменен позднее с использованием палитры Properties.

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

Следующие данные показывают слой, названный "My Sakila Views" с несколькими представлениями:

Рис. 9.13. Ррасположенный на слое объект

Content is described in the surrounding text.

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

Слой может также быть отредактирован с помощью Properties Editor на левой панели, это предлагает дополнительные опции.

Пункты cut и copy полезны для копирования слоев между различными схемами.

Так как слои не объекты схемы, никакое диалоговое окно подтверждения не открывается, когда вы удаляете слой независимо от того, как вы формировали MySQL Workbench. Удаление слоя не удаляет объекты схемы из каталога.

9.1.7.1.1. Добавление объектов к слою

Чтобы добавить объект к слою, перетащите его непосредственно из палитры Catalog в слой. Если вы поднимаете объект из диаграммы EER, вы должны нажать Control, когда вы тянете его на слой, иначе это он будет привязан к слою.

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

Если вы тянете слой через таблицу, объект таблицы будет автоматически добавлен к слою. Это также работает с многократными объектами таблицы.

Слои не могут быть вложены. Таким образом, слой не может содержать другой расположенный на слое объект.

9.1.7.2. Изменение слоя, используя палитру Properties

Выбор "Edit" позволяет вам редактировать имя слоя и цвет фона слоя, и "Properties Editor" предлагает дополнительные опции.

Когда вы выбираете слой на листе диаграммы EER, его свойства показаны в палитре Properties. Свойства, доступные из палитры Properties, относятся к появлению слоя на листе диаграммы EER.

При некоторых обстоятельствах можно хотеть сделать слой невидимым. Выберите слой и в палитре Properties установите свойство visible в False. Чтобы определить местонахождение невидимого объекта, откройте палитру Layers и выберите объект, дважды щелкая по нему. После того, как объект выбран, можно сбросить свойство visible из палитры Properties.

Для списка свойств, доступных через палитру Properties, см. раздел 9.1.1.12. В дополнение к свойствам, перечисленным там, у слоя также есть свойство description. Используйте его для документирования назначения слоя.

9.1.8. Создание примечаний

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

9.1.8.1. Добавление примечаний

Двойной щелчок по Add Note в секции Model Notes страницы MySQL Model добавляет примечание с именем по умолчанию note1. Если примечание с этим именем уже существует, новое примечание называют note2.

Добавление нового примечания автоматически открывает редактор примечания, см. раздел 9.1.8.2.

Щелчок правой кнопкой мыши по примечанию открывает всплывающее меню со следующими пунктами:

Edit Note... открывает редактор примечания. Для получения информации об использовании редактора посмотрите раздел 9.1.8.2.

Пункты cut и copy полезны для копирования примечаний между различными схемами.

Примечания могут быть добавлены только на странице MySQL Model.

9.1.8.2. Note Editor

Чтобы вызвать редактор примечания, дважды щелкните по объекту примечания в секции Model Note страницы MySQL Model. Любое количество примечаний может быть открыто в то же время. Каждое дополнительное примечание появляется как вкладка наверху редактора примечаний.

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

9.1.9. Создание текстовых объектов

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

9.1.9.1. Добавление текстовых объектов к диаграмме EER

Чтобы добавить текстовые объекты к диаграмме EER, используйте инструмент Text Object на вертикальной панели инструментов. Удостоверьтесь, что выбрана вкладка EER Diagram, затем щелкните правой кнопкой мыши по символу текстового объекта на вертикальной панели инструментов.

Щелкание мышью на этом символе изменяет указатель мыши на указатель текстового объекта. Можно также изменить указатель мыши на указатель текстового объекта, нажав клавишу N.

Выбор инструмента Text Object изменяет содержание панели инструментов, которая появляется ниже строки меню. Когда указатель Text Object активен, эта панель инструментов содержит список цветовой схемы. Используйте этот список, чтобы выбрать цветной акцент для нового текстового объекта. Цвет вашего текстового объекта может быть изменен позднее с использованием палитры Properties.

Создайте текстовый объект, щелкнув где угодно по листу диаграммы EER. Это создает новый текстовый объект с именем по умолчанию text1. Чтобы вернуться к указателю мыши по умолчанию, щелкните по значку стрелки наверху вертикальной панели инструментов.

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

9.1.9.2. Text Object Editor

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

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

9.1.9.2.1. Изменение текстового объекта, используя палитру Properties

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

Для списка свойств, доступных через палитру Properties, см. раздел 9.1.1.12.

Нет никакого свойства в палитре Properties для изменения шрифта, который используется текстовым объектом. Чтобы сделать это, выберите вкладку Appearance диалога Workbench Preferences. См. Preferences: Modeling: Appearance.

9.1.10. Создание изображений

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

9.1.10.1. Добавление изображений к диаграмме EER

Чтобы добавить изображения к диаграмме EER, используйте инструмент Image на вертикальной панели инструментов. Удостоверьтесь, что выбрана вкладка EER Diagram , затем щелкните правой кнопкой мыши по значку изображения на вертикальной панели инструментов. Значок изображения это символ чуть выше значка таблицы.

Щелкание мышью на этом символе изменяет указатель мыши на указатель изображения. Можно также измениться, указатель мыши на указатель изображения, нажимая клавишу I.

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

Щелчок правой кнопкой мыши по этому объекту открывает всплывающее меню со следующими пунктами:

Эти пункты меню функционируют точно таким же образом, как для других объектов на диаграмме EER. Однако изображения не объекты базы данных, таким образом, нет никакого диалогового окна подтверждения, когда они удалены.

9.1.10.2. Image Editor

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

Вкладка Image

Используйте вкладку Image редактора изображений, чтобы выполнить следующие задачи:

Изменение изображения, используя палитру Properties

Когда вы выбираете изображение на листе диаграммы EER, его свойства показаны в палитре Properties. Большинство свойств, доступных из палитры Properties, относится к появлению изображения на листе диаграммы EER.

Для списка свойств, доступных через палитру Properties, см. раздел 9.1.1.12.

9.2. Дополнительные инструменты моделирования

Дополнительные средства проектирования моделирования и особенности.

9.2.1. Печать диаграмм

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

9.2.1.1. Опции печати

Пункты меню печати недоступны, если диаграмма EER не активна. Эти пункты:

9.2.2. Сообщение модели DBDoc

Диалог DBDoc Model Reporting доступен при открытой модели из меню Model, DBDoc - Model Reporting.

Эта функциональность доступна только в MySQL Workbench Commercial Editions.

Использование диалога DBDoc-Model Reporting дает возможности для создания документации ваших моделей базы данных. Например, следующие данные показывают диалог с HTML Detailed Frames и стилем шаблонов Vibrant.

Рис. 9.14. Опции DBDoc Model Reporting

Content is described in the surrounding text.

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

Когда вы щелкаете по шаблону, изображение предварительного просмотра показывается на правой стороне страницы. Для шаблона HTML Basic Frames можно выбрать Colorful или Restrained Colors из списка Style. Шаблон HTML Basic Single Page предлагает только стиль Colorful. Шаблон HTML Detailed Frames предлагает стили Vibrant и Coated. Шаблон Text Basic предлагает только стиль Fixed Size Font.

Из фрейма Base Options выбирают название отчета и целевой каталог для файлов отчета.

Следующие переменные могут использоваться, чтобы формировать путь:

Варианты содержания могут также быть выбраны:

Нажатие Generate создает каталог, определенный в текстовом окне Output directory. Если вы приняли решение создать HTML Basic Frames, вы найдете следующие файлы в этом каталоге:

Выбор опции HTML Basic Single Page создает таблицу стилей и файл index.html.

Выбор опции HTML Detailed Frames создает следующие файлы:

Выбор опции Text Basic создает каталог, содержащий один текстовый файл.

Можно щелкнуть index.html, чтобы просматривать отчет. Следующие данные показывают пример вывода HTML Detailed Frames для схемы the world.

Рис. 9.15. DBDoc Model Report

Model report showing schema overview, DDL script, tables,
columns, and so on.

Для получения дополнительной информации о создании шаблонов, посмотрите раздел 9.7.

9.2.3. Плагины проверки схемы

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

К плагинам проверки получают доступ из меню Model. Один плагин выполняет общую проверку для любой системы управления реляционными базами данных, другой определен для MySQL. Ниже этих пунктов меню много определенных тестов на проверку. Управление любым из этих тестов открывает окно вывода. Предупреждающие сообщения показаны на левой стороне этого окна, выполненные тесты показаны справа.

Следующие разделы обрисовывают в общих чертах задачи, выполненные модулями проверки.

9.2.3.1. Общая проверка

Следующий список называет общие типы проверки и дает примеры определенных нарушений:

9.2.3.2. MySQL-определенная проверка

Следующий список называет MySQL-определенные типы проверки и дает примеры определенных нарушений:

9.3. Моделирование

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

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

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

9.3.1. Создание модели

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

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

  1. Запустите MySQL Workbench. На домашнем экране щелкните по представлению моделей из боковой панели и нажмите (+) рядом с Models. Альтернативно, можно нажать File, затем New Model из меню.

    Рис. 9.16. Домашний экран

    Content is described in the surrounding text.

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

  2. Нажмите + на правой стороне панели инструментов Physical Schemas, чтобы добавить новую схему. Название схемы по умолчанию new_schema1, которое можно теперь изменить, например, на dvd_collection, изменяя его поле Name. Подтвердите это изменение в панели Physical Schemas. Теперь вы готовы добавить таблицу.

    Рис. 9.17. Новая схема

    Content is described in the surrounding text.
  3. Дважды щелкните Add Table в секции Physical Schemas.

  4. Это автоматически загружает редактор таблиц с именем таблицы по умолчанию table1. Отредактируйте поле Table Name, чтобы изменить имя таблицы с table1 на movies.
  5. Затем добавьте столбцы к своей таблице. Дважды щелкните по ячейке Column Name, первое поле будет moviesid, так как по умолчанию MySQL Workbench добавляет id к имени таблицы для начального поля. Смените moviesid на movie_id, сохраните Datatype как INT и выберите опции PK (PRIMARY KEY), NN (NOT NULL) и AI (AUTO_INCREMENT).
  6. Добавьте две дополнительных колонки, описанные в следующей таблице. Данные, которые появляются после таблицы, показывают все три колонки в таблице movies.

    Имя столбцаТип данных Свойства столбца
    movie_titleVARCHAR(45) NN
    release_dateDATE (YYYY-MM-DD) None

    Рис. 9.18. Редактирование столбцов таблицы

    Content is described in the surrounding text.
  7. Для визуального представления (диаграмма EER) этой схемы выберите Model и Create Diagram from Catalog Objects, чтобы создать диаграмму EER для модели. Следующие данные показывают новую вкладку EER Diagram, которая показывает представление диаграммы таблицы фильмов и столбцы.

    Рис. 9.19. Диаграмма EER

    Content is described in the surrounding text.
  8. В редакторе таблиц поменяйте имя столбца movie_title на title. Обратите внимание на то, что диаграмма EER автоматически обновляется, чтобы отразить это изменение.

    Чтобы открыть редактор таблиц, перейдите назад на вкладку MySQL Model и щелкните правой кнопкой мыши на таблице movies или щелкните правой кнопкой мыши на movies в диаграмме EER и выберите Edit 'movies'.

  9. Сохраните модель, выбрав File и Save Model из меню или нажмите Save Model to Current File на панели инструментов. В данном случае введите Home_Media и нажмите Save.

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

Теперь перенесите вашу модель к живому серверу MySQL следующим образом:

  1. Выберите Database, Forward Engineer из меню, чтобы открыть мастера Forward Engineer to Database.

  2. Шаг Connection Options выбирает подключение MySQL и произвольно устанавливает дополнительные опции для выбранного подключения. Внесите любые необходимые изменения связи и затем нажмите Next.

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

  3. Шаг Options перечисляет дополнительные расширенные настройки (как показано ниже). Для этой обучающей программы можно проигнорировать эти варианты и просто нажать Next.

    Рис. 9.20. Шаг Options

    Content is described in the surrounding text.
  4. Выберите объект, который надо экспортировать в живой сервер MySQL. В этом случае есть только одна таблица (dvd_collection.movie). Отметьте опцию Export MySQL Table Objects и нажмите Next.

    Рис. 9.21. Избранные объекты

    Content is described in the surrounding text.
  5. Шаг Review SQL Script показывает скрипт SQL, который будет выполнен на живом сервере, чтобы создать вашу схему. Рассмотрите скрипт, чтобы удостовериться, что вы понимаете операции, которые будут выполнены.

    Нажмите Next, чтобы выполнить процесс.

    Рис. 9.22. Review SQL Script

    Content is described in the surrounding text.
  6. Шаг Commit Progress подтверждает, что каждая задача была выполнена. Нажмите Show Logs, чтобы смотреть журналы. Если никакие ошибки не присутствуют, нажмите Close и закройте мастер.

  7. Новая база данных dvd_collection теперь присутствует на сервере MySQL. Подтвердите это, открыв подключение MySQL и просмотрев список схем или выполнив SHOW DATABASES из MySQL Command Line Client (mysql).
  8. Нажмите Save Model to Current File на панели инструментов меню, чтобы сохранить модель.

Для получения дополнительной информации о моделировании данных см. главу 9.

9.3.2. Основное моделирование

На экране MySQL Model дважды щелкните Add Diagram. Это действие создает и открывает новый лист EER Diagram.

Рис. 9.23. Добавление диаграммы EER

Content is described in the surrounding text.

Со страницы диаграммы EER можно графически проектировать базу данных.

9.3.2.1. Добавление таблицы

Инструменты на вертикальной панели инструментов слева от вкладки EER Diagram используются для проектирования диаграммы EER. Начните составлять таблицу, используя инструмент таблицы. Инструмент таблицы это прямоугольная сетка посреди вертикальной панели инструментов.

Нажатие на этот инструмент изменяет указатель мыши на руку с прямоугольной сеткой. Составьте таблицу на листе, щелкнув где угодно по сетке anywhere on the EER Diagram.

Щелкните правой кнопкой мыши по таблице и выберите Edit in New Window из всплывающего меню. Это открывает редактор таблиц.

По умолчанию имя таблицы table1. Смените его, введя invoice в поле Name:. Изменения здесь затрагивают название вкладки в редакторе таблиц и название таблицы на листе.

Нажим Tab или Enter в то время, как курсор находится в области имени таблицы, выбирает вкладку Columns редактора таблиц и создает колонку, названную по умолчанию idinvoice.

Нажим Tab или Enter снова устанавливает фокус на список Datatype с выбранным INT. Заметьте, что область была добавлена к таблице на листе EER.

Нажим Tab снова переводит к добавлению второй колонки. Добавьте так столбцы Description и a Customer_id. По окончании закрываете редактор таблиц, нажимая x в левом верхнем углу редактора таблиц.

9.3.2.2. Создание внешнего ключа

Выберите инструмент таблицы снова и поместите другую таблицу на лист. Назовите ее invoice_item. Далее нажмите на 1:n Non-Identifying Relationship.

Сначала щелкните таблицу invoice_item, заметьте, что красная граница указывает, что эта таблица выбрана. Затем щелкните таблицу invoice. Это создает внешний ключ в invoice_item, таблице на стороне many отношений. Отношения между этими двумя таблицами показывают графически в нотации crow's foot.

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

Нажмите на поле Foreign key Name. Таблица, на которую ссылаются, должна показаться в столбце Referenced Table и соответствующей колонке в Referenced Column.

Чтобы удалить отношения между двумя таблицами, щелкните по линии, присоединяющейся к таблицам, и затем нажмите Control+Delete.

Сохранит е свои изменения в файле MySQL Workbench Models (расширение mwb) выбором Save из меню File или нажатием клавиш Control+S.

9.3.3. Импортирование определения данных скриптом SQL

Для этой обучающей программы используйте скрипт базы данных sakila, который можно найти, посетив страницу https://dev.mysql.com/doc/, выбрав вкладку Other Docs и найдя секцию Example Databases.

После загрузки файла, распакуйте его. Откройте MySQL Workbench, выберите представление модели на домашнем экране щелкните (>), следующий за Models, и Reverse Engineer MySQL Create Script. Найдите и импортируйте файл sakila-schema.sql. Это скрипт, который содержит запросы определения данных для базы данных sakila. Фильтр файла диалогового окна по умолчанию *.sql таким образом, необходимо быть в состоянии рассмотреть только файлы с расширением sql.

Если файл был успешно импортирован, в статусной строке приложения будет Import MySQL Create Script done. Чтобы рассмотреть недавно импортированный скрипт, расширьте секцию Physical Schemas дважды щелкнув по стрелке слева от Physical Schemas. Выберите вкладку sakila.

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

Чтобы просмотреть все объекты в sakila, вы, возможно, должны расширить панель Physical Schemas. Переместите указатель мыши куда угодно через серую область, которая определяет нижний край панели Physical Schemas. Удержите правую кнопку мыши и переместите мышь, чтобы приспособить размер окна.

После того, как вы расширили окно, все объекты в sakila должны быть видимы. Таблицы показаны наверху. В этой схеме нет никаких подпрограмм, но можно увидеть часть Routine Groups и значок Add Group.

Для полного описания импортирования скрипта MySQL см. раздел 9.4.2.1.

9.3.3.1. Добавление диаграммы EER

Чтобы создать диаграмму EER для базы данных sakila, сначала добавьте диаграмму EER, дважды щелкнув Add Diagram в панели EER Diagrams, чтобы создать и открыть редактор EER Diagram.

Лист EER Diagram это то место, где объектное моделирование происходит. Чтобы добавить таблица к листу, выберите вкладку Catalog в средней панели на правой стороне приложения, чтобы показать любые схемы, которые появляются во вкладке MySQL Model. Найдите схему sakila и расширьте представление объектов, щелкая + слева от названия схемы. Расширьте список таблиц таким же образом.

Можно добавить таблицы к листу EER, таща их от панели Catalog на лист. Перетащите таблицы address и city на лист примерно так:

Рис. 9.24. Добавление таблиц к листу

Content is described in the surrounding text.

MySQL Workbench автоматически обнаруживает, что address.city_id был определен как внешний ключ, ссылающийся на поле city.city_id. Перетащите таблицу country на лист и немедленно можно увидеть отношения между таблицами country и city. Чтобы смотреть все отношения в базе данных sakila см. рис. 9.29.

Нажмите на вкладку Properties в нижнем левом углу и затем щелкните по одной из таблиц на листе. Это действие показывает свойства таблицы в оуне Properties. В то время как таблица выбрана, можно использовать окно Properties, чтобы изменить свойства таблицы. Например, ввод #FF0000 как значение цвета изменит цветной акцент на красный.

Рис. 9.25. Просмотр Properties

Content is described in the surrounding text.

Изменение цвета таблицы является хорошим способом определить таблицу в панели Model Navigator. Эта группа дает вид с высоты птичьего полета на весь лист EER.

Сохраните свои изменения в файл MySQL Workbench Models (расширение mwb) выбрав Save из меню File или при помощи клавиш Control + S.

9.3.4. Используя схему по умолчанию

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

Рис. 9.26. Схема по умолчанию

Content is described in the surrounding text.

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

Чтобы переименовать схему, используйте поле Name. После того, как вы переименовали схему, значок молнии кажется выровненным по правому краю поля Name, указывая, что другие изменения находятся на рассмотрении. Щелкните по полю Comments, и диалоговое окно открывает запрос, хотите ли вы переименовать все копии схемы. Нажим Yes гарантирует, что ваши изменения размножены всюду по приложению. Добавьте комментарии к базе данных и измените сопоставление, если желаете. Закройте редактор схемы, нажав x.

9.3.4.1. Составление новой таблицы

Составьте новую таблицу двойным щелчком по Add Table на панели Physical Schemas.

Рис. 9.27. Model: составление новой таблицы

Content is described in the surrounding text.

Первоначально, имя таблицы 'table1' в редакторе таблиц.

Рис. 9.28. Model: редактирование табличных значений

Content is described in the surrounding text.
Available actions include: double-click the schema to edit, add an additional
schema, toggle collation/engine editor, add table columns, and select
additional tabs.

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

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

9.3.4.2. Создание других объектов схемы

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

Объекты перечисляются под палитрой Catalog справа. Чтобы рассмотреть эти объекты схемы, выберите вкладку Catalog в средней палитре справа. Рассмотрите все объекты, щелкнув + слева от названия схемы.

9.3.5. Документирование базы данных sakila

Эта глава демонстрирует возможности MySQL Workbench как инструмента документации при помощи базы данных sakila, которая является образцом базы данных, обеспеченным MySQL. Можно найти этот образец базы данных и другие, посетив страницу https://dev.mysql.com/doc/, выбрав из меню More и найдя раздел Example Databases.

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

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

Файл PNG базы данных sakila

Следующий рисунок показывает вывод, который был создан, используя меню File, Export, Export as PNG.

Рис. 9.29. База данных sakila, диаграмма EER

Content is described in the surrounding text.

Стиль объектной нотации, используемый на рис. 9.29 это Workbench (PKs only). Этот стиль показывает только первичные ключи и никакие другие столбцы, что особенно полезно, когда место ограничено. Нотация отношений Crow's Foot.

Как показывают линии связи, каждая таблица связана по крайней мере с еще одной таблицей в базе данных (за исключением film_text). У некоторых таблиц есть два внешних ключа, которые касаются той же самой таблицы. Например, у таблицы film есть два внешних ключа, которые касаются таблицы language, а именно fk_film_language_original и fk_film_language. Где существует больше, чем одно отношение между двумя таблицами, линии связи, идут вместе.

Идентификация и неидентификация отношений обозначаются сплошными и прерывистыми линиями соответственно. Например, внешний ключ category_id это часть первичного ключа в film_category, так что его отношения к таблице category показаны сплошной линией. С другой стороны, в таблице city внешний ключ country_id не часть первичного ключа, таким образом, связь использует прерывистую линию.

9.4. Инженерный анализ

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

9.4.1. Прямая разработка

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

9.4.1.1. Прямая разработка, используя скрипт SQL

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

Решение создать базу данных приводит к дополнительным опциям.

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

На вкладке MySQL Model (model-name.mwb) нажмите click File, Export, Forward Engineer SQL CREATE Script для запуска мастера Forward Engineer SQL Script. Следующие данные показывают первую страницу мастера.

Рис. 9.30. Опции SQL Export

Content is described in the surrounding text.

Диалог SQL Export Options показывает следующие средства:

Нажим Next откроет страницу SQL Object Export Filter, которая позволяет вам выбрать объекты для экспорта.

Рис. 9.31. SQL Object Export Filter

Export filters for MySQL objects of the
following types: Table, View, Routine, Trigger, and User.

Используйте Show Filter, чтобы точно настроить (фильтровать) объекты для экспорта. После отбора объектов, нажмите Hide Filter, чтобы скрыть панель фильтра.

После отбора объектов экспорта нажмите Next, чтобы просмотреть произведенный скрипт. Следующие данные показывают скрипт в качестве примера.

Рис. 9.32. Произведенный скрипт

Content is described in the surrounding text.

Можно возвратиться к предыдущей странице, используя кнопку Back.

Кнопка Finish сохранит файл скрипта и выйдет. Можно использовать сохраненный скрипт, чтобы создать базу данных.

9.4.1.1.2. Изменение схемы

Пункты меню для создания ALTER Script File: Database, Synchronize With Any Source. Как правило, этот выбор используется, когда скрипт SQL был импортирован в MySQL Workbench и изменен, а затем вы хотите создать скрипт, который может быть выполнен для базы данных, чтобы отразить приспособленную модель. Для получения инструкций относительно импортирования скрипта DDL посмотрите раздел 9.4.2.1.

Выебрите из меню Database, Synchronize With Any Source, чтобы начать мастера. Вам покажут первую страницу, показывая введение и затем доступные параметры для указания источника и мест назначения обновлений.

Рис. 9.33. Synchronize With Any Source: Options

Content is described in the surrounding text.

Для получения дополнительной информации посмотрите раздел 9.5.1.

9.4.1.2. Прямая разработка к живому серверу

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

Выберите модель, которую вы хотите отправить на сервер, выберите Database, Forward Engineer из главного меню.

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

Рис. 9.34. Установленные параметры для соединения

Content is described in the surrounding text.

Нажмите Next после установки параметров связи. Следующая страница мастера показывает Catalog Validation. Проверка доступна только в Commercial Edition.

Рис. 9.35. Catalog Validation

Content is described in the surrounding text.

Нажмите Run Validations, чтобы утвердить каталог.

Нажмите Next для продолжения.

Следующая страница позволяет вам установить опции для создания базы данных. Эти варианты описаны в разделе 9.4.1.1.1.

Рис. 9.36. Опции создания

Content is described in the surrounding text.

Выберите необходимые опции и нажмите Next.

Страница Select Objects позволяет вам выбрать объекты для работы: таблицы, представления, подпрограммы, триггеры и пользовательские объекты.

Рис. 9.37. Select Objects

Content is described in the surrounding text.

Чтобы выбрать подмножество объектов, используйте кнопку Show Filter/Hide Filter, затем выберите конкретные объекты. После того, как вы выберете свои объекты, нажмите Next.

На странице Review Script можно просмотреть и отредактировать скрипт SQL, который будет выполнен.

Рис. 9.38. Review Script

Content is described in the surrounding text.

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

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

Рис. 9.39. Forward Engineering Progress

Content is described in the surrounding text.

Можно подтвердить, что скрипт создал схему, соединившись с целевым сервером MySQL и скомандовав SHOW DATABASES.

9.4.2. Инженерный анализ

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

9.4.2.1. Инженерный анализ, используя создающий скрипт

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

Объекты могут быть импортированы из файла скрипта SQL. Импортированием объектов скрипта SQL можно управлять в MySQL Workbench.

Рис. 9.40. Ввод скрипта SQL

Content is described in the surrounding text.

Если ваш скрипт создает базу данных, MySQL Workbench создает новую область Physical Schemas в открытой вкладке MySQL Model.

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

Рис. 9.41. Скрипт SQL: выполнение

Content is described in the surrounding text.

Нажмите Next, чтобы рассмотреть резюме результатов, затем Finish.

Рис. 9.42. Результаты скрипта

Content is described in the surrounding text.

-Прежде, чем выйти из MySQL Workbench, сохраните схему. Нажмите File и Save из меню, чтобы сохранить перепроектированную базу данных как файл MySQL Workbench с расширением mwb.

Для обучающей программы по инженерному анализу базы данных sakila см. раздел 9.3.3.

Создание скрипта DDL

Можно создать скрипт определения данных (DDL), выполнив mysqldump db_name --no-data > script_file.sql. Использование опции --no-data гарантирует, что скрипт содержит только запросы DDL. Однако, если вы работаете со скриптом, который также содержит запросы DML, вы не должны удалять их, они будут проигнорированы.

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

Используйте --databases с mysqldump, если вы хотите создать базу данных, а также все ее объекты. Если нет CREATE DATABASE db_name в вашем файле скрипта, необходимо импортировать объекты базы данных в существующую схему или, если нет никакой схемы, новая неназванная схема создается.

9.4.2.2. Инженерный анализ живой базы данных

Чтобы перепроектировать живую базу данных, нажмите Database и Reverse Engineer из меню.

Рис. 9.43. Мастер Reverse Engineer Database

Content is described in the surrounding text.

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

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

Рис. 9.44. Подключение к DBMS

Content is described in the surrounding text.

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

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

Рис. 9.45. Выбор схемы

Content is described in the surrounding text.

После того, как вы выберете желаемые схемы, нажмите кнопку Next.

Мастер показывает задачи, которые он выполнил и суммирует результаты операции.

Рис. 9.46. Полученные объекты

Content is described in the surrounding text.

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

Следующий шаг открывает страницу Select Objects to Reverse Engineer. У нее есть секция для каждого типа объекта, существующего в схеме, которую можно импортировать. Все типы объектов выбраны по умолчанию. Опция Place imported objects on a diagram также выбрана по умолчанию.

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

Рис. 9.47. Избранные объекты

Content is described in the surrounding text.

Опции позволяют вам выбрать определенные таблицы для импорта. Выбрав желаемые таблицы, можно скрыть фильтр при нажатии Hide Filter.

Другие секции, такие как MySQL Routine Objects, имеют подобные фильтры в наличии.

Нажмите Execute.

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

Рис. 9.48. Прогресс Reverse Engineer

Content is described in the surrounding text.

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

Рис. 9.49. Итоговые результаты

Content is described in the surrounding text.

Нажмите Finish.

Прежде, чем закрыть MySQL Workbench, сохраните схему. Нажмите из меню File и Save, чтобы сохранить перепроектированную базу данных как файл MySQL Workbench с расширением mwb.

9.4.2.2.1. Ошибки во время инженерного анализа

Во время инженерного анализа приложение проверяет таблицы и представления на двойные существующие имена и отвергают двойные названия при необходимости. При попытке импортировать объект, который дублирует название существующего объекта, вы будете уведомлены с сообщением об ошибке. Чтобы видеть любые ошибки, которые произошли во время инженерного анализа, нажмите Show Logs. Это действие создаст панель, содержащую список сообщений, включая любые сообщения об ошибках. Нажмите Hide Logs, чтобы закрыть панель.

Если вы планируете импортировать объект с тем же самым именем как существующий объект, переименуйте существующий объект перед инженерным анализом.

Если вы импортируете объекты больше чем из одной схемы, будет вкладка в области Physical Schemas страницы MySQL Model для каждой схемы.

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

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

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

9.5.1. Синхронизация базы данных

Синхронизируйте данные между моделями, базами данных и файлами SQL. Эти три типа могут быть целью (место назначения), источник или обоими. Можно также выбрать или отсеять отдельные объекты и изменить их направление во время синхронизации. Например, можно синхронизировать таблицы от модели до базы данных, другие таблицы от базы данных до модели и пропустить несколько таблиц во время того же самого процесса синхронизации.

Знайте, что обратные несовместимые изменения синтаксиса MySQL вводятся со временем, поэтому важно поставить свойство модели Default Target MySQL Version согласно вашим потребностям. Например, экспорт результатов из MySQL 5.7 мог бы привести к недопустимому синтаксису, когда выполнен для MySQL 5.6. См. раздел 3.2.4.

Выберите Synchronize With Any Source из меню Database. Альтернативно выберите Synchronize Model, чтобы открыть того же самого мастера для модели. Модель или диаграмма EER должны быть выбраны для этих вариантов синхронизации

Рис. 9.50. Запуск мастера синхронизации

Content is described in the surrounding text.

Поскольку базы данных MySQL соответствуют каталогам в рамках каталога данных, необходимо рассмотреть чувствительность к регистру для имен базы данных, таблицы и триггеров, которые следуют правилам чувствительности к регистру основной файловой системы для операционной системы. Синхронизация моделей с объектами, которые отличаются регистром, может привести к MySQL Workbench, производящему команду DROP для того объекта, прежде, чем воссоздать его в другом регистре. Для получения дополнительной информации посмотрите Identifier Case Sensitivity

Обходные приемы включают использование последовательного соглашения, где большая часть портативного кода использует имена базы данных и таблиц в нижнем регистре. Можно также удалить из произведенного запроса строку DROP SCHEMA IF EXISTS.

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

Есть два подобных мастера синхронизации базы данных, доступные из меню Database. Более простой Synchronize Model и более гибкий Synchronize with Any Source. Описания, которые следуют, относятся к обоим, если не указано иное.

Синхронизируйте модель (с базой данных)

Чтобы запустить мастер, откройте модель и выберите Database, Synchronize Model из главного меню. Следуйте за последовательностью шагов, пока вы не достигнете Select Changes to Apply.

Рис. 9.51. Модель и различия в базе данных

Content is described in the surrounding text.

В предыдущем примере живая база данных и модель имеют таблицы movies shows. В MySQL Workbench дополнительная таблица educational была создана в модели, но она испытывает недостаток в эквиваленте в живой базе данных. Далее friends существует в живой базе данных, но это не находится в модели. По умолчанию действия синхронизируют базу данных с моделью, таким образом, в этом примере таблица educational будет добавлена к источнику, и friends будет удалена из источника.

Как описано в GUI, дважды щелкая по стрелкам, можно переключаться между действиями Update Model, Ignore и Update Source. Можно также выбрать строку и щелкнуть по одной из этих трех кнопок действий. Также обратите внимание на то, что нажатие на строку покажет связанный SQL-оператор.

Рис. 9.52. Управление направлением синхронизации

Content is described in the surrounding text.

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

Эти три действия доступны:

Нажим Table Mapping предлагает дополнительные варианты отображения.

Рис. 9.53. Отображение таблицы

Content is described in the surrounding text.

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

Рис. 9.54. Предварительный просмотр SQL-оператора синхронизации

Content is described in the surrounding text.

Можно теперь сохранить SQL-оператор в файл или клипборд или его выполнить. Если вы принимаете решение выполнить изменение в MySQL Workbench, то вы произвольно можете пропустить "DB changes" так, чтобы только ваша модель была изменена.

Синхронизация с любым источником

Чтобы запустить мастер, откройте модель и выберите Database и Synchronize With Any Source из главного меню. Шаги подобны мастеру Synchronize Model, но с дополнительными опциями создать файлы скрипта SQL, использовать файлы скрипта SQL или обоими.

Рис. 9.55. Synchronize With Any Source: выбор источника

Content is described in the surrounding text.

Заметьте, как источник и типы назначения могут быть изменены. Шаги зависят от типов источника и назначения, Synchronize Model описывает основную функциональность этого мастера.

9.5.2. Сравните и сообщите о различиях в каталогах

Это средство позволяет вам создать отчет, детализирующий различия между вашей моделью MySQL Workbench, и живой базой данных или скриптом. Выберите Database, Compare Schemas из главного меню, чтобы запустить мастер Compare and Report Differences in Catalogs.

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

Рис. 9.56. Исходный выбор каталога

Content is described in the surrounding text.

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

Рис. 9.57. Отчет о различиях в каталогах

Content is described in the surrounding text.

9.6. Шаблоны таблицы

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

Из редактора SQL выберите Create Table Like из контекстного меню Tables.

Рис. 9.58. Новый шаблон таблицы: редактор SQL

Content is described in the surrounding text.

Или моделируя, нажмите "Open the table template editor" в Modeling Additions.

Рис. 9.59. Новый шаблон таблицы: моделирование

Content is described in the surrounding text.

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

Рис. 9.60. Table Templates Manager

Content is described in the surrounding text.

Чтобы открыть существующий шаблон из редактора SQL, из контекстного меню Create Table Like надо выбрать желаемый шаблон таблицы. Для моделирования дважды щелкните по шаблону в правой боковой панели моделирования.

9.7. Настройка шаблонов сообщений DBDoc Model

Эта секция предоставляет обзор создания и изменения шаблонов DBDoc Model Reporting, как используется MySQL Workbench.

Система MySQL Workbench DBDoc Model Reporting основана на Google Template System. Это обсуждение не пытается объяснить подробно Google Template System. Для полезного обзора того, как Google Template System работает, см. документ Google, How To Use the Google Template System.

Шаблоны, используемые DBDoc Model Reporting, являются текстовыми файлами, которые содержат маркеры. Эти текстовые файлы обрабатываются системой шаблона, встроенной в MySQL Workbench, и маркеры заменены фактическими данными. Выходные файлы тогда произведены. Именно эти выходные файлы, как правило HTML или текст, рассматриваются пользователем.

Маркеры могут быть любым из следующих типов:

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

Словари данных

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

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

Таблица 9.1. Дерево словарей данных

Словарь данных Загружаемые словари данных
MAINSCHEMATA
SCHEMATA TABLES, COLUMNS (Детализация: true), FOREIGN_KEYS (Детализация: true), INDICES (Детализация: true)
TABLES REL_LISTING, INDICES_LISTING, COLUMNS_LISTING, TABLE_COMMENT_LISTING, DDL_LISTING
COLUMNS_LISTING COLUMNS (Детализация: false)
REL_LISTINGREL (Детализация: false)
INDICES_LISTING INDICES (Детализация: false)

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

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

Оценка переменных

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

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

Report
------
Column Name: {{COLUMN_NAME}}

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

С этим знанием шаблон может быть улучшен следующим образом:

Report
------
{{#COLUMNS}}
Column Name: {{COLUMN_NAME}}
{{/COLUMNS}}

Это все еще не производит вывод. Чтобы видеть почему, см. раздел 9.1. У словаря данных COLUMNS есть родительский словарь COLUMNS_LISTING. COLUMNS_LISTING имеет родителя TABLES, у которого есть родитель SCHEMATA, чей родитель это главный словарь. Помните, что для словаря, который будет вовлечен в поиск переменной, его связанная секция должна в настоящее время быть активной.

Чтобы достигнуть желаемого вывода, шаблон должен быть чем-то вроде:

Report
------
{{#SCHEMATA}}
{{#TABLES}}
{{#COLUMNS_LISTING}}
{{#COLUMNS}}
Column Name: {{COLUMN_NAME}}
{{/COLUMNS}}
{{/COLUMNS_LISTING}}
{{/TABLES}}
{{/SCHEMATA}}

Следующий шаблон это то же самое, но с добавленными пояснительными текстами:

Report
------
{{! Main dictionary active}}
{{#SCHEMATA}}{{! SCHEMATA dictionary active}}
{{#TABLES}}{{! TABLES dictionary active}}
{{#COLUMNS_LISTING}} {{! COLUMNS_LISTING dictionary active}}
{{#COLUMNS}}{{! COLUMNS dictionary active}}
Column Name: {{COLUMN_NAME}} {{! COLUMN_NAME variable is looked-up,
and found, in COLUMNS data dictionary}}
{{/COLUMNS}}
{{/COLUMNS_LISTING}}
{{/TABLES}}
{{/SCHEMATA}}

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

Report
------
{{#SCHEMATA}}
{{#TABLES}}
{{#COLUMNS_LISTING}}
{{#COLUMNS}}
Schema Name: {{SCHEMA_NAME}} Column Name: {{COLUMN_NAME}}
{{/COLUMNS}}
{{/COLUMNS_LISTING}}
{{/TABLES}}
{{/SCHEMATA}}

Когда поиск переменной выполняется для SCHEMA_NAME, проверяется словарь COLUMNS. Поскольку переменная не найдена там, будет проверен родительский словарь COLUMNS_LISTING и т.д. пока переменная в конечном счете не найдена в словаре SCHEMATA.

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

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

9.7.1. Поддержанные маркеры шаблона

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

Используя таблицу

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

Таблица 9.2. Поддержанные маркеры шаблона

Текст маркераТип Словарь данных или родительский словарь Соответствующие данные
TITLEПеременнаяMAIN Название отчета
GENERATEDПеременнаяMAIN Дата и время, когда отчет был произведен
STYLE_NAMEПеременнаяMAIN Название стиля, выбранного в MySQL Workbench, как правило, используется, чтобы загрузить соответствующий файл CSS, в зависимости от названия стиля, выбранного в MySQL Workbench
SCHEMA_COUNTПеременнаяMAIN Количество схем в модели
PROJECT_TITLEПеременнаяMAIN Название проекта, как установлено для модели в Document Properties
PROJECT_NAMEПеременнаяMAIN Название проекта, как установлено для модели в Document Properties
PROJECT_AUTHORПеременнаяMAIN Автор проекта, как установлено для модели в Document Properties
PROJECT_VERSIONПеременнаяMAIN Версия проекта, как установлено для модели в Document Properties
PROJECT_DESCRIPTIONПеременнаяMAIN Описание проекта, как установлено для модели в Document Properties
PROJECT_CREATEDПеременнаяMAIN Автоматически установлено для проекта, но как показано в Document Properties
PROJECT_CHANGEDПеременнаяMAIN Автоматически установлено для проекта, но как показано в Document Properties
TOTAL_TABLE_COUNTПеременнаяMAIN Количество таблиц во всех схемах в модели
TOTAL_COLUMN_COUNTПеременнаяMAIN Количество колонок во всех таблицых во всех схемах в модели
TOTAL_INDEX_COUNTПеременнаяMAIN Количество индексов в модели
TOTAL_FK_COUNTПеременнаяMAIN Количество внешних ключей в модели
SCHEMATAСекцияMAIN Используется, чтобы отметить начало и конец секции SCHEMATA, словарь данных SCHEMATA становится активным в этой секции
SCHEMA_NAMEПеременнаяSCHEMATA Название схемы
SCHEMA_IDПеременнаяSCHEMATA ID схемы
TABLE_COUNTПеременнаяSCHEMATA Количество таблиц в текущей схеме
COLUMN_COUNTПеременнаяSCHEMATA Количество колонок в текущей схеме
INDICES_COUNTПеременнаяSCHEMATA Количество индексов в текущей схеме
FOREIGN_KEYS_COUNTПеременная SCHEMATAКоличество внешних ключей в текущей схеме
TABLESСекцияSCHEMATA Отмечает начало и конец секции TABLES, словарь данных TABLES становится активным в этой секции
TABLE_NAMEПеременнаяTABLES Имя таблицы
TABLE_IDПеременнаяTABLES ID таблицы
COLUMNS_LISTINGСекцияTABLES Отмечает начало и конец секции COLUMNS_LISTING, словарь данных COLUMNS_LISTING становится активным в этой секции
COLUMNSСекцияCOLUMNS_LISTING Отмечает начало и конец секции COLUMNS, словарь данных COLUMNS становится активным в этой секции
COLUMN_KEYПеременнаяCOLUMNS Является ли колонка первичным ключом
COLUMN_NAMEПеременнаяCOLUMNS Имя столбца
COLUMN_DATATYPEПеременнаяCOLUMNS Тип данных столбца
COLUMN_NOTNULLПеременнаяCOLUMNS Разрешает ли колонка значения NULL
COLUMN_DEFAULTVALUEПеременная COLUMNSЗначение столбца по умолчанию
COLUMN_COMMENTПеременнаяCOLUMNS Комментарий столбца
COLUMN_IDПеременнаяCOLUMNS ID столбца
COLUMN_KEY_PARTПеременная COLUMNS (если детализировано)Тип ключа столбца
COLUMN_NULLABLEПеременная COLUMNS (если детализировано)Может ли столбец содержать значения NULL
COLUMN_AUTO_INCПеременная COLUMNS (если детализировано) Делается ли auto-increment в столбце
COLUMN_CHARSETПеременная COLUMNS (если детализировано)Набор символов столбца
COLUMN_COLLATIONПеременная COLUMNS (если детализировано)Сопоставление столбца
COLUMN_IS_USERTYPEПеременная COLUMNS (если детализировано) Является ли столбец пользовательским типом
INDICES_LISTINGСекцияTABLES Отмечает начало и конец секции INDICES_LISTING, словарь данных INDICES_LISTING становится активным в этой секции
INDICESСекцияINDICES_LISTING Отмечает начало и конец секции INDICES, словарь данных INDICES становится активным в этой секции
INDEX_NAMEПеременнаяINDICES Имя индекса
INDEX_PRIMARYПеременнаяINDICES Является ли это первичным ключом
INDEX_UNIQUEПеременнаяINDICES Является ли это уникальным индексом
INDEX_TYPEПеременнаяINDICES Тип индекса, например, PRIMARY
INDEX_KINDПеременнаяINDICES Вид индекса
INDEX_COMMENTПеременнаяINDICES Комментарий индекса
INDEX_IDПеременнаяINDICES ID индекса
INDEX_COLUMNSСекцияINDICES Отмечает начало и конец секции INDEX_COLUMNS, словарь данных INDEX_COLUMNS становится активным в этой секции
INDEX_COLUMN_NAMEПеременная INDEX_COLUMNSИмя столбца индекса
INDEX_COLUMN_ORDERПеременная INDEX_COLUMNSПорядок столбца индекса, например, ascending, descending
INDEX_COLUMN_COMMENTПеременная INDEX_COLUMNSКомментарий индекса
INDEX_KEY_BLOCK_SIZEПеременная INDEX_COLUMNS (если детализировано) Ключевой размер блока индекса
REL_LISTINGСекцияTABLES Отмечает начало и конец секции REL_LISTING, словарь данных REL_LISTING становится активным в этой секции
RELСекцияREL_LISTING Отмечает начало и конец секции REL, словарь данных REL становится активным в этой секции
REL_NAMEПеременная REL, FOREIGN_KEYSИмя отношений
REL_TYPEПеременная REL, FOREIGN_KEYSТип связей
REL_PARENTTABLEПеременная REL, FOREIGN_KEYSРодительская таблица отношений
REL_CHILDTABLEПеременная REL, FOREIGN_KEYSДочерняя таблица отношений
REL_CARDПеременная REL, FOREIGN_KEYSКоличество элементов отношений
FOREIGN_KEY_IDПеременнаяREL ID внешнего ключа
FOREIGN_KEYSСекцияSCHEMATA Отмечает начало и конец секции FOREIGN_KEYS, словарь данных FOREIGN_KEYS становится активным в этой секции
FK_DELETE_RULEПеременная FOREIGN_KEYSПравило удаления внешнего ключа
FK_UPDATE_RULEПеременная FOREIGN_KEYSПравило обновления внешнего ключа
FK_MANDATORYПеременнаяFOREIGN_KEYS Обязателен ли внешний ключ
TABLE_COMMENT_LISTINGСекцияTABLES Отмечает начало и конец секции TABLE_COMMENT_LISTING, словарь данных TABLE_COMMENT_LISTING становится активным в этой секции
TABLE_COMMENTПеременная TABLE_COMMENT_LISTINGКомментарий таблицы
DDL_LISTINGСекцияTABLES Отмечает начало и конец секции DDL_LISTING, словарь данных DDL_LISTING становится активным в этой секции
DDL_SCRIPTПеременнаяDDL_LISTING Показать скрипт DDL в настоящее время активного окружения, например SCHEMATA, TABLES

9.7.2. Создание своего шаблона

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

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

Например, следующая процедура описывает, как сделать шаблон на основе шаблона Text Basic.

  1. Перейдите к папке, где шаблоны сохранены. Предполагая, что MySQL Workbench установлен в местоположение по умолчанию на Windows, это будет C:\Program Files\MySQL\MySQL Workbench 5.0 SE\modules\data\wb_model_reporting.

  2. Скопируйте каталог Text_Basic.tpl. Копии можно дать любое подходящее имя, например, Custom_Basic.tpl.
  3. Отредактируйте файл info.xml, чтобы отразить ваш шаблон. Неотредактированный файл в этом случае:
    <?xml version="1.0"?>
    <data>
    <value type="object" struct-name="workbench.model.reporting.TemplateInfo"
    id="{BD6879ED-814C-4CA3-A869-9864F83B88DF}" struct-checksum="0xb46b524d">
    <value type="string" key="description">
    A basic TEXT report listing schemata and objects.
    </value>
    <value type="string" key="name">HTML Basic Frame Report</value>
    <value type="list" content-type="object"
    content-struct-name="workbench.model.reporting.TemplateStyleInfo"
    key="styles">
    <value type="object" struct-name="workbench.model.reporting.TemplateStyleInfo"
    id="{7550655C-CD4B-4EB1-8FAB-AAEE49B2261E}" struct-checksum="0xab08451b">
    <value type="string" key="description">
    Designed to be viewed with a fixed sized font.
    </value>
    <value type="string" key="name">Fixed Size Font</value>
    <value type="string" key="previewImageFileName">
    preview_basic.png
    </value>
    <value type="string" key="styleTagValue">fixed</value>
    </value>
    </value>
    <value type="string" key="mainFileName">report.txt</value>
    </value>
    </data>
    

    Файл определяет два объекта: TemplateInfo и TemplateStyleInfo. Эти объекты содержат информацию о шаблоне, который будет показан на главной страницы мастера DBDoc Model Reporting.

  4. Измените объект GUIDs, которые используются в файле. В этом примере надо поменять два:
    id="{BD6879ED-814C-4CA3-A869-9864F83B88DF}"
    ...
    id="{7550655C-CD4B-4EB1-8FAB-AAEE49B2261E}"
    

    Произведите два новых GUIDs. Это сделано, используя подходящий инструмент командной строки, и есть также бесплатные онлайн инструменты, которые производят GUIDs. Функция MySQL UUID() также производит GUIDs:

    mysql> SELECT UUID();
    +--------------------------------------+
    | UUID()                               |
    +--------------------------------------+
    | 648f4240-7d7a-11e0-870b-89c43de3bd0a |
    +--------------------------------------+
    

    Как только вы имеете новые GUID, соответственно поправьте файл info.xml.

  5. Отредактируйте текстовую информацию для объектов TemplateInfo и TemplateStyleInfo, чтобы отразить цель шаблона.
  6. Измененный файл теперь выглядит примерно так:
    <?xml version="1.0"?>
    <data>
    <value type="object" struct-name="workbench.model.reporting.TemplateInfo"
    id="{cac9ba3f-ee2a-49f0-b5f6-32580fab1640}" struct-checksum="0xb46b524d">
    <value type="string"
    key="description">
    Custom basic TEXT report listing schemata and objects.
    </value>
    <value type="string" key="name">Custom Basic text report</value>
    <value type="list" content-type="object"
    content-struct-name="workbench.model.reporting.TemplateStyleInfo" key="styles">
    <value type="object"
    struct-name="workbench.model.reporting.TemplateStyleInfo"
    id="{39e3b767-a832-4016-8753-b4cb93aa2dd6}" struct-checksum="0xab08451b">
    <value type="string" key="description">
    Designed to be viewed with a fixed sized font.
    </value>
    <value type="string" key="name">Fixed Size Font</value>
    <value type="string" key="previewImageFileName">preview_basic.png</value>
    <value type="string" key="styleTagValue">fixed</value>
    </value>
    </value>
    <value type="string" key="mainFileName">custom_report.txt</value>
    </value>
    </data>
    
  7. Создайте новый файл шаблона. Это также может лучше всего быть достигнуто, в зависимости от ваших требований, редактируя существующий шаблон. В этом примере файл шаблона report.txt.tpl такой:

    +--------------------------------------------+
    | MySQL Workbench Report                     |
    +--------------------------------------------+
    Total number of Schemas: {{SCHEMA_COUNT}}
    =============================================
    {{#SCHEMATA}}
    {{SCHEMA_NR}}. Schema: {{SCHEMA_NAME}}
    ----------------------------------------------
    ## Tables ({{TABLE_COUNT}}) ##
    {{#TABLES}}{{TABLE_NR_FMT}}. Table: {{TABLE_NAME}}
    {{#COLUMNS_LISTING}}## Columns ##
    KeyColumnNameDatatypeNot NullDefaultComment
    {{#COLUMNS}}{{COLUMN_KEY}}{{COLUMN_NAME}}{{COLUMN_DATATYPE}} б╩
    {{COLUMN_NOTNULL}}{{COLUMN_DEFAULTVALUE}}{{COLUMN_COMMENT}}
    {{/COLUMNS}}{{/COLUMNS_LISTING}}
    {{#INDICES_LISTING}}## Indices ##
    IndexNameColumnsPrimaryUniqueTypeKindComment
    {{#INDICES}}{{INDEX_NAME}}{{#INDICES_COLUMNS}}{{INDEX_COLUMN_NAME}} б╩
    {{INDEX_COLUMN_ORDER}}{{INDEX_COLUMN_COMMENT}}{{/INDICES_COLUMNS}} б╩
    {{INDEX_PRIMARY}}{{INDEX_UNIQUE}}{{INDEX_TYPE}}{{INDEX_KIND}}{{INDEX_COMMENT}}
    {{/INDICES}}{{/INDICES_LISTING}}
    {{#REL_LISTING}}## Relationships ##
    RelationshipNameRelationshipTypeParent TableChild Table Cardinality
    {{#REL}}{{REL_NAME}}{{REL_TYPE}}{{REL_PARENTTABLE}}{{REL_CHILDTABLE}}{{REL_CARD}}
    {{/REL}}{{/REL_LISTING}}
    ---------------------------------------------
    {{/TABLES}}
    {{/SCHEMATA}}
    =============================================
    End of MySQL Workbench Report
    

    Этот шаблон показывает детали для всех схем в модели.

  8. Предыдущий файл шаблона может быть отредактирован по своему усмотрению с новыми маркерами, добавляемыми и существующими маркерами, удаляемыми как требуется. Для таможенного примера шаблона вы могли бы хотеть создать намного более простой шаблон, например, такой как следующий:
    +--------------------------------------------+
    | MySQL Workbench Custom Report              |
    +--------------------------------------------+
    Total number of Schemata: {{SCHEMA_COUNT}}
    =============================================
    {{#SCHEMATA}}
    Schema Name: {{SCHEMA_NAME}}
    ----------------------------------------------
    ## Tables ({{TABLE_COUNT}}) ##
    
    {{#TABLES}}
    Table Name: {{TABLE_NAME}}
    {{/TABLES}}
    {{/SCHEMATA}}
    
    Report Generated On: {{GENERATED}}
    =============================================
    End of MySQL Workbench Custom Report
    

    Этот упрощенный отчет просто перечисляет схемы и таблицы в модели. Дата и время, когда отчет был произведен, также показаны в результате использования переменной {{GENERATED}}.

  9. Шаблон теперь может быть проверен. Запустите MySQL Workbench, загрузите модель, чтобы произвести отчет и выберите из меню Model, DBDOC - Model Reporting. Выберите новый шаблон из списка доступных шаблонов, выберите каталог вывода и нажмите Finish, чтобы произвести отчет. Наконец, перейдите в каталог вывода, чтобы просмотреть законченный отчет.