Mysql workbench все про оператори. Швидкий старт: Візуальне проектування бази даних MySQL Workbench. Додавання та редагування даних

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

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

Завантажити безкоштовно повну російську версію MySQL Workbench з офіційного сайту без реєстрації та смс.

Системні вимоги

  • Підтримувані ОС: Windows 10, Vista, 8.1, XP, 7, 8
  • Розрядність: 64 bit, 32 bit, x86

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

У першій частині огляду я розповім про самі основи роботи з програмою, так що можете використовувати цю статтю як керівництво користувача-початківця.Друга частина буде присвячена використання Workbenchу бою під час роботи з віддаленим сервером. У ній я дам базові інструкціїта рекомендації щодо налаштування підключення сервера та синхронізації з ним.

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

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

Завантажити MySQL Workbench

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

Після вибору платформи вам пропонують зареєструватися або авторизуватись у Oracle. Якщо не хочете, унизу є посилання "No thanks, just start my download"- тисніть на неї;)

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

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

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

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

Для додавання моделі натискаємо плюсик поряд із заголовком "Models" або вибираємо "File → New Model" (Ctrl + N):

На цьому екрані вводимо ім'я бази даних, вибираємо стандартне кодування і, якщо потрібно, заповнюємо поле коментаря. Можна приступати до створення таблиць.

Додавання та редагування таблиці

Список баз даних проекту та список таблиць у межах бази даних розташовуватиметься у вкладці "Physical Schemas".Щоб створити таблицю, двічі клацаємо на "+Add Table":

Відкриється зручний інтерфейс для редагування списку полів та їх властивостей. Тут ми можемо встановити назву поля, тип даних, а також встановити для полів різні атрибути: призначити поле первинним ключем (PK), позначити його Not Null (NN), бінарним (BIN), унікальним (UQ)та інші, встановити для поля авто-інкремування (AI)і значення за замовчуванням (Default).

Управління індексами

Додавати, видаляти та редагувати індекси таблиць можна у вкладці "Indexes"інтерфейсу управління таблицею:

Вводимо назву індексу, вибираємо його тип, потім галочками позначаємо у потрібному порядку список полів, що беруть участь у цьому індексі. Порядок полів відповідатиме порядку, в якому було проставлено галочки. У цьому прикладі я додав унікальний індекс до поля username.

Зв'язки між таблицями

Встановлення зовнішніх ключів та зв'язування таблиць можливе лише для таблиць InnoDB(Ця система зберігання даних вибирається за умовчанням). Для керування зв'язками в кожній таблиці знаходиться вкладка "Foreign Keys":

Для додавання зв'язку відкриваємо вкладку "Foreign Keys" дочірньої таблиці, вводимо ім'я зовнішнього ключа та вибираємо таблицю-батька. Далі в середній частині вкладки у графі Columnвибираємо поле-ключ із дочірньої таблиці, а у графі Referenced Column- відповідне поле з батьківської таблиці (тип полів має збігатися). При створенні зовнішніх ключів у дочірній таблиці автоматично створюються відповідні індекси.

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

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

У наведеному прикладі я додав до дочірньої таблиці UserProfileзовнішній ключ для зв'язку з батьківською таблицею User. Під час редагування поля userIdта видалення позицій з таблиці Userаналогічні зміни будуть автоматичновідбуватися і зі зв'язаними записами з таблиці UserProfile.

Під час створення проекту до бази даних часто потрібно додавати стартові дані. Це може бути кореневі категорії, користувачі-адміністратори тощо. В управлінні таблицями MySQL Workbench для цього є вкладка "Inserts":

Як видно з прикладу, якщо перед записом в базу даних до даних потрібно застосувати якусь функцію MySQL, це робиться за допомогою синтаксису \func functionName("data")наприклад, \func md5("password").

Створення EER діаграми (діаграми "сутність-зв'язок")

Для представлення схеми даних, сутностей та їх зв'язків у графічному вигляді у MySQL Workbench існує редактор EER-діаграм. Для створення діаграми у верхній частині екрана керування базою даних двічі клацаємо на іконку "Add Diagram":

У його інтерфейсі можна створювати та редагувати таблиці, додавати між ними зв'язки різних типів. Щоб додати таблицю на діаграму, що вже існує в схемі, просто перетягніть її з панелі "Catalog Tree".

Для експорту схеми даних у графічний файлВиберіть "File → Export", а потім один із варіантів (PNG, SVG, PDF, PostScript File).

Імпорт існуючої схеми даних (з SQL дампа)

Якщо у нас вже є схема даних, її можна легко імпортувати в MySQL Workbench для подальшої роботи. Для імпорту моделі із SQL файлу вибираємо "File → Import → Reverse Engineer MySQL Create Script...", після чого вибираємо потрібний SQL файл і тиснемо "Execute >"

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

Демо-проект із статті доступний для завантаження за цим посиланням. Бажаю успіхів та гарних тарган схем!

З появою у складі MySQL програми MySQL Workbench значно спрощено процес створення баз даних (БД). Адже те, що раніше доводилося робити вручну за допомогою SQL скрипту та командного рядкаТепер можна зробити «у візуальному режимі» за допомогою дружнього графічного інтерфейсу.

Розглянемо процес створення БД за допомогою MySQL Workbench докладніше.

На скріншоті нижче представлено загальний вигляд вікна програми MySQL Workbench.

Для того щоб створити БД потрібно в лівій панелі в області зі списком БД (позначена як SCHEMAS) клацнути правою кнопкою миші та в контекстному менювибрати "Create Schema".

Після цього з'явиться вкладка, де слід вказати назву нової БД і вказати параметри сортування. БД, для прикладу, буде названа однієюзаписом. Параметри сортування можна або вибрати зі списку, що випадає, або залишити ті, що пропонуються за замовчуванням (в даному прикладі залишені параметри за замовчуванням).

Після цього, щоб продовжити створення БД, слід натиснути кнопку «Apply”. У діалоговому вікні буде показаний згенерований MySQL Workbench SQL скрипт створення БД. У разі потреби цей скрипт можна відредагувати прямо в цьому вікні.

У верхній частині вікна є область Online DDL. Вона призначена для встановлення параметрів виконання скрипту. Ці параметри можуть бути корисні при маніпуляціях з існуючою БД. При створенні БД рекомендується залишити стандартні значення («Default»).

Мета даного посту - допомогти розробнику-початківцю швидко освоїться і спроектувати простеньку базу за допомогою інструменту для візуального проектування баз даних MySQL Workbench від компанії Oracle і отримати її 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 коді не міститься помилок, то після виконання коду ми побачимо вікно зі списком таблиць, інакше виведеться повідомлення про помилку. Тепер наша база завантажена на сервер.

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

UPD:

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

за порадою одного з користувачів я наведу невелике пояснення про те, як змінити вид зв'язків та таблиць, для цього необхідно вибрати наступний параметр у розділі меню Relationship Notation:

Після цього зв'язку таблиць набудуть вигляду:

Також є можливість змінити вигляд таблиць, для цього потрібно поставити галочку у вищезгаданому розділі меню і в наступному Object Notation:

Ось так виглядає таблиця на діаграмі, наведена до стандарту IDEF1X:

Дякую за слушні коментарі!




Top