Контрольная работа по дисциплине «базы данных»




Скачать 456.13 Kb.
НазваниеКонтрольная работа по дисциплине «базы данных»
страница9/11
Дата публикации23.04.2013
Размер456.13 Kb.
ТипКонтрольная работа
skachate.ru > Информатика > Контрольная работа
1   2   3   4   5   6   7   8   9   10   11
^

Ускоренный поиск



Индексный файл не только упорядочивает базу данных для просмотра, но и ускоряет поиск в ней по ключу, заданному в индексе, если пользоваться командой

SEEK. <выражение>

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

При наличии индекса сначала именно в нем, а не в самой базе ведется поиск номера записи с указанным в команде SEEK зна­нием выражения в индексном поле. При этом поиск в индексе выполняется не последовательно, а скачками (так называемый дво­ичный поиск), что позволяет быстро локализовать номер нужной записи. Только после этого указатель записей устанавливается на искомую запись в основной базе данных. Команда SEEK разыскивает только одну первую запись, в которой в индексном поле наблюдается <выражение>, т.е. когда <поле>=<выражение>, и устанавливает на нее указатель записей.

Пример. Проведем в базе KADR.DBF поиск записи с табель­ным номером 234.

USE kadr INDEX kadrtab

SEEK 234

DISPLAY tab,fam

Record # TAB FAM

^ 4 234 ПОПОВ А.А.

Функции RECNO(), FOUND(), EOF() реагируют на результаты поиска командой SEEK точно гак же, как и командами LOCATE и CONTINUE. Если поиск удачный, RECNOQ равно номеру найден­ной записи, FOUND()=.T., EOF()=.F.; если нет, RECNO() равно числу записей в базе данных плюс единица, FOUND()=.F., EOF()=.T.. Все это относится и к индексам с FOR-условием.

Для индексированных баз существует модификация функции ука­зания номера записи с аргументом нуль - RECNO(O), которая в случае неудачного поиска возвращает номер записи, имеющей са­мое близкое следующее значение к ключу поиска, заданному в ко­манде SEEK. Использовав этот номер, можно затем перейти в указанную запись. Однако если действует команда

SET NEAR ON,

то в случае неудачного поиска указатель записей сразу устано­вится не на конец файла, а на эту близкую запись. По умолча­нию SET NEAR OFF.

Это предоставляет инструмент ускоренного поиска по ключу, задан­ному приблизительно или даже частично неправильно. Например, за­дана фамилия с неверными инициалами или окончанием. Часто такая ситуация встречается при поиске в числовых полях. Пусть в базе KADR.DBF нужно найти запись, где средняя зарплата равна 600000 руб. Ввиду того что, возможно, никто не получает именно такую зар­плату, поиск окажется неудачным, хотя и есть зарплаты, близкие к этой цифре. Если же мы имеем возможность позиционировать указа­тель на записи с ближайшим значением, то, вызвав затем какое-нибудь средство просмотра данных (например, команду BROWSE) и пролис­тав данные в базе вблизи найденного места, мы получим возможно' все-таки найти и отобрать подходящие записи.

USE kadr

INDEX ON szar TO kadrzar COMPACT

SET NEAR ON

SEEK 600000

BROWSE

При этом мы не будем стеснены в возможности перемещаться в базе данных. Такой механизм называется «мягким» или приблизи­тельным поиском в отличие от обычного, точного поиска.

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

USE kadr

INDEX ON det TO kadrdet COMPACT

IF SEEK(3)

LIST fam, det WHILE det=3

ENDIF

^

Управление индексами



Один и тот же файл DBF может иметь любое число индексов, и все они могут быть одновременно открыты командами SET INDEX или USE-INDEX. В нашем случае команда

  • USE kadr INDEX kadrtab, polfam

открывает два индекса KADRTAB.IDX и POLFAM.IDX.

При вводе, удалении, редактировании записей все открытые ин­дексные файлы будут соответствующим образом изменяться. Одна­ко главным управляющим индексом, т.е. таким, в соответствии с которым при необходимости будет перемещаться указатель запи­сей, может быть, конечно, только один. Им является индексный файл, открытый самым первым в команде (здесь KADRTAB.IDX), или назначенный таковым опцией ORDER.

В случае, если необходимо сделать главным другой индекс, ис­пользуется команда

  • ^ SET ORDER TO

Команда объявляет главный индекс среди открытых индексных файлов в текущей или указанной рабочей <области>. Опции команды совпадают с описанными выше для команды SET INDEX TO. Например, следующие команды сделают главным индекс POLFAM.IDX
SET ORDER TO polfam или SET ORDER TO 2
Команда SET ORDER TO 0 или просто SET ORDER TO без па­раметра отключает все индексы от управления перемещением ука­зателя записей. Теперь уже не будет главного индекса. Однако сами индексы остаются открытыми и чувствительными к изменениям в базе данных.

В случае изменения большого объема данных необходимо от­ключить индексы командой SET INDEX TO с последующим вос­становлением командой REINDEX.

Индексирование не только логически упорядочивает записи базы данных, но позволяет легко выполнить и физическую сортировку данных. Для этого только надо скопировать проиндексированную базу в новый файл командой COPY TO <новый файл>. В таком <новом файле> записи будет уже расположены заданным образом.
1   2   3   4   5   6   7   8   9   10   11

Похожие:

Контрольная работа по дисциплине «базы данных» iconРабота с резервной копией базы данных пк «Школьный офис» (методические рекомендации)
Резервное копирование базы данных осуществляется с целью защиты введенной информации от потери в случае повреждения базы данных,...
Контрольная работа по дисциплине «базы данных» iconКурсовая работа по дисциплине «Базы данных в информационных системах»
Формы как средство добавления, просмотра, удаления, изменений параметров базы данных
Контрольная работа по дисциплине «базы данных» iconЛабораторная работа №5 По дисциплине: «Сетевые базы данных»
Составить и выполнить программу pl/sql, которая считывает из базы данных среднюю величину всех заказов после 03. 01. 2009 г., и выводит...
Контрольная работа по дисциплине «базы данных» iconКонтрольная работа по дисциплине Базы данных Требования к выполнению контрольной работы
...
Контрольная работа по дисциплине «базы данных» iconКонтрольная работа по дисциплине «Проблемно-ориентированные вычислительные системы»
Цель работы: выполнить анализ предметной области, построить еr-модель базы данных, составить проекты таблиц для их создания в базе...
Контрольная работа по дисциплине «базы данных» icon1. Базы данных в Rational Rose
Но когда дело доходит до разработки базы данных, то широко распространенной практикой является создание моста из case-средства, реализующего...
Контрольная работа по дисциплине «базы данных» iconМетодические указания для выполнения лабораторных работ и курсового...
Лабораторная работа №1 «Построение структуры базы данных»
Контрольная работа по дисциплине «базы данных» iconМетодические указания для выполнения лабораторных работ по дисциплине «Базы данных и знаний»
Базы данных – это организованная структура, предназначенная для хранения информации
Контрольная работа по дисциплине «базы данных» iconКурсовая работа по предмету «Базы Данных». Тема: 21. Разработка базы данных зоопарка
«Общими указаниями по организации, методике проведения и правилам оформления курсовых проектов и работ»
Контрольная работа по дисциплине «базы данных» iconПояснительная записка Контрольно-измерительные материалы по дисциплине «Базы данных и субд»
Контрольно-измерительные материалы по дисциплине «Базы данных и субд» предназначены для проверки знаний студентов 3-го курса математического...

Вы можете разместить ссылку на наш сайт:
Школьные материалы


При копировании материала укажите ссылку © 2014
контакты
skachate.ru
Главная страница