Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Гайдамакин Н. А. Автоматизированные информационные системы, базы и банки данных. Вводный курс.doc
Скачиваний:
372
Добавлен:
02.05.2014
Размер:
4.3 Mб
Скачать

4.3.1. Поиск, фильтрация и сортировка данных

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

Отличительная особенность операций по поиску, фильтра­ции и сортировке данных заключается в том, что они осуще­ствляются в режиме открытой таблицыилиформы.Забегая несколько вперед, следует отметить главную отличительную особенность этих операций по сравнению с запросами на вы­борку к базам данных —результатомопераций по поиску или фильтрации данных является изменениесостояния просмот­раоткрытой таблицы (формы), но не самих данных, которые физически остаются в той же таблице и в том же порядке. На­пример, результатом поиска какой-либо конкретной записи в открытой таблице является установление табличного курсора на ключевое поле искомой записи-строки или «показ» (отобра­жение) в открытой форме полей искомой записи.

Собственно поискданных реализуется в виде:

• поиска записи по ее номеру;

• поиска записи (записей) по значению (значениям) какого-либо поля;

• поиска записей с помощью фильтров (фильтрация).

Поиск записи по ее номерупроизводится на основемеханизма распределения записей по страницамфайла данных. Ре­зультатом такого поиска является перевод табличного курсора в ключевое поле соответствующей записи или «показ» в форме полей искомой записи.

Поиск записи по значению поляосуществляется также на основе механизма распределения записей по страницам файла данных с использованием техникивхождения образцав значе­ния просматриваемого поля. Результатом поиска является ус­тановка табличного курсора в соответствующее поле найден­ной записи. Если записей с искомым значением выделенного поля несколько, тогда, как правило, реализуется последователь­ная «остановка» (последовательный просмотр) табличного кур­сора в соответствующих полях найденных записей.

Фильтрпредставляет собой набор условий, применяемых для отбора подмножества записей.Результатомфильтрации является «показ» (отображение) в открытой таблице или фор­ме только отфильтрованных записей с временным «скрытием» всех остальных записей. При этом остальные записи физичес­ки никуда не перемещаются, не удаляются и вновь отобража­ются в открытой таблице после «снятия» фильтра.

Набор условий, определяющих фильтр, формируется в раз­личных СУБД по-разному, но общепринятым является исполь­зование выражений в условиях отбора данных.Под выраже­нием в данном случае понимается структура, подобная обыч­ному математическому выражению. Аргументами выражения могут быть числа, даты, текст, имена полей, которые соединя­ются знаками математических операций, неравенств (+, -, *, /, >, <, =) и логических операций (AND, OR, NOT).При этом тек­стовые значения и аргументы заключаются в кавычки («Ива­нов»), даты в символы # (#01.01.98#).

Как отмечалось при рассмотрении реляционной модели данных, строки в таблицах формируются и хранятся в неупорядоченном виде. Вместе с тем одной из простых, но частых информационных потребностей пользователя при работе с ба­зой данных является как раз упорядочение записей по возрас­танию/убываниюилипо алфавитупо определенному полю (например, по полям дат, по полям с размерами должностных окладов, по полю с фамилией сотрудников и т. п.). Такие про­цедуры реализуются сортировкойданных, которая упорядо­чивает последовательность расположения строк открытой таб­лицы по значениям какого-либо поля. При этом в файле базы данных строки таблицы физически остаются не упорядочен­ными. Иначе говоря, сортировка строк открытой таблицы про­исходит только в буферах страниц в оперативной памяти. Но­вый порядок расположения строк таблицы (т. е. их размещение по страницам файла БД) может быть зафиксирован специаль­ной командой при закрытии таблицы.

При больших объемах таблиц (при большом количестве строк-записей) операции сортировки могут занимать продол­жительное время, которое существенно сокращается, если сор­тировка осуществляется по индексированному полю.В этом плане опыт эксплуатации базы данных может привести к уточ­нению списка индексированных полей в таблицах.