Общие отношения между таблицами в Microsoft Office Access
Обновлено: 21.11.2024
Designer for Microsoft Access
Создавайте сложные базы данных MS Access, не будучи экспертом в проектировании реляционных баз данных! Designer for Microsoft Access задает простые вопросы о том, чем вы хотите управлять с помощью базы данных, и автоматически создает таблицы и связи. Доступна бесплатная пробная версия
Проектирование реляционной базы данных
Идентификация взаимосвязей между таблицами базы данных
Одно из огромных преимуществ реляционной базы данных заключается в том, что, разместив данные в четко определенных компактных таблицах, вы можете связать или связать данные, хранящиеся в разных таблицах. Существует три типа отношений между данными, с которыми вы, вероятно, столкнетесь на этом этапе проектирования: один-к-одному, один-ко-многим и многие-ко-многим. Чтобы иметь возможность идентифицировать эти отношения, вам необходимо изучить данные и понять, какие бизнес-правила применяются к данным и таблицам. Если вы не уверены, может быть полезно встретиться с кем-то, кто хорошо разбирается в данных.
При анализе взаимосвязей между таблицами нужно смотреть на взаимосвязь с обеих сторон (немного похоже на семейное консультирование, не так ли?). При создании связей между таблицами вы всегда работаете с двумя таблицами одновременно. Одна таблица называется основной или родительской таблицей, а другая — связанной или дочерней таблицей.
Отношения «один к одному»
Отношение один к одному (1:1) означает, что каждая запись в таблице А относится к одной и только одной записи в таблице Б, а каждая запись в таблице Б относится к одна и только одна запись в таблице A. Посмотрите на следующий пример таблиц из базы данных сотрудников компании:
EmployeeID | Имя | Фамилия | Адрес | Город | Штат | Почтовый индекс |
---|---|---|---|---|---|---|
EN1-10 | Кэрол | Шааф | < td>2306 Palisade Ave.Юнион-Сити | Нью-Джерси | 07087 | |
EN1-12 td> | Гейл | Мюррей | 1855 Бродвей | Нью-Йорк | Нью-Йорк | 12390 td> |
EN1-15 | Стив | Баранко | Форрест-стрит, 742 | Кирни | Нью-Джерси | 07032 |
EN1-16 | Кристин | Рачич< /td> | 416 Bloomfield St. | Хобокен | Нью-Джерси | 07030 |
EN1- 19 | Барбара | Зумбо | 24 Central Ave. | Ричфилд Парк | Нью-Джерси | < td>07660|
EN1-20 | Даниэль | Гордон | ул. Анжелика, 2 | Уихокен | Нью-Джерси | 07087 |
EN1-22 | Жаклин | Заклепка | 3600 Бергелин А ve. | Юнион-Сити | Нью-Джерси | 07087 |
EN1-23 | Бетси | Росильн | 1800 Boulevard East | Уихокен | Нью-Джерси | 07086 | tr>
EN1-25 | Уилл | Стрик | 2100 91st St. | Северный Берген | Нью-Джерси | 07047 |
EN1-26 | Сьюзен | Ship | 240 Fifth Ave. | Нью-Йорк | NY | 10018 |
EmployeeID | Ставка заработной платы |
---|---|
EN1-10 | $25,00 |
EN1-12 | 27,50$ |
EN1-15 | 20,00$ |
EN1-16 | 19,00$ |
EN1-19 | 22,75$ |
EN1-20 | 23,00$ |
EN1-22 | 22,50$ |
EN1-23 | 19,50$ |
EN1-25 | 12,50$ |
EN1-26 | 14,00 долларов США |
Вверху таблицы со связью один к одному из базы данных информации о сотрудниках
Каждая запись в Личной таблице относится к одному сотруднику. Эта запись относится к одной и только одной записи в таблице расчета заработной платы. Каждая запись в таблице «Заработная плата» относится к одной и только одной записи в личной таблице. (Вот что значит смотреть на него с двух сторон.)
В отношении "один к одному" любая таблица может считаться основной или родительской.
Отношение "один ко многим"
Отношение один ко многим (1:N) означает, что запись в таблице A может относиться к нулю, одной или нескольким записям в таблице B. Многие записи в таблице B могут относиться к одна запись в таблице A. Важна взаимосвязь потенциал; для одной записи в таблице A может не быть связанных записей в таблице B или может быть только одна связанная запись, но их может быть много. Посмотрите на следующие таблицы о клиентах и заказах компании.
Вверху таблицы с данными о клиентах и заказах, которые имеют отношение "один ко многим"
В таблице "Клиенты" содержится уникальная запись для каждого клиента. Каждый клиент может (и, мы надеемся, делает) сделать много заказов.Многие записи в таблице «Заказы» могут относиться только к одной записи в таблице «Клиенты». Это отношение "один ко многим" (1:N) между таблицами "Клиенты" и "Заказы".
В отношении "один ко многим" таблица на одной стороне отношения является основной таблицей, а таблица на стороне многих – связанной таблицей.
Связь "один ко многим" — это наиболее распространенная связь между таблицами в реляционной базе данных. Ниже приведен пример формы, используемой в базе данных для отображения данных из двух таблиц с отношением "один ко многим".
Форма, отображающая данные из таблиц с отношением "один ко многим"
Отношение "многие ко многим"
Изучите пример данных ниже. Эти таблицы содержат данные о сотрудниках и проектах, на которые они назначены. В каждом проекте может участвовать более одного сотрудника, и каждый сотрудник может работать более чем над одним проектом («делать больше с меньшими затратами»). Это представляет собой отношение многие ко многим (N:N).
Вверху таблицы со связью "многие ко многим"
Большинство СУБД не поддерживают отношения "многие ко многим".
Вы узнаете, как управлять отношениями базы данных этого типа, в статье "Отношения "многие ко многим"".
Связи – это установленные связи между двумя или более таблицами. Отношения основаны на общих полях из нескольких таблиц, часто с использованием первичных и внешних ключей.
Первичный ключ – это поле (или поля), которое используется для уникальной идентификации каждой записи в таблице. К первичному ключу предъявляются три требования: он не может быть пустым, он должен быть уникальным и для каждой таблицы может быть определен только один ключ. Вы можете определить первичный ключ либо путем создания индекса первичного ключа после создания таблицы, либо с помощью предложения CONSTRAINT в объявлении таблицы, как показано в примерах далее в этом разделе. Ограничение ограничивает (или ограничивает) значения, которые вводятся в поле.
Внешний ключ – это поле (или поля) в одной таблице, которое ссылается на первичный ключ в другой таблице. Данные в полях обеих таблиц абсолютно одинаковы, и таблица с записью первичного ключа (первичная таблица) должна иметь существующие записи, прежде чем таблица с записью внешнего ключа (внешняя таблица) будет иметь совпадающие или связанные записи. Как и первичные ключи, внешние ключи можно определить в объявлении таблицы с помощью предложения CONSTRAINT.
В основном существует три типа отношений:
Один к одному Для каждой записи в основной таблице существует одна и только одна запись во внешней таблице.
Один ко многим Для каждой записи в основной таблице существует одна или несколько связанных записей во внешней таблице.
Многие ко многим Для каждой записи в основной таблице существует множество связанных записей во внешней таблице, а для каждой записи во внешней таблице существует множество связанных записей в основной таблице.
Например, предположим, что вы хотите добавить таблицу счетов в базу данных счетов. Каждый клиент в вашей таблице клиентов может иметь много счетов в таблице счетов — это классический сценарий «один ко многим». Вы можете взять первичный ключ из таблицы клиентов и определить его как внешний ключ в таблице счетов, тем самым установив правильную связь между таблицами.
При определении отношений между таблицами вы должны сделать объявления CONSTRAINT на уровне поля. Это означает, что ограничения определены в операторе CREATE TABLE. Чтобы применить ограничения, используйте ключевое слово CONSTRAINT после объявления поля, назовите ограничение, назовите таблицу, на которую оно ссылается, и назовите поле или поля в этой таблице, которые составят соответствующий внешний ключ.
В следующем операторе предполагается, что таблица tblCustomers уже создана и первичный ключ для нее определен в поле CustomerID. Оператор теперь строит таблицу tblInvoices, определяя ее первичный ключ в поле InvoiceID. Он также создает отношение «один ко многим» между таблицами tblCustomers и tblInvoices, определяя другое поле CustomerID в таблице tblInvoices. Это поле определяется как внешний ключ, который ссылается на поле CustomerID в таблице клиентов. Обратите внимание, что имя каждого ограничения следует за ключевым словом CONSTRAINT.
Обратите внимание, что индекс первичного ключа (PK_InvoiceID) для таблицы инвойсов объявляется в операторе CREATE TABLE. Для повышения производительности первичного ключа для него автоматически создается индекс, поэтому нет необходимости использовать отдельный оператор CREATE INDEX. Теперь создайте таблицу доставки, которая будет содержать адрес доставки каждого клиента. Предположим, что для каждой записи о клиенте будет только одна запись о доставке, поэтому вы будете устанавливать отношение один к одному.
Обратите внимание, что поле CustomerID является как первичным ключом для таблицы доставки, так и ссылкой внешнего ключа на таблицу клиентов.
Ограничения
Ограничения можно использовать для установки первичных ключей и ссылочной целостности, а также для ограничения значений, которые можно вставлять в поле. Как правило, ограничения можно использовать для сохранения целостности и согласованности данных в базе данных.
Существует два типа ограничений: ограничение на уровне одного поля или поля и ограничение на уровне нескольких полей или таблицы. Оба вида ограничений можно использовать как в операторе CREATE TABLE, так и в операторе ALTER TABLE.
Ограничение для одного поля, также известное как ограничение на уровне столбца, объявляется вместе с самим полем после объявления поля и типа данных. Используйте таблицу клиентов и создайте первичный ключ с одним полем в поле CustomerID. Чтобы добавить ограничение, используйте ключевое слово CONSTRAINT с именем поля.
Обратите внимание, что указано имя ограничения. Вы можете использовать ярлык для объявления первичного ключа, который полностью опускает предложение CONSTRAINT.
Однако использование сокращенного метода приведет к тому, что Access будет случайным образом генерировать имя для ограничения, что затруднит ссылку на него в коде. Рекомендуется всегда называть свои ограничения.
Чтобы удалить ограничение, используйте предложение DROP CONSTRAINT с оператором ALTER TABLE и укажите имя ограничения.
Ограничения также можно использовать для ограничения допустимых значений поля. Вы можете ограничить значения значениями NOT NULL или UNIQUE или определить проверочное ограничение, представляющее собой тип бизнес-правила, которое можно применить к полю. Предположим, что вы хотите ограничить (или ограничить) значения полей имени и фамилии уникальными, что означает, что никогда не должно быть комбинации имени и фамилии, одинаковой для любых двух записей в таблице. Поскольку это ограничение для нескольких полей, оно объявляется на уровне таблицы, а не на уровне поля. Используйте предложение ADD CONSTRAINT и определите список из нескольких полей.
Проверочное ограничение — это мощная функция SQL, позволяющая добавить проверку данных в таблицу путем создания выражения, которое может ссылаться на одно поле или несколько полей в одной или нескольких таблицах. Предположим, вы хотите убедиться, что суммы, введенные в запись счета-фактуры, всегда превышают 0,00 долларов США. Для этого используйте проверочное ограничение, объявив ключевое слово CHECK и выражение проверки в предложении ADD CONSTRAINT инструкции ALTER TABLE.
Выражение, используемое для определения проверочного ограничения, также может ссылаться на несколько полей в той же таблице или на поля в других таблицах и может использовать любые операции, допустимые в Access SQL, такие как операторы SELECT, математические операторы. и агрегатные функции. Выражение, определяющее проверочное ограничение, может содержать не более 64 символов.
Предположим, что вы хотите проверить кредитный лимит каждого клиента, прежде чем он будет добавлен в таблицу клиентов. Используя оператор ALTER TABLE с предложениями ADD COLUMN и CONSTRAINT, создайте ограничение, которое будет искать значение в таблице CreditLimit для проверки кредитного лимита клиента. Используйте следующие операторы SQL, чтобы создать таблицу tblCreditLimit, добавить поле CustomerLimit в таблицу tblCustomers, добавить проверочное ограничение в таблицу tblCustomers и протестировать проверочное ограничение.
Обратите внимание, что когда вы выполняете оператор UPDATE TABLE, вы получаете сообщение о том, что обновление не удалось, так как оно нарушает ограничение проверки. Если вы обновите поле CustomerLimit до значения, равного или меньше 100, обновление пройдет успешно.
Поддержка и обратная связь
Есть вопросы или отзывы об Office VBA или этой документации? См. раздел Поддержка и отзывы об Office VBA, чтобы узнать, как получить поддержку и оставить отзыв.
Office 365 профессиональный плюс переименовывается в Приложения Microsoft 365 для предприятий. Для получения дополнительной информации об этом изменении прочитайте эту запись в блоге.
Исходный номер базы знаний: 304466
Новичок: требуется знание пользовательского интерфейса на однопользовательских компьютерах. Эта статья относится только к базе данных Microsoft Access (.mdb или .accdb).
Обзор
В этой статье описывается, как определить связи в базе данных Microsoft Access. Статья включает следующие темы:
- Что такое отношения между таблицами?
- Виды связей между таблицами
- Отношения "один ко многим"
- Отношения "многие ко многим"
- Отношения "один к одному"
- Как определить отношение "один ко многим" или "один к одному"
- Как определить отношение "многие ко многим"
Что такое отношения между таблицами?
В реляционной базе данных связи позволяют предотвратить появление избыточных данных. Например, если вы разрабатываете базу данных, которая будет отслеживать информацию о книгах, у вас может быть таблица с именем «Названия», в которой хранится информация о каждой книге, такая как название книги, дата публикации и издатель.Существует также информация об издателе, которую вы, возможно, захотите сохранить, например, номер телефона издателя, адрес и почтовый индекс/почтовый индекс. Если бы вы хранили всю эту информацию в таблице «Заголовки», номер телефона издателя дублировался бы для каждого печатаемого издателем названия.
Лучшее решение — сохранить информацию об издателе только один раз в отдельной таблице, которую мы назовем "Издатели". Затем вы поместите указатель в таблицу «Заголовки», который ссылается на запись в таблице «Издатели».
Чтобы обеспечить синхронизацию данных, можно обеспечить ссылочную целостность между таблицами. Отношения ссылочной целостности помогают убедиться, что информация в одной таблице соответствует информации в другой. Например, каждое название в таблице «Названия» должно быть связано с конкретным издателем в таблице «Издатели». Название не может быть добавлено в базу данных для издателя, который не существует в базе данных.
Логические связи в базе данных позволяют эффективно запрашивать данные и создавать отчеты.
Виды связей между таблицами
Связь работает путем сопоставления данных в ключевых столбцах, обычно столбцах (или полях), имеющих одинаковые имена в обеих таблицах. В большинстве случаев отношение связывает первичный ключ или столбец уникального идентификатора для каждой строки из одной таблицы с полем в другой таблице. Столбец в другой таблице известен как «внешний ключ». Например, если вы хотите отслеживать продажи каждого названия книги, вы создаете связь между столбцом первичного ключа (назовем его title_ID) в таблице «Названия» и столбцом в таблице «Продажи» с именем title_ID. Столбец title_ID в таблице "Продажи" является внешним ключом.
Существует три вида отношений между таблицами. Тип создаваемой связи зависит от того, как определены связанные столбцы.
Отношения "один ко многим"
Связь "один ко многим" является наиболее распространенным типом связи. В связи такого типа строка в таблице A может иметь много совпадающих строк в таблице B. Но строка в таблице B может иметь только одну совпадающую строку в таблице A. Например, таблицы «Publishers» и «Titles» имеют отношение один ко многим. То есть каждое издательство выпускает множество наименований. Но каждое название исходит только от одного издателя.
Связь "один ко многим" создается, если только один из связанных столбцов является первичным ключом или имеет уникальное ограничение.
В окне отношения в Access сторона первичного ключа отношения "один ко многим" обозначается цифрой 1. Сторона внешнего ключа отношения обозначается символом бесконечности.
Отношения "многие ко многим"
В отношении "многие ко многим" строка в таблице A может иметь много совпадающих строк в таблице B, и наоборот. Вы создаете такую связь, определяя третью таблицу, которая называется соединительной таблицей. Первичный ключ соединительной таблицы состоит из внешних ключей как из таблицы A, так и из таблицы B. Например, таблицы «Авторы» и таблицы «Заголовки» имеют отношение «многие ко многим», которое определяется отношением «один ко многим». -множество связей каждой из этих таблиц с таблицей "TitleAuthors". Первичный ключ таблицы "TitleAuthors" представляет собой комбинацию столбца au_ID (первичный ключ таблицы "Authors") и столбца title_ID (первичный ключ таблицы "Titles").
Отношения "один к одному"
В связи "один к одному" строка в таблице A может иметь не более одной совпадающей строки в таблице B, и наоборот. Связь "один к одному" создается, если оба связанных столбца являются первичными ключами или имеют уникальные ограничения.
Такого рода отношения не распространены, потому что большая часть информации, которая связана таким образом, будет находиться в одной таблице. Вы можете использовать отношение "один к одному" для выполнения следующих действий:
- Разделить таблицу на несколько столбцов.
- Изолировать часть таблицы из соображений безопасности.
- Хранить недолговечные данные, которые можно легко удалить, удалив таблицу.
- Хранить информацию, которая относится только к подмножеству основной таблицы.
В Access сторона первичного ключа отношения "один к одному" обозначается символом ключа. Сторона внешнего ключа также обозначается символом ключа.
Как определить отношения между таблицами
При создании связи между таблицами связанные поля не обязательно должны иметь одинаковые имена.Однако связанные поля должны иметь один и тот же тип данных, если полем первичного ключа не является поле автонумерации. Вы можете сопоставить поле AutoNumber с числовым полем, только если свойствоFieldSize обоих совпадающих полей одинаково. Например, можно сопоставить поле «Счетчик» и поле «Число», если свойство «Размер поля» обоих полей имеет значение «Длинное целое». Даже если оба совпадающих поля являются числовыми, они должны иметь одинаковую настройку свойстваFieldSize.
Как определить отношение "один ко многим" или "один к одному"
Чтобы создать связь "один ко многим" или "один к одному", выполните следующие действия:
Закрыть все таблицы. Вы не можете создавать или изменять отношения между открытыми таблицами.
В Access 2002 или Access 2003 выполните следующие действия:
- Нажмите F11, чтобы переключиться в окно базы данных.
- В меню "Инструменты" нажмите "Взаимосвязи".
В Access 2007, Access 2010 или Access 2013 нажмите "Отношения" в группе "Показать/скрыть" на вкладке "Инструменты для баз данных".
Если вы еще не определили какие-либо отношения в своей базе данных, диалоговое окно "Показать таблицу" отображается автоматически. Если вы хотите добавить таблицы, которые хотите связать, но диалоговое окно «Показать таблицу» не появляется, нажмите «Показать таблицу» в меню «Связи».
Дважды щелкните имена таблиц, которые вы хотите связать, а затем закройте диалоговое окно "Показать таблицу". Чтобы создать связь между таблицей и самой собой, добавьте эту таблицу два раза.
Перетащите поле, которое вы хотите связать, из одной таблицы в связанное поле в другой таблице. Чтобы перетащить несколько полей, нажмите клавишу CTRL, щелкните каждое поле и перетащите их.
В большинстве случаев вы перетаскиваете поле первичного ключа (это поле отображается полужирным шрифтом) из одной таблицы в аналогичное поле (это поле часто имеет то же имя), которое называется внешним ключом в другой таблице.< /p>
Появится диалоговое окно "Редактировать отношения". Убедитесь, что имена полей, отображаемые в двух столбцах, верны. При необходимости вы можете изменить имена.
Задайте параметры отношений, если это необходимо. Если вам нужна информация об определенном элементе в диалоговом окне «Редактировать отношения», нажмите кнопку со знаком вопроса, а затем щелкните элемент. (Эти параметры будут подробно описаны далее в этой статье.)
Нажмите «Создать», чтобы создать связь.
Повторите шаги с 4 по 7 для каждой пары таблиц, которые вы хотите связать.
Когда вы закрываете диалоговое окно "Редактировать отношения", Access спрашивает, хотите ли вы сохранить макет. Независимо от того, сохраняете ли вы макет или не сохраняете макет, созданные вами отношения сохраняются в базе данных.
Связи можно создавать не только в таблицах, но и в запросах. Однако ссылочная целостность не обеспечивается запросами.
Как определить отношение "многие ко многим"
Чтобы создать отношение "многие ко многим", выполните следующие действия:
Создайте две таблицы, которые будут иметь отношение "многие ко многим".
Создайте третью таблицу. Это соединительная таблица. В соединительной таблице добавьте новые поля с теми же определениями, что и поля первичного ключа из каждой таблицы, созданной на шаге 1. В соединительной таблице поля первичного ключа функционируют как внешние ключи. Вы можете добавить другие поля в соединительную таблицу так же, как и в любую другую таблицу.
В соединительной таблице задайте первичный ключ, чтобы он включал поля первичного ключа из двух других таблиц. Например, в соединительной таблице "TitleAuthors" первичный ключ будет состоять из полей OrderID и ProductID.
Чтобы создать первичный ключ, выполните следующие действия:
Откройте таблицу в режиме конструктора.
Выберите поле или поля, которые вы хотите определить в качестве первичного ключа. Чтобы выбрать одно поле, щелкните селектор строк для нужного поля. Чтобы выбрать несколько полей, удерживайте нажатой клавишу Ctrl, а затем щелкните селектор строк для каждого поля.
В Access 2002 или Access 2003 нажмите "Первичный ключ" на панели инструментов.
В Access 2007 нажмите "Первичный ключ" в группе "Инструменты" на вкладке "Дизайн".
Если вы хотите, чтобы порядок полей в первичном ключе с несколькими полями отличался от порядка этих полей в таблице, нажмите «Индексы» на панели инструментов, чтобы отобразить диалоговое окно «Индексы», а затем измените порядок имен полей для индекс с именем PrimaryKey.
Определите отношение "один ко многим" между каждой основной таблицей и соединительной таблицей.
Ссылочная целостность
Ссылочная целостность – это система правил, которую Access использует, чтобы убедиться, что связи между записями в связанных таблицах действительны, а связанные данные не будут случайно удалены или изменены. Вы можете установить ссылочную целостность, если выполняются все следующие условия:
- Соответствующее поле из основной таблицы является первичным ключом или имеет уникальный индекс.
- Связанные поля имеют одинаковый тип данных. Есть два исключения.Поле AutoNumber может быть связано с числовым полем, для свойства FieldSize которого задано значение Long Integer, а поле AutoNumber, для свойства FieldSize которого задано значение ID репликации, может быть связано с числовым полем, для которого свойство FieldSize имеет значение ID репликации.
- Обе таблицы принадлежат одной и той же базе данных Access. Если таблицы являются связанными таблицами, они должны быть таблицами в формате Access, и вы должны открыть базу данных, в которой они хранятся, чтобы установить ссылочную целостность. Ссылочную целостность нельзя обеспечить для связанных таблиц из баз данных в других форматах.
При использовании ссылочной целостности применяются следующие правила:
- Вы не можете ввести значение в поле внешнего ключа связанной таблицы, которого нет в первичном ключе первичной таблицы. Однако во внешнем ключе можно ввести значение Null. Это указывает, что записи не связаны между собой. Например, у вас не может быть заказа, назначенного несуществующему покупателю. Однако вы можете иметь заказ, который никому не назначен, введя нулевое значение в поле CustomerID.
- Вы не можете удалить запись из основной таблицы, если соответствующие записи существуют в связанной таблице. Например, вы не можете удалить запись о сотруднике из таблицы "Сотрудники", если в таблице "Заказы" сотруднику назначены заказы.
- Вы не можете изменить значение первичного ключа в основной таблице, если у этой записи есть связанные записи. Например, вы не можете изменить идентификатор сотрудника в таблице "Сотрудники", если в таблице "Заказы" этому сотруднику назначены заказы.
Каскадные обновления и удаления
Для отношений, в которых обеспечивается ссылочная целостность, вы можете указать, хотите ли вы, чтобы Access автоматически выполнял каскадное обновление или каскадное удаление связанных записей. Если вы установите эти параметры, будут включены операции удаления и обновления, которые обычно запрещаются правилами ссылочной целостности. При удалении записей или изменении значений первичного ключа в основной таблице Access вносит необходимые изменения в связанные таблицы для сохранения ссылочной целостности.
Если установить флажок "Каскадное обновление связанных полей" при определении связи, каждый раз, когда вы меняете первичный ключ записи в первичной таблице, Microsoft Access автоматически обновляет первичный ключ до нового значения во всех связанные записи. Например, если вы измените идентификатор клиента в таблице «Клиенты», поле «Код клиента» в таблице «Заказы» автоматически обновится для каждого из заказов этого клиента, чтобы связь не была нарушена. Доступ к каскадным обновлениям без отображения каких-либо сообщений.
Если первичным ключом в основной таблице является поле "Счетчик", установка флажка "Каскадное обновление связанных полей" не действует, поскольку вы не можете изменить значение в поле "Счетчик".
Если установить флажок Каскадное удаление связанных записей при определении отношения, каждый раз, когда вы удаляете записи в основной таблице, Access автоматически удаляет связанные записи в связанной таблице. Например, если вы удаляете запись клиента из таблицы «Клиенты», все заказы клиента автоматически удаляются из таблицы «Заказы». (Сюда входят записи в таблице «Сведения о заказе», связанные с записями «Заказы»). При удалении записей из формы или таблицы с установленным флажком Каскадное удаление связанных записей Access выдает предупреждение о том, что связанные записи также могут быть удалены. Однако при удалении записей с помощью запроса на удаление Access автоматически удаляет записи в связанных таблицах без отображения предупреждения.
Типы соединений
Существует три типа соединения. Вы можете увидеть их на следующем снимке экрана:
Вариант 1 определяет внутреннее соединение. Внутреннее объединение — это объединение, при котором записи из двух таблиц объединяются в результатах запроса только в том случае, если значения в объединенных полях соответствуют заданному условию. В запросе соединение по умолчанию — это внутреннее соединение, которое выбирает записи только в том случае, если значения в объединенных полях совпадают.
Вариант 2 определяет левое внешнее соединение. Левое внешнее соединение — это объединение, в котором все записи из левой части операции LEFT JOIN в операторе SQL запроса добавляются к результатам запроса, даже если нет совпадающих значений в объединенном поле из таблицы справа. сторона.
Вариант 3 определяет правое внешнее соединение. Правое внешнее соединение — это объединение, в котором все записи с правой стороны операции RIGHT JOIN в операторе SQL запроса добавляются к результатам запроса, даже если нет совпадающих значений в объединенном поле из таблицы слева. сторона.
В реляционной базе данных (Access) данные в одной таблице связаны с данными в других таблицах. Как правило, таблицы могут быть связаны одним из трех способов: один-к-одному, один-ко-многим или многие-ко-многим. Связь используется для перекрестных ссылок на информацию между таблицами.
Один к одному
В связи "один к одному" каждая запись в одной таблице имеет не более одной связанной записи в другой таблице.
В связи "один к одному" каждой записи в таблице A может соответствовать только одна запись в таблице B, а каждой записи в таблице B может соответствовать только одна запись в таблице A. Этот тип связи встречается нечасто. , потому что большая часть информации, связанной таким образом, будет находиться в одной таблице. Вы можете использовать отношение "один к одному", чтобы разделить таблицу с множеством полей, изолировать часть таблицы из соображений безопасности или сохранить информацию, которая применяется только к подмножеству основной таблицы.
Один ко многим
Отношение "один ко многим", часто называемое отношением "основной-подробности" или "родитель-потомок".
Связь "один ко многим" является наиболее распространенным типом связи. В отношении "один ко многим" запись в таблице A может иметь много совпадающих записей в таблице B, но запись в таблице B имеет только одну совпадающую запись в таблице A.
Многие ко многим
В отношении "многие ко многим" запись в таблице A может иметь много совпадающих записей в таблице B, а запись в таблице B может иметь много совпадающих записей в таблице A. Этот тип связи возможен только при определении третья таблица (называемая соединительной таблицей), первичный ключ которой состоит из двух полей — внешних ключей из обеих таблиц A и B. Отношение «многие ко многим» на самом деле представляет собой два отношения «один ко многим» с третья таблица.
Отношение "многие ко многим" означает, что для каждой записи в одной таблице может быть много записей в другой таблице и для каждой записи во второй таблице может быть много записей в первой.
Отношения "многие ко многим" не могут быть напрямую представлены в программах реляционных баз данных и должны строиться с использованием двух или более отношений "один ко многим".
Определение отношений
Вы определяете связь, добавляя таблицы, которые вы хотите связать, в окно "Связи", а затем перетаскивая ключевое поле из одной таблицы на ключевое поле в другой таблице.
Тип связи, которую создает Microsoft Access, зависит от того, как определены связанные поля:
- Связь "один ко многим" создается, если только одно из связанных полей является первичным ключом или имеет ключ.
- Отношение "один к одному" создается, если оба связанных поля являются первичными ключами или имеют уникальные индексы.
- Отношение «многие ко многим» на самом деле представляет собой два отношения «один ко многим» с третьей таблицей, первичный ключ которой состоит из двух полей — внешних ключей из двух других таблиц.
Примечание. Если перетащить поле, которое не является первичным ключом и не имеет уникального индекса, в другое поле, которое не является первичным ключом и не имеет уникального индекса, создается неопределенная связь. В запросах, содержащих таблицы с неопределенной связью, Microsoft Access отображает линию соединения по умолчанию между таблицами, но ссылочная целостность не будет применяться, и нет гарантии, что записи в любой таблице уникальны.
При создании связи между двумя таблицами MS Access использует функцию ссылочной целостности. Эта функция предотвращает добавление записей в таблицу сведений, для которых нет соответствующей записи в главной таблице. Это также приведет к изменению ключевых полей в таблице сведений при изменении соответствующих ключевых полей в мастере — это обычно называется каскадным обновлением. Второй вариант — включить каскадное удаление. Это приводит к удалению всех связанных записей в таблице сведений при удалении соответствующей записи в основной таблице.
Дополнительную справку по отношениям можно получить здесь:
Помогите нам улучшить этот ответ
Пожалуйста, предложите улучшение
(необходима авторизация, ссылка открывается в новом окне)Ваши мнения приветствуются и помогут другим читателям этой страницы.
Категории
Это вопрос номер 898, который появляется в следующих категориях:
Создана Джейсоном Бейли 22 ноября 2001 года и последний раз обновлена Адрианом Чорлтоном 1 августа 2016 года.
Читайте также:
- Программа Movie HD для Android
- У вас нет разрешения на открытие сканера hp 3
- Как пользоваться гелевой краской
- Код ошибки 300 в браузере
- Как пользоваться ластиком в фотошопе