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

3.2.1. Индексирование таблиц

Индексирование позволяет ускорить сортировку и поиск данных в таблице. Можно индексировать числовые, денежные, текстовые, логические поля, а также поля типа Счетчик и Дата. Не следует создавать слишком много индексов для одной таблицы, т.к. это замедлит ввод и редактирование ее данных.

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

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

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

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

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

3.2.2. Технология установки связей между таблицами

MS Access устанавливает связи между таблицами, участвующими при создании форм, запросов, отчетов.

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

Рис. 12 Бланк схема данных

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

Access позволяет устанавливать связи следующих типов:

Связь один-к-одному « 1 – 1 », при которой одной записи из первой таблицы соответствует только одна запись из второй. Такая связь устанавливается для таблиц, которые могли бы быть объединены в одну, но разделены с целью ускорения работы.

Связь один-ко-многим « 1 — N », используется для связи одной записи из первой таблицы с несколькими записями из второй таблицы.

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

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

Одна из связанных таблиц является базовой, а вторая – подчиненной.

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

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

Если связанное поле базовой таблицы индексировано, то тип связи определяется в соответствии со следующими правилами:

  • если связанное поле подчиненной таблицы содержит только уникальные значения, то имеет место связь типа «1 — 1»

  • если в подчиненной таблице содержатся повторяющие значения в связанном поле, то имеет место связь типа «1 — ∞».

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

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

Добавить таблицу на схеме данных можно щелчком правой клавиши и выбрать в контекстном меню пункт "Добавить таблицу". Или выполнить команду Связь/Добавить таблицу или щелкнуть по кнопке с таким названием на инструментальной панели «Связь».

В окне «Схема данных» отдельные таблицы можно скрывать и отображать. Для установки связи между таблицами следует перетащить поле базовой таблицы в поле подчиненной таблицы. В появившемся окне «Связи» щелкнуть по кнопке «Создать».

Для устанавливаемой связи следует задать параметры.

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

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

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

Если включена поддержка целостности данных в установленной связи, то на схеме линия типа «1 — ∞» изображается более жирной.