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

Переводы статьи Переводы статьи
Код статьи: 304467 - Vizualiza?i produsele pentru care se aplic? acest articol.
Начинающий пользователь: Требует знания интерфейса пользователя для однопользовательского режима.

В данной статье применима только к базе данных Microsoft Access (.mdb).

Развернуть все | Свернуть все

В этой статье

Аннотация

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

  • Создание связей между таблицами
    • Создание связей один ко многим» или «один к одному
    • Как определить многие ко многим отношений

  • Ссылочная целостность
  • Каскадное обновление и удаление
  • Типы соединения

Дополнительная информация

Отношения таблиц

В реляционной базе данных связи позволяют предотвратить появление избыточных данных. Например, при разработке базы данных, содержащей сведения о книгах, может иметь таблицу с именем Titles, хранит сведения о каждой книге, такие как книгу? s название, Дата публикации и издатель. Имеется также информация об издательстве, например номер телефона, адрес и почтовый индекс может потребоваться. Если нужно хранить всю эту информацию в заголовки таблицы, издатель? s телефонный номер будет повторяться для каждой книги, изданной.

Лучшим решением является хранение информации об издателе в отдельной таблице Publishers. Затем следует установить указатель в таблице Titles, на запись в таблице издателей.

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

Типы связей между таблицами

Устанавливает отношения между совпадающими значениями в ключевых столбцах, обычно столбцы, имеющие одинаковые имена в обеих таблицах. В большинстве случаев связь сопоставляет первичный ключ одной таблицы, который предоставляет уникальный идентификатор для каждой строки, связывается внешний ключ другой таблицы. Например продажи можно связать с названиями проданных книг и создать связь между столбцом title_id в таблице Titles (первичный ключ) и столбцом title_id в таблице Sales (внешний ключ).

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

Отношения один ко многим

Отношение один ко многим — это наиболее распространенный вид связи. Такой тип связи, строки в таблице могут соответствовать несколько строк в таблице B, но строка таблицы Б может иметь только одна строка в таблице A. Например, таблицы Publishers и Titles имеют отношение один ко многим: каждый издатель публикует много книг, но каждая книга публикуется лишь одним издателем.

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

В программе Microsoft Access сторона первичного ключа отношения «один ко многим» обозначается символом ключа. Связь на стороне внешнего ключа обозначается символом бесконечности.

Отношения многие ко многим

Связи «многие ко многим» строки в таблице a могут соответствовать несколько строк в таблице b и наоборот. Для создания такого отношения, определяя третьей таблицы, называемой связующей таблице первичный ключ которой состоит из таблицы a и B. таблицы внешних ключей Например авторов и заголовки таблицы имеют отношение многие ко многим, определяется отношение один ко многим из каждой из этих таблиц в таблице TitleAuthors. Первичный ключ таблицы TitleAuthors — это сочетание столбец au_id (таблицы authors? s первичный ключ) и столбца "ИД_издания" (таблицы Titles? s первичного ключа).

Отношения один к одному

В отношении «один к одному» строке в таблице a может иметь не более чем одна строка в таблице b и наоборот. Однозначное создается в том случае, если оба связанные столбца являются первичными ключами или имеют уникальные ограничения.

Этот тип связи не часто, поскольку большая часть сведений, связанных таким образом можно хранить в одной таблице. Можно использовать однозначное для:
  • Разделения таблицы со многими столбцами.
  • Отделения части таблицы по соображениям безопасности.
  • Хранения кратковременных и могут быть легко удалены путем удаления в таблице данных.
  • Хранить сведения, относящиеся только к подмножеству основной таблицы.
В Microsoft Access однозначное на стороне первичного ключа отмечается символом ключа. Сторона внешнего ключа также обозначается символом ключа.

Создание связей между таблицами

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

Создание связей один ко многим» или «один к одному

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

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

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

    При закрытии Изменение связей диалоговое окно, Microsoft Access выводит приглашение сохранить макет. Ли сохранить макет или нет, отношений, сохраняются в базе данных.

    ПРИМЕЧАНИЕ: В запросах, а также таблицы, можно создавать связи. Тем не менее не целостности данных с помощью запросов.

Как определить многие ко многим отношений

Чтобы создать отношение многие ко многим, выполните следующие действия.
  1. Создайте две таблицы, которые будут иметь отношение многие ко многим.
  2. Создание третьей таблицы, называемой связующей таблицей и затем добавить в нее поля с теми же определениями, как поля первичного ключа каждой из двух таблиц. В сводной таблице поля первичного ключа функции внешних ключей. Можно добавить другие поля в связующую таблицу, так же, как и для любой таблицы.
  3. В сводной таблице задайте первичный ключ, чтобы включить поля первичных ключей из двух связываемых таблиц. Например в связующей таблице TitleAuthors первичного ключа будет состоять из полей «КодЗаказа» и «КодТовара».

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

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

      ПРИМЕЧАНИЕ: Порядок полей в составной первичный ключ будет отличаться от порядка полей в таблице, щелкните Индексы на панели инструментов для отображения Индексы диалоговое окно, а затем дозаказа, имена полей индекса под названием PrimaryKey.
  4. Определите отношение «один ко многим» между каждой из двух главных таблиц и связующей таблицей.

Ссылочная целостность

Целостность данных означает систему правил, Microsoft Access использует для проверки допустимости отношений между записями в связанных таблицах, а также от случайного удаления или изменения связанных данных. Можно задать условия целостности данных при выполнении всех следующих условий:
  • Соответствующее поле главной таблицы является первичным ключом или имеет уникальный индекс.
  • Связываемые поля должны иметь одинаковый тип данных. Существует два исключения. Поля типа «Счетчик» могут быть связаны для числового поля с FieldSize Длинное целое значение свойства и поля счетчика с FieldSize значение свойства ID репликации могут быть связаны для числового поля с FieldSize значение свойства ID репликации.
  • Обе таблицы принадлежат одной и той же базе данных Microsoft Access. Если таблицы связанные таблицы, они должны иметь формат Microsoft Access, и необходимо открыть базу данных, они сохраняются для задания условия целостности данных. Целостность данных не может быть применена для связанных таблиц из баз данных в других форматах.
При обеспечении целостности данных, применяются следующие правила:

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

Каскадное обновление и удаление

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

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

ПРИМЕЧАНИЕ: Если первичный ключ главной таблицы в поле счетчика, Выбор Каскадное обновление связанных полей флажок не будет действовать, поскольку невозможно изменить значение в поле счетчика.

Если выбран параметр Каскадное удаление связанных записей флажок при определении связи, любое удаление записи из главной таблицы Microsoft Access автоматически удалит связанные записи в связанной таблице. Если удалить запись клиента из таблицы Customers все заказы клиента автоматически удаляются из таблицы «Заказы» (включая записи в таблице Order Details, связанные с записями заказов). При удалении записей из формы или таблицы с Каскадное удаление связанных записей флажок установлен, Microsoft Access предупреждает, связанные записи также могут быть удалены. Однако при удалении записей с помощью запроса на удаление Microsoft Access автоматически удалит записи из связанных таблиц без вывода предупреждения.

Типы соединения

Существует три типа соединения, как показано ниже:

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

Вариант 2 Определяет левое внешнее объединение. Левое внешнее соединение-это соединение в которой все записи из левой стороне операции LEFT JOIN в запросе SQL добавляются в результаты запроса даже в том случае, если отсутствуют соответствующие значения в связанном поле из таблицы на правой.

Вариант 3 Определяет правое внешнее объединение. Правое внешнее соединение-это соединение в котором все записи из правой стороне операции RIGHT JOIN в запросе SQL добавляются результаты запроса даже в том случае, если нет соответствующих значений в связанном поле из левой таблицы.

Ссылки

Для получения дополнительных сведений о связях в Microsoft Access выберите раздел «Создание и проектирование таблиц» на странице справки Microsoft Access 2000 на веб-узле корпорации Майкрософт:
Справки Microsoft Access 2000
Для получения дополнительных сведений о связях в Microsoft Access нажмите кнопку Справка Microsoft Access В менюСправка Тип меню Создавать или изменять связи в поле помощника Office или мастера ответов и нажмите кнопку Поиск Чтобы просмотреть найденные разделы.

Свойства

Код статьи: 304467 - Последний отзыв: 5 июня 2011 г. - Revision: 4.0
Информация в данной статье относится к следующим продуктам.
  • Microsoft Access 2000 Standard Edition
Ключевые слова: 
kbhowto kbmt KB304467 KbMtru
Переведено с помощью машинного перевода
ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.
Эта статья на английском языке:304467

Отправить отзыв

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com