Как установить индексированность полей в access

от admin

2.8. Создание индексов.

Access позволяет создавать индексы двух типов: простые и составные.

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

Создадим простой индекс по полю «Номер_П» для таблицы

«Преподаватели». Откроем таблицу «Преподаватели» в режиме конструктора, выберем поле «Номер_П», и в строке свойства «Индексированное поле» щелкнем мышкой на значке «» в правом углу строки. Появится список, содержащий типы создаваемых индексов.

Вариант «Да. Совпадения не допускаются» создает индекс, хранящий только уникальное значение данного поля.

Вариант «Да. Допускаются совпадения» разрешает наличие повторяющихся значений для индексируемого поля.

Вариант “Нет” автоматически устанавливается для первичного ключа таблицы.

Выберем вариант «Да. Совпадения не допускаются»

Для задания составного индекса по полям «Фамилия», «Имя» и «Отчество» по таблице «Студенты», не выходя из режима конструктора, сделаем активной таблицу «Студенты», щелкнув по ней мышкой. Затем выберем в меню «Вид» команду «Индекс..». Открывшееся окно описаний индексов содержит первичный ключ для данной таблицы по полю «Номер_С».

Для построения составного индекса помещаем курсор вниз на пустую строку, и вводим в столбце «Индекс» имя индекса «Составной для ФИО». В столбце «Имя поля» выбираем из всплывающего списка имя «Фамилия». Для добавления в этот индекс нового поля помещаем курсор на следующую строку и таким же образом указываем имя нужного поля. Введем, таким образом, поля «Имя» и «Отчество».

Для удаления существующего индекса выделяется строка описания индекса щелчком мыши и нажимается клавиша «Del».

На использование индексов налагаются некоторые ограничения. Так, Access использует индекс для поиска данных, если в условие поиска включается последовательность полей, начиная с первого поля индекса. Второе ограничение — только последнее условие поиска с использованием индекса может быть неравенством. При наличии нескольких неравенств — индексы не подключаются.

Примечание для версии ACCESS 2.0:

Сохраним созданный проект базы данных, вернувшись в окно базы данных, и выполнив команду «Save» меню «File». В появившемся диалоговом окне введем имя сохраняемого проекта: «stud.mdb».

Для версии ACCESS 97 созданный проект сохраняется автоматически.

Результаты работы

В результате выполнения лабораторной работы создан проект базы данных STUD.

MS Access – индексирование

Индекс – это структура данных, специальная структура данных, предназначенная для повышения скорости поиска данных. Если вы часто выполняете поиск в таблице или сортируете ее записи по определенному полю, вы можете ускорить эти операции, создав индекс для поля. Microsoft Access использует индексы в таблице, так как вы используете индекс в книге для поиска данных.

  • В некоторых случаях, например для первичного ключа, Access автоматически создает индекс для вас.
  • В других случаях вы можете захотеть создать индекс самостоятельно.
  • Индекс хранит расположение записей на основе поля или полей, которые вы выбираете для индексации.
  • После того как Access получит местоположение из индекса, он сможет извлечь данные, перейдя непосредственно в правильное местоположение.
  • Таким образом, использование индекса может быть значительно быстрее, чем сканирование всех записей для поиска данных.
  • Индексы могут ускорить поиск в запросах, но они также могут снизить производительность при добавлении или обновлении записей.

Давайте теперь рассмотрим, какие индексы Microsoft Access создает по умолчанию и как их создавать сами, и узнаем, как удалять любые ненужные индексы. Откройте таблицу tblEmployees в базе данных Access, которую мы создали.

  • Мы действительно не играли с индексами в этой базе данных, но это не значит, что у нас их нет.
  • Фактически, любое поле, заданное в качестве первичного ключа в Access, автоматически индексируется.
  • Access создает дополнительные вторичные индексы в зависимости от имен ваших полей.

Теперь перейдем в меню «Файл» и выберите «Параметры».

Вы увидите окно «Параметры доступа».

Дизайнер объектов

Перейдите к конструкторам объектов, и вы увидите раздел с меткой AutoIndex при импорте / создании, а в текстовом поле вы увидите ID; ключ; код; номер. По умолчанию, доступ автоматически добавляет вторичный индекс к полям, которые начинаются или заканчиваются этими именами, и это касается полей, которые вы импортировали, а также полей, которые вы создали вручную.

Если вы хотите сделать любое поле проиндексированным, вы можете перейти на вкладку Поле .

индексированный

Выберите любое поле, которое вы хотите проиндексировать, и установите флажок Индексированный в разделе Проверка поля. У вас также есть альтернативные варианты для создания или удаления индекса. Вы можете вернуться к представлению « Дизайн» .

Представление дизайна

Вы можете настроить индексы, выбрав любое поле. Вы также можете увидеть, как они индексируются в области свойств поля ниже. Любое поле, которое не выбрано рядом с индексированным, означает, что для данного поля нет индекса. Вы можете изменить это, щелкнув раскрывающееся меню и выбрав два других параметра – Да (Дублировать ОК) и Да (Без дубликатов) .

компрессия

Последний параметр Да (Нет Дубликатов) означает, что Access автоматически запретит повторяющиеся значения в этом поле. Давайте теперь создадим индекс для нашего поля фамилии.

дублировать

Давайте выберем LastName для индексации и скажем « Да» (Дубликаты ОК) . При сохранении Access создаст этот индекс. Еще одна область, где вы можете просматривать и настраивать свои индексы для таблицы, – это область разработки таблиц в группе « Показать / Скрыть ».

Читать:
Dr web av desk agent 11 что это

Дубликат Да

Если вы нажмете на эту кнопку «Индексы», появится специальное представление, отображающее все индексы, созданные для этой таблицы.

Специальный вид

Теперь у нас есть два индекса для tblEmployees – один, который был создан автоматически на основе поля первичного ключа, и один, который мы только что создали для поля LastName. Это разные способы работы с индексами в таблицах Microsoft Access.

Ключи и индексы баз данных Access 2010

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

Поле может содержать данные только одного из допустимых типов (тип данных) для конкретно используемой базы данных, например MS Access, MS SQL Server, Oracle и т. д.

Рис. 1.3. Схема таблицы реляционной базы данных

Рис. 1.3. Схема таблицы реляционной базы данных

Значения некоторых терминов, применяемых в реляционной модели данных и приведенных выше, легко понять, изучив содержимое конкретной таблицы (рис. 1.4).

Рис. 1.4. Таблица Здания

Рис. 1.4. Таблица Здания

Сущность — объект любого происхождения, данные о котором хранятся в базе данных.
Атрибут — свойство, характеризующее сущность. В таблице представляет собой заголовок столбца.
Схема отношения — список имен атрибутов.

Ключ представляет собой поле или группу полей, причем таких, которые однозначно определяют любую запись в таблице реляционной базы данных. Ключ предназначен для:

  • идентификации записей в таблице;
  • установления связи между таблицами базы данных;
  • создания ограничений ссылочной целостности.

В реляционных базах данных ключ реализуется с помощью индекса.

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

Одним из основных требований, предъявляемых к СУБД, является возможность быстрого поиска требуемых записей. В реляционных базах данных для реализации этого требования как раз и служат индексы. Индекс очень похож на алфавитный указатель в книге.

Например, у вас в руках книга по Microsoft Office Access 2010 и вы хотите узнать о том, что написано в ней об индексах. Загляните в конец книги и найдите в предметном указателе слово «индекс». Так как указатель отсортирован по алфавиту, вы без труда найдете нужное слово и ссылки на страницы, где оно встречается в книге. Индекс работает с таблицей по такому же принципу. Он содержит отсортированные значения указанного поля таблицы и ссылки на номера записей таблицы, где эти значения находятся. При поиске записи система управления базами данных сначала просматривает индекс, что занимает совсем немного времени, т. к. для этого используется специальный алгоритм, находит ссылку на номер записи и по ней — нужную строчку в таблице. Таким образом, отпадает необходимость последовательного просмотра всех записей в таблице. Аналогичный способ применяется при поиске по списку прокси-серверов на сайте proxy ua.

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

Рассмотрим работу индекса на конкретном примере. На рис. 1.5 показан фрагмент таблицы Телефоны и индекса, построенного по полю Номер. Требуется найти владельца телефонного номера 4983217. При поиске СУБД в первую очередь находит номер телефона, расположенный ровно в центре столбца (номера в индексе отсортированы по возрастанию). Это номер 4987312, который больше требуемого. Вывод: рассматривать нижнюю половину индексного файла для дальнейшего поиска не имеет смысла. Для десятимиллионного телефонизированного города это пять миллионов записей. Второй шаг — обращение точно в центр верхней половины. Там расположен абонент 2791519. Его номер меньше искомого. Долой еще два с половиной миллиона записей на этот раз из верхней четверти столбца. Третий шаг исключит из рассмотрения восьмую часть абонентов. Четвертый — шестнадцатую и т. д. Очень скоро работа алгоритма будет закончена. Нужный нам владелец телефонного номера будет найден. Его фамилия — Степанов.

Составной индекс в MS Access

Есть таблица «Контрагенты» некой базы данных, в которой имеются поля: Код контрагента, Организация, Адрес, Телефон.

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

Рис. 1. Таблица «Контрагенты»

Рис. 1. Таблица «Контрагенты»

Запускаем « MS Access 2002», открываем таблицу «Контрагенты» в режиме конструктора, после чего выбираем в главном меню раздел «Вид – Индексы» или соответствующую ему кнопку на панели инструментов. Откроется окно, в котором нужно задать имя составного индекса , а также поля ,которые в него будут входить и ниже три настройки: Ключевое поле, Уникальный индекс, Пропуск пустых полей.

Рис. 2. Окно настройки составного индекса

Теперь в БД нельзя ввести 2 одинаковых записи в таблицу «Контрагенты».

Рис. 3. Проверка составного индекса

Рис. 3. Проверка составного индекса

При этом плохо, что внешне никак не видно составной индекс, даже в конструкторе, что плохо. Поэтому лучше выставить еще свойство «Ключевое поле», при этом в режиме конструктора поля, входящие в составной индекс пометятся ключами.

Рис. 4. Слева просто составной уникальный индекс, справа – еще и с ключевыми полями

Похожие статьи