Створення моделі даних та EER-діаграми

Лабораторна робота №3

Створення EER-діаграми бази даних засобами візуального проектування MySQL Workbench.

Мета: набуття навиків роботи з інструментом візуального проектування MySQL Workbench та керування сервером MySQL.

Завдання для виконання

На основі розробленої під час попередньої лабораторної роботи реляційної моделі бази даних виконати наступне:

1. У MySQL Workbench створити нову модель даних;

2. До створеної моделі даних додати нову EER-діаграму;

3. Побудувати EER-діаграму, що графічно відображає структуру таблиць бази даних та зв’язки між таблицями.

 

Приклад:

На основі розробленої логічної моделі реляційної бази даних (облік результатів проходження сесії) побудуємо EER-діаграму у середовищі MySQL Workbench.

 

 

Рисунок 1 – Логічна модель реляційної бази даних

 

MySQL Workbench

MySQL Workbench - інструмент для візуального проектування баз даних, інтегруючий проектування, моделювання, створення та експлуатацію БД в єдине оточення для системи баз даних MySQL.

Програма дозволяє швидко і просто створювати схеми даних проекту, проектувати сутності й зв'язки між ними, безболісно впроваджувати зміни в схему і так само швидко і безболісно синхронізувати її з віддаленим сервером. А графічний редактор EER-діаграм, дозволяє побачити загальну картину моделі даних і насолодитися її легкістю і елегантністю.

Дистрибутив MySQL Workbench доступний на цій сторінці. Найсвіжіша версія програми на момент написання даної лабораторної роботи - Версія 6.3. Перед скачуванням потрібно вибрати одну з наступних платформ:

· Microsoft Windows (доступні MSI Installer і ZIP архів)

· Ubuntu Linux

· Fedora

· Red Hat Enterprise Linux / Oracle Linux

· Mac OS X

Після вибору платформи вам пропонують зареєструватися або авторизуватися в Oracle. Якщо не бажаєте це робити, внизу є посилання " No thanks, just start my download " - тисніть на нього. Встановлення програми досить просте, тому в даній роботі процес встановлення розглядатися не буде.


Початок роботи

Запустіть MySQL Workbench. Стартовий екран програми відображає основні напрямки її функціональності - проектування моделей баз даних та їх адміністрування:

У верхній частині екрану знаходиться список підключень до MySQL серверів ваших проектів, а список останніх відкритих моделей даних - в нижній частині екрана. Робота звичайно починається зі створення схеми даних або завантаження існуючої структури в MySQL Workbench. Приступимо до роботи!

 


 

Створення моделі даних та EER-діаграми

Перше, що нам потрібно зробити – створити нову модель. Для додавання моделі натискаємо плюсик поруч із заголовком "Models" або вибираємо "File New Model" (Ctrl + N):

Після чого відкриється вікно попереднього перегляду моделі:

За замовчуванням ім'я створеної моделі – mydb. Клацніть правою кнопкою миші по імені моделі і виберіть у меню пункт Edit schema. У вікні можна змінити ім'я моделі. Назвемо її, наприклад, oblik rezultativ sesii.

В іменах таблиць і стовпців не можна використовувати кирилицю. Тому, зазвичай їх пишуть, або на англійській мові, або на трансліті.

У цьому вікні також налаштовують кодування. Для цього виберіть зі списку пункт «utf8- utf8_general_ci». Зазвичай це значення встановлене за замовчанням. Вікно властивостей можна закрити.

Діаграму будемо будувати за допомогою візуальних засобів. Клацнемо по пункту Add diagram, завантажиться порожнє вікно діаграми:

Створити нову таблицю можна за допомогою піктограми . Потрібно клацнути по цій піктограмі, а потім клацнути в робочій області діаграми. На цьому місці з'явиться таблиця з назвою за замовчуванням table1. Подвійне клацання по цій таблиці відкриває вікно редагування, в якому можна змінити ім'я таблиці та налаштувати її структуру.

Будемо створювати таблицю Відділення (VIDDILENNYA). З наступними стовпцями: Код відділення – KV, Назва відділення – NV, ПІБ зав.відділення – PIB_ZV.

Перейменуємо table1 в VIDDILENNYA і почнемо створювати стовпці.

Кожен стовпець має:

· Ім'я (не використовуйте російські букви в імені!);

· Тип даних. Найпоширеніші типи даних (більш детально про типи даних mysql тут):

§ INT - ціле число;

§ VARCHAR (розмір) - символьні дані змінної довжини, в дужках вказується максимальний розмір;

§ DECIMAL (розмір, десяткові_знаки) - десяткове число;

§ DATE - дата;

§ DATETIME - дата і час.

Далі розташовуються стовпці, в яких можна налаштувати додаткові властивості поля, включивши відповідний прапорець:

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

· NN (not null) - комірка не допускає порожні значення;

· UQ (unique) - значення повинно бути унікальним в межах стовпця;

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

· DEFAULT - значення за замовчуванням, тобто, значення, яке при додаванні нового рядка в таблицю автоматично вставляється в комірку сервером, якщо користувач залишив комірку порожньою.

Таблиця відділення має наступний вигляд:

Далі створимо таблицю Спеціальність (SPECIALNIST). З такими стовпцями: Код спеціальності – KS, Назва спеціальності – NS.

 

Створені таблиці виглядають таким чином:

Зверніть увагу, що при створенні первинного ключа автоматично створюється індекс цього первинного ключа. Індекс являє собою допоміжну структуру, яка служить, насамперед, для прискорення пошуку і швидкого доступу до даних.

Тепер зв'яжемо ці таблиці. Спочатку створимо зв'язок «Входить» між Відділенням (батьківська таблиця) та Спеціальністю (дочірня таблиця), ступінь зв'язку 1:М.

Для створення зв'язків 1:М служить піктограма (з пунктирною лінією), на панелі інструментів. З її допомогою створюється так званий «неідентифікуючий зв'язок», тобто звичайний зовнішній ключ, при цьому первинний ключ батьківської таблиці додається в список стовпців дочірньої таблиці.

Отже, клацнемо на піктограмі, потім клацнемо на дочірній таблиці Спеціальність, потім на батьківській таблиці Відділення:

Зверніть увагу, що при цьому відбулося. Між таблицями утворилася пунктирна лінія. У бік «до одного» вона відзначена двома рисками, у бік «до багатьох» - «курячою лапкою». Крім того, в таблиці Спеціальність утворився додатковий стовпець, якому автоматично присвоєно ім'я viddilennya_kv (тобто, ім'я батьківської таблиці плюс ім'я первинного ключа батьківської таблиці). А в групі Індекси створений індекс зовнішнього ключа fk_specialnist_viddilennya_idx.

Створимо таблицю Група (GRUPA). З такими стовпцями: Код групи – KG, Назва групи – NG, Кількість студентів групи – Kst, Курс – Kurs, ПІБ класного керівника – PIB_KL.

Зв’яжемо таблицю Спеціальність та Група.

Створимо таблицю Студент (STUDENT). З такими стовпцями: № залікової книжки – ZK, Прізвище – PS, Ім’я – IS, По батькові – PBS, Дата народження – DN, Телефон – TS, Форма фінансування – FF.

Зв’яжемо таблицю Групата Студент.

Створимо таблицю Дисципліна (DISCUPLINA). З такими стовпцями: Код дисципліни – KD, Назва дисципліни – ND, Вид контролю – VK.

Як ви пам’ятаєте, для розв’язання зв’язку багато до багатьох між сутностями Студент і Дисципліна ми ввели додаткову сутність Оцінка.

Оскільки сутність Оцінка була «слабкою», у неї немає повноцінного первинного ключа, і кожна оцінка однозначно ідентифікується групою атрибутів (код дисципліни, номер залікової книжки).

Для створення такого зв'язку потрібно використовувати піктограму .

Слід клацнути мишею по цій піктограмі, а потім послідовно клацнути по пов'язаним таблицям. Між ними з'явиться нова таблиця, зверніть увагу на її стовпці, первинний ключ і зовнішні ключі:

Для зручності перейменуємо цю таблицю в ocinka (Оцінка), додамо стовпець ocinka.


 

Тепер EER-діаграма має такий вигляд:

Модель з діаграмою потрібно зберегти клацнувши на піктограму , або натиснути (Ctrl+S).