Даний двовимірний масив даних є основою реляційної бази даних.
Однак, реляційні бази даних рідко складаються з однієї таблиці. Часто для баз даних малого розміру однієї таблиці достатньо, але якщо кількість записів починає сягати сотень тисяч, то для мінімізації ресурсів необхідних для збереження всіх даних, для зменшення кількості помилок в записах, завжди доцільно створювати кілька таблиць з зовнішніми зв'язками.
Встановлення і початок роботи з базою даних MySQL
База даних MySQL не є комерційним продуктом і розповсюджується безкоштовно. Свіжу версію дистрибутиві MySQL для різних операційних систем завжди можна завантажити з сайту розробника www.mvsql.org.
СУБД MySQL містить, окрім сервера баз даних, потужну клієнтську частину, яка дозволяє успішно адмініструвати бази даних, що знаходяться на сервері. Реалізації клієнтської частини розвивається у двох напрямках. Перший і більш потужний засіб, це формування клієнтської частини програмно за допомогою стандартних функцій СУБД. Другий, це консольна клієнтська програма mysql, яка містить підтримку усіх можливостей клієнтського доступу, який надає СУБД MySQL.
Дана програма надається разом із пакетом встановлення сервера СУБД MySQL і називається MySQL Command Line Client (Рисунок 2).
Рисунок 2. Клієнтська програма MySQL Command Line Client.
Дана програма, окрім власне функціоналу MySQL, включає ряд внутрішніх команд для більш зручної роботи, список команд і їх опис можна викликати командою help (\h).
За замовченням, на сервері баз даних уже є дві створені бази даних, які можна переглянути командою show databases,яку будемо використовувати і надалі для перегляду наявних баз даних (Рисунок 3).
Рисунок 3. Команда show databasesдляперегляду баз даних.
Після створення потрібних баз даних інформація про існуючі бази зміниться (Рисунок 4).
Рисунок 4. Перегляд існуючих баз даних
Для відображення стовпців потрібної таблиці можна скористатися командами show columns from <ім’я таблиці>; або describe <ім’я таблиці> ( Рисунок 5 );.
Рисунок 5. Перегляд полів таблиці book
Для перегляду індексів використовують команду show index from <ім’я таблиці>.
Основні команди керування базою даних MySQL
за допомогою мови SQL.
Керування базою даних відбувається в діалоговому режимі: введення команди – повернення повідомлення або про її успішне виконання або про помилки, наприклад, синтаксису мови SQL.
В додатку А наведені основні команди і ключові слова для керування базою даних MySQL з прикладами.
Для створення нової бази даних використовують команду create database [if not exist] <ім’я бази даних>, а для видалення – drop database <db_name>(Рисунок 6). Команду use <db_name> використовують для переходу до потрібної бази даних та її відкриття.
Рисунок 6. Робота з базами даних в діалоговому режимі
СУБД MySQL дозволяє переглянути інформацію про поля вже створеної таблиці. Це можна здійснити командою describe <db_name>(Рисунок 7).
Рисунок 7. Перегляд даних про поля таблиці
Внесення записів в таблицю здійснюється командою insert into (Рисунок 8).
Рисунок 8. Внесення нового запису в базу даних book
Безпека даних в MySQL
Для забезпечення захисту даних в базі можна встановити пароль для користувача root. Для цього, після запуску утиліти mysql, за допомогою оператора set password необхідно присвоїти пароль для облікового запису користувача root:
mysql> set password for ‘root’@’localhost’=password (‘<пароль>’);
Надалі необхідно виконати наступну команду
mysql> set password for ‘root’@’%’=password (‘<пароль>’);
і за допомогою команди
mysql> flash privileges;
перезавантажити тільки що внесені зміни. Для перевірки отриманих результатів необхідно виконати наступні дії:
mysql> use mysql;
mysql> selecthost, user, passwordfromuser;
Після виходу з утиліти та наступного її запуску з’явиться запрошення на введення паролю. Цей пароль надалі зберігається в таблиці user в зашифрованому вигляді і має вводитися користувачем при кожному підключенні до mysql.
Для забезпечення безпеки зберігання даних і контролю прав доступу до них у СУБД MySQL існує спеціальна база даних mysql, у якій є п'ять таблиць: user, host, db, tables_priv й columns_priv. Таблиця user призначена для визначення, чи може користувач підключатися до сервера MySQL і чи володіє він привілеями адміністратора. У ній зберігається ім'я хоста, з якого можна підключатися, ім'я користувача й пароль, а також які привілеї він має. Таблиця db визначає, які користувачі до яких таблиць і з яких хостів можуть одержати доступ. Таблиця host доповнює таблицю db. Якщо користувач повинен підключатися до бази даних з декількох хостів, то в таблиці db для нього не буде зазначено жодного хоста – всі вони будуть перераховані в таблиці host. Таблиці tables_priv й columns_priv призначені для зберігання привілеїв на рівні таблиць і рівні стовпців. Вони працюють подібно таблиці db, але забезпечують привілею для таблиць у конкретній базі даних і стовпців у конкретній таблиці. Основних привілеїв десять, що дають право на виконання операцій select, insert, update, delete, create, drop, grant, references, index й alter. У таблиці user їх на 4 більше: reload, shutdown, process й file, які потрібні для адміністрування СУБД.
Для установки прав доступу застосовується команда grant:
grant select, insert, delete, update on {<ім’я таблиці>/ * / *.*/<ім’я бази даних>.*} to ‘user’@’host’ identified by 'password' ;
Для оператора опції використовують наступним чином.
Глобальний рівень. Привілеї належать до сервера MySQL та всім його базам даних та таблиць. Використовують синтаксис *.*. Також можна використовувати *, якщо на момент виконання оператора grant немає відкритих баз даних.
Рівень бази даних. Використовують синтаксис <ім’я бази даних>.*. Якщо дана база даних відкрита, то достатньо вказати *.
Рівень таблиці. Використовують синтаксис <ім’я бази даних>.<ім’я таблиці>.
Рівень стовпців. Разом з іменем таблиці в операторі grant необхідно вказати імена потрібних стовпців.
В наступному прикладі (Рисунок 9) показано, як добавити в базу даних користувачів і призначити їм привілеї.
Рисунок 9. Добавлення в базу даних користувачів і призначення їм привілеїв.
Після створення користувача myuser, він має бути внесений до таблиць user, tables_priv і columns_priv. Щоби це перевірити, треба вивести за допомогою SQL-операторів дані цих таблиць (Рисунок 10).
Рисунок 10. Вибірка з таблиць user, tables_priv і columns_priv
За допомогою оператора show grants можна відобразити на екрані привілеї, які призначені користувачеві myuser (Рисунок 11).
Рисунок 11. Результат роботи оператора show grants
Для шифрування пароля застосовується функція password: