Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Metod_BD.doc
Скачиваний:
20
Добавлен:
07.02.2016
Размер:
2.93 Mб
Скачать

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

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

SELECT * FROM Category;

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

2.3 Основні теоретичні відомості

2.3.1 Команди мови SQL для роботи з базою даних

Створення бази даних:

CREATE DATABASE [IF NOT EXISTS] db_name

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

Видалення бази даних:

DROP DATABASE [IF NOT EXISTS] db_name

2.3.2 Команди мови SQL для роботи з таблицями

Створення таблиці:

CREATE TABLE [IF NOT EXISTS] table_name (attribute definition),

Видалення таблиці

DROP TABLE [IF EXISTS] table_name

Перейменування таблиці:

RENAME TABLE table_name TO new_table_name

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

  • Як вноситься користувач до системи?

  • Які таблиці та в якому відношенні містять інформацію щодо користувачів і баз даних у MySQL?

  • Як можна переглянути записи цих таблиць?

  • Яким чином організується повний доступ користувача до бази даних?

  • Яка команда використовується для створення БД?

  • Як увійти до створеної бази даних під акаунтом користувача?

  • Як подивитися інформацію щодо таблиць у БД?

3 Лабораторна робота № 3 "Розробка системи баз даних у ПАКЕТІ«Денвер»"

3.1 Мета роботи

Метою роботи є надбання навичок створення систем баз даних за допомогою пакету ДЕНВЕР.

3.2 Завдання до лабораторної роботи

Якщо завдання будуть виконуватись самостійно на комп’ютері, де НЕ встановлено пакет Денвер, то спочатку необхідно його встановити (додаток А)

3.2.1 У будь-якому файловому менеджері перейдіть до директорії Z:\denwer та увімкніть пакет за допомогою файлу Run. У цьому каталозі також є файли перезапуску та вімкнення. Зрозуміло, що наприкінці роботи необхідно вимкнути пакет «Денвер».

Застосовуючи браузер Mozilla Firefox перейдіть до ресурсу http://localhost:8088 На моніторі з’явиться наступне (рис. 3.1):

Рисунок 3.1 – Головна сторінка з посиланнями

на компоненти пакету «Денвер»

Для коректних переходів необхідно обов’язково додавати новий порт 8088 до усіх локальних ресурсів одразу після адреси хоста:

http://localhost:8088/Tests/PHP5/index.php5

3.2.2 Створення нового хоста:

– відкрити каталог, у який була проведена інсталяція пакету;

– у каталозі пакету із назвою home створити власну директорію з такою назвою, яку буде мати домен сайту. Якщо майбутній сайт повинен мати адресу http://test.ua, то створюємо директорію test.ua;

– у створену директорію необхідно додати наступні каталоги: www (для сторінок сайту) та cgi (для cgi-скриптів);

– виконати перезавантаження пакету «Денвер» за допомогою утиліт, які знаходяться у каталозі denwer;

– у браузері набрати адресу щойно створеного сайту (рис. 3.2)

Рисунок 3.2 – Перехід до сайту користувача,

створеного у пакеті «Денвер»

3.2.3 Підготовка до створення нової бази даних.

У складі базового пакета «Денвер» находиться MySQL версії 5.5, якій містить також утиліту mysql.exe для роботи із сервером у режимі командного рядка.

3.2.3.1 До створення нової бази даних для початку необхідно перейти до інтерфейсу phpMyAdmin:

а) запустити «Денвер»;

б) у адресному рядку браузера набрати http://localhost:8088

в) натиснути кнопку оновлення сторінки;

д) перейти до пункту http://localhost:8088/Tools/phpMyAdmin як вказано на рис. 3.3;

Рисунок 3.3 – Початкова сторінка пакету «Денвер»

phpMyAdmin – це інтерфейс, що дозволяє керувати базою даних. Загальна сторінка phpMyAdmin наведена на рис. 3.4;

Рисунок 3.4 – Інтерфейс phpMyAdmin 2.6.1

3.2.3.2 Створення користувача БД у phpMyAdmin.

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

На локальному комп'ютері у пакеті «Денвер» необхідно створити користувача:

а) у вікні phpMyAdmin перейти на сторінку «Привилегии» (рис. 3.5) – до списку усіх акаунтів користувачів баз даних;

б) на сторінці «Привилегии» необхідно обрати «Добавить нового пользователя» (рис. 3.5);

Рисунок 3.5 – Керування акаунтами користувачів БД

в) на сторінці додавання користувача (рис. 3.6) вводиться логін та пароль, а також обираються необхідні привілеї;

Рисунок 3.6 – Параметри доступу користувача (привілеї)

Для підтвердження введення коректних параметрів необхідно натиснути кнопку «Пошел» і якщо все без помилок, то відбудеться створення нового користувача.

3.2.4 Створення нової бази даних:

– перейти на головну сторінку phpMyAdmin (рис. 3.4);

– перейти до розділу «Базы данных» (рис. 3.7);

– у полі «Создать базу данных» додати назву нової бази та підтвердити кнопкою «Создать».

Рисунок 3.7 – Керування базами даних

Після натискання кнопки «Создать» база з новим ім’ям додається до списку баз даних на панелі ліворуч та у таблицю на центральному полі. Нова база даних обирається натисканням по її назві. Відкриється розділ створення та редагування таблиць (рис. 3.8)

Рисунок 3.8 – Створення таблиці

3.2.5 Створення та редагування таблиць:

– назву таблиці необхідно додати до поля «Имя» та уввести кількість стовпців таблиці (рис. 3.8);

– у розділі редагування полів таблиці (рис. 3.9) додаються для кожного поля: назва, тип даних, розмір (якщо необхідно) та інші атрибути, такі як первинний ключ або авто-інкремент;

Рисунок 3.9 – Редагування полів таблиці

– таблиця з новим ім’ям додається до списку таблиць на панелі ліворуч та якщо її відмітити, то на центральному полі з’являється структура даної таблиці, яку можна відредагувати (рис. 3.10);

Рисунок 3.10 – Редагування структури таблиці

– щодо додавання нового елементу до таблиці необхідно перейти на вкладку «Вставить» (рис. 3.11). Заповніть усі поля (окрім поля id, воно буде заповнюватися автоматично);

Рисунок 3.11 – Додавання елемента у таблицю

– на вкладці «Обзор» можна оглянути новий доданий елемент у таблицю бази даних MySQL (рис. 3.12);

Рисунок 3.12 – Огляд таблиці

3.2.6 Альтернативне створення бази даних.

У пакеті «Денвер» є спеціальна сторінка, де можливо швидко створити MySQL базу даних та одного користувача для неї:

– зайти на загальну сторінку http://localhost:8088;

– перейти прокруткою до розділу «Утилиты» (рис. 3.13);

Рисунок 3.13 – Розділ «Утилиты»

– перейти до підрозділу «Заведениеновых БД и пользователейMySQL» (рис. 3.14);

– додати назву бази даних, логін та пароль;

Рисунок 3.14 – Додаваннянових БДтакористувачівMySQL»

3.2.7 Створення MySQL-View у phpMyAdmin.

Подання (View) – об’єкт бази даних, який є результатом виконання запиту до бази даних, визначеного за допомогою оператора SELECT у момент звернення до подання.

Подання іноді мають назву «віртуальні таблиці». Така назва пов’язана з тим, що подання доступно для користувача як таблиця, але саме воно не містить даних, а отримує їх із таблиць у момент звернення до нього.

Наприклад, існує таблиця із трьох стовпців з інформацією щодо фотокамер (рис. 3.15):

Рисунок 3.15 – Таблиця з вихідними даними

Необхідно отримати типове подання у стилі:

"Canon SX20IS ($ 479)"

Створення подання MySQL View:

1) застосовуємо групу операторів SQL SELECT, яка повертає стовпці для зведення у View. Використовуємо оператор CONCAT для створення необхідного формату рядка (рис. 3.16):

Рисунок 3.16 – Оформлення групи операторів SQL SELECT

2) виконуємо запит та отримуємо результат у View (рис. 3.17):

Рисунок 3.17 – Результат зведення у View

3) для створення подання SQL View з набору результатів обираємо пункт CREATE VIEW (рис. 3.18):

Рисунок 3.18 – Створення SQL View

3.2.8 Створення курсорів у MySQL.

Курсор– це посилання на контекстну область пам'яті. У деяких реалізаціях мови програмування SQL (Oracle, Microsoft SQL) при виконанні запиту отримується результуючий набір та зв’язаний із ним покажчик поточного запису. Курсор – це віртуальна таблиця, яка являє собою альтернативне сховище даних. Але курсор дозволяє звертатися до власних даних, як до даних звичайного масиву. Використовуються курсори у збережених процедурах.

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

Курсор не може використовуватися у MySQL сам по собі. Він є важливим компонентом збережених процедур.

За допомогою курсору є можливість перебрати набір даних та обробити кожен запис у відповідності з певними завданнями. Така операція з обробки записів може бути також виконана на PHP-рівні, що значно зменшує обсяг переданих на PHP-рівень даних, так як є можливість повернути назад оброблений зведений/статистичний результат (це усуває процес обробки select–foreach на стороні клієнта).

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

Офіційну документацію щодо курсорів можна знайти у [5].

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

Оголошення курсорів:

DECLARE cursor_name CURSOR FOR select_statement

Цей вираз оголошує курсор з ім’ям cursor_name. select_statement вказує на конструкцію типу SELECT ... FROM ... Можливо оголосити багато курсорів у підпрограмі, але кожен курсор у даному блоці повинен мати унікальне ім’я. Вираз SELECT не повинно містити вказівку INTO.

Відкриття курсорів:

OPEN cursor_name

Вираз відкриває раніше оголошений курсор.

Вибірка з курсору у змінну:

FETCH cursor_name INTO var_name [, var_name] ...

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

HANDLER FOR SQLSTATE '02000'

Закриття курсору:

CLOSE cursor_name

Закриває курсор cursor_name. Якщо явно не вказано, то курсор закривається автоматично при закритті відповідного блоку підпрограми.

Відмінності використання курсорів.

Застосування курсора у процедурах здійснюється шляхом послідовного виконання наступних кроків:

– за допомогою оператора DECLARE оголошується курсор для окремого оператора SELECT або для окремої процедури;

– оператором OPEN виконується відкриття курсору;

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

– у процесі переміщення покажчика поточного запису курсора, щодо виходу покажчика за межі курсора, встановлюється значення SQLSTATE=02000;

– якщо курсор стає непотрібним, він закривається оператором CLOSE.

Приклад опису курсора наведено на рис. 3.19:

Рисунок 3.19 – Приклад опису курсора

Курсор призначений для вибірки даних (ідентифікаторів записів) в рядок із роздільником у вигляді коми за переданими параметрами. Курсор знаходиться у середині збереженої функції get_pedplan(). До неї передається три параметри: lip – номер лабораторії, ti – номер пари та dt – дата проведення заняття.

Курсор, визначений на рядку 14, відкрито на рядку 16, та з 19 розпочато прохід за вибіркою яку отримано курсором. На кожному кроці циклу відбувається отримання запису (21). Якщо немає досягнення кінця вибірки (22), то виконується перевірка прапорця щодо першого запису (23). Якщо запис – перший, то присвоюємо retv поточне значення вибірки (26) та встановлюємо прапорець (27), інакше об’єднуємо значення retv з поточним значенням вибірки (24). Після проходу по курсору закриваємо його (31) та повертаємо значення (32).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]