Индексирование
Индексирование – это механизм для размещения записей таблицы в определенном порядке. Например, записи таблицы
Сотрудники
Табельный номер |
Фамилия сотрудника |
Отдел |
Год рождения |
Пол |
Оклад |
Могут быть размещены в порядке возрастания табельного номера, в алфавитном порядке по фамилии сотрудника, по возрастанию года рождения, и т.д.
Индекс – это выражение, по которому происходит упорядочение.
Индекс бывают двух типов:
Индекс
Простой индекс Составной индекс
(строится по одному полю) Например, индекс по табельному номеру сотрудника | (строится по нескольким полям, или выражениям от полей) Например, индекс по полям Отдел и Фамилия сотрудника |
Пусть таблица содержит данные:
Табельный номер | Фамилия сотрудника | Отдел | Год рождения | Пол | Оклад |
Семенов | Сбыта | М | |||
Волошина | Рекламы | Ж | |||
Бричкин | Доставки | М | |||
Калашникова | Доставки | Ж |
Проиндексируем таблицу по табельному номеру сотрудника:
Табельный номер | Фамилия сотрудника | Отдел | Год рождения | Пол | Оклад |
Бричкин | Доставки | М | |||
Семенов | Сбыта | М | |||
Волошина | Рекламы | Ж | |||
Калашникова | Доставки | Ж |
Индексация по отделу и фамилии сотрудника:
Табельный номер | Фамилия сотрудника | Отдел | Год рождения | Пол | Оклад |
Бричкин | Доставки | М | |||
Калашникова | Доставки | Ж | |||
Волошина | Рекламы | Ж | |||
Семенов | Сбыта | М |
Обратите внимание: сначала данные упорядочиваются по отделу, а затем по фамилии.
Применение индексов значительно увеличивает производительность. Так для поиска записи в таблице из 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 Стандартные функции