Как создать связь в access один ко многим. блог админа

Как сделать связь один ко почти всем в access 2010?

Содержание

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

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

Создание схемы данных

Создание схемы данных начинается с выполнения команды Схема данных (Relationships) в группе Отношения (Relationships) на вкладке ленты Работа с базами данных (Database Tools). В итоге выполнения данной для нас команды раскрывается окно схемы данных и диалоговое окно Добавление таблицы (Show Table), в котором осуществляется выбор таблиц, включаемых в схему (см. рис. 3.48). Диалоговое окно Добавление таблицы раскроется автоматом, ежели в базе данных еще не определена ни одна связь. Ежели окно не раскрылось, на ленте Работа со связями

блог админа

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

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

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

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

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

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

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

Связи “один ко многим”

Связь “один ко многим” – более всераспространенный вид связи. При таковой связи каждой строке таблицы А может соответствовать множество строк таблицы Б, но каждой строке таблицы Б может соответствовать лишь одна строчка таблицы А. К примеру, меж таблицами “Издатели” и “Книги” установлена связь “один ко многим”: каждый из издателей может опубликовать множество книжек, но любая книжка публикуется только одним издателем.

Читайте также  Телефон xiaomi черный экран и логотип. Xiaomi Redmi черный экран: что делать

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

В Microsoft Access сторона связи “один ко многим”, которой соответствует первичный ключ, обозначается эмблемой ключа. Сторона связи, которой соответствует наружный ключ, обозначается эмблемой бесконечности.

Связи “многие ко многим”

При установлении связи “многие ко многим” каждой строке таблицы А может соответствовать множество строк таблицы Б и напротив. Таковая связь создается при помощи третьей таблицы, именуемой соединительной, первичный ключ которой состоит из наружных ключей, связанных с таблицами А и Б. К примеру, меж таблицами “Авторы” и “Книги” установлена связь вида “многие ко многим”, задаваемая с помощью связей вида “один ко многим” меж каждой из этих таблиц и таблицей “АвторыКниг”. Первичный ключ таблицы “АвторыКниг” – это сочетание столбцов “ИД_автора” (первичного ключа таблицы авторов) и “ИД_книги” (первичного ключа таблицы заголовков).

Связи “один к одному”

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

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

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

В Microsoft Access сторона связи “один к одному”, которой соответствует первичный ключ, обозначается эмблемой ключа. Сторона связи, которой соответствует наружный ключ, также обозначается эмблемой ключа.

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

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

Создание связей “один ко многим” либо “один к одному”

Чтобы сделать связь вида “один ко многим” либо “один к одному”, воспользуйтесь приведенной ниже последовательностью действий:

  1. Закройте все открытые таблицы. Создавать либо изменять связи меж открытыми таблицами нельзя.
  2. В Access версий 2002 либо 2003 выполните указанные ниже действия.
    1. Нажмите кнопку F11, чтоб перейти в окно базы данных.
    2. В меню Сервис выберите команду Связи.

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

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

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

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

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

  7. Чтобы установить связь, нажмите клавишу Создать.
  8. Повторите деяния с 5 по 8 для каждой пары связываемых таблиц.

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

    Примечание. Создавать связи можно не лишь в таблицах, но и в запросах. При этом, но, не обеспечивается целостность данных.

Создание связей “многие ко многим”

Чтобы сделать связь вида “многие ко многим”, выполните указанные ниже действия.

  1. Создайте две таблицы, которые нужно связать отношением “многие ко многим”.
  2. Создайте третью таблицу, именуемую соединительной, и добавьте в нее поля с теми же определениями, что и поля первичных ключей в каждой из 2-ух остальных таблиц. Поля первичных ключей соединительной таблицы служат наружными ключами. В соединительную таблицу, как и в всякую другую, можно добавить и остальные поля.
  3. Задайте первичный ключ данной нам таблицы таковым образом, чтоб он включал в себя поля первичных ключей обеих главных таблиц. К примеру, первичный ключ соединительной таблицы “АвторыКниг” будет состоять из полей “ИД_заказа” и “ИД_продукта”.

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

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

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

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

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

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

  4. Установите связь вида “один ко многим” меж каждой из 2-ух основных таблиц и соединительной таблицей.

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

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

  • Связываемое поле из главной таблицы является первичным ключом либо имеет конкретный индекс.
  • Связываемые поля должны иметь однообразный тип данных. Существует два исключения. Поле типа “Счетчик” может быть соединено с числовым полем, ежели для характеристики FieldSize у него установлено значение “Длинное целое”; не считая того, можно связать поле “Счетчик” с числовым полем, ежели у их обоих для характеристики FieldSize задано значение “Код репликации”.
  • Обе таблицы принадлежат к одной и той же базе данных Microsoft Access. Ежели таблицы соединены, то они должны иметь формат Microsoft Access, а для опции целостности данных нужно открыть ту базу данных, в которой они хранятся. Обеспечить целостность данных для таблиц, находящихся в базах данных другого формата, невозможно.

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

  • Невозможно присвоить полю наружного ключа связанной таблицы значение, отсутствующее в перечне значений первичного ключа главной таблицы. При этом можно задать для наружного ключа пустое значение (Null), указав, что записи не соединены. К примеру, нельзя сделать заказ для несуществующего клиента, но можно сделать заказ, не присвоенный ни одному из клиентов, задав для поля “Клиент” пустое значение.
  • Невозможно удалить запись из главной таблицы, ежели в связанной таблице есть надлежащие ей записи. К примеру, нельзя удалить запись сотрудника из таблицы “Сотрудники”, ежели ему назначены заказы в таблице “Заказы”.
  • Невозможно поменять значение первичного ключа в главной таблице, ежели с данной записью соединены остальные записи. К примеру, нельзя поменять ИД сотрудника в таблице “Сотрудники”, ежели ему назначены заказы в таблице “Заказы”.

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

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

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

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

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

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

Ниже перечислены имеющиеся типы соединений.

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

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

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

Редактировалось Дата:

Читайте также  Кроссворд на тему excel с ответами. Сборник кроссвордов по теме MS Excel

Оставьте комментарий