Создание связей в Access




 

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

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

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

· Создание связи "один-ко-многим". Поле на стороне "один" связи (как правило, это первичный ключ) должно иметь уникальный индекс. Это означает, что свойство Индексированное поле этого поля должно иметь значение Да (Совпадения не допускаются). Полю на стороне "многие" не должен соответствовать уникальный индекс. У него может быть индекс, однако он должен допускать совпадения. Это означает, что его свойство Индексированное поле может иметь значение Нет либо Да (Допускаются совпадения). Если у одного поля есть уникальный индекс, а у другого – нет, приложение Access создает связь "один-ко-многим".

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

Свойства связи:

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

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

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

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

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

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

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

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

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

o Общее поле главной таблицы должно быть первичным ключом или иметь уникальный индекс.

o Общие поля должны иметь одинаковый тип данных. Единственное исключение – поле типа "Счетчик" можно связать с полем типа "Числовой", если его свойство Размер поля имеет значение Длинное целое.

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

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

 

 

Задание

 

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

 

 

Контрольные вопросы

1. Перечислите все типы данных для полей в Access.

2. Что произойдет, если не задать ключевые поля?

3. На что влияет установление уникальности поля?

4. Для чего используется тип данных – Поле объекта Memo?

5. Как задать два и больше ключевых полей?

6. Для чего используется тип данных – Поле объекта OLE?

7. Как разместить объект OLE?

8. Как включить режим отображения сразу нескольких таблиц?

9. Как отменить ввод записи?

10. Как ввести данные в таблицу?

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2019-10-17 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: