Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции Теория Баз Данных.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
319 Кб
Скачать
☆

1.Понятие индексного файла

Взаимосвязь между таблицами осуществляется по индексам, которые называются ключами.

Индекс – это указатель записи и представляет собой порядковый номер записи в таблице.

Индекс - строится по значению одного поля или по значению нескольких полей.

Индекс, построенный по значению одного поля называется простым, а индекс построенный по значению нескольких полей – сложным.

Во время построения индекса, записи в таблице сортируются по значениям поля (или полей) будущего индекса. При этом первой строке таблицы присваивается индекс №1, второй строке – индекс №2 и т.д. до конца.

Построенный индекс хранится в специальном файле, который называется индексным.

Если индексный файл хранит только один индекс, то он называется одноиндексным и имеет расширение *.idx. Индексные файлы, которые хранят несколько индексов, называются мультииндексными и имеют расширение *.cdx.

Каждый индекс, который хранится в мультииндексном файле называется тегом. Каждый тег имеет свое уникальное имя.

Мультииндексные файлы бывают двух типов: простые мультииндексные файлы и структурные мультииндексные файлы, которые имеют одинаковое имя с таблицей, которой он принадлежит (отличие только в расширении файла) и обладает следующими свойствами:

  • Автоматически открывается со своей таблицей.

  • Его нельзя закрыть, но можно сделать не главным.

Одна таблица может иметь много индексных файлов как одноиндексных, так и мультииндексных.

2.Создание и установка индексных файлов с помощью команд.

Создать индексный файл можно с помощью команды:

Index on (идентификатор выражения) to <имя ind файла>

TAG <имя тега> [of <cdx-файл>]

FOR (условие)

COMPACT

DESCENDING

UNIQUE

ADDITIVE

NOOPTIMIZE

Индексное выражение – имя поля (или полей), по значениям которых надо строить индекс

При построении сложного индекса имена полей перечисляются через знак «+»

  • Если сложный индекс построен по числовым полям, то индекс строится по сумме значений полей.

  • Если индекс строится по символьным полям, то индекс строится сначала по значению 1 поля, при повторяющихся значениях 1 поля, по значению второго поля при повторяющемся значении 2 по значению третьего поля и т.д.

Длина идентификатора выражения не должна превышать 254 символа.

TO <idx-файл> указатель имени одноиндексного файла

TAG <имя тега> OF <cdx-файл> указатель имени тега в мультииндексном файле

  • По полям разных типов, сначала значения полей приводится к одному типу, как правило символьному, а затем строится индекс.

TO <idx-файл> имя одноиндексного файла

TAG <имя тега> [OF <cdx-файл>] указатель имени тега в мультииндексном файле.

Если используется опция [OF<cdx-файл>], то создаваемый тег помещается в указанный мультииндексный файл, если требуемый мультииндексный файл отсутствует, то будет построен структурный мультииндексный файл.

Если опция [OF <cdx-файл>] опущена, то созданный тег будет помещен в текущий мультииндексный файл.

Ключевые слова:

FOR (условие) устанавливает режим отбора в индекс тех записей таблицы, которые удовлетворяют условию

DESCENDING строит индекс по убыванию. По умолчанию установлено ACCENDING (используется только в мультииндексных файлах) для одноиндексного необходима установка SET COLLATE

UNIQUE строит уникальный индекс (из всех повторяющихся записей в индекс попадает одна).

ADDITIVE вновь создаваемый индексный файл не закрывает открытые к этому времени индексные файлы.

Если опция опущена, то созданный индексный файл становится главным.

NOOPTIMIZE отключает используемые технологии RUSHMORE для ускоренного доступа к данным.

Открыть или установить индексный файл можно только после открытия соответствующей ему таблицы. В противном случае будет выдано сообщение об ошибке.

Команда установки индексного файла:

SET INDEX TO (список индексных файлов)

ORDER <выражение №> <ind-файл>

TAG <> OF <cdx> ASCENDENG

ADDITIVE

Для закрытия всех инд. файлов надо выполнить команду

SET INDEX TO или CLOSE INDEX

Для каждой таблицы одновременно может быть открыто несколько индексов, но текущим (активным) будет один.

По умолчанию принять, что текущим будет тот, который стоит первым в команде SET INDEX TO.

Чтобы сделать текущим любой другой надо дать команду

SET ORDER TO <выражение 1> <idx>

TAG <> OF <> IN <выражение 2> <выражение C>

Значение опций:

<выражение 1> задает текущий индекс по его порядковому номеру в мультииндексном файле.

<idx-файл> делает текущим одноиндексный файл.

TAG <имя тега> OF <cdx> делает текущим по имени тега из указанного мультииндексного файла.

IN <выражение 2> указывает номер рабочей области, в которой находится индексный файл. Опция используется в случае, если таблица открыта в одной рабочей области, а индексный файл в другой.

Текущим индекс можно сделать в приложении в диалоговой панели TABLE DESIGNER, переместив строку описания нужного индекса на первое место.

Перестройка индексных файлов

При внесении изменений в большие таблицы тратится много времени, т.к. при внесении каждого изменения заново перестраиваются все открытые индексные файлы.

Для экономии времени индексные файлы закрывают и вносят изменения в таблицу. Однако в этом случае возникает несоответствие между обновленной таблицей и индексными файлами.

Для устранения указанного несоответствия необходимо заново перестраивать индексные файлы следующим образом:

-открыть все индексные файлы, принадлежащие измененной таблице и подать команду

REINDEX

Команду действует на все индексные файлы открытые в текущей рабочей области.

Переиндексировать можно так же, подав команду из главного меню TABLE → Rebuild Index.

Лекция 8.

Тема: “Управление данными в БД”

План лекции:

  1. Сортировка данных

  2. Поиск данных

  3. Фильтрация данных