
- •Лабораторна робота № 1 Тема роботи: Реєстрація та створення баз даних в InterBase.
- •1. Керуюча консоль InterBase.
- •2. Реєстрація бази даних в InterBase.
- •3. Створення бази даних в InterBase.
- •Контрольні запитання
- •Лабораторна робота № 2 Тема роботи: Створення таблиць в базах даних в InterBase.
- •1. Типи даних InterBase.
- •2. Створення таблиці.
- •Контрольні запитання
- •Лабораторна робота № 3 Тема роботи: Введення обмежень в базах даних в InterBase.
- •1. Види обмежень в базі даних.
- •2. Первинний і унікальний ключі.
- •3. Зовнішні ключі.
- •4. Обмеження check
- •5. Вилучення обмежень.
- •Контрольні запитання
- •Лабораторна робота № 4 Тема роботи: Використання генераторів ключів в базах даних в InterBase.
- •Створення генераторів.
- •2. Індекси.
- •Контрольні запитання
- •Лабораторна робота № 5 Тема роботи: Використання тригерів в базах даних в InterBase.
- •Означення тригера.
- •Приклад тригера.
- •3. Контекстні змінні.
- •Контрольні запитання
- •Лабораторна робота № 6 Тема роботи: Безпека в InterBase.
- •1. Користувачі.
- •3. Права.
- •4. Роздача прав.
- •5. Організація користувачі у групи за допомогою ролей.
- •6. Анулювання прав.
- •Контрольні запитання
- •Практична робота № 1 Тема роботи: Використання компоненту Database.
- •З’єднання з сервером
- •Контрольні запитання
- •Практична робота № 2 Тема роботи: Використання головної та підлеглої таблиць InterBase засобами Borland Delphi.
- •Контрольні запитання
- •Практична робота № 3 Тема роботи: Використання механізму транзакцій компонента Database.
- •Керування транзакціями.
- •Контрольні запитання
- •Практична робота № 4 Тема роботи: Використання компонент InterBase Express для підключення до сервера.
- •1. Сервер баз даних InterBase і компоненти InterBase Express
- •2. Механізм доступу до даних InterBase Express
- •3. Компонент tibDatabase.
- •Контрольні запитання
- •Практична робота № 5 Тема роботи: Виконання запитів за допомогою компонента tibDataSet.
- •Вибірка даних з таблиці.
- •2. Редагування даних за допомогою візуальних компонентів.
- •3. Програмне редагування даних.
- •Контрольні запитання
- •Практична робота № 6 Тема роботи: Виконання механізму Master-detail в компонентах tibDataSet.
- •Механізм master-detail.
- •Контрольні запитання
- •Література
2. Індекси.
Індекс – це впорядкований вказівник на записи в таблиці. Вказівник означає, що індекс містить значення одного або декількох полів в таблиці і адреси розміщення цих даних. Іншими словами, індекс складається з пар значень "значення поля" – "фізичне розміщення цього поля". Таким чином, за значенням поля (або полів), що входять до індексу, за допомогою індексу можна швидко знайти те місце в таблиці, де розміщується запис, що містить це значення.
Впорядкований – означає, що значення полів, які зберігаються в індексі, впорядковані.
Індекс не є частиною таблиці – це окремий об’єкт, пов’язаний з таблицею і іншими об’єктами бази даних. Це дуже важливий момент реалізації СУБД, що дозволяє відділити збереження інформації від її подання.
Формат команди, що створює індекси має вигляд:
CREATE [UNIQUE] [ASC[ENDING] | DESC[ENDING]]
INDEX index ON table (col [, col ...]);
Мінімальним виразом, що створює індекс, є:
CREATE INDEX my_index ON Table_example(ID)
В цьому прикладі створюється індекс з іменем my_index для таблиці Table_example, причому індексованим полем є поле ID. Індекс є зростаючим, тобто значення в ньому впорядковані за зростанням, а також не унікальним, тобто значить, що поле ID може мати декілька однакових значень. Це самий простий приклад індексу – самий поширений.
Як бачимо з опису синтаксису, індекс може містити не одне, а декілька полів.
У визначенні індексу є ще одна опція – UNIQUE. Якщо її вказати, то індекс дозволить заносити до таблиці лише унікальні значення. Фактично це служить основою для реалізації унікальних ключів (UNIQUЕ KEY).
З А В Д А Н Н Я
Всі видані завдання стосуються бази даних Sales, яку Ви створили.
Створіть унікальний індекс для двох полів LNAME,FNAME,ALT_Address таблиці Customer.
Створіть генератори GEN_CUSTID,GEN_ITEMNO,GEN_SALENO,Part_Number.
Контрольні запитання
Що таке генератор?
Яка команда SQL створює новий генератор?
Яка команда задає початкове значення для генератора?
Вкажіть команду для виклику генератора.
Що являє собою індекс?
Яка команда SQL створює новий індекс?
Лабораторна робота № 5 Тема роботи: Використання тригерів в базах даних в InterBase.
Мета роботи: Навчити створювати та використовувати тригери у середовищі сервера InterBase.
ОСНОВНІ ТЕОРЕТИЧНІ ВІДОМОСТІ.
Означення тригера.
Тригер у InterBase – це особливий вид збереженої процедури, що виконується автоматично при вставці, чи вилученні або модифікації запису чи таблиці зображення (view). Тригери можуть "спрацьовувати" безпосередньо до чи відразу ж послу зазначеної події.
Як ви знаєте, SQL дає можливість вставляти, вилучати і модифікувати дані в таблицях бази даних за допомогою відповідних команд – INSERT, DELETE і UPDATE. Погодьтеся, що було б непогано мати можливість перехопити передану команду і що-небудь зробити з даними, які додаються, вилучаються чи змінюються. Наприклад, записати ці дані в спеціальну табличку, а заодно записати, хто і коли зробив операцію над даною таблицею. Чи відразу ж перевірити дані, що вставляються, на яку-небудь хитру умову, яку неможливо реалізувати за допомогою опції CHECK, і в залежності від результатів перевірки прийняти проведені зміни чи відкинути їх; змінити ці дані на підставі деякого запиту чи змінити дані в інших зв'язаних таблицях.
Для того, щоб виконувати які-небудь дії, зв'язані зі зміною даних у базі даних, і існують тригери.
Фактично тригер являє собою набір команд процедурної мови InterBase, що реалізується при виконанні операцій INSERT/DELETE/UPDATE. На відміну від збережуваних процедур, тригер ніколи нічого не повертає (та й кому повертати, адже тригер явно не викликається). По тій же причині він не має також вхідних параметрів, але замість них має контекстні змінні NEW і OLD. Ці змінні дозволяють одержати доступ до полів таблиці, до якої приєднаний тригер.
Тригеру призначена роль віртуального цензора, що переглядає "листи" і який вільний зробити усе, що завгодно, – пропустити їх незмінними, підправити їх, просигналізувати про помилки чи навіть "докласти про це" кому слід.
Тригер завжди прив'язаний до якоїсь певної таблиці чи зображення і може "перехоплювати" дані тільки цієї таблиці. Давайте розглянемо класифікацію тригерів і призначення кожного виду. Як уже було сказано, існує 3 основних SQL-операції, застосовні до даних, – INSERT/DELETE/UPDATE. Відповідно перший поділ тригерів – за операціями, що обслуговуються. Кожен конкретний тригер прив'язаний до якої-небудь операції, тобто тригер спрацьовує, коли в "його" таблиці відбувається дана операція.
Спрацьовування тригера може відбуватися як "до" так і "після" операції. Таким чином, ми одержуємо 6 можливих видів тригерів на таблицю – до і після кожної з трьох можливих SQL-операції.