Индекс представляет собой таблицу, которая содержит ключевые значения для каждой записи в таблице данных и записанные в порядке, требуемом для пользователя. Ключевые значения определяются на основе одного или нескольких полей таблицы. Кроме того, индекс содержит уникальные ссылки на соответствующие записи в таблице. На рис. 1.12 показан фрагмент таблицы CUSTOMERS, содержащей информацию о покупателях, и индекс IDXNAME, построенный на основе поля Name таблицы CUSTOMERS. Индекс IDX NAME содержит значения ключевого поля Name, упорядоченные в алфавитном порядке, и ссылки на соответствующие записи в таблице CUSTOMERS.
Рис. 1.12
.Каждая таблица может иметь несколько различных индексов, каждый из которых определяет свой собственный порядок следования записей. Например, таблица AUTHORS может иметь индексы для представления данных об авторах, упорядоченные по дате рождения или по алфавиту. Таким образом, каждый индекс используется для представления одних и тех же данных, но упорядоченных различным образом.
Вообще говоря, таблицы в базе данных могут и не иметь индексов. В этом случае для большой таблицы время поиска определенной записи может быть весьма значительным и использование индекса становиться необходимым. С другой стороны, не следует увлекаться созданием слишком большого количества индексов, так как это может заметно увеличить время необходимое для обновления базы данных и значительно увеличить размер файла базы данных.
При разработке приложений, работающих с базами данных, наиболее широко используются простые индексы. Простые индексы используют значения одного поля таблицы. Примером простого индекса в базе данных BIBLIO.MDB может служить код ISBN, идентификатор автора Au ID или идентификатор издательства PubID.
Хотя в большинстве случаев для представления данных в определенном порядке достаточно использовать простой индекс, часто возникают ситуации, где не обойтись без использования составных индексов. Составной индекс строится на основе значений двух или более полей таблицы. Хорошей иллюстрацией использования составных индексов может служить база данных родственников при генеалогических исследованиях какой-либо фамилии. Понятно, что использование в качестве простого индекса фамилии человека в данном случае недопустимо. Даже использование составного индекса, основанного на полях имени, фамилии и отчества может быть неэффективным, так как и в этом случае все равно возможно существование достаточно большого числа однофамильцев. Выходом из положения может быть использование составного индекса, основанного, например, на следующих полях таблицы: имя, фамилия, отчество, город и номер телефона.
Урок 2
Приложение VisData
Чтобы создать приложение для обработки информации из базы данных необходимо для начала иметь собственно базу данных. Базу данных в формате MS Access можно создать несколькими способами, например:
С помощью системы управления базами данных MS Access;
С использованием объектов доступа к данным Visual Basic;
С использованием приложения VisData, входящего в комплект поставки Visual Basic.
О том, как создать базу данных с помощью системы управления базами данных MS Access, можно узнать из любого соответствующего руководства. Так как эти уроки посвящены работе с Visual Basic, то все наше внимание будет уделено последним двум способам. Создание базы данных с помощью объектов доступа к данным, или другими словами, программным способом, будет описано ниже, в соответствующих уроках (про DAO).
В поставку Visual Basic входит приложение для управления базами данных VisData. Это приложение позволяет создавать и модифицировать базы данных как в формате MS Access, так и в других популярных форматах. Запустить его можно из меню Add-Ins интегрированной среды разработки Visual Basic. Кроме того, исходные тексты этого очень полезного приложения поставляются в комплекте с Visual Basic в качестве одного из примеров. Для тех, кто хочет детально разобраться во всех тонкостях работы с базами данных с помощью Visual Basic, исходные тексты приложения VisData являются просто находкой. Пожалуй, не существует таких приемов работы, которые не были бы продемонстрированы в этом приложении.
С помощью VisData создадим базу данных FRIENDS.MDB, в которой можно хранить персональные данные о ваших знакомых. Эта база данных может в дальнейшем служить основой для создания электронной записной книжки. Предположив заранее, что многие из ваших друзей и/или подруг могут работать или учиться в одном и том же месте, во избежание повторов разобьем данные на две группы — собственно персональную информацию о человеке (имя, фамилия, домашний телефон, домашний адрес, день рождения и т. д.) и информацию о месте работы/учебы (название, адрес, рабочий телефон, электронная почта). Таким образом FRIENDS.MDB будет включать в себя таблицу PERSON, содержащую следующие поля:
Name
— имя,LastName
— фамилия,Adress
— домашний адрес,