RussianLDP Рейтинг@Mail.ru
WebMoney: 
WMZ Z294115950220 
WMR R409981405661 
WME E134003968233 
Visa 
4274 3200 2453 6495 

Глава 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 включает следующие разделы:

  • EER Diagrams

  • Physical Schemata
  • Schema Privileges
  • SQL Scripts
  • Model Notes

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

  • Если скрипт не содержит CREATE DATABASE db_name;, объекты схемы копируются к схеме по умолчанию mydb.
  • Если скрипт создает базу данных, новая вкладка, имеющяя имя базы данных, добавляется к разделу Physical Schemata страницы MySQL Model.
  • Если скрипт содержит данные, они проигнорированы.

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

  • Name: Имя модели (по умолчанию MySQL Model).
  • Version: Номер версии проекта.
  • Author: Автор проекта.
  • Project: Название проекта.
  • Created: Не редактируемое поле, определено атрибутами файла MWB.
  • Last Changed: Не редактируемое поле, определено атрибутами файла MWB.
  • Description: Описание вашего проекта.

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 имеет следующие подменю:

  • Select All (клавиша быстрого вызова Control+A): Выбирает все объекты на активной диаграмме EER.
  • Similar Figures (Объекты того же самого типа): Ищет объекты, подобные в настоящее время выбранному объекту.
  • Connected Figures: Ищет все объекты, связанные с в настоящее время выбранным объектом.

Эти пункты меню активны только, когда вкладка 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 описаны в следующем списке:

  • String Matching (по умолчанию) или Regular Expression: Поиск, соответствуя последовательности или регулярному выражению PCRE.
  • Ignore Case: поиск без учета регистра. Работает с String Matching и Regular Expression.
  • Match Whole Words: Если включена, только целые последовательности подобраны. Например, поиск "home" не соответствовал бы "home_id". По умолчанию выключена.
  • Wrap Around: поиск от начала документа, поскольку иначе это будет только искать от позиции курсора до конца документа. По умолчанию включена.

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

Рис. 9.3. Окно Find

Content is described in the surrounding text.

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

  • Entire Model: Ищет по всей модели.
  • Current View: Ищет текущее представление только. Это может быть страница MySQL Model.
  • All Views: Просматривает MySQL Model Page и все диаграммы EER.
  • Database Objects: Просматривает только объекты базы данных.
  • Selected Figures: Ищет по выбранным в настоящее время объектам. Эта особенность работает только на диаграммах EER.

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

  • Match Case
  • Whole Word
  • Use Regular Expression
  • Search in Comments
  • Search in SQL for Views, SPs etc.

Любой текст в поле 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:

  • Home: Выбирает домашний экран.
  • Panels: Формируйте, какая из трех доступных панелей открыта. Можно также управлять этим из GUI с использованием кнопок панелей на верхней правой стороне MySQL Workbench.
  • Output: Показывает вывод консоли.
  • Select Next Main Tab: Выбирает следующую вкладку MySQL Workbench.
  • Select Next Main Tab: Выбирает предыдущую вкладку MySQL Workbench.

Model/EER options:

  • Windows: подменю с пунктами, которые активируют определенные панели. Назначенные группы включают "Model Navigator", "Catalog", "Layers", "User Datatypes", "Object Descriptions", "Object Properties" и "Undo History".
  • Zoom 100%: уровень детализации по умолчанию диаграммы EER.
  • Zoom In: Увеличивает масштаб диаграммы EER.
  • Zoom Out: Уменьшает масштаб диаграммы EER.

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

  • Set Marker: Отмечает объект. С клавиатуры выберите объект, который вы хотите отметить, затем надо использовать ключевую комбинацию Control+Shift и номер маркера (1 - 9). Можно создать до девяти маркеров.
  • Go To Marker: Переход к маркеру. С клавиатуры используйте Control + номер маркера.
  • Toggle Grid: Показ линии сетки на диаграмме EER.
  • Toggle Page Guides: Показ Page Guides, чтобы помочь проектировать диаграмму EER на основе страниц.

9.1.1.1.4. Меню Arrange

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

  • Align to Grid: Выравнивает пункты на листе по линиям сетки.
  • Bring to Front: Переносит объекты на передний план.
  • Send to Back: Посылает объекты в фон.
  • Center Diagram Contents: Центрирует объекты листа.
  • Autolayout: Автоматически устраивает объекты на листе.
  • Reset Object Size: Расширяет объект на диаграмме EER. Например, если у таблицы есть длинное имя столбца, которое не полностью показано, этот пункт меню расширяет таблицу, чтобы сделать столбец видимым. Этот пункт меню не позволен, если объект не выбран.
  • Expand All: Используйте этот пункт, чтобы расширить все объекты на диаграмме EER. Этот пункт покажет колонки таблицы, если объектная нотация поддержит расширение. Некоторые объектные нотации, такие как Classic, не разрешают расширение или сокращение. Индексы не будут автоматически расширены, если они не были ранее расширены и свернуты через Collapse All.
  • Collapse All: Отменяет операцию, выполненную Expand All.

9.1.1.1.5. Меню Model

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

  • Add Diagram: Создает новую диаграмму EER. Клавиша быстрого вызова: Control+T.
  • Create Diagram From Catalog Objects: Создает диаграмму EER из всех объектов в каталоге.
  • User Defined Types: Представляет диалоговое окно, которое позволяет вам добавить и удалить пользовательские типы данных.
  • DBDoc Model Reporting...: Для получения информации об этом пункте меню посмотрите раздел 9.1.1.1.5.1. Только MySQL Workbench Commercial.
  • Validation: Проверяет законность модели, используя стандарты ANSI. Для получения информации об этом пункте меню посмотрите menu item, see раздел 9.1.1.1.5.2. Только MySQL Workbench Commercial.
  • Validation (MySQL): Проверяет законность использования модели по стандарту MySQL. Для получения информации об этом пункте меню посмотрите раздел 9.1.1.1.5.2. Только MySQL Workbench Commercial.
  • Object Notation: Для получения информации об этом пункте меню посмотрите раздел 9.1.1.1.5.3.
  • Relationship Notation: Для получения информации об этом пункте меню посмотрите раздел 9.1.1.1.5.4.
  • Diagram Properties and Size: Открывает диалоговое окно размера диаграммы, которое позволяет вам отрегулировать ширину или высоту листа. Единица измерения: страницы, значение по умолчанию равняется двум.

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

  • Model Options: Задает опции на уровне модели. Эти варианты не должны быть перепутаны с вариантами, которые установлены глобально для Workbench, и упоминаются как Workbench Preferences. Доступные варианты это подмножество Workbench Preferences.

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

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 есть эти пункты:

  • Validate All: Выполняет все доступные проверки.
  • Empty Content Validation: Проверка на объекты без содержания, такие как таблица без столбцов.
  • Table Efficiency Validation: Проверяет эффективность таблиц, например, таблица без определенного первичного ключа.
  • Duplicate Identifiers Validation: Проверка на двойные идентификаторы, такие как две таблицы с тем же самым именем.
  • Consistency Validation: Проверки на соглашения о присвоении имен.
  • Logic Validation: Проверка, например, что внешний ключ не ссылается на неосновной столбец ключа в исходной таблице.

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

  • Validate All: Выполняет все доступные проверки.
  • Integrity Validation: Разрешены проверки на недопустимые ссылки, такие как имя таблицы больше, чем максимум.
  • Syntax validation: Проверки на правильный синтаксис SQL.
  • Duplicate Identifiers Validation (Additions) : Проверки на объекты с тем же самым именем.

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

9.1.1.1.5.3. Подменю Object Notation

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

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

  • Workbench (Default): Показывает столбцы, индексы и триггеры.
  • Workbench (Simplified): Показывает только столбцы.
  • Classic: Подобно Workbench (Simplified).
  • IDEF1X: стиль моделирования информации языка ICAM DEFinition.

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

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

9.1.1.1.5.4. Подменю Relationship Notation

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

  • Crow's Foot (IE): Стиль моделирования по умолчанию. Для примера посмотрите рис. 9.24.
  • Classic: Использует алмазную форму, чтобы указать на количество элементов.
  • Connect to Columns
  • UML: Стиль Universal Modeling Language.
  • IDEF1X: Стиль ICAM DEFinition language.

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

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

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

9.1.1.1.6. Меню Database

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

  • Query Database: Запускает редактор SQL, который позволяет вам создать код SQL и выполнить его на живом сервере. Для получения дополнительной информации посмотрите раздел 8.1.
  • Manage Connections: Запускает диалог Manage Server Connections, который позволяет вам создать и управлять связями. Для получения дополнительной информации посмотрите раздел 5.3.
  • Reverse Engineer: Создает модель из существующей базы данных. Для получения дополнительной информации посмотрите раздел 9.4.2.2.
  • Forward Engineer: Создает базу данных из модели. Для получения дополнительной информации посмотрите раздел 9.4.1.2.
  • Schema Transfer Wizard...: Выполняет мастер миграции базы данных. Это полезно для перемещения от более старого сервера MySQL до последней версии MySQL и предназначается для локальной разработки. Вы не должны использовать этот инструмент на рабочих экземплярах, поскольку они часто требуют более сложных методов миграции данных.

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

  • Migration Wizard...: Выполняет мастер миграции базы данных для любой базы данных и предназначается, чтобы мигрировать таблицы и данные с поддержанных систем баз данных на ваш сервер MySQL. Для получения дополнительной информации см. главу 10.
  • Edit Type Mappings for Generic Migration : Отсюда можно определить отображения типа, такие как преобразование типа исходных данных int8 к целевому типу данных MySQL BIGINT.
  • Synchronize Model: Синхронизирует вашу модель базы данных с существующей базой данных. Для получения дополнительной информации посмотрите раздел 9.5.1.
  • Synchronize with Any Source: Позволяет вам сравнивать целевую базу данных или скрипт с открытой моделью, внешним скриптом или второй базой данных и применять эти изменения назад к цели. Для получения дополнительной информации посмотрите раздел 9.5.1.
  • Compare Schemas: Сравнивает вашу модель схемы с живой базой данных или файлом скрипта. См. раздел 9.5.2.

9.1.1.1.7. Меню Tools
  • Browse Audit Log File: Запускает файловый браузер, чтобы открыть определенный файл журнала аудита. MySQL Workbench спросит доступ sudo, если пользователь MySQL Workbench неспособен прочитать файл журнала аудита. Для получения дополнительной информации о Audit Inspector см. раздел 6.6. Только MySQL Workbench Commercial.
  • Configuration: Резервная копия (или восстановление) ваших подключений MySQL, как определено в MySQL Workbench. Данные о связи хранятся в файле connections.xml, для получения дополнительной информации об этом файле см. раздел 3.3.
  • Utilities: Эти утилиты производят код PHP для "Connect to the MySQL server" или "Iterate SELECT results", если возможно. Для получения дополнительной информации о генерации кода PHP посмотрите раздел 8.1.11.2.
  • Start Shell for MySQL Utilities: Открывает утилиту mysqluc. Для получения дополнительной информации об утилитах MySQL см. приложение F.

9.1.1.1.8. Меню Scripting

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

  • Scripting Shell: Запускает MySQL Workbench Scripting Shell. Для получения дополнительной информации посмотрите раздел C.5.
  • New Script: Открывает диалог New Script File с вариантами создать Python Script, Python Plugin или Python Module.
  • Open Script: Открывает диалог Open GRT Script, который по умолчанию покажет каталог скриптов Workbench. Файлы открыты в окне Workbench Scripting Shell.
  • Run Script File: Выполняет скрипт, который в настоящее время открыт.
  • Run Workbench Script File: Выполняет указанный файл скрипта.
  • Install Plugin/Module File: Загружает и устанавливает файл модуля или плагин.
  • Plugin Manager: Покажет информацию о плагинах, которые установлены, позволяет отключать и деинсталлировать плагины.

9.1.1.1.9. Меню Help

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

  • Help Index: Открывает окно, показывая местную копию документации MySQL Workbench. Читайте, ищите или напечатайте документацию из этого окна.
  • MySQL.com Website: Открывает ваш браузер по умолчанию на домашней странице веб-сайта MySQL.
  • Workbench Product Page: Открывает ваш браузер по умолчанию на странице MySQL Workbench.
  • System Info: информация о вашей системе, которая полезна, сообщая об ошибке. Для получения дополнительной информации посмотрите раздел 9.1.1.1.9.1.
  • Report a Bug: Открывает ваш браузер по умолчанию на bugs.mysql.com и автоматически заполняет несколько полей, таких как версия OS и MySQL Workbench, проходя в дополнительных данных через запрос GET. "Description" по умолчанию просит вас также приложить файл журнала Workbench. Для получения дополнительной информации о полезных отчетах об ошибках см. приложение D.
  • View Reported Bugs: Открывает ваш браузер по умолчанию, чтобы видеть список текущих ошибок.
  • Locate Log Files: Открывает каталог, который содержит файлы журнала MySQL Workbench.
  • Show Log File: Открывает главный файл журнала MySQL Workbench в вашем текстовом редакторе по умолчанию. Этот файл, как правило, называют wb.log .
  • Check For Updates: Проверяет, используете ли вы текущую версию MySQL Workbench. Если да, всплывающее окно сообщает вам об этом. В противном случае будет запрос, чтобы вы открыли страницу загрузки MySQL Workbench.
  • About Workbench: Показывает окно MySQL Workbench About. Это также показывает версию 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 расположена ниже строки меню. Щелкните по инструментам на панели инструментов, чтобы выполнить следующие действия:

  • Значок документа: Создает новый документ.
  • Значок папки: Открывает файл MySQL Workbench (расширение mwb).
  • Символ сохранения: Сохраняет текущий проект MySQL Workbench.
  • Правые и левые стрелки: стрелка влево выполняет Undo. Стрелка вправо выполняет Redo.

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

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

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

  • Символ переключения сетки: Включает и выключает сетку.
  • Символ сетки: Выравнивает объекты на листе с сеткой.
  • Символ новой диаграммы EER: Создает новую вкладку диаграммы 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 имеет следующие разделы:

  • Tables
  • Views
  • Routines
  • Routine Groups

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

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

9.1.1.5. Панель Schema Privileges

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

  • Users
  • Roles

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

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

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

  • Cut 'role_name': Вырезает роль.
  • Copy 'role_name': Копирует роль.
  • Edit Role...: Открывает ролевой редактор.
  • Edit in New Window...: Открывает ролевой редактор в новом окне редактора.
  • Delete 'role_name': Удаляет роль.
  • Copy SQL to Clipboard: В настоящее время не осуществлено.

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

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

  • Tables
  • Views
  • Routine Groups

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

Палитра 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.

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

  • color: Цветной акцент объекта показан как шестнадцатеричное значение. Измените цвет объекта, изменив это значение. Только знаки, которые законны для шестнадцатеричных значений, могут быть введены. Можно также изменить цвет, щелкнув ..., чтобы открыть диалоговое окно изменения цвета.
  • description: Применимый только к слоям. Средство документирования цели слоя.
  • expanded: Этот признак относится к объектам, таким как таблицы, которые могут быть расширены, чтобы показать колонки, индексы и триггеры.
  • height: Высота объекта. В зависимости от объекта, это свойство может быть только прочитано или доступно чтение-запись.
  • left: Число пикселей от объекта до левой стороны листа.
  • locked: Блокирован ли объект. Значение для этого признака true или false.
  • manualSizing: Был ли объект вручную измерен. Значение для этого признака true или false.
  • name: Название объекта.
  • top: Число пикселей от объекта до вершины листа.
  • visible: Обнаруживается ли объект на листе. Используйте 1 для true и 0 для false. Это в настоящее время используется только для отношений.
  • width: Ширина объекта. В зависимости от объекта, это свойство может быть только прочитано или доступно чтение-запись.

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

  • indexesExpanded: Показаны ли индексы, когда таблица помещается в лист. Используйте 1 для true и 0 для false.
  • triggersExpanded: Показаны ли триггеры, когда таблица помещается в лист. Используйте 1 для true и 0 для false.

Для обсуждения свойств связи посмотрите раздел 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.

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

  • Cut 'table_name': Вырезать таблицу, чтобы произвольно приклеить в другую схему.
  • Copy 'table_name': Скопировать таблицу, чтобы произвольно приклеить в другую схему.
  • Paste 'table_name': Приклеить таблицу. Выбор опции Paste также доступен из главного меню Edit.
  • Edit 'table_name': Изменяет редактор таблиц на выбранную таблицу.
  • Edit 'table_name ' in New Tab: Открывает таблицу в новой вкладке редактора таблиц.
  • Copy SQL to Clipboard: Копирует CREATE TABLE для таблицы.
  • Copy Column Names to Clipboard: Копирует список разделенных запятой значений имен столбцов.
  • Copy Insert to Clipboard: Копирует INSERT на основе вставок модели. Ничто не копируется в буфер, если у таблицы нет определенных вставок.
  • Copy Insert Template to Clipboard: Копирует INSERT, который основан на модели.
  • Delete 'table_name': Удалит таблицу из базы данных. Это немедленно удаляет таблицу без диалогового окна подтверждения.
  • Remove Figure 'table_name': Если применимо, удалит рисунок, связанный со таблицей.

Если редактор таблиц не открыт, 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.

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

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

  • Cut 'table_name'
  • Copy 'table_name'
  • Paste
  • Edit 'table_name'
  • Edit ' table_name' in New Tab...
  • Copy SQL to Clipboard
  • Copy Column Names to Clipboard
  • Copy Inserts to Clipboard
  • Copy Insert Template to Clipboard
  • Delete 'table_name'
  • Remove Figure 'table_name'

За исключением пункта удаления, эти пункты меню функционируют, как описано в разделе 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-to-one non-identifying relationship
  • one-to-many non-identifying relationship
  • one-to-one identifying relationship
  • one-to-many identifying relationship
  • many-to-many identifying relationship
  • Place a Relationship Using Existing Columns

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

  • Отношения идентификации: определены сплошной линией между таблицами.

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

  • Отношения без идентификации: определены ломанной (пунктирной) линией между таблицами.

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

  • caption: Название связи. По умолчанию имя это название внешнего ключа, и значение центрировано выше линии связи.
  • captionXOffs: Смещение X заголовка.
  • captionYOffs: Смещение Y заголовка.
  • comment: Комментарий, связанный с отношениями.
  • drawSplit: Показать ли отношения как сплошную линию.
  • endCaptionXOffs: Точка X завершения заголовка.
  • endCaptionYOffs: Точка Y завершения заголовка.
  • extraCaption: Вторичный заголовок. По умолчанию этот дополнительный заголовок центрирован ниже линии связи.
  • extraCaptionXOffs: Смещение X второго заголовка.
  • extraCaptionYOffs: Смещение Y второго заголовка.
  • mandatory: Обязательны ли таблицы. Для получения дополнительной информации посмотрите раздел 9.1.4.2.
  • many: False, если отношения one-to-one.
  • middleSegmentOffset: Смещение среднего раздела соединителя.
  • modelOnly: Установлено, когда связь не будет размножена к DDL. Это просто логическая связь, продвинутая диаграмма. Это используется, например, при рисовании таблиц MyISAM с визуальными отношениями, но без внешних ключей.
  • name: Имя, определяющее связь на листе диаграммы EER. Обратите внимание на то, что это не название внешнего ключа.
  • referredMandatory: Обязательна ли ссылка.
  • startCaptionXOffs: Начало X-смещения заголовка.
  • startCaptionYOffs: Начало Y-смещения заголовка.

В большинстве случаев можно изменить свойства отношений, используя редактор отношений, а не палитру 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.

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

  • Cut 'view_name'

    'view_name' вырезано только из листа EER и не удалено из схемы.

  • Copy 'view_name'
  • Paste
  • Edit View...
  • Edit in New Window...
  • Copy SQL to Clipboard
  • Delete 'view_name': удаляет из листа EER и из схемы.
  • Remove 'view_name': удаляет из листа EER, но не из схемы.

Если редактор таблиц не открыт, 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, чтобы выполнить следующие задачи:

  • Переименуйте представление, используя текстовое окно Name.
  • Введите SQL, чтобы создать представление, используя поле SQL.
  • Прокомментируйте представление, используя текстовое поле Comments.

Вкладка 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.

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

  • Rename
  • Cut 'routine_name'
  • Copy 'routine_name'
  • Paste
  • Edit Routine...
  • Edit in New Window...
  • Copy SQL to Clipboard
  • Delete 'routine_name'

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, чтобы выполнить следующие задачи:

  • Переименуйте подпрограмму, используя поле Name.
  • Введите SQL, чтобы создать подпрограмму, в поле SQL.

9.1.6.1.2.2. Вкладка Privileges

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

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

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

  • ALL
  • CREATE
  • DROP
  • GRANT OPTION
  • REFERENCES
  • ALTER
  • DELETE
  • INDEX
  • INSERT
  • SELECT
  • UPDATE
  • TRIGGER

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

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

  • Rename
  • Cut 'routine_group_name'
  • Copy 'routine_group_name'
  • Edit Routine...
  • Edit in New Window...
  • Copy SQL to Clipboard
  • Delete 'routine_group_name'

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

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

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. Доступные варианты контекстного меню:

  • Cut 'layer_name'
  • Copy 'layer_name'
  • Paste 'a_table_name'
  • Edit 'layer_name'
  • Delete 'layer_name'

Слой может также быть отредактирован с помощью 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.

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

  • Rename
  • Cut 'note_name'
  • Copy 'note_name'
  • Delete 'note_name'

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

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

  • Cut 'Image'
  • Copy 'Image'
  • Edit Image...
  • Edit in New Window...
  • Delete 'Image'

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

9.1.10.2. Image Editor

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

Вкладка Image

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

  • Переименуйте изображение, используя текстовое окно Name.
  • Просмотрите изображение кнопкой Browse.

Изменение изображения, используя палитру 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 не активна. Эти пункты:

  • Page Setup...

    Позволяет вам выбрать формат бумаги, ориентацию и края.

  • Print

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

  • Print to PDF...

    Создает файл PDF вашей диаграммы EER.

  • Print to PS...

    Создает файл PostScript вашей диаграммы 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: Образцовая документация в формате HTML, который использует фреймы.
  • HTML Basic Single Page: Одностраничная документация HTML, не использует фреймы.
  • HTML Detailed Frames: Подробная документация HTML, используя фреймы.
  • Text Basic: Документация текстового файла.

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

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

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

  • ~: Домашний каталог пользователя. Доступен только на версиях Linux и macOS.
  • %desktopfolder%: Рабочий стол пользователя.
  • %documentsfolder%: Папка Documents пользователя. Следующая таблица показывает типичные значения для платформ.

    Платформа Типичная папка Documents
    Windows C:\Users\ user_name\My Documents
    Linux ~/Documents
    macOS Users/user_name/Documents
  • %date%: Дата в формате YYYY-MM-DD.

  • %time%: Время в формате HHMM.
  • %year%: Год в формате YYYY.
  • %month%: Месяц в формате MM. Январь 01, декабрь соответственно 12.
  • %monthname%: Имя месяца, а не номер.
  • %day%: Номер дня в формате DD.

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

  • Output Table Columns: Покажите все колонки.
  • Output Table Indices: Покажите все индексы.
  • Output Foreign Keys: Покажите все внешние ключи.
  • Output References from Foreign Keys: покажите таблицы, которые ссылаются на внешние ключи.
  • Include DDL code for objects: Производит код DDL.

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

  • basic.css: Таблица стилей для страницы overview.html.
  • index.html: Главная страница.
  • overview.html: Образцовый обзор, навигационные ссылки, показанные в боковой панели.
  • restrained.css: Файл CSS, используемый, если выбрана опция стиля Restrained Colors.
  • table_details.html: Главный фрейм отчета.

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

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

  • basic.css: Таблица стилей для страницы overview.html. Это используется, если выбран стиль vibrant.
  • coated.css: Файл CSS, используемый, если выбрана опция стиля Coated.
  • index.html: Главная страница.
  • overview.html: Информация об обзоре для отчета, такая как название отчета, название проекта и автор.
  • overview_list.html: Резюме схемы в модели наряду со списком таблиц в каждой схеме.
  • routine_details.html: Список всех хранимых подпрограмм для схемы.
  • table_details.html: Главные детали отчета.
  • table_details_list.html: Обзор схемы с деталями колонок, индексов и внешних ключей для каждой схемы.
  • table_element_details.html: Детали для каждого элемента таблицы.
  • top.html: Главный фрейм отчета.
  • view_details.html: Список всех колонок и индексов для схемы.

Выбор опции 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. Общая проверка

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

  • Empty Content Validation

    • Таблица без колонок.

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

  • Table Efficiency Validation

    • Таблица без первичного ключа.

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

  • Duplicated Identifiers Validation

    • Двойные имена объектов.

    • Двойная роль или имена пользователей.
    • Двойной индекс или имя подпрограммы.

  • Consistency Validation

    • Использование той же самой колонки с колонками отличающихся типов данных.

  • Logic Validation

    • Внешний ключ, который обращается к колонке кроме первичного ключа в исходной таблице.

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

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

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

  • Integrity Violation

    • Имя объекта больше, чем максимум разрешено.

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

  • Syntax Violation

    • Хранимая подпрограмма, триггер или представление с неправильным синтаксисом SQL.

    • Зарезервированное слово используется в качестве идентификатора.
    • Использование недопустимого символа.

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 показывает следующие средства:

  • Output SQL Script File:

    Чтобы определить имя выходного файла, введите его в поле Output SQL Script File или используйте кнопку Browse, чтобы выбрать файл. Оставьте это поле пустым, чтобы смотреть, но не сохранять вывод.

  • Generate DROP Statements Before Each CREATE Statement

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

  • Generate DROP SCHEMA
  • Sort Tables Alphabetically

    Когда эти опции выключены, таблицы отсортированы согласно ссылкам внешнего ключа.

  • Skip creation of FOREIGN KEYS
  • Skip creation of FK Indexes as well
  • Omit Schema Qualifier in Object Names

    Выберите эту опцию, чтобы произвести неквалифицированные имена объектов в SQL-операторах.

  • Generate USE statements
  • Generate Separate CREATE INDEX Statements

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

  • Add SHOW WARNINGS after every DDL statement

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

  • Do Not Create Users. Only Export Privileges

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

  • Don't create view placeholder tables
  • Generate INSERT Statements for Tables

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

  • Disable FK checks for inserts
  • Create triggers after inserts

Нажим 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. Инженерный анализ, используя создающий скрипт

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

  • На домашнем экране выберите просмотр модели из боковой панели, щелкните (>) следующий за Models, и выберите Reverse Engineer MySQL Create Script.
  • С выбранной моделью и ее вкладкой выберите из меню File, Import, Reverse Engineer MySQL Create Script.

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

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

Content is described in the surrounding text.
  • Select SQL script file: Откройте файл с типом файла по умолчанию файл скрипта SQL, расширение sql.

  • File encoding: По умолчанию UTF8.
  • Place imported objects on a diagram: Также создайте диаграмму EER в MySQL Workbench.

    Импортируя большое количество (более 1000) объектов, можно не создать диаграмму EER, а вместо этого получить предупреждение с текстом "Too many objects are selected for auto placement. Select fewer elements to create the EER diagram." В этом случае выполните мастера инженерного анализа с отключением этой опции, вручную создайте диаграмму EER, и затем импортируйте объекты, используя просмотр каталога диаграммы EER.

Если ваш скрипт создает базу данных, 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 позволяет контроль над объектами синхронизации и направлением синхронизации для каждого объекта. Варианты включают:

  • Определите все или определенные таблицы и объекты.
  • Синхронизируйте модель и живую базу данных или только обновите одно или другое.
  • Произвольно обновление от или до файла скрипта SQL.
  • Вместо того, чтобы выполнить синхронизацию, можно произвести ALTER Script File, чтобы позже выполнить соответствующие обновления.
  • Точно настройте, как синхронизация будет выполнена, выбирая направление каждого отдельного объекта или формируя конкретные объекты, которые будут проигнорированы.

Есть два подобных мастера синхронизации базы данных, доступные из меню 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 будет добавлена к живой базе данных (источнику).

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

  • Update Model: Заставляет выбранные изменения быть примененными к модели от живой базы данных.
  • Ignore: Заставляет изменения быть проигнорированными. Никакая синхронизация не произойдет для тех изменений. Это определяется с двойной стрелкой, которая перечеркнута.
  • Update Source: Заставляет изменения быть примененными только к живой базе данных.

Нажим 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 или текст, рассматриваются пользователем.

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

  • Шаблон включает
  • Комментарий
  • Установить разделитель
  • Pragma
  • Переменная
  • Начало секции и конец секции

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

  • Переменные

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

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

    Total number of Schemas: {{SCHEMA_COUNT}}
    

    В произведенном выходном файле переменная {{SCHEMA_COUNT}} заменяется количеством схем в модели:

    Total number of Schemas: 2
    

    Переменная может появиться многократно в файле шаблона.

  • Секции

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

    Рассмотрите следующий фрагмент кода:

    {{#SCHEMATA}}
    Schema: {{SCHEMA_NAME}}
    {{/SCHEMATA}}
    

    В предыдущем отрывке начало секции и конец обозначаются маркерами {{#SCHEMATA}} и {{/SCHEMATA}}. Когда MySQL Workbench обрабатывает шаблон, оно отмечает секцию и повторяет это пока данные для переменной {{SCHEMA_NAME}} в соответствующем словаре данных не будут исчерпаны. Например, если обрабатываемая модель содержит две схемы, вывод для секции мог бы напоминать следующее:

    Schema: Airlines
    Schema: Airports
    

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

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

Поиск

 

Найди своих коллег!

Вы можете направить письмо администратору этой странички, Алексею Паутову. mailto:alexey.v.pautov@mail.ru