Завдання на виконання роботи

У середовищі MySql створити базу даних, яка містить відомості про назви книжок та їх авторів, а також назви та опис жанрів, до яких ці книжки належать. У базі також містяться загальні відомості про авторів. База повинна задовольняти першим трьом принципам нормалізації реляційних баз даних.

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

Перша таблиця Category містить поля – name_category, abstract, де name_category - визначає назву жанра, abstract – більш повний опис тематики даного жанру.

Друга таблиця Author містить поля – author, comment, де author – визначає ініціали автора, comment – визначає основні дані про автора.

Третя таблиця Book містить поля - name_category, author, book, де book – назва книги, author - ПІБ автора, name_categogy – назва категорії до якої належить книга.

Таблиці зв’язані по однойменним полям зв’язками один до багатьох.

Для створення бази даних у середовище MySql необхідно зробити наступні дїї:

1. Використавши програму ssh увійти в систему(ASPLinux7.2) сервера, який має IP адресу 10.0.37.253 під им’ям smit та паролем 123456789. Запустити програму клієнта та підключитися до бази MySql командою :

 

mysql -u root mysql

 

Ввести в таблицю USER себе як користувача з паролем, дозволивши роботу тільки з локального хоста , на якому встановлена СУБД MySql, командою:

 

INSERT INTO user (host,user,password) values ('localhost', '<ім’я користувача>', password('<пароль>'));

 

Кінець команди позначається знаком “;”.

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

Перевірте успішність виконання операції командою

 

SELECT * FROM user WHERE user='<ім’я користувача>';

 

Далі необхідно дозволити повний доступ створеному користувачу до створеної пізніше бази даних у таблиці DB бази MySql за допомогою команди:

 

INSERT INTO db VALUES ('localhost','my_db',<ім’я користувача>',

-'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');

 

та перевірити успішність виконання операції за допомогою команди:

 

SELECT * FROM db WHERE user='<ім’я користувача>';

 

Далі необхідно створити свою базу даних командою :

 

CREATE DATABASE <ім’я файлу БД>;

 

та перевірити успішність виконання операції командою:

 

SHOW DATABASES;

 

Далі необхідно вийти з клієнта MySql командою

 

exit;

 

та вказати СУБД MySql , щоб вона перечитала свої таблиці, використовуючи команду

 

mysqladmin -u root reload

 

Тепер необхідно увійти у створену базу даних командою:

 

mysql -h localhost -D <ім’я файлу БД> -u <ім’я користувача>–p

 

Після цього вам буде запропоновано ввести пароль. Після введення пароля (символи пароля, які набираються не відображаються на екрані) ви попадаєте у створену вами базу даних <ім’я файлу БД>. Для перевірки наявності таблиць у поточній базі даних необхідно ввести команду :

 

show tables;

 

Для створення таблиць необхідно, знаходячись у середовищі бази даних, яка створюється, використувати команду SQL CREATE TABLE. Наприклад для створення таблиці Category необхідно ввести наступну команду:

 

CREATE TABLE Category (

name_category CHAR(10) NOT NULL,

abstract CHAR(80),

PRIMARY KEY ( name_category ));

 

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

 

SHOW FIELDS FROM Category;

 

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

 

INSERT INTO Category (name_category,abstract)

VALUES( “наука”,”литература по естественным наукам но не учебники”);

 

Для перевірки успішності операції, яка виконується можна ввести команду

 

SELECT * FROM Category;

 

Аналогічно заповнюються й інші таблиці бази даних.

Далі необхідно створити HTML документ (назвати, наприклад, lab3.php ), який містить PHP скрипт, що виконує наступні дії:

1. При першому звертанні до документу lab3.php з броузера клієнта (посередництвом URL документа), в броузер клієнта виводиться HTML документ (назвемо його connect_html), що вміщає форму (назвемо її first_form), яка складається з трьох кнопок : Category, Book, Authors та трьох текстових полів, що пояснюють функції кожної кнопки.

2. При натисканні кнопки Category з форми first_form робиться запит методом GET до документу lab3.php. Отримавши запит, PHP скрипт, який міститься у документі, повинен розібрати запит, визначити, що була натиснута кнопка Category та вивести в броузер клієнта новий HTML документ (назвемо його second_html), який містить форму (назвемо її second_form), яка складається з полів вводу: Data_base, Login, Password, Category , кнопок NEXT та PREV і таблиці (назвемо її second_tabl). У полі Data_base вводиться им’я бази даних, що підключається, у полі Login вводиться им’я користувача бази даних, у полі Password вводиться пароль для доступу до необхідної бази даних. У полі Category вводиться або назва жанру або ничого. У випадку заповнених полів Data_base, Login, Password, Category документу second_form та натисканні кнопки NEXT з форми second_form робиться запит до документу lab3.php методом POST. Отримавши запит, PHP скрипт, який міститься у документі lab3.php, повинен розібрати запит, визначити, що була натиснута кнопка NEXT, зчитати вміст відісланих полів форми : Data_base, Login, Password, Category та використовуючи інтерфейс доступу до бази MySql з PHP підключитися до бази даних (им’я якої міститься у Data_Base) з ім’ям користувача, який міститься в Login та паролем, який міститься у Password. Далі, використовуючи вміст поля Category, скрипт повинен зробити запит до підключеної бази даних та отримати назву всіх книг, які відносяться до даного жанру. Далі скрипт у броузер клієнта повинен вивести документ second_html, у якому результати запиту відображаються у таблиці second_tabl. У випадку, якщо поле жанрів Category пусте, скрипт повинен виводити у таблицю second_tabl назви існуючих жанрів. При натисканні кнопки PREV (в second_thml) робиться запит до документу lab3.php, який у броузер клієнта повинен відобразити документ connect_html.

3.. При натискані кнопки Book з форми first_form робиться запит методом GET до документу lab3.php. Отримавши запит, PHP скрипт, який міститься у документі, повинен розібрати запит, визначити, що була натиснута кнопка Book та вивести у броузер клієнта новий HTML документ (назвемо його third_html), який містить форму (назвемо її third_form), що складається з полів вводу: Data_base, Login, Password, Book , кнопок NEXT і PREV та таблиці, яка складається з двох полів (назвемо її thіrd_tabl). У полі Data_base вводиться ім’я бази даних, що підключається, у полі Login вводиться ім’я користувача бази даних, у полі Password вводиться пароль для доступу до необхідної бази даних. У полі Book вводиться назва книги про яку необхідно отримати звіт. У випадку заповнених полів Data_base, Login, Password, Book документа thіrd_form та натисканні кнопки NEXT з форми thіrd_form робиться запит до документу lab3.php методом POST. Отримавши запит, PHP скрипт, який міститься в документі lab3.php, повинен розібрати запит, визначити, що була натиснута кнопка NEXT, зчитати вміст відісланих полів форми: Data_base, Login, Password, Book та,0 використовуючи інтерфейс доступу до бази MySql з PHP, підключитися до бази даних (ім’я якої міститься у Data_Base) з ім’ям користувача, яке міститься у Login та паролем, який міститься у Password. Далі, використовуючи вміст поля Book, скрипт повинен зробити запит до підключеної бази даних та за назвою книги отримати ім’я автора та короткий зміст книги. Далі, скрипт у броузер клієнта повинен вивести документ thіrd_html, у якому результати запиту відображаються у таблиці thіrd_tabl. При натисканні кнопки PREV (у second_thml) робиться запит до документу lab3.php, який у броузер клієнта повинен відображати документ connect_html.

4. При натисканні кнопки Author із форми first_form робиться запит методом GET до документу lab3.php. Отримавши запит, PHP скрипт, що міститься у документі, повинен розібрати запит, визначити, що була натиснута кнопка Book та вивести у броузер клієнта новий HTML документ (назвемо його forth_html), який містить форму (назвемо її forth_form), що складається з полів вводу: Data_base, Login, Password, Author , кнопок NEXT та PREV та двох таблиць. Перша таблиця (назвемо її auth4_tabl) складається з одного поля. Друга таблиця (назвемо її book4_tabl) складається з одного поля та 10 рядків. У полі Data_base вводиться ім’я бази даних, у полі Login вводиться ім’я користувача бази даних, у полі Password вводиться пароль для доступу до необхідної бази даних. У полі Author вводиться ім’я автора, про якого необхідно отримати звіт. У випадку заповнених полів Data_base, Login, Password, Author документа forth_form та натисканні кнопки NEXT з форми forth_form робиться запит до документу lab3.php методом POST. Отримавши запит, PHP-скрипт, що міститься у документі lab3.php, повинен розібрати запит, визначити, що була натиснута кнопка NEXT, зчитати вміст відісланих полів форми : Data_base, Login, Password, Author та, використовуючи інтерфейс доступу до бази MySql з PHP, підключитися до бази даних (ім’я якої міститься у Data_Base) з ім’ям користувача, яке міститься у Login та паролем, який міститься у Password. Далі, використовуючи вміст поля Author, скрипт повинен зробити запит до бази даних та за ім’ям автора (поле Author) отримати назви книжок, написаних цим автором та короткі відомості про автора. Далі скрипт у броузер клієнта повинен вивести документ forth_html, у якому відображаються результати запиту: у таблиці auth4_tabl повинні відображатися короткі відомості про автора, а у book4_tabl повинні відображатися назви книжок, написаних цим автором. При натисканні кнопки PREV (у forth_thml) робиться запит до документу lab3.php, який у броузер клієнта повинен відображати документ connect_html.

3.3 Контрольні питання

3.3.1 Основні команди мови SQL.

3.3.2 Загальний алгоритм роботи з базами даних.

3.3.3 Основні функції PHP для роботи із СКБД MySQL.

3.3.4 Права доступу в СКБД MySQL.