Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика_лекции_Саладаев.doc
Скачиваний:
55
Добавлен:
03.05.2015
Размер:
15.75 Mб
Скачать

Поиск информации. Индексные файлы

Допустим, мы работаем с системой КАДРЫ и хотим найти зарплату для сотрудника с табельным номером N. Простейший метод- чтение всех записей до того как найдемN. Во многих случаях метод перебора не устраивает. При наличии очереди клиентов (касса аэропорта, оптовый склад) выполнение запроса по десяткам тысяч записей должно занимать единицы секунд.

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

Теперь усложним задачу и зададим следующий вопрос: «Перечислить сотрудников отдела В с зарплатой менее 80000 рублей». В этом случае придется сначала упорядочить таблицу по коду отдела, но тогда нарушится упорядочение по табельному номеру и по нему - опять придем к медленному варианту поиска - перебору.

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

Для каждой таблицы можно создать любое нужное количество индексных файлов. При этом она называется индексированной.

Каждый индексный файл характеризуется конкретным ключом индексирования(им может оказаться и главный ключ таблицы).

Таким образом, механизм индексирования является мощным инструментом, необходимым для многотысячных таблиц. Если мы будем применять его для небольших таблиц, то сама организация (создание файлов) займет столько времени, что сведет к нулю весь эффект.

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

Проблемы достоверности информации

Первичное заполнение таблиц ведется человеком, и ошибки в данных являются не исключением, а правилом и любая информационная система должна иметь средства для диагностики и исправления ошибок.

Нарушение логической взаимосвязи - это смысловые (семантические) ошибки, которые могут быть обнаружены аппаратом контроля, построенным для СУБД и кроме этого могут быть средства «нестандартного» контроля.

Гораздо сложнее обстоит дело с ошибками в значениях данных. Например, вместо Б12 указано Б18, или вместо Иванов П.А. указано Иванов В.А.

Для сокращения ошибок существуют средства контроля ввода для определенных типов данных

.

Оперативные таблицы и справочники

Таблицы (в некоторых БД- файлы) можно условно разделить на две группы: оперативные таблицы(ОТ) исправочники. С точки зрения СУБД они одинаковы. Но существенные различия заключаются в их роли в процессе обработки и в частоте обновления.

Содержимое ОТ с течением времени меняется, чаще всего с некоторой периодичностью (неделя, день, час) - обычно по смыслу: это заказы изделий, регистрация, продажа и т.п.

Содержимое справочников с точки зрения оперативной работы - по смыслу является условно-постоянной информацией. Например, список сплавов с указанием параметров (в отличие от заказов на изделия металлообработки).

Разновидность справочника - словарь. Этот термин чаще применяется для организации словарных расшифровок. Пример категорий в телефонном справочнике.

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

Но с точки зрения задачи анализа динамики оборота по годам или месяцам, оборот следует включить и в оперативную таблицу с обязательным добавлением периода (года, месяца).

Таким образом, деление на справочники и оперативные таблицы зависит от контекста задачи.