Набуття навичок подання предметної області клієнту. 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Набуття навичок подання предметної області клієнту.



2. Підтримка навичок формування запитів.

 

5.2 ТЕОРЕТИЧНІ ВІДОМОСТІ

Синтаксис команди CREATE VIEW наступний.

CREATE[OR REPLACE][ALGORITHM = { UNDEFINED | MERGE | TEMPTABLE}][DEFINER = { user | CURRENT_USER }][SQL SECURITY { DEFINER | INVOKER }]VIEW view_name [(column_list)]AS select_statement [WITH [CASCADED | LOCAL] CHECK OPTION]Команда створює представлення view_name зі стовпцями, перерахованими в cоlumn_list, на підставі SELECT-запиту.

5.3 ЗАВДАННЯ НА ЛАБОРАТОРНУ РОБОТУ

1. Створити представлення на одну та дві таблиці у вертикальному і горизонтальному варіантах для таблиць лабораторної роботи №2.

2. Провести модифікацію представлення (INSERT, UPDATE або DELETE – по варіантах).

3. Зафіксувати дію модифікації на таблицю.

4.Згрупувати, об’єднати представлення.

5. Вивести частку даних з представлення (за вибором студента).

6.Видалити представлення, за вказівкою викладача.

 

5.4 МЕТОДИКА ВИКОНАННЯ

Проходимо сесію. Тиснемо правою кнопкою на test3 і далі вибираємо Create new > View. У вікні Name вкладки View вводимо назву представлення, що створюється, наприклад, view1. У вікні Definer робимо запис для поточного користувача, тобто root@localhost. Залишаємо активними UNDEFINED та None, відповідно, у вкладці Algorithm та вкладці Check option for updates. У вікні Select statement формуємо зміст представлення. Перевіряємо, тиснемо Save. Тиснемо Data, можна зафіксувати зміст представлення.

 

5.5 ЗМІСТ ЗВІТУ

Розділ “Результати роботи” повинен містити скрипти представлень і результати роботи з ними.

 

5.6 КОНТРОЛЬНІ ПИТАННЯ

1. Синтаксис представлення.

2.Розкажить про представлення Вашої роботи чи роботи іншого студента.

3.Напишить скрипт представлення, яке показує всіх замовників з самою високою оцінкою.

4. Напишіть скрипт представлення, що показує номер продавця в кожному місті.

5. Напишіть скрипт представлення, котре показує усереднений та загальний порядки для кожного продавця після його імені. Пропонується, що всі імена – унікальні.

6. Створіть представлення, яке показує кожного продавця з усіма замовниками.

7. Чи можна видалити рядок даних із представлення, створеного на основі даних декількох таблиць?

8. Наведіть умови модифікації.

 

ЛАБОРАТОРНА РОБОТА №6

НАДАННЯ ПРИВІЛЕЇВ КОРИСТУВАЧАМ

6.1 МЕТА РОБОТИ

Вивчити команди і освоїти операції надання прав доступу до БД іншим користувачам.

6.2 ТЕОРЕТИЧНІ ВІДОМОСТІ

Найголовніший користувач це root, який має повний доступ до БД; спочатку необхідно задати для нього пароль, так як за замовчуванням він не встановлений. Щоб адміністратор міг підключатися з інших хостів, необхідно набрати наступне:

mysql>grant all privileges on *.* to admin@"%" identified by 'some_password' with grant option;

*.* означає, до яких БД і таблиць має доступ адміністратор. Позначення робляться наступним чином: "база.таблиця". Оператори GRANT і REVOKE дозволяють створювати облікові записи користувачів БД, надавати їм привілеї і відбирати їх.

Синтаксис команди GRANT

GRANT тип_привілея [(список_стовпців)] [, тип_привілея [(спісок_стовпців)]...]

ON {ім'я_таблиці | * | *.* | ім’я_бази_даних.*}

TO ім’я_користувача [IDENTIFIED BY [PASSWORD] 'пароль']

[, ім’я_користувача [IDENTIFIED BY 'пароль']...]

[REQUIRE

NONE |[{SSL| X509}]

[CIPHER cipher [AND]]

[ISSUER issuer [AND]]

[SUBJECT subject]]

[WITH [GRANT OPTION | MAX_QUERIES_PER_HOUR # |

MAX_UPDATES_PER_HOUR # |

MAX_CONNECTIONS_PER_HOUR #]];

 

Синтаксис команди REVOKE

REVOKE тип_привілея [(список_стовпців)][, тип_привілея [(список_стовпців)]...]

ON {ім’я_таблиці | * | *.* | ім’я_бази_даних.*}

FROM ім’я_користувача [, ім’я_користувача...];

 

Для операторів GRANT і REVOKE аргумент тип_привілея може приймати наступні значення:

ALL [PRIVILEGES] – задає всі привілеї, крім WITH GRANT OPTION;

ALTER – дозволяє використання ALTER TABLE;

GRANT OPTION – синонім для WITH GRANT OPTION;

CREATE – дозволяє використання CREATE TABLE;

CREATE TEMPORARY TABLES – дозволяє використання CREATE TEMPORARY TABLE;

DELETE – дозволяє використання DELETE;

DROP – дозволяє використання DROP TABLE;

EXECUTE – дозволяє користувачеві запускати збережені процедури;

FILE – дозволяє SELECT... INTO OUTFILE і LOAD DATA INFILE;

INDEX – дозволяє використання CREATE INDEX і DROP INDEX;

INSERT – дозволяє використання INSERT;

LOCK TABLES – дозволяє використання LOCK TABLES на таблицях, для яких є привілей SELECT;

PROCESS – дозволяє використання SHOW FULL PROCESSLIST;

REFERENCES – зарезервовано для використання в майбутньому;

RELOAD – дозволяє використання FLUSH;

REPLICATION CLIENT – надає користувачеві право запитувати місцезнаходження головного і підлеглих серверів;

REPLICATION SLAVE – необхідно для підлеглих серверів при реплікації (для читання інформації з бінарних журналів головного сервера);

SELECT – дозволяє використання SELECT;

SHOW DATABASES – SHOW DATABASES виводить всі БД;

SHUTDOWN – дозволяє використання mysqladmin shutdown;

SUPER – дозволяє встановити одне з'єднання (один раз), навіть якщо досягнуто значення max_connections, і команди CHANGE MASTER, KILL thread, mysqladmin debug, PURGE MASTER LOGS і SET GLOBAL;

UPDATE – дозволяє використання UPDATE;

USAGE – синонім для ''без привілеїв''.

6.3 ЗАВДАННЯ НА ЛАБОРАТОРНУ РОБОТУ

1.Надати права доступу користувачу за варіантом.

2.Зайти як новий користувач, зробити дії дозволені і недозволені.

3. Видалити права користувача, зробити спробу скористатися привілеями.

№ оператор Список стовпців Довжина пароля Номер таблиці Запитів на годину
1 DELETE Всі      
2 ALTER Один      
3 INSERT Два   Представлення  
4 SELECT Всі      
5 ALL Один      
6 UPDATE Два      
7 INSERT Всі   Представлення  
8 ALTER Один      
9 USAGE Один      
10 DELETE Всі      
11 SELECT Один   Представлення  
12 ALTER Два      

 

6.4 МЕТОДИКА ВИКОНАННЯ

Натиснемо кнопку Manage user . У меню, що випало, у вікні Сredentials встановлюємо повноваження новому користувачу.

Обліковий запис, наприклад, містить у вікні User name ім’я нового користувача «123» та пароль ХХХХХХ, довжину 6-ть знаків якого вибираємо з можливих значень, і пишемо у вікні Password та у вікні Repeat Password. Привілеями, наприклад, будуть вибірка (SELECT) з полів name та userid таблиці users бази даних lab1. Також надамо доступ на оновлення поля name.

Зберігаємо (Save), заходимо до БД як новий користувач.

Для перевірки роботи отриманих привілеїв користувачем 123 виконаємо вибірку та команду оновлення у межах повноважень. Отримаємо результуючі таблиці з правильними даними.

Спробуємо зробити вибірку поля surname з таблиці users. В результаті отримаємо повідомлення про помилку

Як бачимо, користувач 123 не має доступу до вибірки даних поля surname.

 

6.5 ЗМІСТ ЗВІТУ

Розділ “Результати роботи” повинен містити скрипти і результати дії і відсутності привілеїв.

 

6.6 КОНТРОЛЬНІ ПИТАННЯ

1.Система привілеїв MySQL.

2.Послідовність контролю доступу до даних.

3.Надання прав доступу до даних.

4.Синтаксис GRANT, REVOKE.

5.Розкажіть про роботу захисту Вашої БД чи роботи іншого студента.

 

ЛАБОРАТОРНА РОБОТА №7

СТВОРЕННЯ ПРОЦЕДУР, ЯКІ ЗБЕРІГАЮТЬСЯ

7.1 МЕТА РОБОТИ

1. Набуття навичок активізації БД.

2. Підготовка до курсового проектування.

7.2 ТЕОРЕТИЧНІ ВІДОМОСТІ

Синтаксис створення процедури наступний.

CREATE

[DEFINER = { user | CURRENT_USER}]

PROCEDURE sp_name ([ proc_parameter [,...]])

[ characteristic...]

routine_body

 

proc_parameter:

[ IN | OUT | INOUT] param_name type

characteristic:

LANGUAGE SQL

| [ NOT] DETERMINISTIC

| {CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA}

| SQL SECURITY { DEFINER | INVOKER}

| COMMENT ' string '

routine_body:

[DECLARE var_name [,...] type [DEFAULT value ]][DECLARE condition_name CONDITION FOR condition_value ][DECLARE cursor_name CURSOR FOR select_statement ][DECLARE handler_type HANDLER FOR condition_value [,...] statement ]

[Оператори, розгалуження, цикли]

 

Оператор запуску процедури може мати вигляд CALL sp_name (parameter).

 

Приклад

CREATE PROCEDURE curdemo()BEGIN DECLARE done INT DEFAULT 0; DECLARE a CHAR(16); DECLARE b,c INT; DECLARE cur1 CURSOR FOR SELECT id,data FROM test.t1; DECLARE cur2 CURSOR FOR SELECT i FROM test.t2; DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1; OPEN cur1; OPEN cur2; REPEAT FETCH cur1 INTO a, b; FETCH cur2 INTO c; IF NOT done THEN IF b < c THEN INSERT INTO test.t3 VALUES (a,b); ELSE INSERT INTO test.t3 VALUES (a,c); END IF; END IF; UNTIL done END REPEAT; CLOSE cur1; CLOSE cur2;END

 

7.3 ЗАВДАННЯ НА ЛАБОРАТОРНУ РОБОТУ

1.Створити процедури з параметром (параметрами) і без параметра.2.Створити процедури, зв’язані з таблицею, за завданням викладача.

 

7.4 МЕТОДИКА ВИКОНАННЯ

Проходимо сесію. Тиснемо правою кнопкою на test3 і далі вибираємо Create new > Stored routine. У вікні Options заповнюємо вікна Name, Comment, Determenistic. Залишаємо як є інформацію в вікнах Type, Definer, Data Access, SQL Security.

У вікні Routine body в операторних дужках пишемо потрібні SQL-речення (завершуємо їх обов’язково;). Тиснемо внизу Save, а справа внизу – Run routine(s)…

Якщо у процедурі потрібні параметр або параметри – тиснемо кнопку Parameters, потім – Add. Вводимо ім’я параметру (вікно Name), Datatype, вибираємо Context (IN, OUT або INOUT). Якщо є ще параметр – тиснемо Add, вводимо ім’я параметру (вікно Name), Datatype, вибираємо Context (IN, OUT або INOUT). Тиснемо Save.

Для виконання процедури тиснемо Run routine(s)… У вікні Parameter, що з’явилось, вводимо значення параметру, тиснемо кнопку ОК.

7.5 ЗМІСТ ЗВІТУ

Розділ “Результати роботи” повинен містити скрипти процедур і результати їх викликів.

7.6 КОНТРОЛЬНІ ПИТАННЯ

1. Напишіть скрипт процедури по завданню викладача.

2. Як викликати процедуру?

3. Розкажіть про роботу процедури Вашої БД чи БД іншого студента.

 

ЛАБОРАТОРНА РОБОТА №8

СТВОРЕННЯ ТРИГЕРІВ, ПОДІЙ

МЕТА РОБОТИ



Поделиться:


Последнее изменение этой страницы: 2017-01-25; просмотров: 109; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 34.229.173.107 (0.033 с.)