- •Міністерство освіти і науки україни Черкаський державний технологічний університет
- •Черкаси 2013
- •Рецензент проф. В. Є. Снітюк
- •Лабораторна робота №1
- •1.1 Мета роботи
- •1. Набуття навичок аналізу предметної області
- •1.2 Теоретичні відомості
- •1.3 Завдання на лабораторну роботу
- •1.4 Методика виконання
- •1.6 Контрольні питання
- •Лабораторна робота №2
- •2.1 Мета роботи
- •3.Об’єднання таблиць.
- •4. Додавання записів.
- •2.2 Теоретичні відомості
- •2.3 Завдання на лабораторну роботу
- •2.4 Методика виконання
- •Тестування
- •2.6 Контрольні питання
- •3.3 Завдання на лабораторну роботу
- •3.4 Методика виконання
- •3.6 Контрольні питання
- •Лабораторна робота 4
- •4.1 Мета роботи Вивчення мови запитів, які поширюються на дві і більше таблиці.
- •4.2 Теоретичні відомості
- •4.3 Завдання на лабораторну роботу
- •Лабораторна робота №5
- •5.1 Мета роботи
- •1. Набуття навичок подання предметної області клієнту.
- •5.4 Методика виконання
- •5.6 Контрольні питання
- •Лабораторна робота №6
- •6.1 Мета роботи
- •6.2 Теоретичні відомості
- •6.3 Завдання на лабораторну роботу
- •6.4 Методика виконання
- •6.6 Контрольні питання
- •Лабораторна робота №7
- •7.1 Мета роботи
- •7.2 Теоретичні відомості
- •7.3 Завдання на лабораторну роботу
- •7.4 Методика виконання
- •7.6 Контрольні питання
- •Лабораторна робота №8 створення тригерів, подій
- •8.1 Мета роботи
- •1. Набуття навичок реалізації бізнес-правил
- •8.2 Теоретичні відомості
- •8.3 Завдання на лабораторну роботу
- •8.4 Методика виконання
- •8.6 Контрольні питання
- •Лабораторна робота №9
- •9.1 Мета роботи
- •1. Набуття навичок аналізу стану бд.
- •9.2 Теоретичні відомості
- •9.3 Завдання на лабораторну роботу
- •9.4 Методика виконання
- •1.Переглянути і зафіксувати версію сервера, статус обробників, рівень ізоляції.
- •9.6 Контрольні питання
- •Лабораторна робота №10 створення курсорів
- •10.1 Мета роботи
- •10.2 Теоретичні відомості
- •10.3 Завдання на лабораторну роботу
- •10.4 Методика виконання
- •10.6 Контрольні питання
- •Лабораторна робота №11 розподілена база даних
- •11.1 Мета роботи
- •1. Набуття навичок аналізу систем зберігання даних.
- •11.2 Теоретичні відомості
- •11.3 Завдання
- •11.4 Методика виконання
- •На Сервері №1 налаштовуємо головний майстер-сервер. Для цього потрібно:
- •1. Зупинити MySql сервер;
- •11. Додаємо в my.Ini такі записи:
- •11.4.2 Завершення реплікації
- •11.6 Контрольні питання
- •Лабораторна робота 12 діаграма класів бд
- •12.1 Мета роботи
- •12.2 Теоретичні відомості
- •12.3 Завдання на лабораторну роботу
- •12.4 Методика виконання
- •12.6 Контрольні питання
1.6 Контрольні питання
1. Наведіть овал-діаграму за завданням викладача (предметна область «форум», «пошукова система» і т. ін.).
2.Для ІЛМ пошукової системи або іншої проведіть датологічне проектування.
3. Розкажіть про типи даних.
Лабораторна робота №2
СТВОРЕННЯ ТАБЛИЦЬ ТА ЇХ ОБ’ЄДНАНЬ. НАПОВНЕННЯ ТАБЛИЦЬ
2.1 Мета роботи
1. Вивчення засобів SQL.
2. Створення бази даних за допомогою HeidiSQL.
3.Об’єднання таблиць.
4. Додавання записів.
5. Оновлення даних.
6. Видалення даних.
2.2 Теоретичні відомості
На основі інфологічного проектування будуємо структуру бази даних (БД), що має три таблиці: users, products і orders.
Кожен запис про замовлення містить в собі інформацію про продукт і користувача. Нам важливо, щоб ці значення були дійсними. Тобто, неприпустима ситуація, коли користувач замовив продукт, а адміністратор його видалив, тоді запис про замовлення став "поламаним" (навіть невідомо, який товар був замовлений). Для збереження цілісності даних таблиці об’єднані зв’язками.
У кожній з таблиць додано поле для формування штучного первинного ключа (РК): userid, prodid і ordid відповідно. Зв’язок таблиць забезпечує механізм зовнішніх ключів. Склад перших двох таблиць зрозумілий. Але замовнику БД знадобилось мати фото замовників. Потрібно додати поле, наприклад, userfeic. Розглянемо детальніше таблицю замовлень. Кожен запис про замовлення містить в собі інформацію про продукт (prodid) і користувача (userid). Діє правило, згідно з яким множина значень поля userid в таблиці замовлень (дочірньої таблиці) не буде перевищувати множини значень ключа userid в таблиці користувачів (батьківської таблиці). Це правило реалізує механізм зовнішніх ключів. Підтримка зовнішніх ключів і транзакцій – це основні відмінності таблиць типу InnoDB від інших типів таблиць MySQL. Вказати тип можна при створенні таблиці:
CREATE TABLE `personal_info` (
`userid` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`name` VARCHAR(20) NOT NULL,
`surname` VARCHAR(20) NOT NULL,
`phone` INT(20) NOT NULL,
`address` VARCHAR(100) NOT NULL,
PRIMARY KEY (`userid`)
) TYPE=InnoDB;
2.3 Завдання на лабораторну роботу
1. Створити БД з трьох таблиць (варіанти і початок проектування у першій лабораторній роботі), побудувати між ними зв’язки.
Заповнити кожну з таблиць 10-20 записами (якщо для генерації первинного ключа визначена послідовність, то при вставці даних необхідно її використовувати).
Перевірити правильність роботи створених обмежень.
Навести приклади вставки, зміни та видалення інформації, що демонструють роботу заданих обмежень.
2.4 Методика виконання
За допомогою інструментального засобу під назвою HeidiSQL виконується створення, редагування і робота з БД.
Спочатку виконуємо дії сесії підключення до сервера. Вводимо root та пароль (1), що був введений при установці MySQL-сервера, тиснемо Save, щоби не вводити ще раз. Нижче Passvord вікна не заповнюємо. Тиснемо унизу Open Connect для підключення до MySQL-сервера.
Створюємо БД. У лівій вкладці бачимо конфігурацію MySQL-сервера – таблиці, що створюються при установці MySQL-сервера. Правою кнопкою клікаємо по цій ділянці. З’являється Create new. Переходимо на Database. В вікні Name задаємо назву створюваної БД, наприклад, test3. Далі встановлюємо кодування, наприклад, utf, та сортування Collation. Нижче виведена команда створення БД – CREATE DATABASE. Тиснемо Ok і у лівій вкладці бачимо БД з ім’ям test3.
Створення таблиці. Тиснемо правою кнопкою на test3 і далі вибираємо Create new > Table. У вікні Name вкладки Table вводимо назву таблиці, що створюється, наприклад, table. Кодування і сортування можливо відрізняються від тих, що є в БД. Для того, щоб MySQL правильно сортував поля з українськими символами – COLLATE (порівняння) в таблицях слід встановити у utf8_unicode_ci. Якщо ж вибрано utf8_bin (для прикладу), то рядок, що починається з «і», ітиме перед рядком, що починається з «а».
Уже існуючу БД можна перетворити двома шляхами, по перше – експортувати в файл, замінити всі utf8_bin на utf8_unicode_ci й імпортувати знову. По друге – замінити значення COLLATE для таблиці в цілому та кожного поля з текстовим типом зокрема.
Тиснемо кнопку Add. Внизу вводимо назву стовпця, наприклад, id. У властивостях стовпця вибираємо тип даних INT. Для цілочислених даних обов’язково встановлюємо довжину, наприклад два знаки. Додаємо інформацію, що це буде первинний ключ – правою кнопкою тиснемо на назві поля Create new Index > PRIMARY. Якщо первинний ключ містить два поля, то виокремлюємо два поля і тиснемо Create new Index > PRIMERY. Якщо id має тип INT, то зручно автоматично збільшувати значення, тому тиснемо Default, ставимо «галочку» навпроти AUTO_INKREMENT. Якщо дані обов’язкові (NOT NULL), то залишаємо без «галочок» Allow Null та Zerofil. Тиснемо Add. Пишемо ім’я наступного стовпця, наприклад сontent, вказуємо тип даних, наприклад, TEXT. Цей тип даних не потребує завдання довжини і т.п. Як бачимо, при редагуванні SQL-запитів підсвічується синтаксис.
В лабораторіях кафедри встановлено MySQL, де тип таблиць InnoDB вибрано за замовчуванням. Для формування зовнішнього ключа тиснемо Foreign Keys, потім Add. У стовпці Columns вибираємо назву стовпця з РК, у стовпці Reference tabl – назву таблиці. Якщо всі назви і типи даних заведені, то перевіряємо скрипт: на вкладці Table тиснемо CREATE code. Якщо все вірно – тиснемо Save. У лівому полі в дереві БД test3 з’явиться таблиця table. Копіюємо скрипт для звіта. У правому полі бачимо структуру таблиці. Якщо по ній переміщатися правою кнопкою, то можливо корегувати і структуру таблиці (додавати стовпці) і міняти властивості стовпців.
Можливо знадобиться кнопка Refresh.
Для структури БД з пункту 2.2 створені таблиці:
CREATE TABLE `users` (
`userid` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`name` VARCHAR(80) NOT NULL,
`surname` VARCHAR(80) NOT NULL,
`userfeic` BLOB NOT NULL,
PRIMARY KEY (`userid`)
)
COLLATE='utf8_general_ci'
ENGINE=InnoDB
AUTO_INCREMENT=8;
CREATE TABLE `products` (
`prodid` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`name` VARCHAR(80) NOT NULL,
PRIMARY KEY (`prodid`)
)
COLLATE='utf8_general_ci'
ENGINE=InnoDB
AUTO_INCREMENT=5;
CREATE TABLE `orders` (
`ordid` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`userid` INT(10) UNSIGNED NOT NULL,
`prodid` INT(10) UNSIGNED NOT NULL,
`price` DOUBLE UNSIGNED NULL DEFAULT NULL,
`qua` INT(10) UNSIGNED NULL DEFAULT NULL,
`data_orrders` DATE NULL DEFAULT NULL,
PRIMARY KEY (`ordid`),
INDEX `FK__users` (`userid`),
INDEX `FK__products` (`prodid`),
CONSTRAINT `FK__products` FOREIGN KEY (`prodid`) REFERENCES `products` (`prodid`) ON DELETE CASCADE,
CONSTRAINT `FK__users` FOREIGN KEY (`userid`) REFERENCES `users` (`userid`) ON UPDATE CASCADE
)
COLLATE='utf8_general_ci'
ENGINE=InnoDB
AUTO_INCREMENT=5;
Наповнення таблиць. Для вводу даних тиснемо спочатку на іконку бази, потім на іконку таблиці, з’являється вкладка Data (праворуч). Стовпець id заповнюється автоматично (AUTO_INCREMENT). Лівою кнопкою тиснемо по імені стовпця content. Вибираємо Insert new (або Insert з клавіатури), вводимо інформацію, тиснемо Enter (можна клацнути по піктограмі і з’явиться поле для вводу Text editor). У стовпець content вводимо ще інформацію, для цього тиснемо Insert new…
Для вводу даних у створену таблицю потрібно у вибраній БД знайти назву необхідної таблиці, двічі клацнути по ній мишкою і перейти на вкладку Data.
Рядок …FOREIGN KEY (`userid`) REFERENCES `users` (`userid`)… задає зовнішній ключ і буквально означає наступне: призначити полю userid з таблиці orders зовнішній ключ на поле userid з таблиці users.
Тепер ми не зможемо створити запис в таблиці orders зі значенням полів userid або prodid, яких немає в батьківських таблицях. А для операцій редагування і видалення ми можемо задати особливі правила – CASCADE і RESTRICT.
Наповнимо таблиці:
INSERT INTO `users` VALUES (Null, `Гріша`, `Костик`);
Додали до таблиці стовпець userfeic типу BLOB і додаємо дані:
insert into users values (Null,'вова', 'Ванин','LOAD File (C:\Documents and Settings\raa\Рабочий стол\Doc3.doc)');
insert into users values (Null, 'Ваcя', 'Ванін', 0);
INSERT INTO `products` VALUES (1, `ЖМД 320Гб`);
INSERT INTO `orders` VALUES (1, 1, 1);
Додали до таблиці стовпець data_orrders з типом DATE
INSERT INTO `orders` VALUES (4, 3, 3, 2000-13-13);
або, якщо дата поточна, стати на стовпець, тиснути правою кнопкою, вибрати Insert value>DATE.
