Для чего связывают таблицы

Руководство по межтабличным связям

Одной из целей создания хорошей структуры базы данных является устранение избыточности (повторения) данных. Для этого нужно распределить данные по нескольким отдельным тематически организованным таблицам, чтобы каждый факт был представлен один раз. В приложении Access будет предоставлен способ сбора разбросанных данных — это делается путем помещения общих полей в связанные таблицы. Чтобы корректно выполнить это действие, нужно понять взаимосвязи между таблицами и описать эти взаимосвязи в базе данных.

В этой статье

Введение

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

Для чего связывают таблицы. Смотреть фото Для чего связывают таблицы. Смотреть картинку Для чего связывают таблицы. Картинка про Для чего связывают таблицы. Фото Для чего связывают таблицы

1. Эта форма содержит данные из таблицы клиентов,

4. и сведений о заказах.

Имя клиента в поле Плательщик получено из таблицы «Клиенты», значения кода заказа и даты заказа — из таблицы «Заказы», наименование товара — из таблицы «Товары», а цена и количество — из таблицы «Заказано». Чтобы можно было передать данные в форму, эти таблицы связаны друг с другом несколькими способами.

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

Для чего связывают таблицы. Смотреть фото Для чего связывают таблицы. Смотреть картинку Для чего связывают таблицы. Картинка про Для чего связывают таблицы. Фото Для чего связывают таблицы

1. Поле «Код сотрудника» отображается в двух таблицах: как первичный ключ.

2. и как внешний ключ.

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

В Access есть три типа связей между таблицами.

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

Чтобы создать отношение «один-ко-многим» в структуре базы данных, добавьте первичный ключ на стороне «один» в таблицу на стороне «многие» в виде дополнительного поля или полей. В данном примере необходимо добавить новое поле — поле «Код» из таблицы «Клиенты» — в таблицу «Заказы» и назвать его «Код клиента». После этого Access сможет использовать номер «Код клиента» из таблицы «Заказы» для поиска клиента каждого заказа.

Рассмотрим связь между таблицами «Товары» и «Заказы». Отдельный заказ может включать несколько товаров. С другой стороны, один товар может входить в несколько заказов. Таким образом, для каждой записи в таблице «Заказы» может существовать несколько записей в таблицы «Товары». Таким образом, для каждой записи в таблице «Заказы» может существовать несколько записей в таблице «Заказы». Эта связь называется отношением «многие-ко-многим». Обратите внимание, что для определения существующей схемы отношений «многие ко многим» между вашими таблицами, очень важно рассматривать обе стороны отношений.

Чтобы представить связь «многие-ко-многим», нужно создать третью (связующую) таблицу, в которой она разбивается на две связи «один-ко-многим». Первичные ключи двух таблиц вставляются в третью таблицу. В результате в третьей таблице сохраняются все экземпляры связи. Например, таблицы «Заказы» и «Продукты» имеют связь «многие-ко-многим», определяемую путем создания двух связей «один-ко-многим» в таблице «Заказано». В одном заказе может быть много продуктов, и каждый продукт может быть указан во многих заказах.

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

Зачем создавать связи между таблицами?

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

Связи между таблицами предоставляют сведения для структурирования запросов

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

Связи между таблицами предоставляют сведения для структурирования форм и отчетов

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

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

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

Понятие о целостности данных

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

Предположим, между таблицами «Грузоотправители» и «Заказы» существует связь «один-ко-многим», и нужно удалить грузоотправителя. Если у грузоотправителя, которого нужно удалить, есть заказы в таблице «Заказы, они станут потерянными записями после удаления записи грузоотправителя. В таблице «Заказы» останется код грузоотправителя, но он будет недействителен, поскольку запись, на которую он ссылается, уже не существует.

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

Обеспечение целостности данных включается для конкретного отношения между таблицами. После активации, Access будет отклонять любые операции, нарушающие целостность данных для этой межтабличной связи. Это означает, что Access будет отклонять как любые обновления, изменяющие целевой объект ссылки, так и удаление такого целевого объекта. Возможно, у вас может быть полностью допустимая потребность в изменении первичного ключа для поставщика, у которого есть заказы в таблице «Заказы». В этом случае необходимо, чтобы Access выполнил автоматическое обновление всех задействованных строк в рамках одной операции. Таким образом, Access гарантирует, что обновление будет полностью завершено, а база данных не будет находиться в несогласованном состоянии, когда некоторые строки обновлены, а другие — нет. Для этого в Access имеется параметр Каскадное удаление связанных записей. Если при включении обеспечения целостности данных был включен параметр Каскадное удаление связанных полей, то при последующем обновлении первичного ключа Access автоматически обновляет все связанные с ним поля.

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

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

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

Вызов окна «Схема данных»

Щелкните «Файл», выберите«Открыть», а затем выберите и откройте базу данных.

На вкладке Работа с базами данных в группе Отношения нажмите кнопку Схема данных.

На вкладке Конструктор в группе Связи нажмите кнопку Все связи.

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

Связь между таблицами представляется как линия между таблицами в окне «Схема данных». Связь, не обеспечивающая целостность данных, отображается как тонкая линия между общими полями, поддерживающими связь. Если выбрать связь, щелкнув линию, то линия станет жирной. Если обеспечить целостность данных для этой связи, линия станет толще на концах. Кроме того, над жирной частью линии с одной стороны связи будет отображаться цифра 1, а с другой стороны — символ бесконечности ( ∞).

Когда открыто окно «Схема данных», на ленте доступны указанные ниже команды.

На вкладке Конструктор в группе Сервис

На вкладке Конструктор в группе Отношения

Добавление таблиц (добавление таблицы в Access 2013 Позволяет показывать в окне «Отношения» выбор таблиц.

Источник

Связывание таблиц

Вы будете перенаправлены на Автор24

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

Многими СУБД при связывании таблиц выполняется автоматический контроль целостности данных, которые вводят в БД, согласно установленным связям. В результате повышается достоверность информации, которая хранится в базе данных.

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

Основные виды связи таблиц

Между таблицами можно устанавливать бинарные (связь двух таблиц), тернарные (связь трех таблиц) и $n$-арные связи.

Чаще всего встречаются бинарные связи.

При связи двух таблиц выделяется основная и дополнительная (подчиненная) таблица. Логическое связывание таблиц происходит при помощи ключа связи.

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

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

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

В зависимости от того, как соотнесены ключевые поля и поля связи, в общем случае между двумя таблицами могут быть установлены 4 основные вида связи:

Готовые работы на аналогичную тему

Связь вида 1:1

Связь 1:1 создается, если все поля связи основной и дополнительной таблиц – ключевые.

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

Пусть существует основная О и дополнительная Д таблицы. Символом «$*$» обозначим ключевые поля, символом «$+$» обозначим поля, которые используются для связи.

В таблицах совпадают значения в полях связи, поэтому будут связаны запись (а, 10) таблицы О и запись (а, стол) таблицы Д, а также запись (в, 3) и (в, книга).

На практике связь 1:1 используется довольно редко, т.к. информацию, которая хранится в двух таблицах, можно объединить в одну таблицу, которая будет занимать намного меньше места в памяти компьютера.

Например, если объединить запись (а, 10) таблицы О и запись (а, стол) таблицы Д, то получим запись (а, 10, стол) новой псевдотаблицы.

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

Связь вида 1:М

Связь 1:М создается, если одной записи основной таблицы соответствуют более одной записи вспомогательной таблицы.

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

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

Если сопоставить записи таблиц по полю Код, то получим новые псевдозаписи. Например, псевдозапись (a, CD-ROM, Acer, да).

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

Связь вида М:1

Связь М:1 создается, если нескольким записям основной таблицы соответствует одна запись дополнительной таблицы.

Рассмотрим связанные таблицы О и Д.

При связывании этих таблиц обеспечивается установление такого соответствия между записями, которое приводит к образованию новых псевдозаписей. Например, (деталь 1, чугун, марка1, 1.04.2016, 150), (деталь 1, чугун, марка2, 1.04.2016, 150) и т.д.

Связь вида М:М

Связь М:М возникает, если несколько записей дополнительной таблицы соответствуют нескольким записям основной таблицы.

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

Источник

Зачем нужны связи между таблицами в Power BI

О продвинутых техниках в Power BI есть много статей. Однако об основах работы с этим инструментом информации гораздо меньше. Закрываем эти пробелы.

Для чего связывают таблицы. Смотреть фото Для чего связывают таблицы. Смотреть картинку Для чего связывают таблицы. Картинка про Для чего связывают таблицы. Фото Для чего связывают таблицы

Для чего связывают таблицы. Смотреть фото Для чего связывают таблицы. Смотреть картинку Для чего связывают таблицы. Картинка про Для чего связывают таблицы. Фото Для чего связывают таблицы

Для чего связывают таблицы. Смотреть фото Для чего связывают таблицы. Смотреть картинку Для чего связывают таблицы. Картинка про Для чего связывают таблицы. Фото Для чего связывают таблицы

Руководитель отдела маркетинга интерактивного агентства «Космос-Веб».

Аналитик-визуализатор. Любит маму, гардемаринов и BI-системы, сторонник автоматизации процессов. Адепт систематизации и структуризации — иногда пугает неокрепшие души словами Agile и Scrum.

Опираясь на подробный разбор зарубежного портала RADACAD Blog и дополнив его собственным опытом, я хочу рассказать о о связях (Relationships) между таблицами. Мы выясним, что такое связи, зачем они нужны и как с ними работать.

Что такое связи в Power BI?

Давайте рассмотрим на примере. Предположим, у нас есть таблица с информацией о магазинах, и мы хотим проанализировать ее в Power BI. Таблица выглядит следующим образом:

Для чего связывают таблицы. Смотреть фото Для чего связывают таблицы. Смотреть картинку Для чего связывают таблицы. Картинка про Для чего связывают таблицы. Фото Для чего связывают таблицы

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

Для чего связывают таблицы. Смотреть фото Для чего связывают таблицы. Смотреть картинку Для чего связывают таблицы. Картинка про Для чего связывают таблицы. Фото Для чего связывают таблицы

Как видим, данный отчет фильтрует таблицу и наглядно отображает количество записей для каждого штата. Вот визуализация этого фильтра в таблице:

Для чего связывают таблицы. Смотреть фото Для чего связывают таблицы. Смотреть картинку Для чего связывают таблицы. Картинка про Для чего связывают таблицы. Фото Для чего связывают таблицы

А что, если у меня больше одной таблицы?

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

Для чего связывают таблицы. Смотреть фото Для чего связывают таблицы. Смотреть картинку Для чего связывают таблицы. Картинка про Для чего связывают таблицы. Фото Для чего связывают таблицы

Чтобы изучить, как работают связи, я рекомендую вам отключить (на время!) автоопределение связей в Power BI. Делается это следующим образом (я обычно использую англоязычную версию, поэтому скрины все будут на английском):

Для чего связывают таблицы. Смотреть фото Для чего связывают таблицы. Смотреть картинку Для чего связывают таблицы. Картинка про Для чего связывают таблицы. Фото Для чего связывают таблицы

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

Для чего связывают таблицы. Смотреть фото Для чего связывают таблицы. Смотреть картинку Для чего связывают таблицы. Картинка про Для чего связывают таблицы. Фото Для чего связывают таблицы

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

Для чего связывают таблицы. Смотреть фото Для чего связывают таблицы. Смотреть картинку Для чего связывают таблицы. Картинка про Для чего связывают таблицы. Фото Для чего связывают таблицы

Данный отчет похож на предыдущий, и если теперь раскрасить нашу таблицу с учетом фильтра, то получим:

Для чего связывают таблицы. Смотреть фото Для чего связывают таблицы. Смотреть картинку Для чего связывают таблицы. Картинка про Для чего связывают таблицы. Фото Для чего связывают таблицы

Построим визуализацию по продажам в каждом из штатов:

Для чего связывают таблицы. Смотреть фото Для чего связывают таблицы. Смотреть картинку Для чего связывают таблицы. Картинка про Для чего связывают таблицы. Фото Для чего связывают таблицы

Наблюдаем странную картину: в каждом штате продано по 493 книги. Кажется, что-то пошло не так. Фильтр не работает так, как должен. Произошло это потому, что в таблице по продажам нет информации по штату, но есть ID магазина.

Для чего связывают таблицы. Смотреть фото Для чего связывают таблицы. Смотреть картинку Для чего связывают таблицы. Картинка про Для чего связывают таблицы. Фото Для чего связывают таблицы

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

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

Для чего связывают таблицы. Смотреть фото Для чего связывают таблицы. Смотреть картинку Для чего связывают таблицы. Картинка про Для чего связывают таблицы. Фото Для чего связывают таблицы

Давайте рассмотрим пример:

Для чего связывают таблицы. Смотреть фото Для чего связывают таблицы. Смотреть картинку Для чего связывают таблицы. Картинка про Для чего связывают таблицы. Фото Для чего связывают таблицы

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

Для чего связывают таблицы. Смотреть фото Для чего связывают таблицы. Смотреть картинку Для чего связывают таблицы. Картинка про Для чего связывают таблицы. Фото Для чего связывают таблицы

Таким образом получается, что мы можем связать обе таблицы с помощью столбца stor_id.

Связи (Relationships)

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

Для чего связывают таблицы. Смотреть фото Для чего связывают таблицы. Смотреть картинку Для чего связывают таблицы. Картинка про Для чего связывают таблицы. Фото Для чего связывают таблицы

После этого действия должна появиться линия между обеими таблицами. Она означает связь между ними.

Для чего связывают таблицы. Смотреть фото Для чего связывают таблицы. Смотреть картинку Для чего связывают таблицы. Картинка про Для чего связывают таблицы. Фото Для чего связывают таблицы

Разные названия

Как я уже написал, оба столбца могут иметь одинаковые имена, что и позволяет системе автоматически обнаруживать связи между таблицами. Ранее мы отключили данную функцию, чтобы сделать процесс нагляднее. По умолчанию в Power BI данная опция включена, и связь между таблицами по полю stor_id построилась бы без вашего участия.

Источник

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

Office 365 ProPlus переименован в Майкрософт 365 корпоративные приложения. Для получения дополнительной информации об этом изменении прочитайте этот блог.

Оригинальный номер КБ: 304466

Аннотация

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

Что такое связи между таблицами?

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

Лучшим решением является хранение информации издателя только один раз, в отдельной таблице, которую мы будем называть «Издатели». Затем вы поместите указатель в таблице «Названия», которая ссылается на запись в таблице «Издатели».

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

Логические связи в базе данных позволяют эффективно запрашивать данные и создавать отчеты.

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

Связь работает путем сопоставления данных в ключевых столбцах, обычно столбцах (или полях), которые имеют одно и то же имя в обеих таблицах. В большинстве случаев связь соединяет основной ключ или уникальный столбец идентификатора для каждой строки, от одной таблицы к полю в другой таблице. Колонка в другой таблице называется «внешний ключ». Например, если вы хотите отслеживать продажи каждого названия книги, создайте связь между основным ключевым столбцом (назовем его title_ID) в таблице «Названия» и столбцом в таблице «Продажи», который называется title_ID. Столбец title_ID в таблице «Продажи» является внешним ключом.

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

Связи «один ко многим»

Связь «один ко многим» являются наиболее распространенным типом связи. В такого рода связях строка в таблице А может иметь много строк в таблице B. Но строка в таблице B может иметь только одну строку в таблице А. Например, таблицы «Издатели» и «Названия» имеют связь «один ко многим». То есть, каждый издатель выпускает много названий. Но каждое название принадлежит только одному издателю.

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

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

Для чего связывают таблицы. Смотреть фото Для чего связывают таблицы. Смотреть картинку Для чего связывают таблицы. Картинка про Для чего связывают таблицы. Фото Для чего связывают таблицы

Связи «многие ко многим»

В связи «многие ко многим» строка в таблице А может иметь много совпадающих строк в таблице B, и наоборот. Вы создаете такую связь, определяя третью таблицу, которая называется промежуточной таблицей. Первичный ключ промежуточной таблицы состоит из внешних ключей как таблицы А, так и таблицы B. Например, таблица «Авторы» и таблица «Названия» имеют связь «многие ко многим», которая определяется связью «один ко многим» из каждой из этих таблиц к таблице «TitleAuthors». Первичным ключом таблицы «TitleAuthors» является комбинация столбца au_ID (первичный ключ таблицы «Authors») и столбца title_ID (первичный ключ таблицы «Titles»).

Для чего связывают таблицы. Смотреть фото Для чего связывают таблицы. Смотреть картинку Для чего связывают таблицы. Картинка про Для чего связывают таблицы. Фото Для чего связывают таблицы

Связи «один к одному»

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

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

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

Как определить связи между таблицами

При создании связи между таблицами связанные поля не должны иметь одни и те же имена. Однако связанные поля должны иметь один и тот же тип данных, если только поле первичного ключа не является полем AutoNumber. Вы можете сопоставить поле AutoNumber с полем Number, только если свойство FieldSize обоих совпадающих полей совпадает. Например, можно сопоставить поле AutoNumber и поле Number, если свойство theFieldSizeproperty обоих полей имеет значение Long Integer. Даже если оба совпадающих поля являются числовыми полями, они должны иметь параметр sameFieldSizeproperty.

Как определить связи «один ко многим» или «один к одному»

Чтобы создать связь «один ко многим» или «один к одному», выполните следующие действия.

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

В Access 2002 и Access 2003 выполните следующие действия.

В Access 2007, Access 2010 или Access 2013 нажмите Связи в группе Показать/Скрыть на вкладке Инструменты базы данных.

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

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

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

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

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

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

Нажмите кнопку Создать, чтобы создать связь.

Повторите шаги с 4 по 7 для каждой пары таблиц, которые вы хотите связать.

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

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

Как определить связь «многие ко многим»

Чтобы создать связь «многие ко многим», выполните следующие действия.

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

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

В связующей таблице установите первичный ключ, чтобы включить основные ключевые поля из двух других таблиц. Например, в связующей таблице «TitleAuthors» первичный ключ будет состоять из полей OrderID и ProductID.

Чтобы создать первичный ключ, выполните следующие действия:

Откройте таблицу в Конструкторе.

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

В Access 2002 или в Access 2003 нажмите на Первичный ключ на панели инструментов.

В Access 2007 нажмите на Первичный ключ в группе Инструменты на вкладке Дизайн.

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

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

Целостность данных

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

При использовании целостности данных применяются следующие правила:

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

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

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

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

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

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

Существует три основных типа соединения: Вы можете увидеть их на следующем снимке экрана:

Для чего связывают таблицы. Смотреть фото Для чего связывают таблицы. Смотреть картинку Для чего связывают таблицы. Картинка про Для чего связывают таблицы. Фото Для чего связывают таблицы

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

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

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

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *