Индексирование

 

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

 

Сотрудники

 

Табельный номер
Фамилия сотрудника
Отдел
Год рождения
Пол
Оклад

 

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

Индекс – это выражение, по которому происходит упорядочение.

Индекс бывают двух типов:

 

Индекс

 

Простой индекс Составной индекс

(строится по одному полю) Например, индекс по табельному номеру сотрудника     (строится по нескольким полям, или выражениям от полей) Например, индекс по полям Отдел и Фамилия сотрудника

 

Пусть таблица содержит данные:

 

Табельный номер Фамилия сотрудника Отдел Год рождения Пол Оклад
Семенов Сбыта М
Волошина Рекламы Ж
Бричкин Доставки М
Калашникова Доставки Ж

 

Проиндексируем таблицу по табельному номеру сотрудника:

 

Табельный номер Фамилия сотрудника Отдел Год рождения Пол Оклад
Бричкин Доставки М
Семенов Сбыта М
Волошина Рекламы Ж
Калашникова Доставки Ж

 

Индексация по отделу и фамилии сотрудника:

 

Табельный номер Фамилия сотрудника Отдел Год рождения Пол Оклад
Бричкин Доставки М
Калашникова Доставки Ж
Волошина Рекламы Ж
Семенов Сбыта М

 

Обратите внимание: сначала данные упорядочиваются по отделу, а затем по фамилии.

Применение индексов значительно увеличивает производительность. Так для поиска записи в таблице из 10000 строк нужно пересмотреть в среднем 5000 строк. Поиск в индексированном файле позволяет найти нужную запись не больше чем за 15 шагов.

 

В Visual FoxPro используются 4 типа индексов:

 

Тип индекса Описание
Regular Значение индексного выражения может повторяться. Если несколько записей имеют одинаковое значение индексного выражения, то каждое хранится отдельно и содержит ссылку на связанную с ней запись.
Unique Хранятся только неповторяющиеся значения индексного выражения. Если несколько записей содержат одинаковое значение индексного выражения, то будет храниться ссылка только на первую из записей с одинаковым значением. Таблица может иметь несколько таких индексов.
Candidate Уникальный индекс, который не содержит полей с пустыми значениями. Этот индекс обладает всеми качествами первичного ключа и не является им только по той причине, что таблица не может содержать более одного первичного ключа
Primary Уникальный индекс, который используется для связи таблиц и определения условий целостности данных. Поля, входящие в первичный ключ не должны иметь пустые значения. Таблица может иметь только один первичный ключ.

 

Связь между таблицами

 

Cвязь происходит по полям, которые хранят одинаковые значения. Поля связи должны быть проиндексированы.

В Visual FoxPro можно построить отношения один к одному и один ко многим.

 

Один к одному

В обеих таблицах поле связи должно быть проиндексировано как Primary или Candidate.

 

Один ко многим

 

       
 
 
   
Родительская Дочерня таблица таблица

 


В родительской таблицы поле связи должно быть проиндексирована как Primary или Candidate, а в дочерней как Regular.

Если в дочерней таблице использовать индекс Unique, то связь тоже возможна, но, фактически, это будет связь один к одному. Каждой записи в родительской таблице будет отвечать одна запись в дочерней таблице. Если в дочерней таблице окажется несколько записей с одинаковым значением ключа, все, кроме первой записи будут игнорироваться.

Выводы по теме

Visual FoxPro состоит из отдельных компонентов, которые используются для хранения и представления информации. Это таблицы, представления данных, формы, отчеты, запросы, программы и библиотеки.

Проект является основным средством объединения отдельных элементов приложения в Visual FoxPro.

Перед работой с Visual FoxPro рекомендуется:

1 создать отдельный каталог для своего приложения;

2 создать проект, который будет содержать все файлы приложения.

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

Индекс – это выражение, по которому происходит упорядочение.

В Visual FoxPro можно построить отношения один к одному и один ко многим.

Вопросы для самоконтроля

 

1 перечислите объекты Visual FoxPro.

2 Объясните назначение командного окна.

3 Перечислите типы полей.

4 Объясните назначение и структуру проекта.

5 Что такое индексация.

6 Какие существуют типы индексов.

7 Назовите межтабличные связи VFP.

 

Литература

1 Горев А., Ахаян Р., Макаршипов С. «Эффективная работа с СУБД». -СПб: Питер, 2000.

2 Стернс Т., Стернс Л. «Изучи сам Visual FoxPro сегодня», Минск «Попурри», 2000.

3 Голицина О., Максимов Н., Попов Н. «Базы данных», Москва «Форум – ИНФРА - М» 2004.

 

Тема 3.4 Основы языка манипулирования данными.

 

Цель изучения темы

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

Студент должен знать:

 

Основы языка манипулирования данными, а в частности:

- типы переменных;

- область действия переменных;

- выражения;

- управляющие конструкции;

- стандартные функции.

 

Студент должен уметь:

 

1 Работать с управляющими конструкциями;

2 Определять типы переменных;

3 Работать со стандартными функциями.

Ключевой термин –язык манипулирования данными.

Язык манипулирования данными –это программный язык управления переменными и выражениями, включающий в себя управляющие конструкции и стандартные функции.

 

Структурная схема терминов:

 
 
Язык манипулирования данными


 

Содержание темы

 

1 Переменные. Типы переменных;

2 Область действия переменных;

- Локальные;

- Глобальные;

3 Выражения;

- Числовые;

- Логические;

- Символьные;

- Даты-времени;

4 Команды перемещения указателя;

5 Управляющие конструкции;

- Условный оператор

- Обобщенный условный оператор

- Операторы циклов

6 Стандартные функции