
- •3 Завдання до лабораторних робіт
- •3.1 Лабораторна робота № 1
- •1 Теоретические сведения
- •2 Ход работы
- •2.1 Создание базы данных
- •2.2 Регистрация базы данных
- •2.3 Подключение к базе данных
- •2.4 Удаление базы данных
- •2.5 Извлечение метаданных
- •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 Теоретические сведения
- •1.1 Функции пользователя (udFs)
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]) выполнение операции.
Рисунок 3.2 – Диалоговое окно создания таблицы
Если закрыть это диалоговое окно кнопкой [Commit], то в окне, показанном на рис. 12 появятся дополнительные вкладки и оно примет следующий вид (рисунок 3.3.)
Рисунок 3.3 – Окно просмотра и редактирования таблицы
Теперь появится возможность добавить к таблице индексы. Для этого перейдите на вкладку "Indices".
Сетка на этой вкладке позволяет просматривать, редактировать, создавать и удалять индексы.
Для создания индекса выполните следующие действия:
1. Нажмите в этой сетке клавишу [Insert]. В результате будет вставлена новая строка.
2. Задайте в колонке "Index" имя индекса.
3. Нажмите кнопку в колонке "On field". В результате откроется окно с двумя списками (рисунок 3.4). В левом списке "Available fields" будут находиться поля, которые можно добавить к индексу, в правом списке "In-cluded fields" будут находиться поля, которые уже включены в список. Для формирования перечня полей, которые будут входить в индекс, переместите нужные поля из левого списка в правый.
Рисунок 3.4 – Окно просмотра и редактирования индексов
4. Если создается уникальный индекс, установите флажок в колонке "Unique".
5. Чтобы активизировать индекс установите флажок в колонке "Active".
6. В колонке "Sorting" выберите способ сортировки.
7. Чтобы создать индекс нажмите кнопку [Compile] (Ctrl+F9).
8. В результате откроется диалоговое окно (рисунок 3.5), в котором надо подтвердить (кнопка [Commit]) или отменить (кнопка [Rollback]) выполнение операции.
После создания индекса его можно в любой момент изменить, если изменить параметры индекса и снова нажать кнопку [Compile].
Рисунок 3.5 – Диалог создания индекса