Лабораторная работа № 8.Сортировка и индексирование БД. Цель:научиться упорядочивать записи в БД;знакомство с командой сортировки.Понятие индекса БД. Команда SORT (сортировка ) требует для своего выполнения в три раза больше места на диске, чем занимает БД: промежуточные файлы и результат сортировки переписывается в новую базу , на новое место на диске.Формат команды сортировки: SORT TO<поле1> ON<>[/A][/C][/D] [,<поле2>[/A][/C][/D]…] [ASCENDING|DESCENDING] <сфера>[FOR<вырL1>][WHILE<вырL>[FIELDS<команды>] [NOOPTIMIZE] Команда SORT : 1. Отсортировать файл БД по полю фамилии. SORT TO FAMST ON FAMIL 2. Посмотреть результат сортировки. USE FAMST LIST 3.Отсортировать файл БД по двум полям специальность и город, в порядке убывания. SORT TO SPGORST ON SPEC,GOROD /D 4. Посмотреть результат сортировки . USE SPGORST LIST Индексирование базы – это тоже её упорядочивание по заданному полю БД, которое называют ещё ключом или индексом. Только переписывания базы на новое место не производится. Cоздаётся индекс – файл, имеющий расширение .IDX, в котором запоминаются номера записей и значение ключа в том порядке, в котором они должны быть после упорядочивания по данному полю – ключу. В дальнейшем, если созданный индексный файл открыт , команды работают с базой , считая ее упорядоченной (проиндексированной) по заданному ключу. Формат команды INDEX: IINDEX ON <симв.выраж.> TO <Имя индексного файла> [UNIQUE] Где <симв.выраж.> — это ключ или конкатенация ключей, т.е. символьных полей БД. Пример индексирования БД: 1. Открыть исходную БД . USE KOLLEK 2.Проиндексировать БД по полю фамилия. 3 INDEX ON FAMIL TO FA 3. Посмотреть результат (Вывести записи базы на экран) . LIST Посмотреть .IDX – файл во встроенном текстовом редакторе FoxPro (с помощью команды MODIFY FILE <имя IDX – файла>) Пример индексирования по полям разных типов: 1. Проиндексировать БД по полю специальность и возраст . INDEX ON SPEC + STR( WOZR ) TO SPWZ !!!Обратить внимание при подаче команды ,что тип поля WOZR - числовое. Функции преобразования полей других типов в символьные : STR() -для числовых ; DTOC() – для поля даты. Пример индексирования с FOR – условием (создание усечённого индекса) 1. Проиндексировать базу по полю фамилии при условии, что поле POL=”M”. INDEX ON FAMIL FOR POL=”M” Посмотреть результат такой индексации. При использовании БД, проиндексированной с FOR-условием мы имеем дело только с записями базы, удовлетворяющими заданному условию. Такой индекс называют неполным. Открыть существующий индексный файл можно одной из команд: USE<Имя БД> INDEX <Список индексов> Для уже открытой БД: SET INDEX TO<Список индексов> Выполнить самостоятельно. 1.Создать для БД KOLLEK.DBF неполный индекс по двум полям :FAMIL и PLATA, включив в него только москвичей. 2.Создать индекс по двум полям: FAMIL и DATEZ (дата заезда) Контрольные вопросы: 1. Чем неудобна команда сортировки SORT ? 2. Что такое индексный файл или индекс? 3. Что такое –– КЛЮЧ сортировки или индексирования? 4