Створення моделі даних та 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).