Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Работа в mySQL Workbench - Создание EER-диаграммы



Среда mySQL Workbench предназначена для визуального проектирования баз данных и управления сервером mySQL.

Для построения моделей предназначена секция Data Modeling:

Выберем пункт Create new EER Model.

EER model расшифровывается как Extended Entity - Relationship Model и переводится как Расширенная модель сущностей-связей.

По умолчанию имя созданной модели myDB. Щелкните правой кнопкой мыши по имени модели и выберите в появившемся меню пункт Edit schema. В появившемся окне можно изменить имя модели. Назовем ее, например, kontora. В именах таблиц и столбцов нельзя использовать русские буквы.

В этом окне также нужно настроить так называемую «кодовую страницу» для корректного отображения русских букв внутри таблиц. Для этого выберите из списка пункт « cp 1251- cp 1251_ general _ ci ». Окно свойств можно закрыть.

Диаграмму будем строить с помощью визуальных средств. Щелкнем по пункту Add diagram, загрузится пустое окно диаграммы:

Создать новую таблицу можно с помощью пиктограммы . Нужно щелкнуть по этой пиктограмме, а потом щелкнуть в рабочей области диаграммы. На этом месте появится таблица с названием по умолчанию table 1. Двойной щелчок по этой таблице открывает окно редактирования, в котором можно изменить имя таблицы и настроить её структуру.

Будем создавать таблицу Отделы со следующими столбцами: номер_отдела, полное_название_отдела, короткое_название_отдела. Переименуем table 1 в k _ dept и начнем создавать столбцы.

Каждый столбец имеет:

· имя (не используйте русские буквы в имени! ),

· тип данных. Самые распространенные типы данных:

o INT – целое число;

o VARCHAR(размер) – символьные данные переменной длины, в скобках указывается максимальный размер;

o DECIMAL(размер, десятичные_знаки) – десятичное число;

o DATE – дата:

o DATETIME – дата и время.

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

· PK (primary key) – первичный ключ;

· NN (not null) – ячейка не допускает пустые значения;

· UQ (unique) – значение должно быть уникальным в пределах столбца;

· AI (auto incremental) – это свойство полезно для простого первичного ключа, оно означает, что первичный ключ будет автоматически заполняться натуральными числами: 1, 2, 3, и т.п.;

· DEFAULT – значение по умолчанию, т.е., значение, которое при добавлении новой строки в таблицу автоматически вставляется в ячейку сервером, если пользователь оставил ячейку пустой.   

Таблица Отделы имеет следующий вид:

 

Затем создадим таблицу Сотрудники со следующими столбцами: номер_сотрудника, имя_сотрудника, должность, дата_начала_контракта, дата_окончания_контракта

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

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

Теперь свяжем эти таблицы. Сначала создадим связь «Работает» между Сотрудником (дочерняя таблица) и Отделом (родительская таблица), степень связи М: 1. Для создания связей М: 1 служит пиктограмма на панели инструментов  (с пунктирной линией). С ее помощью создается так называемая «неидентифицирующая связь», т.е. обыкновенный внешний ключ, при этом первичный ключ родительской таблицы добавляется в список столбцов дочерней таблицы.

Итак, щелкнем на пиктограмме, затем щелкнем на дочерней таблице Сотрудники, затем на родительской таблице Отделы:

Обратите внимание, что при этом произошло. Между таблицами образовалась пунктирная линия; в сторону «к одному» она отмечена двумя черточками, в сторону «ко многим» - «куриной лапкой». Кроме того, в таблице Сотрудники образовался дополнительный столбец, которому автоматически присвоено имя k _ dept _ dept _ num (т.е., имя родительской таблицы плюс имя первичного ключа родительской таблицы). А в группе Индексы создан индекс по внешнему ключу.

Теперь добавим связь между этими же таблицами «Руководит» 1: 1. Выберем пиктограмму , затем щелкнем по Отделам, затем по Сотрудникам.

Чтобы 2 связи на картинке не «завязывались узлом», мы их разместили друг под другом.

 

Обратите внимание, что в таблицу Отделы был автоматически добавлен столбец k _ staff _ staff _ num,  а также индекс по внешнему ключу.

 

Создадим таблицу Предприятия:

Создадим таблицу Договоры. У столбца Тип_договора зададим следующий формат: это буква из списка ‘A’, ‘B’, ‘C’.

Свяжем Договоры с Сотрудниками и Предприятиями связями М: 1.

Затем создадим Счета и Платежи:

Поскольку сущность Платеж была «слабой», у нее нет полноценного первичного ключа, и каждый платеж одно-значно идентифицирует-ся группой атрибутов (номер_счета, номер платежа). Отметим в качестве ключевого поля payment _ num, а затем создадим идентифицирующую связь между Счетом и Платежом.

Идентифицирующая связь создается с помощью пиктограммы  (со сплошной линией). При этом новый столбец k _ bill _ bill _ num становится не только внешним ключом в таблице Платеж, но и частью первичного ключа.

Далее создадим таблицу Прайс-лист со столбцами (номер_товара, название_товара, цена_товара и тип_товара).

 

 

Между объектами Счет и Прайс-лист имеется связь «многие - ко многим». Для создания этой связи нужно использовать пиктограмму . Следует щелкнуть мышью по этой пиктограмме, а затем последовательно щелкнуть по связываемым таблицам. Между ними появится новая таблица, обратите внимание на ее столбцы, первичный ключ и внешние ключи:

 Для удобства переименуем эту таблицу в k_protokol ( ПротоколСчета ), добавим столбцы kolvo и price_sum.

Теперь EER-диаграмма имеет такой вид:

 

Задание. Создайте в MySQL WORKBENCH EER-диаграмму для своей задачи.


Поделиться:



Последнее изменение этой страницы: 2019-06-19; Просмотров: 505; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.02 с.)
Главная | Случайная страница | Обратная связь