Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МетодУказанияБазыДанных.doc
Скачиваний:
32
Добавлен:
03.06.2015
Размер:
505.86 Кб
Скачать

Связи между таблицами

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

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

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

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

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

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

Пример связывания двух таблиц: Модели автомобилей и Клиенты приведен на рис.2.

После перетаскивания поля первой таблицы на поле второй появляется диалоговое окно Связи. В этом окне имеется список с двумя столбцами: Таблица/запрос и связанная Таблица/запрос. Левая таблица-главная.

Рис. 2. Окно установления связей между таблицами

Главной становится та таблица, из которой вы перетаскиваете поле, подчиненной - та таблица, куда вы его перетаскивали. Одна и та же таблица может выступать в одной связи как главная, а в другой - как подчиненная.

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

Тип отношения определяет тип отношения связанных таблиц. Различаются два типа отношений: “один к одному” и “один ко многим”.

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

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

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

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

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

  3. удаление записи данных в главной таблице, если имеются связанные с ней записи, что приводит к появлению “осиротевших” записей.

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

В нижней части диалогового окна Связи находятся два флажка, связанных с обеспечением целостности: Каскадное обновление связанных полей и Каскадное удаление связанных полей. Установите оба эти флажка. В этом случае ACCESS позволит производить изменения и удаление записей данных главной таблицы. Одновременно будут изменены (или удалены) связанные с ними записи подчиненной рабочей таблицы. Это означает, что правила целостности, будут сохранены даже при изменении значений в связующих полях.

Кнопка Объединение.

В ACCESS имеются следующие варианты объединения данных связанных таблиц:

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

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

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

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

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