Workbench побудова. Робота з субд mysql. Використання інструменту mysql workbench. Створення та редагування моделі даних

Головна / Основний функціонал

Мета даного посту - допомогти розробнику-початківцю швидко освоїться і спроектувати простеньку базу за допомогою інструмента для візуального проектуваннябаз даних MySQL Workbench від компанії Oralce та отримати її ER-модель та SQL-дамп.

Ну що ж, менше слів та більше сенсу! Зовнішній виглядвікна програми, розділ «Моделювання даних» виглядає так:

Для того, щоб відкрити існуючу модель, потрібно натиснути на посилання: Open Existing EER Modelдля створення нової моделі – вибрати параметр: Create New EER Model, щоб створити модель «сутність-зв'язок» з існуючої бази даних – натиснути на параметр: Create EER Model From Existing Database, а для створення EER моделі із SQL скрипта потрібно вибрати: Create EER Model From SQL Script.
Для створення нової моделі, скористаємося посиланням Create New EER Model, після натискання на неї відобразиться вікно з параметрами:

Для початку необхідно створити таблиці, для цього натисніть кнопку Add Table, з'явиться така форма:


Спочатку створимо таблицю users, яка зберігатиме дані про користувачів інформаційної системи, в полі table Nameвпишемо ім'я таблиці, у розділі форми Columnsстворимо поля таблиці:
- Перше поле idміститиме унікальний номеркористувача, задамо йому властивості: Auto Increment, Not Null, Primary keyі Unique, в розділі Data typeвиберемо цілий тип integer.
- Друге поле fio, де зберігатиметься П.І.Б.користувача, встановимо полю якості: Not Null, Primary key, в розділі Data typeвиберемо рядковий тип VARCHAR 255 .
- Третє поле login, буде містити логін користувача, воно має бути унікальним, як і поле idтому встановимо йому властивість Uniqueі задаємо кількість символів у 255 .
- Наступні поля: passwordмістить пароль, e_mailмістить адресу електронної поштита поле typeщо містить тип користувача будуть без особливих властивостей, з рядковим типом VARCHARдовгою в 255 символів, за винятком останнього поля typeякому вистачить з 45 символів.
Після виконаних маніпуляцій форма з ім'ям таблиці usersвиглядатиме так:


На діаграмі з'явиться таблиця usersз полями та індексами:

Аналогічним способом створимо таблицю settingsз налаштуваннями доступу до бази даних ІС, що містить поля id, hostдля вказівки імені хоста (адреси сервера), db- імені бази даних, userі passwordз ім'ям користувача та паролем, для встановлення ІС на віддалений сервер.

Далі за вже відомим методом створимо таблицю shops, яка зберігатиме дані про магазини в полях: idтипу integer– ключове, ненульове, унікальне з автоінкрементом, поле nameназва магазину, що зберігає, поле address– його фізична адреса, поле tel- Телефон магазину, site– інтернет сайт магазину та поле emailз електронною адресоюмагазину.

Потім створимо таблицю productsщо зберігає дані про продукцію магазину в полях: idтипу integer– ключове, ненульове, унікальне з автоінкрементом, поле name, що зберігає назву магазину, ключове, ненульове поле цілісного типу shop_idномер магазину, що зберігає, поле type_idз інформацією про номер товару із таблиці видів продукції. Поле brand – бренд виробника довгою в 255 символів, поле model– з моделлю товару, поле data– з даними та характеристиками товару типу Tinytext, поле imgз повною адресою до зображення товару довжиною в 255 символів, та поля price з ціною товару та warrantyз інформацією про терміни гарантії на товар довжиною 45 символів.

Створені нами таблиці settings, shopsі productsвиглядають наступним чином:

Далі нам знадобиться таблиця, що зберігає тип продуктів. product_type, вона складається з унікального, ненульового, ключового поля. idз автоінкрементом цілого типу, і унікального поля name довжиною в 255 символів, яке містить назву виду продуктів.

Вигляд таблиці такий:

Останні дві таблиці це ordersі deliveries, Перша містить інформацію про замовлення клієнтів, а остання дані про доставку продукції.

Поля таблиці orders: idключове, ненульове, унікальне поле цілісного типу з автоінкрементом, поле shop_idмістить номер магазину – ключове, ненульове цілого типу, поле product_idщо зберігає номер продукту - ключове, ненульове цілого типу, поле fio date c датою замовлення – типу DATE, поле quantityз кількістю замовлених товарів – цілісного типу, поле telз номером телефону замовника – рядкового типу довжиною 255 символів та поле confirm містить інформацію про підтвердження замовлення – логічного типу.

Поля таблиці deliveries: order_idз номером замовлення - ключове, ненульове, унікальне поле цілісного типу з автоінкрементом, поле поле fioз номером користувача здійснив замовлення - ключове, ненульове цілого типу, поле addressадреса доставки товару, що зберігається, вказана клієнтом – рядкового типу довжиною в 255 символів, поле timeчас доставки товару, що зберігає бажаний, – строкового типу довжиною в 255 символів, поле dateз датою здійснення замовлення клієнтом – типу DATEта поле логічного типу confirmщо зберігає інформацію про доставку товару.

Таблиці ordersі deliveriesвиглядають так:

Зв'язки таблиць

Ми створили базу даних, що складається з семи таблиць, тепер необхідно зв'язати таблиці, ми вже створили ключові поля цілісного типу, вони стануть основою для зв'язування.
Щоб зв'язати дві таблиці наприклад productsі product_typeнеобхідно двічі клацнути лівою кнопкою миші на діаграму з таблицею products і вибрати вкладку Foreign keys(зовнішні ключі), далі в полі Foreign key nameввести унікальне ім'я зовнішнього ключа, двічі клацнути по вкладці Referenced tableта вибрати таблицю product_type, потім у формі розташованої правіше вибрати поле, що посилається type_idі вибрати у спливаючому списку поле id.


Таким чином, обидва поля таблиці виявляються пов'язані, потім потрібно задати тип відносин зв'язку між таблицями, відкриємо вікно, клікнувши на зв'язок, що з'явився між таблицями, і виберемо вкладку Foreign Keyта у розділі Cardinalityвиберемо тип зв'язку один до багатьох, і закриємо вікно. На діаграмі відобразиться зв'язок таблиць:


Аналогічно пов'язуємо всі ключові поля в таблицях, щоб вони були логічно взаємопов'язані, далі нам необхідно переконатися, що спроектована база даних відповідає третій нормальній формі.

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

У реляційної моделі ставлення завжди перебуває у першій нормальній формі визначення поняття ставлення. Що ж до різних таблиць, всі вони можуть бути правильними уявленнями відносин, і, можуть перебувати у першої нормальної формі. Змінна відношення знаходиться в другій нормальній формі тоді і тільки тоді, коли вона знаходиться в першій нормальній формі і кожен не ключовий атрибут непривідний (функціонально повно) залежить від її потенційного ключа. База даних буде перебувати в третій нормальній формі, якщо вона приведена до другої нормальної форми і кожен не ключовий стовпець незалежний один від одного.

Отже наша база перебуває у третій нормальній формі, т.к. кожен ключовий стовпець незалежний друг від друга. Це видно на діаграмі нашої бази даних:


Більшість таблиць по відношенню до одного-багатьом, за винятком таблиць deliveriesі ordersперебувають у відношенні одні до одного, т.к. доставлений, можливо лише одне замовлення, тобто. в одного замовлення лише одна доставка. Інші зв'язки наочно вказані вище.

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

Потім заповнимо поля у вікні:


Вкажемо ім'я з'єднання у полі Connection Name, виберемо метод з'єднання у списку Connection Method, задамо ім'я хоста та порт у вкладці Parameters, вкажемо ім'я користувача та пароль якщо він є та натиснемо на кнопку ОК. Потім відкриємо вкладку EER Diagram, на панелі виберемо пункт Databaseта натиснемо на параметр Forward Engineer:

Після того, як з'явиться вікно, натискаємо на кнопку "Next", вибираємо параметр Export MySQL Table Objectsта натискаємо на кнопку "Next":

Після натискання кнопки з'явиться вкладка з SQL кодом, можна зберегти його, натиснувши кнопку "Save to file"якщо це необхідно, а потім натиснути на кнопку "Next". З'явиться вікно з параметрами з'єднання:


Перевіряємо, чи правильні параметри підключення та натискаємо на кнопку "Execute"Якщо в SQL коді не міститься помилок, то після виконання коду ми побачимо вікно зі списком таблиць, інакше виведеться повідомлення про помилку. Тепер наша база завантажена на сервер.

Дякую за увагу, завантажити саму програму.


Яким би не був розробник баз даних: початківець (особливо) або бородатий професіонал, йому завжди простіше і наочніше уявляти те, над чим він працює, що розробляє. Особисто я відношу себе до першої категорії і для розуміння матеріалу мені хотілося б бачити візуально те, що я проектую/розробляю.

На сьогоднішній день існують різні програми та інструменти, які справляються з подібним завданням: якісь краще, якісь гірші. Але сьогодні я хотів би трохи розповісти про MySQL WorkBench - інструмент для візуального проектування баз даних, що інтегрує проектування, моделювання, створення та експлуатацію БД в єдине безшовне оточення для системи баз даних MySQL, який є наступником DBDesigner 4 з FabForce. Wikipedia. MySQL WorkBench поширюється у двох варіантах: OSS - Comunity Edition(поширюється під ліцензією LGPL) та SE - Standard Edition- версія, за яку розробники просять гроші. Але я думаю, що багатьом достатньо буде і OSSверсії (особливо новачкам і тим, хто не хоче або вважає недоцільним платити за ПЗ, а також прихильникам програм з відкритим вихідним кодом), Тим більше, що OSS версія має багатий функціонал.

Отже, як видно з назви, даний інструментпризначений для роботи з MySQL базами даних,підтримує велику кількість різних типівмоделей MySQL (див. скріншот нижче) та стане незамінним інструментом для кращого розуміння та вивчення реляційних БД (зокрема MySQL) для новачків:

Таким чином, будь-який розробник MySQL знайде те, що потрібно. Крім того MySQL WorkBenchдозволяє підключати існуючу базу даних, виконувати SQL запити і SQL скрипти, редагувати і керувати об'єктами БД. EER моделібази даних. Інакше кажучи - це візуальне уявлення всіх зв'язків між таблицями Вашої БД, яке, за потреби, легко можна як SQL скрипта, відредагувати чи створити нове уявлення. Але про це трохи згодом. Для початку подивимося як виглядає головне око MySQL WorkBench(5.2.33 rev 7508)):
Для того щоб створити EER-модель Вашої БД вибираємо " Create New EER ModelВ результаті у нас з'явиться вкладка, в якій ми можемо додавати/створювати діаграми, таблиці, види, процедури; задавати різні права доступу для користувачів; допомоги SQLскриптів. Виглядає ця вкладка таким чином:
Процес створення таблиць і БД не розглядатимемо, т.к. тут все просто. Наведу лише остаточний варіант готової моделі (див. на скріншотах нижче). Причому якщо навести курсор на лінію зв'язку (пунктирна лінія) таблиць, то "зв'язок", первинний ключ, а також зовнішній ключ виділяться іншим кольором. Якщо навести курсор на якусь таблицю, то виділиться сама таблиця, і навіть усі зв'язки, які належать обраної таблиці.

Для того, щоб відредагувати таблицю, достатньо натиснути ПКМ по потрібній таблиці і вибрати " Edit Table...". В результаті внизу вікна з'явиться додаткова область редагування таблиці, в якій можна змінити ім'я таблиці, стовпці, зовнішні ключі та багато чого іншого. Для того, щоб експортувати таблицю в SQL-скрипт достатньо натиснути ПКМ по потрібній нам таблиці вибрати " Copy SQL to Clipboard", а потім із буфера обміну вставити в потрібне місце/програму/файл.

А тепер безпосередньо про установці MySQL WorkBench. Природно, що спочатку потрібно завантажити MySQL WorkBench. Для цього переходимо на сторінку завантаження MySQL WorkBench, внизу сторінки в списку вибираємо потрібну нам операційну систему. В результаті нам буде запропоновано кілька варіантів завантаження:

  • для ОС Windowsможна скачати MSI установщик, zip архівпрограми, а також архів із вихідним кодом. Для цієї ОС MySQL WorkBenchможна завантажити лише для 32-розрядної версії Windows;
  • для користувачів Ubuntuвибір трохи багатший, ніж для користувачів ОС Windows - нам пропонують завантажити MySQL WorkBenchдля Ubuntu версій 10.04, 10.10 (на момент написання статті) та 32- або 64-розрядних версій deb пакетів;
  • для rpm-basedдистрибутивів, а в даному випадкуце Fedora, Suse Linux та RedHat/Oracle Linux, MySQL WorkBenchпредставлені збірки для 32- та 64-розрядної ОС;
  • не забули і користувачів Macintosh - для них є збірка тільки для 32-розрядної ОС;
  • ну і звичайно можна завантажити вихідний код програми;

Отже, вибираємо необхідний варіант завантаження та натискаємо DownLoad. Потім нас люб'язно попросять представитися: для зареєстрованих користувачів – ввести логін та пароль, для новачків – зареєструватися. Якщо Ви не бажаєте представлятися, то вибираємо трохи нижче варіант " » No thanks, just take me to the downloads!" і вибираємо найближче дзеркало для завантаження. Крім того, перед встановленням подбайте про те, щоб у вас був встановлений MySQL Client,.а інакше MySQL WorkBench відмовиться встановлюватись.

Про що потрібно пам'ятати та знати користувачам Linux:

Звичайно, як і для випадку з ОС Windows не забуваємо про MySQL Client. Для користувачів Ubuntu - необхідно качати версію програми, відповідно до версії Вашої Ubuntu. Під час установки уважно дивимося на повідомлення про помилку, якщо такі з'явилися, в яких, напевно, буде сказано про те, яких пакетів не вистачає у Вашій ОС. Про це читаємо нижче.

Як справи з rmp-base дистрибутивами, я на жаль не знаю, т.к. жодного разу такими дистрибутивами не користувався, але думаю, що приблизно так само, як і з debian-based.

Можливо Ви помітили, що відсутня збірка MySQL WorkBenchдля ОС Debian GNU/Linux . Але, як показала практика – нічого страшного. Для установки MySQL WorkBenchу Debian 6.0 (Squeeze) ми скористаємося deb- пакетом для Ubuntu 10.04(Не забуваємо про розрядність Вашої ОС: x86 або x64). Нагадаю, для того, щоб встановити скачаний deb пакет можна скористатися утилітою gdebiабо ввести в консолі від імені рута команду:

# dpkg -i mysql-workbench-gpl-5.2.33b-1ubu1004-amd64.deb Наприклад, у мене під час встановлення MySQL WorkBench виникла така помилка:
dpkg: залежності пакетів не дозволяють налаштувати пакет mysql-workbench-gpl:
mysql-workbench-gpl залежить від libcairomm-1.0-1 (>= 1.6.4), однак:
Пакет libcairomm-1.0-1 не встановлено.
mysql-workbench-gpl залежить від libctemplate0, однак:
Пакет libctemplate0 не встановлений.
mysql-workbench-gpl залежить від libgtkmm-2.4-1c2a (>= 1:2.20.0), однак:
Пакет libgtkmm-2.4-1c2a не встановлено.
mysql-workbench-gpl залежить від libpangomm-1.4-1 (>= 2.26.0), однак:
Пакет libpangomm-1.4-1 не встановлено.
mysql-workbench-gpl залежить від libzip1 (>= 0.9), однак:
Пакет libzip1 не встановлено.
mysql-workbench-gpl залежить від python-paramiko, проте:
Пакет python-paramiko не встановлено.
mysql-workbench-gpl залежить від python-pysqlite2, однак:
Пакет python-pysqlite2 не встановлено.
dpkg: не вдалося обробити параметр mysql-workbench-gpl (--install):
проблеми залежностей - залишаємо не налаштованим
Під час обробки наступних пакетів відбулися помилки:
mysql-workbench-gpl

Для усунення цієї помилки мені достатньо було набрати в консолі команду для встановлення деяких пакетів:

# aptitude install libzip1 libcairomm-1.0-dev libctemplate0 libgtkmm-2.4-1c2a

Для встановлення, наведених вище пакетів, знадобляться ще додаткові пакети, які менеджер aptлюб'язно запропонує завантажити. Після встановлення всіх пакетів MySQL WorkBench встановлюється без проблем.

Все: MySQL WorkBench благополучно встановлений та готовий для вивчення роботи.

upd:
Якщо не помиляюся, то починаючи з Ubuntu 12.04, MySQL WorkBench можна знайти в репозиторіях дистрибутива. Отже, процес установки проходить набагато простіше і без будь-яких милиць.
Для встановлення MySQL WorkBench достатньо в терміналі ввести команду:
sudo aptitude install mysql-workbench

Всім вебмайстрам доводиться заглиблюватися в програмування та технології створення баз даних після розвитку їх ресурсів.


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

Як створити базу даних MySQL? Можна створювати таблиці вручну та встановлювати між ними зв'язки, але це не так зручно.

Спеціально для цього було створено безкоштовна програма Workbench. З її допомогою можна візуально створювати бази даних MySQL. Змоделювати їх за допомогою софту простіше, зручніше та в рази швидше.

Workbench допоможе створити базу даних MySQL

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

Після звичайної установкипрограми, щоб створити базу даних MySQL необхідно виконати такі дії:

  1. Спочатку потрібно відкрити нову модель, це робиться через меню чи комбінацією клавіш Ctrl+N:

  2. Перший крок при створенні бази даних, це додавання таблиці, тому вибираємо відповідну функцію:

  3. Далі виконується заповнення таблиці. Вказуйте ім'я та атрибути, враховуйте, що один із атрибутів це головний ключ, позначений прапорцем. Заздалегідь думайте, як потім таблиці зв'язуватимуться між собою:

  4. Заповнивши необхідні дані, створюйте діаграму визначення зв'язків між суб'єктами:
  5. Ви побачите таблицю у робочій області. Для зручності можна розгорнути структури таблиць:

  6. Тепер необхідно встановити зв'язок між елементами, це робиться спеціальним інструментом на робочій панелі:
  7. У результаті у вас мають бути представлені таблиці в робочій області і між ними встановлені зв'язки:

  8. Подвійне клацання на зв'язку відкриває вікно, в якому задаються додаткові параметри:

Увага, оскільки WorkBench оновився, то я написав , Що складається з теорії та практики побудови БД з WorkBench.

В розділі "Foreign Key Options"настроюємо поведінку зовнішнього ключа при зміні відповідного поля (ON UPDATE)та видаленні (ON DELETE)батьківського запису:

  • RESTRICT– видавати помилку при зміні / видаленні батьківського запису
  • CASCADE– оновлювати зовнішній ключ при зміні батьківського запису, видаляти дочірній запис при видаленні батьків
  • SET NULL– встановлювати значення зовнішнього ключа NULLпри зміні / видаленні батька (неприйнятно для полів, у яких встановлено прапор NOT NULL!)
  • NO ACTION- не робити нічого, проте за фактом ефект аналогічний RESTRICT

Збереження з моделі в реальну/фізичну базу даних

“File → Export→ Forward Engineer MySQL Create Script…”

Зазначаємо необхідні галочки, мені потрібна була лише одна Generate INSERT Statements for Tables. Якщо потрібно зберегти скрипт у файл, пропишіть директорію в полі зверху.

У наступному вікні можна налаштувати – які об'єкти ми експортуватимемо. Якщо уважно придивитися, то у нас створено лише 2 таблиці.

Виконання скрипту – створення бази даних та таблиць

Тиснемо на “будиночок” у верхньому лівому кутку програми…

Потім 2 рази натискаємо на MyConnection….

Перед нами відкривається така вкладка.

Це наше з'єднання з сервером, тут ми будемо виконувати наш скрипт. Зверніть увагу зліва бази даних, які були створені в програмі WorkBench….

Тепер, потрібно дати команду цей скрипт виконати, для цього тиснемо у верхньому меню Query Execute (All or Selection)

Отже, якщо все нормально, то в нижньому вікні output ви побачите всі "зелені галочки". А коли натиснете Refresh у контекстному менюУ списку баз даних, то побачите новостворену базу mydatabase1.

Насамкінець, побудуємо ER діаграму. ER розшифровується як Entity Relation - вдала модель "Сутність - зв'язок", яка, зокрема, розроблялася Пітером Ченом. Отже, повертаємось на вкладку моделі та тиснемо на Add Diagramm…

Ми створили зв'язок один до багатьох. На одному факультеті можуть навчатися кілька студентів. Зверніть увагу, що зв'язок біля таблиці Students розщеплюється – це означає “до багатьох”.

Отже, ми створили модель з неї через виконання скрипта – реальну базу з таблицями. Також створили діаграму ER.

© 2022 androidas.ru - Все про Android