Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
000 Реализация реляционных баз данных.doc
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
317 Кб
Скачать
☆

1.3 Определение в базе данных связей между таблицами

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

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

Связь с отношением “один-ко-многим” является наиболее часто используемым типом связи между таблицами. В такой связи каждой записи в таблице A могут соответствовать несколько записей в таблице B, а запись в таблице B не может иметь более одной соответствующей ей записи в таблице A.

При отношении “многие-ко-многим” одной записи в таблице A могут соответствовать несколько записей в таблице B, а одной записи в таблице B несколько записей в таблице A. Такая схема реализуется только с помощью третьей (связующей) таблицы, ключ которой состоит из по крайней мере двух полей, которые являются полями внешнего ключа в таблицах A и B.

При отношении “один-к-одному” запись в таблице A может иметь не более одной связанной записи в таблице B и наоборот. Этот тип связи используют не очень часто, поскольку такие данные могут быть помещены и в одну таблицу. Связь с отношением “один-к-одному” используют для разделения очень широких таблиц, для отделения части таблицы по соображениям защиты, а также для сохранения сведений, относящихся к подмножеству записей в главной таблице. Например, такой тип связей между таблицами подходит для сохранении сведений об участии сотрудников в спортивных мероприятиях.

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

Тип создаваемой связи зависит от полей, для которых определяется связь.

Отношение “один-ко-многим” создается в том случае, когда только одно из полей является ключевым или имеет уникальный индекс.

Отношение “один-к-одному” создается в том случае, когда оба связываемых поля являются ключевыми или имеют уникальные индексы.

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

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

Чтобы определить связи между таблицами:

  1. Закройте все открытые таблицы. Создавать или изменять связи между открытыми таблицами нельзя.

  2. Переключитесь в окно базы данных. Для переключения в окно базы данных из других окон нажмите клавишу F11.

  3. Нажмите кнопку Схема данных на панели инструментов.

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

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

  6. Для связывания полей выберите поле в одной таблице и перетащите его на соответствующее поле во второй таблице.

  7. Для связывания сразу нескольких полей переместите их при нажатой клавише CTRL.В большинстве случаев связывают ключевое поле (представленное в списке полей полужирным шрифтом) одной таблицы с соответствующим ему полем (часто имеющим то же имя), которое называют полем внешнего ключа во второй таблице. Связанные поля не обязательно должны иметь одинаковые имена, но они должны иметь одинаковые типы данных (из этого правила существует два исключения) и иметь содержимое одного типа. Кроме того, связываемые поля числового типа должны иметь одинаковые значения свойства Размер поля (FieldSize). Существуют следующие два исключения из правила: поле счетчика можно связывать с числовым полем, если в последнем в свойстве Размер поля (FieldSize) задано значение “Длинное целое”; а также поле счетчика можно связать с числовым, если для обоих полей в свойстве Размер поля (FieldSize) задано значение “Код репликации”.

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

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

  10. Для создания связи нажмите кнопку Создать.

11 Для каждой пары таблиц, которые необходимо связать, выполните шаги 5-10.