Лабораторная работа №8. Сортировка и индексирование БД.

advertisement
Лабораторная работа № 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
Download