- •Кременчук 2010 Розповсюдження і тиражування без офіційного дозволу Кременчуцького університету економіки інформаційних технологій і управління та авторів заборонено.
- •1 Мета та завдання дисципліни
- •2 Методичні вказівки до виконання лабораторних робіт
- •3 Завдання до лабораторніх робіт
- •3.1 Лабораторна робота № 1
- •1 Теоретичні відомості
- •2 Хід роботи
- •2.1 Створення бази даних
- •2.3 Підключення до бази даних
- •2.4 Видалення бази даних
- •2.5 Отримання метаданих
- •2.2 Реєстрація бази даних
- •2.6 Резервне копіювання і відновлення
- •3 Завдання
- •4 Звіт про виконання роботи
- •5 Контрольні питання
- •3.2 Лабораторна робота № 2
- •1 Теоретичні відомості
- •1.1 Типи даних InterBase
- •2 Хід роботи
- •3 Завдання
- •4 Звіт про виконання роботи
- •5 Контрольні питання
- •3.3 Лабораторна робота № 3
- •1 Теоретичні відомості
- •1.1 Таблиці (Tables)
- •1.2 Індекси
- •2 Хід роботи
- •3 Завдання
- •4 Звіт про виконання роботи
- •5 Контрольні питання
- •3.4 Лабораторна робота № 4
- •1 Теоретичні відомості
- •1.2 Обмеження первинного ключа (Primary key)
- •1.2 Обмеження унікальності (Unique)
- •1.3 Обмеження зовнішнього ключа (Foreign keys)
- •1.4 Контрольні обмеження (Checks)
- •2 Хід роботи
- •3 Завдання
- •4 Звіт про виконання роботи
- •5 Контрольні питання
- •3.5 Лабораторна робота №5.
- •1 Теоретичні відомості
- •1.1 Генератори (Generators)
- •1.2 Бізнес-правила
- •1.3 Тригери (Triggers)
- •2. Хід роботи
- •3 Завдання
- •4 Звіт про виконання роботи
- •5 Контрольні питання
- •3.6 Лабораторна робота №6
- •1 Теоретичні відомості
- •1.1 Додавання нових даних
- •1.2 Видалення існуючих даних
- •1.3 Оновлення існуючих даних
- •2. Хід роботи
- •3. Завдання
- •4. Звіт про виконання роботи
- •5. Контрольні питання
- •3.7 Лабораторна робота №7
- •1 Теоретичні відомості
- •2. Хід роботи
- •3. Завдання
- •4. Звіт про виконання роботи
- •5. Контрольні питання
- •3.8 Лабораторна робота №8
- •1 Теоретичні відомості
- •1.1 Представлення (Views)
- •1.2 Представлення, що модифікуються
- •2 Хід роботи
- •3 Завдання
- •4 Звіт про виконання роботи
- •5 Контрольні питання
- •3.9 Лабораторна робота №9
- •1 Теоретичні відомості
- •1.1 Процедури, що зберігаються (Procedures)
- •1.2 Види процедур, що зберігаються, в InterBase
- •2 Хід роботи
- •3 Завдання
- •4. Звіт про виконання роботи
- •5. Контрольні питання
- •3.10 Лабораторна робота №10
- •1 Теоретичні відомості
- •2 Компоненти доступу до даних
- •3 Хід роботи
- •4. Звіт про виконання роботи
- •5. Контрольні питання
- •3.11 Лабораторна робота №11
- •1 Теоретичні відомості
- •1.2 Компонент tibsql
- •2. Порядок виконання
- •3. Звіт про виконання роботи
- •4. Контрольні питання
- •Перелік рекомендованої літератури
1.2 Індекси
InterBase (як і інші реляційні СУБД) зберігає записи в таблицях в неврегульованому вигляді. Записи, що додаються в таблицю одна за одною, не обов'язково виявляться "поруч". Дані, які відбираються з таблиці, також не мають якого-небудь порядку, крім того, який явно вказаний в запиті на вибірку інформації.
Індекс – це впорядкований покажчик на записі таблиці. Індекс складається з пар значень "Значення поля" – "фізичне розташування запису", тому за значенням поля (або полів), що входить в індекс, за допомогою індексу можна швидко знайти місце в таблиці, де розташовується запис, що містить це значення.
Важливо лише знати, що створення індексів може привести до значного прискорення процесів пошуку і сортування.
Не слід створювати індекс на поля з обмеженим набором значень – наприклад, на полі, що зберігають пів людину, яке містить лише два значення – "ч" і "ж".
Використання індексів є два негативні наслідки:
1. Для індексів додатково витрачається дисковий простір.
2. Наявність індексів уповільнює модифікацію даних в таблиці.
Індекси створюються за допомогою команди CREATE INDEX.
Синтаксис оператора створення індексу:
CREATE [UNIQUE] [ASC[ENDING]| DESC[ENGING]] INDEX
І’мя_Індексу ON Таблиця(Поле [, Поле ...]);
Індекс може бути таким, що або зростає (ASC[ENDING]), або убуває (DESC[ENGING]). Якщо при створенні індексу вказати UNIQUE, то можна буде заносити в таблицю лише унікальні значення індексованих полів.
Приклад створення індексу:
-- індекс по прізвищу людини:
CREATE INDEX Index_Person_Name ON Person(Pr_LastName);
У міру зміни даних в таблиці продуктивність індексу зменшується. Періодично потрібно перестворювати індекс, аби відновити його продуктивність.
Аби перестворювати індекс, можна використовувати наступні способи:
1. Перебудувати індекс за допомогою команди ALTER INDEX. Для цього треба послідовно виконати дві команди:
ALTER INDEX Імя_Індекса INACTIVE;
ALTER INDEX Імя_Індекса ACTIVE;
2. Видалити індекс (командою DROP INDEX), а потім повторно створити його.
3. Виконати резервне копіювання і відновлення бази даних.
Індекс характеризується числом в межах від 0 до 1, яке називається статистикою. Це число залежить від числа різних значень поля в таблиці. Оптимізатор запитів InterBase використовує це число для визначення ефективності вживання індексу в запиті. Статистика визначається при створенні і перебудові індексу, а також по команді перерахунку статистики. Коли число записів в таблиці змінюється, перерахунок статистики може поліпшити продуктивність. Перерахунок статистики не перебудовує індекс, а лише визначає статистику.
Команда перерахунку статистики індексу:
SET STATISTICS INDEX І’мя_Індексу; 25
2 Хід роботи
Для створення таблиці в діалоговому режимі, натискуйте у вікні "Database Explorer" праву клавішу миші на вузлі "Tables" або на одній з наявних таблиць і в меню, що відкрилося, виберіть команду "New Table. (Ctrl+N)". В результаті відкриється вікно створення таблиці (Рисунок 3.1).
Рисунок 3.1 – Вікно формування таблиці в діалоговому режимі
У верхній частині цього вікна вводиться ім'я створюваної таблиці (у приведеному випадку – "TESTDIALOG").
Сітка в середній частині вікна містить зведення про поля таблиці. Аби додати поле в таблицю, слід натискувати клавішу [Insert] або [Стрілка вниз]. У колонці "Field Name" вводиться ім'я створюваного поля, в колонці "Field Type" вибирається тип даних, або в колонці "Domain"– створений раніше домен. Для текстових полів (CHAR і VARCHAR) в колонці "Size" вводиться розмір поля. Аби задати полю обмеження "NOT NULL" досить встановити прапорець в колонці "Not Null".
У нижній частині вікна на вкладці "Field description" можна вводити для кожного поля пояснюючі коментарі.
Після введення дані про всі поля таблиці слід натискувати кнопку [Compile] (Ctrl+F9). В результаті цього відкриється діалогове вікно "Creating Table Імя_Табліци." (Рисунок 3.2), у якому треба підтвердити (кнопка [Commit]) або відмінити (кнопка [Rollback]) виконання операції.
Якщо закрити це діалогове вікно кнопкою [Commit], то у вікні, показаному на рисунку 3.3 з'являться додаткові вкладки і воно прийме наступний вигляд.
Тепер з'явиться можливість додати до таблиці індекси. Для цього перейдіть на вкладку "Indices".
Сітка на цій вкладці дозволяє переглядати, редагувати, створювати і видаляти індекси.
Рисунок 3.2 – Діалогове вікно створення таблиці
Рисунок 3.3 – Вікно перегляду і редагування таблиці
Для створення індексу виконаєте наступні дії:
1. Натискуйте в цій сітці клавішу [Insert]. В результаті буде вставлений новий рядок.
2. Задайте в колонці "Index" ім'я індексу.
3. Натискуйте кнопку в колонці "On field". В результаті відкриється вікно з двома списками (Рисунок 3.4). У лівому списку "Available fields" знаходитимуться поля, які можна додати до індексу, в правому списку "Included fields" знаходитимуться поля, які вже включені в список. Для формування переліку полів, які входитимуть в індекс, перемістите потрібні поля з лівого списку в правий.
4. Якщо створюється унікальний індекс, встановите прапорець в колонці "Unique".
5. Аби активізувати індекс встановите прапорець в колонці "Active".
6. У колонці "Sorting" виберіть спосіб сортування.
7. Аби створити індекс натискуйте кнопку [Compile] (Ctrl+F9).
8. В результаті відкриється діалогове вікно, в якому треба підтвердити (кнопка [Commit]) або відмінити (кнопка [Rollback]) виконання операції.
Рисунок 3.4 – Вікно перегляду і редагування індексів
Після створення індексу його можна у будь-який момент змінити, якщо змінити параметри індексу і знову натискувати кнопку [Compile].
