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

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

  • автор:

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

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

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

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

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

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

Меню Файл

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

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

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

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

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

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

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

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

компрессия

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

дублировать

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

Дубликат Да

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

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

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

Создание и использование индекса для увеличения производительности

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

В этой статье дается описание индексов; рассматривается, какие поля следует индексировать; описывается создание, удаление и изменение индексов. Кроме того, в этой статье объясняется, в каких случаях приложение Access создает индексы автоматически.

В этой статье

  • Что такое индекс?
  • Выбор полей для индексирования
  • Создание индекса
  • Удаление индекса
  • Просмотр и редактирование индексов
  • Автоматическое создание индексов

Примечание: Методы, описанные в данной статье, нельзя использовать для создания индекса для таблицы веб-базы данных. Производительность веб-базы данных зависит от нескольких факторов, например производительности сервера SharePoint, на котором она размещена.

Что такое индекс?

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

Выбор полей для индексирования

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

Примечание: Первичный ключ таблицы индексируется автоматически.

Индексировать поля с типом данных «Объект OLE», «Вычисляемый» или «Вложение» невозможно. Индексировать другие поля следует в тех случаях, когда выполняются все указанные ниже условия.

  • Тип данных поля: Short Text (Text in Access 2010), Long Text (Memo in Access 2010), Number, Date/Time, AutoNumber, Currency, Yes/No или Гиперссылка.
  • Предполагается поиск значений в поле.
  • Предполагается сортировка значений в поле.
  • Предполагается сохранение большого числа различных значений в поле. Если поле содержит много одинаковых значений, то применение индекса может не дать значительного ускорения выполнения запросов.

Составные индексы

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

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

В составной индекс можно включить до 10 полей.

Создание индекса

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

Параметр свойства «Индексированное поле»

Не создавать индекс для этого поля (или удалить существующий индекс)

Да (допускаются совпадения)

Создать индекс для этого поля

Да (совпадения не допускаются)

Создать уникальный индекс для этого поля

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

Создание индекса для одного поля

  1. В области навигации щелкните правой кнопкой мыши имя таблицы, в которой необходимо создать индекс, и выберите в контекстном меню пункт Конструктор.
  2. Щелкните пункт Имя поля для поля, которое следует индексировать.
  3. В разделе Свойства поля откройте вкладку Общие.
  4. В свойстве Индексированное выберите значение Да (допускаются совпадения), если следует разрешить повторяющиеся значения, или значение Да (совпадения не допускаются), чтобы создать уникальный индекс.
  5. Чтобы сохранить изменения, щелкните элемент Сохранить на панели быстрого доступа или нажмите клавиши CTRL+S.

Создание составного индекса

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

  1. В области навигации щелкните правой кнопкой мыши имя таблицы, в которой необходимо создать индекс, и выберите в контекстном меню пункт Конструктор.
  2. На вкладке Конструктор в группе Показать или скрыть щелкните пункт Индексы. Появится окно «Индексы». Измените размеры этого окна, чтобы отображались пустые строки и свойства индекса.
  3. В первой пустой строке столбца Индекс введите имя индекса. Для индекса можно использовать либо имя одного из индексируемых полей, либо другое подходящее имя.
  4. В столбце Имя поля щелкните стрелку, затем щелкните первое поле, которое следует использовать в индексе.
  5. Следующую строку столбца Индекс оставьте пустой, затем в столбце Имя поля укажите второе индексируемое поле. Повторите этот шаг для всех полей, которые необходимо включить в индекс.
  6. Чтобы изменить порядок сортировки значений полей, в столбце Порядок сортировки окна «Индексы» щелкните пункт По возрастанию или По убыванию. По умолчанию выполняется сортировка по возрастанию.
  7. В разделе Свойства индекса окна Индексы укажите свойства индекса для строки в столбце Имя индекса, содержащем имя индекса. Задайте свойства в соответствии с таблицей ниже.

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

Удаление индекса

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

  1. В области навигации щелкните правой кнопкой мыши имя таблицы, для которой необходимо удалить индекс, и выберите в контекстном меню пункт Конструктор.
  2. На вкладке Конструктор в группе Показать или скрыть щелкните пункт Индексы. Появится окно «Индексы». Измените размеры этого окна, чтобы отображались пустые строки и свойства индекса.
  3. В окне «Индексы» выделите строки, содержащие индекс, который следует удалить, и нажмите клавишу DELETE.
  4. Чтобы сохранить изменения, нажмите кнопку Сохранить на панели быстрого доступа или нажмите клавиши CTRL+S.
  5. Закройте окно Индексы

Просмотр или редактирование индексов

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

  1. В области навигации щелкните правой кнопкой мыши имя таблицы, индекс которой вы хотите изменить, и выберите в контекстном меню пункт Конструктор.
  2. На вкладке Конструктор в группе Показать или скрыть щелкните пункт Индексы. Появится окно «Индексы». Измените размеры этого окна, чтобы отображались пустые строки и свойства индекса.
  3. Просмотрите или измените индексы и свойства индексов в соответствии со своими задачами.
  4. Чтобы сохранить изменения, нажмите кнопку Сохранить на панели быстрого доступа или нажмите клавиши CTRL+S.
  5. Закройте окно Индексы

Автоматическое создание индексов

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

Для автоматического создания индекса также можно использовать параметр Автоиндекс при импорте и создании в диалоговом окне Параметры Access. Access автоматически проиндексирует все поля, имена которых начинаются с указанных в поле Автоиндекс при импорте и создании знаков или заканчиваются ими, например ID, ключ, код или число. Чтобы просмотреть или изменить текущие параметры, сделайте следующее:

  1. Выберите Файл >Параметры.
  2. Щелкните Конструкторы объектов, а затем в разделе Конструктор таблиц добавьте, измените или удалите значения в поле Автоиндекс при импорте и создании. Для разделения значений используйте точку с запятой (;).

Примечание: Если имя поля начинается со значения, указанного в списке, или заканчивается им, поле будет автоматически проиндексировано.

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

Создание, изменение и удаление отношения

Отношение в Access позволяет объединить данные из двух разных таблиц. Каждое отношение состоит из двух полей (по одному в каждой таблице) со связанными данными. Например, таблицы «Товары» и «Сведения о заказах» могут содержать поле «КодТовара». Каждая запись в таблице «Сведения о заказах» содержит значение поля «КодТовара», которому соответствует запись в таблице «Товары» с тем же значением в данном поле.

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

Перед началом работы с отношениями изучите основные понятия. Дополнительные сведения о см. в статьях Руководство по связям между таблицами и Начало работы со связями между таблицами.

В этой статье

  • Обзор
  • Создание отношения между таблицами с помощью окна отношений
  • Создание отношения между таблицами с помощью панели списка полей
  • Изменение отношения
  • Обеспечение целостности данных
  • Удаление отношения между таблицами

Обзор

Чтобы создать отношение в базе данных Access, можно воспользоваться одним из указанных ниже методов.

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

При создании отношения между таблицами общие поля могут называться по-разному, однако часто требуется, чтобы эти имена совпадали. Очевидно, что общие поля должны иметь одинаковый тип данных. Однако если поле первичного ключа имеет тип «Счетчик», поле внешнего ключа также может быть числовым, если свойство Размер поля (FieldSize) обоих полей совпадает. Например, можно сопоставить поля с типами «Счетчик» и «Числовой», если свойство Размер поля обоих полей имеет значение «Длинное целое». Если оба общих поля являются числовыми, у них должно совпадать значение свойства Размер поля.

Создание отношения между таблицами с помощью окна отношений

  1. На вкладке Работа с базами данных в группе Отношения выберите элемент Схема данных.
  2. На вкладке Конструктор связей в группе Связи щелкните Добавить таблицы.
  3. Выберите одну или несколько таблиц или запросов и нажмите кнопку Добавить. После добавления таблиц и запросов на вкладку «Схема данных» нажмите кнопку Закрыть.
  4. Перетащите поле (как правило, поле первичного ключа) из одной таблицы на общее поле (поле внешнего ключа) в другой таблице. Чтобы перетащить сразу несколько полей, нажмите и удерживайте клавишу CTRL, нажмите каждое поле и перетащите выделенные поля.

Диалоговое окно

Откроется диалоговое окно Изменение связей.

  • Создание связи «один-к-одному» Оба общих поля (как правило, поля первичного ключа и внешнего ключа) должны иметь уникальный индекс. Это означает, что свойство Индексированное этих полей должно иметь значение Да(Совпадения не допускаются). Если оба поля имеют уникальный индекс, в Access будет создано отношение «один-к-одному».
  • Создание отношения «один-ко-многим». Поле на стороне «один» (как правило, первичный ключ) отношения должно иметь уникальный индекс. Это значит, что свойство Индексированное поле должно иметь значение Да(Совпадения не допускаются). Поле на стороне «многие» не должно иметь уникального индекса. Это поле может быть индексированным, но для него должны допускаться повторы. Это означает, что свойство Индексированное поле должно иметь значение Нет или Да (Допускаются совпадения). Когда у одного поля однозначный индекс, а у другого — нет, в приложении Access создается отношение «один-ко-многим».

Создание отношения между таблицами с помощью панели списка полей

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

При перетаскивании поля из «другой» (несвязанной) таблицы и выполнении инструкций мастера подстановок между таблицей из области Список полей и таблицей, в которую перетаскивается поле, автоматически создается новое отношение «один-ко-многим». Это отношение, созданное Access, не обеспечивает целостность данных по умолчанию. Чтобы обеспечить целостность данных, нужно изменить отношение. Дополнительные сведения см. в разделе Изменение отношения.

Открытие таблицы в режиме таблицы

  • Дважды щелкните таблицу в области навигации.

Открытие области «Список полей»

  • Нажмите клавиши ALT+F8. Будет отображена область Список полей.

В области Список полей отображены все другие таблицы базы данных, сгруппированные по категориям. При работе с таблицей в режиме таблицы в области Список полей отображаются поля в одной из двух категорий: Доступные поля в связанной таблице и Доступные поля в другой таблице. К первой категории относятся все таблицы, связанные отношением с текущей таблицей. Во второй категории перечислены все таблицы, с которыми данная таблица не связана отношением.

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

Добавление поля и создание связи из области «Список полей»

  1. Открыв таблицу в режиме таблицы, нажмите клавиши ALT+F8. Будет отображена область Список полей.
  2. Чтобы отобразить список полей в таблице, в группе Доступные поля в другой таблице щелкните знак плюс (+) рядом с именем таблицы.
  3. Перетащите нужное поле из области Список полей в таблицу, открытую в режиме таблицы.
  4. Когда появится линия вставки, поместите поле в выбранное место. Появится окно мастера подстановок.
  5. Следуйте инструкциям мастера подстановок. Поле будет отображено в таблице в режиме таблицы.

При перетаскивании поля из «другой» (несвязанной) таблицы и выполнении инструкций мастера подстановок между таблицей из области Список полей и таблицей, в которую было перетаскивается поле, автоматически создается новое отношение «один-ко-многим». Это отношение, созданное Access, не обеспечивает целостность данных по умолчанию. Чтобы обеспечить целостность данных, нужно изменить отношение. Дополнительные сведения см. в разделе Изменение отношения.

Изменение отношения

Чтобы изменить отношение, выберите его в окне «Схема данных» и внесите нужные изменения.

  1. Установите указатель на линию связи и щелкните линию, чтобы выделить ее. При выделении линия связи становится толще.
  2. Дважды щелкните выделенную линию связи ИЛИ На вкладке Конструктор связей в группе Сервис щелкните Изменить связи.

Откроется диалоговое окно Изменение связей.

Открытие диалогового окна «Изменение связей»

Диалоговое окно

  1. На вкладке Работа с базами данных в группе Отношения выберите элемент Схема данных.
  2. На вкладке Конструктор связей в группе Связи щелкните Все связи. Будут отображены все таблицы с отношениями, а также соответствующие линии связи. Обратите внимание на то, что скрытые таблицы (таблицы, для которых установлен флажок скрытый в диалоговом окне Свойства) и их отношения не отображаются, если в диалоговом окне Параметры переходов не выбран параметр «Показывать скрытые объекты».
  3. Щелкните линию отношения, которое вы хотите изменить. При выделении линия связи становится толще.
  4. Дважды щелкните линию связи. ИЛИ На вкладке Конструктор связей в группе Сервис щелкните Изменить связи. Откроется диалоговое окно Изменение связей.

Указание типа соединения

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

С помощью запроса к нескольким таблицам можно комбинировать данные из них путем сопоставления значений в общих полях. Операция сопоставления и комбинирования называется объединением. Например, требуется отобразить заказы клиентов. Для этого создается запрос, объединяющий таблицы «Клиенты» и «Заказы» по полю «Код клиента». Результаты запроса содержат сведения о клиенте, а также другие сведения только для строк с найденным соответствующим значением.

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

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

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

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

Указание типа соединения

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

  1. В диалоговом окне Изменение связей нажмите кнопку Тип соединения. Откроется диалоговое окно Параметры соединения.

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

1. Объединение только тех записей, в которых связанные поля обеих таблиц совпадают.

2. Объединение ВСЕХ записей из таблицы «Клиенты» и только тех записей из таблицы «Заказы», в которых связанные поля совпадают.

Левое внешнее соединение

3. Объединение ВСЕХ записей из таблицы «Заказы» и только тех записей из таблицы «Клиенты», в которых связанные поля совпадают.

Правое внешнее соединение

При выборе варианта 2 или 3 на линии связи будет отображена стрелка, указывающая на ту сторону связи, в которой отображаются только сопоставленные строки.

Внесение изменений в окне «Параметры объединения»

  1. На вкладке Работа с базами данных в группе Отношения нажмите кнопку Схема данных.
  2. На вкладке Конструктор связей в группе Связи щелкните Все связи.

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

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

  • Щелкните линию отношения, которое вы хотите изменить. При выделении линия связи становится толще.
  • Дважды щелкните линию связи. Откроется диалоговое окно Изменение связей.
  • Нажмите кнопку Тип объединения.
  • В диалоговом окне Свойства соединения выберите параметр и нажмите кнопку ОК.

    Обеспечение целостности данных

    Целью обеспечения целостности данных является предотвращение появления непарных записей, ссылающихся на несуществующие записи. Обеспечение целостности данных включается для конкретного отношения между таблицами. В результате Access отменяет для этого отношения все действия, которые могут нарушить целостность данных. Это означает, что будет отменено как обновление, изменяющее целевой объект ссылки, так и удаление такого целевого объекта. Сведения о том, как настроить в Access распространение операций обновления и удаления таким образом, чтобы в результате изменялись и все связанные строки, см. в разделе Задание каскадных параметров.

    Включение и отключение обеспечения целостности данных

    1. На вкладке Работа с базами данных в группе Отношения нажмите кнопку Схема данных.
    2. На вкладке Конструктор связей в группе Связи щелкните Все связи.

    В режиме обеспечения целостности данных действуют перечисленные ниже правила.

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

    • Общее поле главной таблицы должно быть первичным ключом или иметь уникальный индекс.
    • Общие поля должны иметь одинаковый тип данных. Единственное исключение — поле типа «Счетчик» можно связать с полем типа «Числовой», если его свойство Размер поля имеет значение Длинное целое.
    • Обе таблицы существуют в одной базе данных Access. Обеспечение целостности данных нельзя включить для присоединенных таблиц. Однако если исходные таблицы имеют формат Access, можно открыть базу данных, в которой они хранятся, и включить обеспечение целостности данных в этой базе.

    Задание каскадных параметров

    Иногда возникает ситуация, в которой требуется изменить значение только на стороне «один» отношения. В этом случае необходимо, чтобы Access автоматически обновил все затронутые строки в ходе выполнения одной операции. Тогда обновление будет полностью завершено, а база данных не будет находиться в несогласованном состоянии, когда некоторые строки обновлены, а другие — нет. Этой проблемы можно избежать с помощью параметра Access «Каскадное обновление связанных полей». Если при включении обеспечения целостности данных был включен параметр «Каскадное обновление связанных полей», то при последующем обновлении первичного ключа автоматически будут обновлены все связанные с ним поля.

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

    Включение и отключение каскадного обновления и каскадного удаления

    1. На вкладке Работа с базами данных в группе Отношения нажмите кнопку Схема данных.
    2. На вкладке Конструктор связей в группе Связи щелкните Все связи.

    Примечание: Если первичным ключом является поле «Счетчик», установка флажка Каскадное обновление связанных полей не произведет никакого эффекта, поскольку изменить значение поля «Счетчик» нельзя.

    Удаление отношения между таблицами

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

    Чтобы удалить отношение между таблицами, нужно удалить линию связи в окне «Схема данных». Установите указатель мыши на линию связи и щелкните ее. При выделении линия связи становится толще. Выделив линию связи, нажмите клавишу DEL.

    1. На вкладке Работа с базами данных в группе Отношения нажмите кнопку Схема данных.
    2. На вкладке Конструктор связей в группе Связи щелкните Все связи.

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

    Использование индексов

    Для повышения скорости сортировки и поиска записей можно проиндексировать отдельное поле или комбинацию полей. Индекс — это средство, ускоряющее поиск и сортировку в таблицы за счет использования ключевых значений, которое позволяет обеспечить уникальность строк таблицы. Первичный ключ таблицы индексируется автоматически. Не допускается создание индексов для полей с некоторыми типами данных.
    Первичный ключ запрещает ввод в поле повторяющихся значений, Однако запрет на ввод повторяющихся значений может потребоваться и для других полей. Например, чтобы не повторялись номера пропусков сотрудников. Для нескольких полей, ввод в которые повторяющихся значений должен быть запрещен, можно использовать составной индекс. При создании индексов можно использовать поля разных типов.
    Для одной таблицы Access позволяет создать до 32 индексов, из которых пять могут быть составными. Составной индекс может включать до 10 полей. С увеличением количества индексов уменьшается скорость добавления новых записей, так как каждая новая запись требует добавления к ней индексов.

    Сознание индекса для одного поля

    Создание индекса для одного поля покажем на примере таблицы «Товары». Откройте ее в режиме конструктора. В верхней части окна нажмите кнопку выделения поля, для которого необходимо создать индекс (рис. 24.15). В нижней части окна на вкладке Общие (General) выделите ячейку Индексированное поле (Indexed) и установите значение Да (Допускаются совпадения) (Yes (Duplicates OK)) , если допускает дублирование данных для выбранного поля. Значение Да (Совпадения не допускаются) (Yes (No Duplicates OK)) не допускает совпадения ни для каких двух записей значения этого поля.

    Выбор свойства индексированного поля

    Создание составного индекса

    Для создания составного индекса откройте таблицу в режиме конструктора и на панели инструментов Конструктор таблиц нажмите кнопку Индексы (Indexes) . Откроется окно Индексы, содержащее информацию обо всех индексах таблицы. На рис. 24.16 это окно показано для таблицы Заказано. В первой пустой строке столбца Индекс (Index Name) введите имя индекса. Для этой строки, можно использовать либо имя одного из индексируемых полей, либо другое подходящее имя.

    Рис. 24.16 Создание составного индекса

    В столбце Имя поля (Field Name) нажмите кнопку раскрытия списка и выберите первое поле, для которого необходимо создать индекс. В следующей строке столбца Имя поля (Field Name) укажите второе индексируемое поле. Оставьте пустым для этой строки поле Индекс (Index Name). Повторите эти действия для всех полей, которые необходимо включить в индекс/Допускается использовать до 10 полей.
    В верхней части окна индексов выберите новое имя индекса. В нижней части окна индексов в ячейке Уникальный индекс (Unique) выберите значение Да .
    Отметим, что после создания индекса по умолчанию будет использоваться порядок сортировки По возрастанию (Ascending). Чтобы сортировать некоторые поля по убыванию, установите для этих полей в столбце Порядок сортировки (Sort Order) значение По убыванию (Descending).

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

  • Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *