Лабораторна робота № 4

Тема роботи: Використання генераторів ключів в базах даних в InterBase.

Мета роботи: Навчити створювати генератори ключів та індекси у середовищі сервера InterBase.

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

 

  1. Створення генераторів.

Генератор – це іменований лічильник. Всередині бази даних ми можемо створити лічильник, дати йому унікальне ім’я в межах цієї бази і керувати значеннями цього лічильника. Це і буде генератор. Приклад:

 

CREATE GENERATOR g1;

SET GENERATOR g1 TO 2445;

 

В цьому прикладі в першому рядку бази даних створюється генератор з іменем g1, а у другому – цьому генератору присвоюється значення 2445. Щоб одержати і змінювати значення генераторів, існує функція GEN_ID.

 

Ця функція приймає в ролі параметрів ім’я генератора і величину приросту, яку потрібно надати даному генератору, а повертає цілочисельне значення, що відповідає значенню генератора, одержаному в результаті додавання до нього приросту. Ось кілька прикладів виклику функції GEN_ID:

 

Current_value = GEN_ID (g1, 0)

 

Тут current_value – це змінна, g1 – генератор, і 0 – це приріст. В цьому прикладі в змінну current_value попаде значення генератора g1 після додавання до нього приросту 0 – тобто поточне значення генератора.

 

Для одержання наступного значення генератора слід викликати функцію GEN_ID з ненульовим приростом:

 

Current_value = GEN_ID (g1, 1)

 

Приріст може бути не рівним одиниці – він може бути довільним, в тому числі і плаваючим, і навіть від’ємним:

 

Current_value = GEN_ID (g1, -23)

 

Генератори – це надійний механізм для формування унікальних первинних ключів.

 

Індекси.

 

Індекс – це впорядкований вказівник на записи в таблиці. Вказівник означає, що індекс містить значення одного або декількох полів в таблиці і адреси розміщення цих даних. Іншими словами, індекс складається з пар значень "значення поля" – "фізичне розміщення цього поля". Таким чином, за значенням поля (або полів), що входять до індексу, за допомогою індексу можна швидко знайти те місце в таблиці, де розміщується запис, що містить це значення.

Впорядкований – означає, що значення полів, які зберігаються в індексі, впорядковані.

 

Індекс не є частиною таблиці – це окремий об’єкт, пов’язаний з таблицею і іншими об’єктами бази даних. Це дуже важливий момент реалізації СУБД, що дозволяє відділити збереження інформації від її подання.

 

Формат команди, що створює індекси має вигляд:

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, яку Ви створили.

1. Створіть унікальний індекс для двох полів LNAME,FNAME,ALT_Address таблиці Customer.

2. Створіть генератори GEN_CUSTID,GEN_ITEMNO,GEN_SALENO,Part_Number.

 

 

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

1. Що таке генератор?

2. Яка команда SQL створює новий генератор?

3. Яка команда задає початкове значення для генератора?

4. Вкажіть команду для виклику генератора.

5. Що являє собою індекс?

6. Яка команда SQL створює новий індекс?

 



Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: