Как создать, изменить и удалить связь между таблицами в Access
В Microsoft Access связь помогает вам объединять или связывать данные из одной таблицы с другой . (Relationship) Отношения (Relationships) позволяют пользователю создавать запросы, (Queries,) формы (Forms) и отчеты (Reports) . Когда таблицы создаются для каждой темы в базе данных, вы должны поместить общие поля в таблицу, связанную с ними, и сформировать связь с ними, чтобы информация снова собиралась вместе.

Создать (Create) , изменить (Edit) , удалить (Delete) связь между таблицами в Access
Существует три типа отношений:
- Связь «один к одному» (One-to-One Relationship) :связь (Relationship) « один к одному» — это самый простой вид связи (Relationship) и наименее распространенный, поскольку связанная информация хранится в одной таблице. Он связывает одну таблицу с одной записью в другой таблице; Первичные ключи (Primary Keys) связывают таблицы. Отношение (Relationship) «один к одному» может соединять таблицу с множеством полей вместе и разделять таблицу по соображениям безопасности.
- (A One-to-Many relationship) Отношение «один ко многим» (Relationship) :отношение « один ко многим» является наиболее распространенным отношением (Relationship) ; он связывает каждую запись в одной таблице с несколькими записями в другой таблице. Только одно из связанных полей может быть первичным ключом (Primary Key) , а первичный ключ (Primary Key) должен иметь одну запись для многих записей в другой таблице.
- (Many-to-Many relationships) Отношения «многие ко многим» (Relationship) : для (: ) отношения « многие ко многим » требуется соединительная таблица (Junction Table) , которая включает столбец первичного ключа (Primary Key) двух таблиц, которые вы хотите соединить. Отношение (Relationship) « многие ко многим» позволяет соединить каждую строку одной таблицы со многими строками другой таблицы.
Зачем использовать связи между таблицами в Access? (Why use table relationships in Access?)
- Связи между таблицами обновляют дизайн форм и отчетов (Table Relationships updates your form and report designs) . Когда вы разрабатываете форму и отчет, связь (Relationship) требуется для доступа (Access) , чтобы собирать информацию, которая может быть помещена в форму или отчет, которые вы создали.
- Связи между таблицами обновляют дизайн вашего запроса (Table Relationships updates your query design) . Чтобы записи работали из более чем одной таблицы, необходимо создать запрос для объединения этих таблиц. Запрос работает, сопоставляя значения в поле первичного ключа первой таблицы с внешним ключом во второй таблице.
- Ссылочная целостность может быть применена в отношениях между таблицами (Referential Integrity can be enforced in a table relationship) — ссылочная целостность (Referential Integrity) помогает предотвратить потерянные записи в вашей базе данных. Потерянная запись — это запись со ссылкой на другую несуществующую запись.
В этой статье мы объясним:
- Как создать связь (Relationship) в Microsoft Access
- Как изменить отношение (Relationship) в Microsoft Access
- Как удалить связь (Relationship) в Microsoft Access
1] Как создать связь в Microsoft Access (1] How to Create a Relationship in Microsoft Access)
Перейдите на вкладку «Таблица» (Table Tab) в строке меню. Выберите связь (Relationship) В окне отношений выберите Добавить таблицу. (Add Table.) Откроется диалоговое окно добавления таблицы; нажмите « Добавить выбранные таблицы». (Add Selected Tables.)
В левом углу в разделе инструментов окна « Отношения (Relationship) » нажмите « Редактировать отношения». (Edit Relationships.) Выберите Создать новый. (Create New.)
При создании нового диалогового окна вы выберете имя левой таблицы (Left Table Name) и имя правой (Name) таблицы (Right Table) вашей таблицы, затем выберите имя левого столбца (Left Column Name) и имя правого столбца, (Right Column Name, ) которые должны быть первичным ключом (Primary Key) ваших таблиц; теперь нажмите ОК. (OK.)
Диалоговое окно « Редактировать отношение (Edit Relationship ) » снова появится с выбранным вами вариантом; нажмите создать (create) . Существует также вариант быстрого доступа, при котором вы можете перетаскивать первичный ключ (Primary Key) из одной таблицы в другую; любая связанная таблица должна быть связана с первичным ключом (Primary Key) . Это сформирует связь между двумя таблицами.
2] Как редактировать отношения в Microsoft Access (2] How to edit relationships in Microsoft Access)

Вы можете изменить свои отношения (Relationships ) в Microsoft Access ; вот несколько шагов для этого.
Дважды коснитесь линии связи (Relationship Line) , и появится диалоговое окно « Редактировать связь ». (Edit Relationship)
Существует еще один способ открыть диалоговое окно редактирования отношений. На вкладке «Дизайн» (Design Tab) вы увидите параметр « Редактировать связь (Edit Relationship) »; нажмите здесь.
Внесите (Make) любые изменения, которые вы хотите сделать.
3] Удаление отношений в Microsoft Access (3] Deleting Relationships in Microsoft Access)

Чтобы удалить (Delete) связь , вы должны удалить строку (Relationship) из двух таблиц; это меры.
Щелкаем правой кнопкой мыши по курсору, нажимаем Удалить. (Delete.) Другой вариант — поместить курсор на строку, а затем нажать кнопку « Удалить (Delete Key Button) » .
Появится диалоговое окно с вопросом: «Вы уверены, что хотите навсегда удалить отношения (Relationship) ».
Нажмите ОК (OK) .
Связанное чтение (Related read) : Как создавать таблицы с помощью конструктора таблиц в Access (How to build Tables with Table Designer in Access) .
Дайте нам знать в комментариях, если у вас возникнут проблемы, и мы свяжемся с вами.
How to Create, Edit and Delete a Table Relationship in Access
In Microsoft Access, a Relationship helps you to merge or link data from one table to another. Relationships allow the user to create Queries, Forms, and Reports. When tables are created for each topic in a database, you must place common fields into the table related and form a relationship with them for information to be brought together again.

Create, Edit, Delete a Table Relationship in Access
There are three types of Relationships:
- One-to-One Relationship: One-to-One Relationship is the simplest kind of Relationship and the least common because the information related is stored in the same table. It links one table to a single record in another table; Primary Keys links tables. One- to- One Relationship can connect a table with many fields together and separate a table for security reasons.
- A One-to-Many relationship: One-to-Many Relationship is the most common Relationship; it links each record in one table to several records in another table. Only one of the fields been linked can be the Primary Key, and the Primary Key must have one record for many records in another table.
- Many-to-Many relationships: Many-to-Many Relationship requires a Junction Table, which includes the Primary Key column of the two tables you want to connect. Many -to Many Relationship allows you to connect each row of one table to many rows in another table.
Why use table relationships in Access?
- Table Relationships updates your form and report designs – When you design a form and report, a Relationship is needed for Access to gather the information that can be placed in the form or report you have created.
- Table Relationships updates your query design – For records to work from more than one table, a query must be created to join these tables. The query works by matching the values in the first table’s primary key field with the foreign key in the second table.
- Referential Integrity can be enforced in a table relationship – Referential Integrity helps to prevent orphan records in your database. An orphan record is a record with reference to another record that does not exist.
In this article, we are going to explain:
- How to Create a Relationship in Microsoft Access
- How to Edit a Relationship in Microsoft Access
- How to Delete a Relationship in Microsoft Access
1] How to Create a Relationship in Microsoft Access
Go to the Table Tab on the menu bar. Select Relationship In the relationship window, select Add Table. An add table dialog box will open; click on Add Selected Tables.
On the left corner in the tools section of the Relationship, window click on Edit Relationships. Select Create New.
In creating a new dialog box, you will choose the Left Table Name and the Right Table Name of your table, then choose the Left Column Name and Right Column Name, which should be the Primary Key of your tables; now click OK.
The Edit Relationship dialog box will be seen again with your selected choice; press create. There is also a shortcut option where you can drag the Primary Key from one table to another table; any table linked must be related to the Primary Key. This will form a relationship between the two tables.
2] How to edit relationships in Microsoft Access

You can modify your Relationships in Microsoft Access; here are a few steps in doing so.
Double-tap on the Relationship Line, and the Edit Relationship dialog box will show up.
There is another way of opening the edit relationship dialog box. On the Design Tab, you will see the Edit Relationship option; click on it.
Make whatever changes you want to make.
3] Deleting Relationships in Microsoft Access

To Delete a Relationship, you must remove the line from the two tables; these are the measures.
Right-click on the cursor, click Delete. The other option is to place the cursor on the line then press the Delete Key Button.
A dialog box will pop up asking you ‘if you are sure you want to permanently delete the Relationship.’
Click OK.
Let us know in the comments if you have any problems and will get back to you.
Майя Кузнецова
About the author
Я инженер-программист с более чем 10-летним опытом работы в индустрии Xbox. Я специализируюсь на разработке игр и тестировании безопасности. Я также являюсь опытным обозревателем и работал над проектами для некоторых из самых известных игровых компаний, включая Ubisoft, Microsoft и Sony. В свободное время я люблю играть в видеоигры и смотреть сериалы.
Как удалить схему данных в access – Вопросы 9 Создание базы данных, таблиц и схемы данных Access и модификация структуры БД — Базы данных — Лекции — Каталог файлов
Иногда требуется удалить связь в таблице. Например, связь больше недействительна или вы удаляете поле в таблице. В классических базах данных Access и веб-приложениях Access процессы удаления связи различаются. В этой статье описаны оба процесса.
Подробнее о тонкостях использования связей см. в статье Создание, изменение и удаление связи.
В этой статье
Удаление связи в базе данных Access для настольных систем
Удаление связи в веб-приложении Access
Удаление связи в базе данных Access для настольных систем
Важно: При удалении связи в базе данных рабочего стола отключается также поддержка целостности данных для этой связи, если она включена. В результате Access больше не будет автоматически предотвращать появление потерянных записей на стороне «многие» этой связи.
Чтобы удалить связь между таблицами в базе данных рабочего стола, нужно удалить линию связи в окне Схема данных. Поместите указатель мыши на линию связи и щелкните ее. При выделении линия связи становится толще. Выделив линию связи, нажмите клавишу DELETE.
На вкладке Работа с базами данных в группе Отношения нажмите кнопку Схема данных.
На вкладке Конструктор
Щелкните линию связи, которую требуется удалить. Выделенная линия связи станет жирной.
Будут отображены все таблицы со связями, а также соответствующие линии связи.
Нажмите клавишу DELETE.
При этом в приложении Access может появиться сообщение Подтвердите удаление выделенной связи из базы данных. В этом случае нажмите кнопку Да.
Закончив работу в окне «Схема данных», нажмите кнопку Сохранить, чтобы сохранить изменения в макете связей.
Примечание: Если одна из таблиц, участвующая в связи, в данный момент используется (возможно, третьим лицом или в открытом объекте базы данных, например в форме или представлении), удалить связь будет невозможно. Перед удалением связи между таблицами нужно закрыть все открытые объекты, использующие эти таблицы.
Удаление связи в веб-приложении Access
В веб-приложении Access отсутствует окно «Схема данных». Поле в одной таблице служит источником (полем подстановки) значений для связанного поля в другой таблице. Чтобы удалить связь между двумя таблицами в веб-приложении Access, необходимо удалить поле подстановки и связанные с ним данные.
Откройте таблицу, содержащую поле подстановки, которое нужно удалить, выбрав команду Изменить таблицу.

Выберите поле подстановки, в которое подставляются значения из другой таблицы веб-приложения.
На вкладке Конструктор в разделе Работа с таблицами нажмите кнопку Удалить поля.
В Access отображается сообщение Удалить выделенные поля и все содержащиеся в них данные? Нажмите кнопку Да, чтобы подтвердить удаление поля подстановки и его данных.
Примечание: При удалении поля подстановки приложение Access также может предложить вам удалить один или несколько индексов. Если такое сообщение появляется, нажмите кнопку Да.
Нажмите кнопку Сохранить, чтобы сохранить изменения в структуре таблиц.
Если же вас интересуют лишь основные сведения об удалении связей, см. следующие статьи:
Создание, изменение и удаление отношения
Примечание: Мы стараемся как можно оперативнее обеспечивать вас актуальными справочными материалами на вашем языке. Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки. Для нас важно, чтобы эта статья была вам полезна. Просим вас уделить пару секунд и сообщить, помогла ли она вам, с помощью кнопок внизу страницы. Для удобства также приводим ссылку на оригинал (на английском языке).
Отношение в _з0з_ позволяет объединить данные из двух разных таблиц. Каждая связь состоит из полей в двух таблицах с данными, которые соответствуют. Например, вы можете создать поле ProductID в таблице Products и в таблице OrderDetails. Каждая запись в таблице OrderDetails имеет ProductID, соответствующее записи в таблице Products с тем же ProductID.
При помощи отношений между связанными таблицами приложение Access определяет, какие записи из каждой таблицы поместить в набор результатов запроса. Отношение также позволяет избежать потери данных, препятствуя исключению удаленных данных из синхронизации.
Примечание: Эта статья не относится к веб-приложениям Access.
В этой статье
Создание связи между таблицами с помощью окна «Схема данных»
Создание отношения между таблицами с помощью панели списка полей
Обеспечение целостности данных
Удаление связи между таблицами
Создание или изменение отношения в веб-базе данных Access 2010
Обзор
Чтобы создать отношение в обычной базе данных, можно воспользоваться одним из следующих методов.
В окне «Схема данных» добавьте таблицы, которые требуется связать, а затем перетащите нужное поле из одной таблицы в другую.
Перетащите поле в таблицу из области Список полей.
При создании отношения между таблицами общие поля могут называться по-разному, однако часто требуется, чтобы эти имена совпадали. Очевидно, что общие поля должны иметь одинаковый тип данных. Однако если поле первичного ключа имеет тип «Счетчик», поле внешнего ключа также может быть числовым, если свойство Размер поля (FieldSize) обоих полей совпадает. Например, можно сопоставить поля с типами «Счетчик» и «Числовой», если свойство Размер поля обоих полей имеет значение «Длинное целое». Если оба общих поля являются числовыми, у них должно совпадать значение свойства Размер поля.
Создание отношения между таблицами с помощью окна отношений
На вкладке Работа с базами данных в группе Отношения выберите элемент Схема данных.
Важно: Окно «Схема данных» недоступно в веб-приложении Access. Инструкции по созданию связи в веб-приложении Access см. в разделе Создание связи.
Если ни одного отношения еще не определено, автоматически откроется диалоговое окно Добавление таблицы. Если это окно не открылось, на вкладке Конструктор в группе Схема данных нажмите кнопку Отобразить таблицу.
В диалоговом окне Добавление таблицы отображаются все таблицы и запросы базы данных. Чтобы просмотреть только таблицы, выберите пункт Таблицы. Чтобы просмотреть только запросы, выберите пункт
Выберите одну или несколько таблиц или запросов и нажмите кнопку Добавить. После добавления таблиц и запросов на вкладку «Схема данных» нажмите кнопку Закрыть.
Перетащите поле (как правило, поле первичного ключа) из одной таблицы на общее поле (поле внешнего ключа) в другой таблице. Чтобы перетащить сразу несколько полей, нажмите и удерживайте клавишу CTRL, нажмите каждое поле и перетащите выделенные поля.
Появится диалоговое окно Изменение связей.
Убедитесь, что имена общих полей отношения отображаются правильно. Если имя поля неправильное, щелкните его и выберите нужное поле из списка.
Чтобы обеспечить целостность данных для этого отношения, установите флажок Обеспечение целостности данных. Дополнительные сведения о целостности данных см. в разделе Обеспечение целостности данных.
Нажмите кнопку Создать.
Будет нарисована линия связи между двумя таблицами. Если установлен флажок Обеспечение целостности данных, концы линии выглядят утолщенными. Кроме того, если установлен флажок Обеспечение целостности данных, над утолщенной частью на одном конце линии связи будет отображаться цифра 1, а на другом — символ бесконечности (∞), как показано на рисунке ниже.
Создание связи «один-к-одному». У обоих общих полей (как правило, поля первичного ключа и внешнего ключа) должен быть уникальный индекс. Это означает, что свойство Индексированное поле этих полей должно иметь значение Да (Совпадения не допускаются). Если оба поля имеют уникальный индекс, в приложении Access создается связь «один-к-одному».
Создание связи «один-ко-многим». У поля на одной стороне связи (как правило, поля первичного ключа) должен быть уникальный индекс. Это означает, что свойство Индексированное поле этого поля должно иметь значение Да (Совпадения не допускаются). Поле на стороне «многие» не должно иметь уникального индекса. Это поле может быть индексированным, но для него должны допускаться повторы. Это означает, что свойство Индексированное поле этого поля должно иметь значение Нет или Да (Допускаются совпадения). Когда у одного поля однозначный индекс, а у другого — нет, в приложении Access создается связь «один-ко-многим».
К началу страницы
Создание отношения между таблицами с помощью панели списка полей
Добавить поле в существующую таблицу, открытую в режиме таблицы, можно путем перетаскивания этого поля из области Список полей. В области Список полей отображаются доступные поля из связанных таблиц, а также из других таблиц базы данных.
При перетаскивании поля из «другой» (несвязанной) таблицы и выполнении инструкций мастера подстановок между таблицей из области Список полей и таблицей, в которую перетаскивается поле, автоматически создается новое отношение «один-ко-многим». Это отношение, созданное Access, не обеспечивает целостность данных по умолчанию. Чтобы обеспечить целостность данных, нужно изменить отношение. Дополнительные сведения см. в разделе Изменение отношения.
Открытие таблицы в режиме таблицы
Открытие области «Список полей»
В области Список полей отображены все другие таблицы базы данных, сгруппированные по категориям. При работе с таблицей в режиме таблицы в области Список полей отображаются поля в одной из двух категорий: Доступные поля в связанной таблице и Доступные поля в другой таблице. К первой категории относятся все таблицы, связанные отношением с текущей таблицей. Во второй категории перечислены все таблицы, с которыми данная таблица не связана отношением.
Чтобы просмотреть список всех полей таблицы, щелкните знак плюс (+) рядом с именем таблицы в области Список полей. Чтобы добавить поле в таблицу, перетащите его из области Список полей в таблицу в режиме таблицы.
Добавление поля и создание связи из области «Список полей»
Открыв таблицу в режиме таблицы, нажмите клавиши ALT+F8. Будет отображена область Список полей.
Чтобы отобразить список полей в таблице, в группе Доступные поля в другой таблице щелкните знак плюс (+) рядом с именем таблицы.
Перетащите нужное поле из области Список полей в таблицу, открытую в режиме таблицы.
Когда появится линия вставки, поместите поле в выбранное место.
Появится окно мастера подстановок.
Следуйте инструкциям мастера подстановок.
Поле будет отображено в таблице в режиме таблицы.
При перетаскивании поля из «другой» (несвязанной) таблицы и выполнении инструкций мастера подстановок между таблицей из области Список полей и таблицей, в которую было перетаскивается поле, автоматически создается новое отношение «один-ко-многим». Это отношение, созданное Access, не обеспечивает целостность данных по умолчанию. Чтобы обеспечить целостность данных, нужно изменить отношение. Дополнительные сведения см. в разделе Изменение отношения.
К началу страницы
Изменение отношения
Чтобы изменить отношение, выберите его в окне «Схема данных» и внесите нужные изменения.
Установите указатель на линию связи и щелкните линию, чтобы выделить ее.
При выделении линия связи становится толще.
Дважды щелкните выделенную линию связи
на вкладке Конструктор в группе Сервис выберите команду Изменить связи.
Откроется диалоговое окно Изменение связей.
Открытие диалогового окна «Изменение связей»
На вкладке Работа с базами данных в группе Отношения выберите элемент Схема данных.
Будет открыто окно «Схема данных».
Если в базе данных еще не определены отношения или окно «Схема данных» открывается впервые, будет отображено диалоговое окно Добавление таблицы. В этом случае нажмите в нем кнопку Закрыть.
На вкладке Конструктор в группе Связи нажмите кнопку Все связи.
Будут отображены все таблицы с отношениями, а также соответствующие линии связи. Обратите внимание на то, что скрытые таблицы (таблицы, для которых установлен флажок скрытый в диалоговом окне Свойства) и их отношения не отображаются, если в диалоговом окне Параметры переходов не выбран параметр «Показывать скрытые объекты».
Щелкните линию связи, которую требуется изменить. Выделенная линия связи станет жирной.
Дважды щелкните линию связи.
На вкладке Конструктор в группе Сервис выберите команду Изменить связи.
Откроется диалоговое окно Изменение связей.

Внесите изменения и нажмите кнопку ОК.
С помощью диалогового окна Изменение связей можно изменить отношение между таблицами (например, таблицы, запросы или поля на любой стороне отношения). Можно также задать тип объединения или включить обеспечение целостности данных и выбрать каскадный параметр. Дополнительные сведения о типе объединения и его использовании см. в разделе Задание типа объединения. Дополнительные сведения об обеспечении целостности данных и выборе каскадного параметра см. в разделе Обеспечение целостности данных.
Указание типа соединения
При определении отношения между таблицами сведения о нем влияют на структуру запросов. Например, при определении отношения между двумя таблицами и создании запроса, работающего с этими двумя таблицами, в Access автоматически выбираются сопоставляемые поля по умолчанию на основе полей, указанных в отношении. Эти исходные значения в запросе можно переопределить, но часто значения, определенные отношением между таблицами, являются верными. Поскольку сопоставление и объединение данных из двух таблиц являются часто воспроизводимыми действиями во всех базах данных, кроме самых простых, параметры по умолчанию, определенные отношениями между таблицами, могут быть полезны и экономить время.
С помощью запроса к нескольким таблицам можно комбинировать данные из них путем сопоставления значений в общих полях. Операция сопоставления и комбинирования называется объединением. Например, требуется отобразить заказы клиентов. Для этого создается запрос, объединяющий таблицы «Клиенты» и «Заказы» по полю «Код клиента». Результаты запроса содержат сведения о клиенте, а также другие сведения только для строк с найденным соответствующим значением.
Одно из значений, которое можно задать для каждого отношения, — это тип объединения. Тип объединения определяет, какие записи будут включены в результаты запроса. Обратимся к описанному примеру с объединением таблиц «Клиенты» и «Заказы» по общим полям, представляющим код клиента. При использовании типа объединения по умолчанию (внутреннего соединения) запрос возвращает только строки таблиц «Клиенты» и «Заказы», для которых общие поля (также называемые связанными полями) совпадают.
Предположим, что требуется включить в результаты всех клиентов — даже тех, которые еще не сделали ни одного заказа. Для этого нужно изменить тип объединения с внутреннего на так называемое левое внешнее соединение. При использовании левого внешнего соединения возвращаются все строки таблицы на левой стороне отношения и только сопоставленные строки на правой. При использовании правого внешнего соединения возвращаются все строки на правой стороне отношения и только сопоставленные — на левой.
Примечание: В этом случае термины «слева» и «справа» относятся к положению таблиц в диалоговом окне Изменение связей, а не в окне «Схема данных».
Следует определить, какие результаты наиболее часто требуются от запроса, соединяющего таблицы в конкретной связи, и в соответствии с этим выбрать тип соединения.
Указание типа соединения
В диалоговом окне Изменение связей нажмите кнопку Тип соединения.
Откроется диалоговое окно Параметры соединения.
Выберите нужные параметры и нажмите кнопку ОК.
В таблице ниже, составленной на основании таблиц «Клиенты» и «Заказы», приведены три варианта, отображаемые в окне Параметры объединения, указан используемый в них тип объединения, а также то, какие именно строки (все или только сопоставленные) возвращаются для каждой из таблиц.
1. Объединение только тех записей, в которых связанные поля обеих таблиц совпадают.
2. Объединение ВСЕХ записей из таблицы «Клиенты» и только тех записей из таблицы «Заказы», в которых связанные поля совпадают.
Левое внешнее соединение
3. Объединение ВСЕХ записей из таблицы «Заказы» и только тех записей из таблицы «Клиенты», в которых связанные поля совпадают.
Правое внешнее соединение
При выборе варианта 2 или 3 на линии связи будет отображена стрелка, указывающая на ту сторону связи, в которой отображаются только сопоставленные строки.
Внесение изменений в окне «Параметры объединения»
На вкладке Работа с базами данных в группе Отношения выберите элемент Схема данных.
Примечание: Если в базе данных еще не определены отношения и окно «Схема данных» открывается впервые, появится диалоговое окно Добавление таблицы. В этом случае нажмите в нем кнопку Закрыть.
На вкладке Конструктор в группе Связи нажмите кнопку Все связи.
Будут отображены все таблицы с отношениями, а также соответствующие линии связи. Обратите внимание на то, что скрытые таблицы (таблицы, для которых установлен флажок скрытый в диалоговом окне Свойства) и их отношения не отображаются, если в диалоговом окне Параметры переходов не выбран параметр «Показывать скрытые объекты».
Щелкните линию связи, которую требуется изменить. Выделенная линия связи станет жирной.
Дважды щелкните линию связи. Откроется диалоговое окно Изменение связей.
Нажмите кнопку Тип объединения.
В диалоговом окне Параметры объединения выберите нужный параметр и нажмите кнопку ОК.
Внесите в связь необходимые изменения и нажмите кнопку ОК.
К началу страницы
Обеспечение целостности данных
Целью обеспечения целостности данных является предотвращение появления непарных записей, ссылающихся на несуществующие записи. Обеспечение целостности данных включается для конкретного отношения между таблицами. В результате Access отменяет для этого отношения все действия, которые могут нарушить целостность данных. Это означает, что будет отменено как обновление, изменяющее целевой объект ссылки, так и удаление такого целевого объекта. Сведения о том, как настроить в Access распространение операций обновления и удаления таким образом, чтобы в результате изменялись и все связанные строки, см. в разделе Задание каскадных параметров.
Включение и отключение обеспечения целостности данных
На вкладке Работа с базами данных в группе Отношения нажмите кнопку Схема данных.
На вкладке Конструктор в группе Связи нажмите кнопку Все связи.
Будут отображены все таблицы с отношениями, а также соответствующие линии связи. Обратите внимание на то, что скрытые таблицы (таблицы, для которых установлен флажок скрытый в диалоговом окне Свойства) и их отношения не отображаются, если в диалоговом окне Параметры переходов не выбран параметр «Показывать скрытые объекты».
Щелкните линию связи, которую требуется изменить. Выделенная линия связи станет жирной.
Дважды щелкните линию связи. Откроется диалоговое окно Изменение связей.
Выберите или отмените параметр Обеспечение целостности данных.
Внесите в отношение необходимые изменения и нажмите кнопку ОК.
В режиме обеспечения целостности данных действуют перечисленные ниже правила.
Не допускается ввод в поле внешнего ключа связанной таблицы значений, отсутствующих в поле первичного ключа главной таблицы, поскольку это приводит к появлению потерянных записей.
Не допускается удаление записи из главной таблицы, если в связанной таблице существуют связанные с ней записи. Например, невозможно удалить запись из таблицы «Сотрудники», если в таблице «Заказы» имеются заказы, относящиеся к данному сотруднику. Однако можно удалить главную запись и все связанные записи одним действием, установив флажок Каскадное удаление связанных записей.
Не допускается изменение значения первичного ключа в главной таблице, если это приведет к появлению потерянных записей. Например, нельзя изменить номер заказа в таблице «Заказы», если в таблице «Сведения о заказах» имеются строки, относящиеся к этому заказу. Однако можно обновить главную запись и все связанные записи одним действием, установив флажок «Каскадное обновление связанных полей».
Примечания: Если при включении обеспечения целостности данных возникли трудности, обратите внимание на то, что должны выполняться условия, перечисленные ниже.
Общее поле главной таблицы должно быть первичным ключом или иметь уникальный индекс.
Общие поля должны иметь одинаковый тип данных. Единственное исключение — поле типа «Счетчик» можно связать с полем типа «Числовой», если его свойство Размер поля имеет значение Длинное целое.
Обе таблицы существуют в одной базе данных Access. Обеспечение целостности данных нельзя включить для присоединенных таблиц. Однако если исходные таблицы имеют формат Access, можно открыть базу данных, в которой они хранятся, и включить обеспечение целостности данных в этой базе.
Задание каскадных параметров
Иногда возникает ситуация, в которой требуется изменить значение только на стороне «один» отношения. В этом случае необходимо, чтобы Access автоматически обновил все затронутые строки в ходе выполнения одной операции. Тогда обновление будет полностью завершено, а база данных не будет находиться в несогласованном состоянии, когда некоторые строки обновлены, а другие — нет. Этой проблемы можно избежать с помощью параметра Access «Каскадное обновление связанных полей». Если при включении обеспечения целостности данных был включен параметр «Каскадное обновление связанных полей», то при последующем обновлении первичного ключа автоматически будут обновлены все связанные с ним поля.
Также может потребоваться удаление строки и всех связанных с ней записей — например, записи в таблице «Поставщики» и всех связанных с этим поставщиком заказов. Для этого в Access предназначен параметр «Каскадное удаление связанных записей». Если включить обеспечение целостности данных и установить флажок Каскадное удаление связанных записей, при удалении записи, содержащей первичный ключ, будут автоматически удалены все записи, связанные с этим первичным ключом.
Включение и отключение каскадного обновления и каскадного удаления
На вкладке Работа с базами данных в группе Отношения нажмите кнопку Схема данных.
На вкладке Конструктор в группе Связи нажмите кнопку Все связи.
Будут отображены все таблицы с отношениями, а также соответствующие линии связи. Обратите внимание на то, что скрытые таблицы (таблицы, для которых установлен флажок скрытый в диалоговом окне Свойства) и их отношения не отображаются, если в диалоговом окне Параметры переходов не выбран параметр «Показывать скрытые объекты».
Щелкните линию отношения, которое вы хотите изменить. Выделенная линия связи станет толще.
Дважды щелкните линию связи.
Откроется диалоговое окно Изменение связей.
Установите флажок Обеспечение целостности данных.
Установите флажок Каскадное обновление связанных полей, Каскадное удаление связанных записей или оба эти флажка.
Внесите в отношение необходимые изменения и нажмите кнопку ОК.
Примечание: Если первичным ключом является поле «Счетчик», установка флажка Каскадное обновление связанных полей не произведет никакого эффекта, поскольку изменить значение поля «Счетчик» нельзя.
К началу страницы
Удаление отношения между таблицами
Важно: При удалении связи также отключается обеспечение целостности данных для этой связи, если оно было включено. В результате Access больше не будет автоматически предотвращать появление потерянных записей на стороне «многие» отношения.
Чтобы удалить отношение между таблицами, нужно удалить линию связи в окне «Схема данных». Установите указатель мыши на линию связи и щелкните ее. При выделении линия связи становится толще. Выделив линию связи, нажмите клавишу DEL.
На вкладке Работа с базами данных в группе Отношения нажмите кнопку Схема данных.
На вкладке Конструктор в группе Связи нажмите кнопку Все связи.
Будут отображены все таблицы с отношениями, а также соответствующие линии связи. Обратите внимание на то, что скрытые таблицы (таблицы, для которых установлен флажок скрытый в диалоговом окне Свойства) и их отношения не отображаются, если в диалоговом окне Параметры переходов не выбран параметр «Показывать скрытые объекты».
Щелкните линию связи, которую требуется удалить. Выделенная линия связи станет жирной.
Нажмите клавишу DEL
При этом может появиться сообщение Подтвердите удаление выделенной связи из базы данных. В этом случае нажмите кнопку Да.
Примечание: Если одна из таблиц, участвующих в отношении, в данный момент используется (возможно, третьим лицом, процессом либо в открытом объекте базы данных, например в форме), удалить отношение между таблицами будет невозможно. Перед попыткой удаления отношения между таблицами закройте все открытые объекты, использующие эти таблицы.
К началу страницы
Создание или изменение отношения в веб-базе данных Access 2010
Чтобы создать отношение в веб-базе данных Access 2010, воспользуйтесь мастером подСтановок. Окно «Схема данных» недоступно в веб-базе. Поле в одной таблице используется в качестве источника значений связанного поля в другой таблице. Инструкции по созданию связи в веб-приложении Access см. в разделе Создание связи.
Примечание: Воспользоваться мастером подстановок можно только при наличии поля, используемого в качестве источника значений.
Создание в веб-базе данных Access 2010 отношения с помощью мастера подстановок
Откройте таблицу, в которую будут переноситься значения из другой таблицы.
Справа от последнего поля нажмите кнопку Щелкните для добавления, а затем выберите пункт Подстановка и отношение.
Примечание: Для отображения кнопки Щелкните для добавления, может понадобиться прокрутить страницу по горизонтали.
На первом экране мастера подстановок выберите элемент Получать значения из другой таблицы для поля подстановки и нажмите кнопку Далее.
Выберите таблицу-источник и нажмите кнопку Далее.
В окне Доступные поля двойным щелчком выберите поле, содержащее нужные значения, и нажмите кнопку Далее.
Если нужно, определите порядок сортировки для поля подстановки и нажмите кнопку Далее.
При необходимости отрегулируйте ширину окна подстановки — это удобно, если значения имеют большую длину. Нажмите кнопку Далее.
Введите имя для нового поля. Чтобы иметь полную уверенность в том, что данные в двух таблицах всегда совпадают, установите флажок Включить проверку целостности данных, а затем выберите одну из перечисленных ниже функций.
Каскадное удаление позволяет при удалении записи в одной таблице удалять соответствующую запись в другой.
Ограниченное удаление не разрешает удалить запись из таблицы, если она связана с записью в другой таблице.
Примечание: Не выбирайте элемент Разрешить несколько значений в мастере подстановок, если он используется для создания отношения.
Изменение отношения в веб-базе данных Access 2010
Откройте таблицу, в которую подставляются значения из другой таблицы.
Выберите поле, в которое подставляются значения из другой таблицы.
На вкладке Поля в группе Свойства нажмите кнопку Изменить подстановки.
Внесите нужные изменения в соответствии с инструкциями мастера. Можно изменить следующие элементы.
Порядок сортировки значений
Ширину поля и отображение ключевого столбца
Подпись поля подстановки
Включение проверки целостности данных
Каскадное или ограниченное удаление в случае, если включена проверка целостности данных
К началу страницы
Удаление одной или нескольких записей из базы данных
Удаление неточных или ненужных данных часто позволяет ускорить и упростить работу баз данных Access. Например, если перенести содержимое старых календарей или информацию за предыдущий налоговый квартал в архивные таблицы в другой базе, можно уменьшить размер рабочей базы данных, благодаря чему она будет работать быстрее. Удаление неточных или дублирующихся сведений помогает сократить расходы.
В этой статье объясняется, как удалять данные из базы Access. Здесь также рассказывается, как удалять содержимое отдельных полей (это относительно простая процедура) и целые записи (это может быть куда сложнее).
Примечание: Для понимания и использования информации в этой статье необходимо сначала ознакомиться с понятиями первичных и внешних ключей. Начальные сведения о первичных и внешних ключах приведены в статье Основные сведения о создании баз данных.
В этой статье
Об удалении данных
Удаление данных в поле
Удаление данных в списке
Удаление несвязанных записей из базы данных
Удаление связанных записей из базы данных с помощью запроса
Об удалении данных
В Access удалять данные можно несколькими способами (на разных уровнях). Вы можете удалять отдельные точки данных из записей, целые записи из таблицы, а также таблицы целиком.
Удалив отдельные значения, можно очистить поля записи, но при этом сохранить ее на прежнем месте в виде строки в таблице. Удалить значение относительно просто: достаточно выделить содержимое поля (полностью или частично) и нажать клавишу DELETE.
При удалении всей записи удаляются все данные в каждом ее поле, а также значение ключа, которое делает ее уникальной. При этом стирается целая строка из соответствующей таблицы. Вы можете удалять отдельные записи вручную либо с помощью запросов на удаление, которые стирают целые группы записей.
Если записи, которые требуется удалить, не связаны с другими данными в базе, процедура удаления довольно проста. Можно выделить всю строку и нажать клавишу DELETE либо создать и выполнить запрос на удаление. Если же записи, которые нужно удалить, связаны с другими данными и находятся на стороне «один» отношения «один ко многим», потребуется выполнить ряд дополнительных действий, так как по умолчанию Access не позволяет удалять связанные данные. Кроме того, помните о том, что удаление целой записи невозможно отменить. В связи с этим перед удалением данных следует всегда создавать резервную копию базы.
Удаление целых таблиц — более простая процедура, чем удаление данных из полей и удаление целый записей, однако помните, что удаление таблицы может привести к нарушению работы (в том числе полному) всей базы данных, если сделать это неправильно. Кроме того, вы теряете все содержимое таблицы без возможности восстановления. В связи с этим предварительно следует всегда создавать резервную копию базы.
Наконец, понимание концепции реляционной базы данных позволяет удалять информацию быстрее и точнее. Если вы еще не работали с Access или с реляционными базами данных, ознакомьтесь со статьей Основные сведения о создании баз данных.
Процедуры в следующих разделах описывают удаление значений из отдельных полей, удаление целый записей и таблиц целиком. В каждом разделе приведена вспомогательная информация, необходимая для выполнения соответствующей задачи.
Удаление данных в поле
Чтобы удалить данные из отдельных полей, откройте таблицу или запрос в режиме таблицы либо откройте форму ввода данных в режиме формы или макета .
Удаление данных из таблицы
В области навигации дважды щелкните нужную таблицу или запрос. Они откроются в режиме таблицы.
Выделите данные, которые нужно удалить.
Можно выделить все значение или его часть либо просто установить курсор в поле.
Если вы выделили все содержимое поля, нажмите клавишу DELETE.
На вкладке Главная в группе Записи нажмите кнопку Удалить.
Если вы установили курсор в поле, нажмите клавишу DELETE или BACKSPACE.
Удаление данных из формы
В области навигации дважды щелкните нужную форму. Она откроется в режиме формы.
В области навигации выберите нужную форму, а затем на вкладке Главная в группе Представления щелкните Вид и выберите Режим макета.
Выделите данные, которые нужно удалить.
Можно выделить все значение или его часть либо просто установить курсор в поле.
Если вы выделили все содержимое поля, нажмите клавишу DELETE.
На вкладке Главная в группе Записи нажмите кнопку Удалить.
Если вы установили курсор в поле, нажмите клавишу DELETE или BACKSPACE.
Примечания: Access может выдать сообщение об ошибке и не позволить удалить данные. Причин этому может быть несколько.
Вы пытаетесь удалить данные из запроса, который в принципе не поддерживает такую возможность. Например, невозможно изменить данные, возвращаемые перекрестным запросом, а также изменить или удалить вычисляемые поля — значения, которые рассчитываются по формуле при работе с базой, но не хранятся в таблице. Если форма основана на запросе, из которого нельзя удалить данные, вы не сможете ничего удалить из нее.
У вас нет разрешений на удаление данных. Обратитесь к системному администратору или разработчику базы.
Поле не допускает пустые значения или значения null. Если у вас есть необходимые разрешения, откройте таблицу в режиме конструктора и измените свойство Обязательное поле в таблице с Да на Нет.
Вы пытаетесь удалить информацию из списка. Найти список в таблице или форме очень просто, потому что Access выводит рядом с ним стрелку вниз: . Сведения об удалении значений из списка см. в следующем разделе этой статьи.
К началу страницы
Удаление данных в списке
Данные можно удалять из списков двух типов: списков значений и списков подстановки. В списке значений отображается набор заранее заданных элементов, которые вручную вводятся вами или разработчиком базы данных. В отличие от них списки подстановки используют запросы для получения значений из другой таблицы или другого запроса.
Элементы списка значений хранятся в той же таблице, что и другие значения записи. В то же время данные списка подстановки находятся в одной или нескольких других таблицах. Чтобы удалить данные из списка значений, нужно открыть таблицу и внести изменения в набор элементов.
Для удаления данных из списка подстановки потребуется выполнить ряд дополнительных действий, последовательность которых зависит от того, откуда именно — из другой таблицы или запроса — берет данные запрос для этого списка. Если запрос для списка подстановки основан на таблице, определите эту таблицу и поля, которые содержат данные, отображаемые в списке. После этого откройте исходную таблицу и внесите изменения в содержимое соответствующего поля.
Если запрос в списке подстановки основан на другом запросе, откройте этот второй запрос, найдите исходную таблицу и поля, из которых он берет данные, и измените значения в этой таблице.
Ниже описана процедура удаления данных и из списка значений, и из списка подстановки.
Удаление данных из списка значений
В области навигации щелкните правой кнопкой мыши таблицу, которую требуется изменить, и в контекстном меню выберите пункт Конструктор.
В верхней части бланка запроса выделите поле таблицы, которое содержит список значений.
В нижней части бланка откройте вкладку Подстановка и найдите свойство Источник строк.
По умолчанию элементы в списке значений заключены в двойные кавычки и разделены точкой с запятой: «Excellent»;»Fair»;»Average»;»Poor»
Удалите из списка ненужные значения. Не забывайте удалять и кавычки, в которые они заключены. Также не оставляйте точку с запятой в начале списка и последовательные точки с запятыми (;;). Если вы удалили последний элемент в списке, удалите и последнюю точку с запятой.
Примечание: Если вы удалили из списка значений элемент, который используют записи в таблице, этот элемент останется в записи, пока вы не измените ее. Предположим, у компании есть склад в городе А и она продает это здание. Если удалить элемент «Город А» из списка складов, значения «Город А» останутся в таблице, пока вы не измените их.
Удаление данных из списка подстановки
В области навигации щелкните правой кнопкой мыши таблицу, которую требуется изменить, и в контекстном меню выберите пункт Конструктор.
В верхней части бланка запроса выделите нужное поле подстановки.
В нижней части бланка откройте вкладку Подстановка и найдите свойства Тип источника строк и Источник строк.
Для свойства Тип источника строк должно быть задано значение Таблица или запрос, а свойство Источник строк должно содержать запрос, который ссылается на таблицу или другой запрос.
Примечание: Запросы для полей подстановки всегда начинаются со слова SELECT.
Как правило (но не всегда) запрос на выборку имеет следующий базовый синтаксис: SELECT [имя_таблицы_или_запроса].[имя_поля] FROM [имя_таблицы_или_запроса].
В данном случае запрос содержит два предложения: SELECT и FROM. Первое предложение ссылается на таблицу и поле в ней, второе — только на таблицу. Помните о важном моменте: предложение FROM всегда содержит имя исходной таблицы или запроса. Предложение SELECT не всегда содержит имя таблицы или запроса, хотя всегда содержит имя хотя бы одного поля. При этом все предложения FROM всегда ссылаются на таблицу или запрос.
Выполните одно из указанных ниже действий.
Если запрос в поле подстановки ссылается на другой запрос, нажмите кнопку Построить (на вкладке Данные страницы свойств щелкните «Далее»), чтобы открыть запрос в режиме конструктора. Обратите внимание на имя таблицы в верхней части конструктора запросов и перейдите к действию 5.
Если запрос в поле подстановки ссылается на таблицу, запомните ее имя и перейдите к действию 5.
В области навигации дважды щелкните исходную таблицу, чтобы открыть ее в режиме таблицы.
Найдите поле с данными, которые используются в списке подстановки, и внесите в них необходимые изменения.
К началу страницы
Удаление несвязанных записей из базы данных
При удалении из базы данных целых записей удаляются значения всех их полей, а также значение ключа, которое делает запись уникальной. Если запись не связана с другими (то есть ключ не хранится в другой записи или таблицах базы), для удаления записи выделите ее и нажмите клавишу DELETE. Для удаления большого количества несвязанных записей, которые слишком долго стирать вручную, можно использовать запрос. В следующих разделах описано, как выполнить каждую из этих задач.
Удаление несвязанной записи вручную
В режиме таблицы откройте таблицу или запрос с данными, которые требуется удалить.
Найдите запись (строку), которую нужно удалить, и нажмите кнопку Выделить все (квадрат с левого или правого края записи). Можно выделить отдельные строки, несколько смежных строк (щелкните первую и перетащите указатель) либо несколько несмежных строк (щелкните их, удерживая клавишу CTRL).
Access выделит рамкой всю запись (строку) или блок выделенных записей.
Нажмите клавишу DELETE.
На вкладке Главная в группе Записи нажмите кнопку Удалить.
Щелкните правой кнопкой мыши кнопку Выделить все и выберите команду Удалить запись.
Если вы не можете щелкнуть кнопку Выделить все, установите курсор в поле записи. Затем на вкладке Главная в группе Записи щелкните стрелку вниз рядом с кнопкой Удалить и выберите пункт Удалить запись.
Когда Access предложит подтвердить удаление, нажмите кнопку Да.
Удаление несвязанных записей с помощью запроса
С помощью запроса и связанные, и несвязанные записи удаляются одинаково: сначала нужно создать запрос на выборку, затем убедиться, что он возвращает только те записи, которые требуется удалить, а после этого превратить его в запрос на удаление. В следующем разделе объясняется, как удалять несвязанные записи, и приведена некоторая дополнительная информация.
Удаление связанных записей из базы данных с помощью запроса
Процедура удаления связанных записей состоит из перечисленных ниже этапов.
Составьте план удаления. Убедитесь, что у вас есть необходимые разрешения для удаления данных, а другие пользователи закрыли все объекты, которые работают с затронутыми таблицами, после чего создайте резервную копию базы.
Измените отношения между таблицами, которые участвуют в удалении. В частности, включите параметры Целостность данных и Каскадное удаление связанных записей. Так вы сможете удалить все связанные данные из всех затрагиваемых этой операцией таблиц.
Создайте запрос на выборку и задайте условия таким образом, чтобы он возвращал нужный набор записей.
Преобразуйте запрос на выборку в запрос на удаление и удалите данные с его помощью.
Полное описание этой процедуры см. в статье Создание и выполнение запроса на удаление.
К началу страницы
Схема данных в Access — Базы данных Access
Реляционная база данных, созданная в соответствии с проектом канонической модели данных предметной области, состоит из нормализованных таблиц, связанных одно-многозначными отношениями. В такой базе данных обеспечивается отсутствие дублирования описательных данных, их однократный ввод, поддержание целостности данных средствами системы. Связи между таблицами позволяют выполнить объединение данных различных таблиц, необходимое для решения большинства задач ввода, просмотра и корректировки данных, получения информации по запросам и вывода отчетов.
Связи между таблицами устанавливаются в соответствии с проектом логической структуры базы данных и запоминаются в схеме данных Access. Схема данных в Access является не только средством графического отображения логической структуры базы данных, она активно используется системой в процессе обработки данных. Создание схемы данных позволяет упростить конструирование многотабличных форм, запросов, отчетов, а также обеспечить поддержание целостности взаимосвязанных данных при вводе и корректировке данных в таблицах.
Создание схемы данных
Создание схемы данных начинается с выполнения команды Схема данных (Relationships) в группе Отношения (Relationships) на вкладке ленты Работа с базами данных (Database Tools). В результате выполнения этой команды открывается окно схемы данных и диалоговое окно Добавление таблицы (Show Table), в котором осуществляется выбор таблиц, включаемых в схему (см. рис. 3.48). Диалоговое окно Добавление таблицы откроется автоматически, если в базе данных еще не определена ни одна связь. Если окно не открылось, на ленте Работа со связями | Конструктор (Relationship Tools | Design) в группе Связи (Relationships) нажмите кнопку Отобразить таблицу (Show Table).

Включение таблиц в схему данных
В окне Добавление таблицы (Show Table) (рис. 3.48) отображены все таблицы и запросы, содержащиеся в базе данных. Выберем вкладку Таблицы (Tables) и с помощью кнопки Добавить (Add) разместим в окне Схема данных (Relationships) все ранее созданные таблицы базы данных Поставка товаров, отображенные в окне Добавление таблицы (Show Table). Затем нажмем кнопку Закрыть (Close). В результате в окне Схема данных (Relationships) таблицы базы будут представлены окнами со списками своих полей и выделенными жирным шрифтом ключами (см. рис. 3.52).

Создание связей между таблицами схемы данных
При создании связей в схеме данных используется проект логической структуры реляционной базы данных, в котором показаны все одно-многозначные связи таблиц. Реализуются связи с помощью добавления в связанные таблицы общих полей, называемых ключом связи. При одно-многозначных отношениях между таблицами ключом связи является ключ главной таблицы (простой или составной). В подчиненной таблице он может быть частью уникального ключа или вовсе не входить в состав ключа таблицы. Одно-многозначные связи являются основными в реляционных базах данных. Одно-однозначные связи используются, как правило, при необходимости распределять большое количество полей, определяемых одним и тем же ключом, по разным таблицам, имеющим разный регламент обслуживания.
Создание связей по простому ключу
Установим связь между таблицами ПОКУПАТЕЛЬ и ДОГОВОР, которые находятся в отношении «один-ко-многим». Устанавливая связи между парой таблиц, находящихся в отношении типа 1 : M, выделим в главной таблице ПОКУПАТЕЛЬ ключевое поле КОД_ПОК, по которому устанавливается связь. Далее при нажатой кнопке мыши перетащим его в соответствующее поле подчиненной таблицы ДОГОВОР.
Поскольку поле связи является уникальным ключом в главной таблице связи, а в подчиненной таблице связи не является ключевым, схема данных в Access выявляет отношение «один-ко-многим» между записями этих таблиц. Значение «один-ко-многим» (One-To-Many) отобразится в окне Изменение связей (Edit Relationships) в строке Тип отношения (Relationship Type) (рис. 3.49).

ЗАМЕЧАНИЕ
Если поле связи является уникальным ключом в обеих связываемых таблицах, схема данных в Access выявляет отношение «один-к-одному«. Если для связи таблиц вместо ключевого поля главной таблицы используется некоторый уникальный индекс, система также констатирует отношение таблиц как 1 : М или 1 : 1.
Определение связей по составному ключу
Определим связи между таблицами НАКЛАДНАЯ ОТГРУЗКА, которые связаны по составному ключу НОМ_НАКЛ + КОД_СК. Для этого в главной таблице НАКЛАДНАЯ выделим оба этих поля, нажав клавишу <Ctrl>, и перетащим их в подчиненную таблицу ОТГРУЗКА.
В окне Изменение связей (Edit Relationships) (рис. 3.50) для каждого поля составного ключа главной таблицы НАКЛАДНАЯ, названной Таблица/запрос (Table/Query), выберем соответствующее поле подчиненной таблицы ОТГРУЗКА, названной Связанная таблица/запрос (Related Table/Query).

Каскадное обновление и удаление связанных записей
Если для выбранной связи обеспечивается поддержание целостности, можно задать режим каскадного удаления связанных записей и режим каскадного обновления связанных полей. Такие параметры делают возможным в главной таблице, соответственно, удаление записей и изменение значения в ключевом поле, т. к. при этих параметрах система автоматически выполнит необходимые изменения в подчиненных таблицах, обеспечив сохранение свойств целостности базы данных.
В режиме каскадного удаления связанных записей при удалении записи из главной таблицы будут автоматически удаляться все связанные записи в подчиненных таблицах. При удалении записи из главной таблицы выполняется каскадное удаление подчиненных записей на всех уровнях, если этот режим задан на каждом уровне.
В режиме каскадного обновления связанных полей при изменении значения ключевого поля в записи главной таблицы Access автоматически изменит значения в соответствующем поле в подчиненных записях.
Установить в окне Изменение связей (Edit Relationships) (см. рис. 3.49) флажки каскадное обновление связанных полей (Cascade Update Related Fields) и каскадное удаление связанных записей (Cascade Delete Related Records) можно только после задания параметра обеспечения целостности данных.

После создания связей изображения таблиц могут перемещаться в пределах рабочего пространства окна схемы данных. Перемещения и изменения размеров окон со списками полей таблиц в окне схемы данных осуществляются принятыми в Windows способами.
Заметим, если каскадное удаление не разрешено, невозможно удалить запись в главной таблице, если имеются связанные с ней записи в подчиненной.
Смотрим видео:
Вот основное, что мы хотели рассказать на тему «Схема данных в Access».
Дальше будем изучать запросы в Access.
Создание и выполнение запроса на удаление
Если нужно быстро удалить большой объем данных или регулярно удалять определенные сведения из базы данных рабочего стола в Access, удобно воспользоваться запросом на удаление или обновление: в этом случае можно указать условия для быстрого поиска и удаления информации. Кроме того, с помощью запросов вы сэкономите время, потому что их можно повторно использовать после сохранения.
Примечание: Перед удалением данных или выполнением запроса на удаление убедитесь в том, что у вас есть резервная копия базы данных рабочего стола Access.
Если необходимо удалить всего несколько записей, использовать запрос не нужно. Можно открыть таблицу в режиме таблицы, выбрать поля (столбцы) или записи (строки), которые требуется удалить, и нажать клавишу DELETE.
Важно: Эта статья относится только к базам данных рабочего стола. Запросы на удаление и обновление невозможно использовать в веб-приложениях Access.
В этой статье
Выбор типа запроса
Использование запроса на удаление
Использование запроса на обновление
Советы по устранению неполадок
Выбор типа запроса
Для удаления данных из базы данных можно выбрать запрос на обновление или удаление. Выберите тип запроса на основании сведений в следующей таблице:
Запрос на удаление
Удаление всех записей (строк) из таблицы или двух связанных таблиц одновременно.
Примечание: Если записи хранятся на стороне «один» отношения «один-ко-многим», перед выполнения запроса на удаление необходимо изменить это отношение. Подробнее читайте в разделе по удалению данных из связанных таблиц.
Запросы на удаление удаляют все данные в каждом поле, вместе со значением ключа, который делает эту запись уникальной.
Запрос на обновление
Удаление отдельных полей из таблицы.
Упрощает удаление значений путем замены существующих значений на пустое значение (то есть без данных) или на пустую строку (пару двойных кавычек без пробела между ними).
К началу страницы
Что необходимо проверить перед использованием запроса на удаление любых данных
Убедитесь, что файл не открыт в режиме только для чтения.
Щелкните правой кнопкой мыши кнопку Пуск и откройте проводник Windows.
Щелкните файл базы данных правой кнопкой мыши и выберите пункт Свойства.
Проверьте, не выбран ли параметр Только для чтения.
Проверьте наличие необходимых разрешений на удаление записей из базы данных. При необходимости обратитесь к системному администратору или разработчику базы данных.
Убедитесь, что содержимое базы данных активировано. По умолчанию приложение Access блокирует выполнение всех запросов (на удаление, обновление и создание таблицы), пока базе данных не будет предоставлено состояние доверенной. Чтобы узнать о признании базы данных доверенной, см. раздел Выполнение запроса, заблокированного из-за режима отключения содержимого.
Попросите других пользователей базы данных закрыть все таблицы, формы, запросы и отчеты, в которых используются удаляемые данные. Это позволит избежать конфликтов блокировки.
Перед редактированием или удалением записи необходимо создать резервную копию базы данных на случай необходимости отмены изменений.
Совет: Если с базой данных работает большое количество пользователей, может потребоваться закрыть ее и открыть повторно в режиме монопольного доступа.
Открытие базы данных в монопольном режиме
Откройте вкладку Файл и выберите пункт Открыть.
Найдите и выберите базу данных, щелкните значок стрелки рядом с кнопкой Открыть, а затем выберите команду Монопольный доступ.
Создание резервной копии базы данных
Откройте вкладку Файл и выберите пункт Сохранить как.
В разделе Сохранить базу данных как выберите пункт Резервная копия базы данных. Приложение Access закроет исходный файл, создаст резервную копию и снова его откроет.
Нажмите кнопку Сохранить как и укажите имя и расположение для резервной копии, а затем нажмите кнопку Сохранить.
Примечание: При использовании базы данных, доступной только для чтения или созданной в более ранней версии приложения Аccess, может появиться сообщение о том, что резервную копию создать невозможно.
Чтобы вернуться к резервной копии, закройте и переименуйте исходный файл, чтобы получить возможность использовать имя исходной версии. Назначьте имя исходной версии резервной копии и откройте переименованную копию.
Использование запроса на удаление
Для создания запроса на удаление на вкладке Создание в группе Запросы нажмите кнопку Конструктор запросов. В диалоговом окне Добавление таблицы дважды щелкните каждую таблицу, из которой необходимо удалить записи, и нажмите кнопку Закрыть.
Таблица будет отображена в верхней части бланка запроса. В списке полей дважды щелкните звездочку (*), чтобы добавить все поля таблицы в бланк запроса.
Использование специальных условий в запросе на удаление
Важно: Условия служат для указания только тех записей, которые требуется удалить. В другом случае запрос на удаление удалит все записи в таблице.
Дважды щелкните поле, которое необходимо указать как условие для удаления, введите условие в строку Условия конструктора запросов и снимите флажок Показать в каждом поле условий.
Рассмотрим пример использования этого параметра. Допустим, необходимо удалить все невыполненные заказы клиента. Чтобы найти записи, необходимо заполнить поля «Код заказчика» и «Дата заказа» в бланке запроса, а потом ввести код заказчика и дату, когда заказы этого клиента стали недействительным.
На вкладке Конструктор выберите команду Режим > Режим таблицы.
Убедитесь, что выбраны записи, которые требуется удалить, а затем нажмите клавиши CTRL+S, чтобы сохранить запрос.
Для выполнения запроса дважды щелкните его в области навигации.
К началу страницы
Использование запроса на обновление
Примечание: Запросы на обновление невозможно использовать в веб-приложениях Access.
В этом разделе описано, как использовать запрос на обновление для удаления отдельных полей из таблиц. Помните, что выполнение запроса на обновление для удаления данных заменяет существующие значения на пустые или на строки нулевой длины (пару двойных кавычек, не разделенных пробелом), в зависимости от заданного условия.
На вкладке Создание в группе Запросы нажмите кнопку Конструктор запросов.
Выберите таблицу с данными, которые вы хотите удалить (если таблица связана, выберите таблицу на стороне отношения «один»), нажмите кнопку Добавить, а затем — Закрыть.
Таблица будет отображена в верхней части бланка запроса. В этом окне перечислены все поля выбранной таблицы.
Чтобы добавить все поля в бланк запроса, дважды щелкните звездочку (*). Это позволит удалить все записи (строки) из таблицы.
Дополнительно можно указать условия для одного или нескольких полей в строке Условия, а затем снять флажок Показать в каждом поле условий. Дополнительные сведения см. в таблице Примеры условий для выбора запросов.
Примечание: Условия служат для выбора только тех записей, которые необходимо изменить. В противном случае запрос на обновление изменит все записи в полях запроса на значение NULL.
На вкладке Конструктор в группе Результаты выберите команду Режим, а затем — Режим таблицы.
Убедитесь, что выбраны записи, вместо которых нужно вставить значение NULL или строку нулевой длины (пару двойных кавычек без пробела между ними («»).
При необходимости повторяйте шаги 3–5, изменяя поля или условия отбора, пока не будут выбраны только те данные, которые нужно удалить. После этого нажмите клавиши CTRL+S, чтобы сохранить запрос.
Для выполнения запроса дважды щелкните его в области навигации.
К началу страницы
Дополнительные сведения
Удаление данных из связанных таблиц
Если вы хотите удалить данные из нескольких связанных таблиц, необходимо включить параметры Целостность данных и Каскадное удаление связанных записей для каждой из связей. Это позволит запросу удалять данные из таблиц на сторонах отношения «один» и «многие». Подготовка к удалению связанных данных требует проверки следующих параметров.
Определите, какие из записей находятся на стороне отношения «один», а какие — на стороне «многие».
Если нужно удалить записи на стороне отношения «один» и связанные записи на стороне «многие», включите набор правил «Целостность данных» и разрешите операцию каскадного удаления. Далее в этом разделе описано понятие целостности данных и указано, как выполнить оба действия.
Если вам нужно удалить данные только на стороне отношения «один», сначала удалите отношение, а затем — данные.
Если требуется удалить данные только со стороны отношения «многие», создайте и выполните запрос на удаление, не внося изменений в отношение.
Чтобы узнать, какие записи находятся на сторонах отношения «один» и «многие», на вкладке Работа с базами данных в группе Отношения нажмите кнопку Схема данных. Вкладка Схема данных отображает таблицы в базе данных и связи между ними. Каждая связь изображается линией, соединяющей поля таблиц.
На рисунке ниже изображена типичная связь. В большинстве связей (если не во всех) присутствует сторона «один» и сторона «многие». В схеме связей сторона «один» обозначается единицей (1), а сторона «многие» — знаком бесконечности (∞).
При удалении записей, расположенных на стороне «один», удаляются также все связанные записи на стороне «многие». Однако при удалении записей на стороне «многие» записи на стороне «один» обычно не удаляются.
Коме того, приложение Access автоматически использует набор правил целостности данных. Эти правила обеспечивают правильность значений во внешних ключах базы данных. Внешний ключ — это столбец, значения которого совпадают со значениями в столбце первичного ключа в другой таблице.
Изменение связи
Следующие инструкции выполняются только если необходимо удалить данные на сторонах отношения «один» и «многие».
На вкладке Работа с базами данных в группе Отношения нажмите кнопку Схема данных.
Щелкните правой кнопкой мыши связь (линию) между таблицами, включенными в операцию удаления, и выберите в контекстном меню команду Изменить связь.
Убедитесь в том, что в диалоговом окне Изменение связей установлен флажок Обеспечение целостности данных.
Установите флажок Каскадное удаление связанных записей.
Примечание: Пока вы снова не отключите это свойство, при удалении записей, расположенных на стороне «один», будут удаляться также все связанные записи на стороне «многие».
Нажмите кнопку OK и закройте область Схема данных. После этого можно перейти к дальнейшим действиям.
Удаление связи
Откройте область Схема данных, если она закрыта.
На вкладке Работа с базами данных в группе Отношения нажмите кнопку Схема данных.
Запишите имена полей, участвующих в отношении, чтобы после удаления данных можно было восстановить связь.
Щелкните правой кнопкой мыши связь (линию) между таблицами, включенными в операцию удаления, и выберите в контекстном меню команду Удалить.
Примечание: Чтобы восстановить связь, откройте область Схема данных, как показано выше, и перетащите поле первичного ключа из таблицы «один» на поле внешнего ключа таблицы «многие». Будет открыто диалоговое окно Изменение связей. Если в исходном отношении была включена целостность данных, установите флажок Обеспечение целостности данных и нажмите кнопку Создать. В противном случае просто нажмите кнопку Создать.
К началу страницы
Примеры условий отбора для запросов
В следующей таблице приведены примеры условий, которые можно использовать в запросах на выборку, когда требуется убедиться, что удаляются только необходимые данные. В некоторых из этих примеров используются подстановочные знаки.
Возвращает все числа больше 234. Чтобы найти все числа меньше 234, используйте условие < 234
Выбирает все записи от «Новосибирск» до конца алфавита.
Between #02.02.2010# And #12.01.2010#
Выбирает даты между 2-фев-2010 и 1-дек-2010 (ANSI-89). Если в базе данных применяется набор подстановочных знаков ANSI-92, используйте вместо знака решетки (#) одинарные кавычки (‘). Пример: Between ‘02.02.2010’ And ‘12.01.2010’.
Находит все записи, в которых содержимое поля не соответствует значению «Германия». Согласно этому условию будут найдены записи, содержащие дополнительный текст, кроме слова «Германия», например «Германия (евро)» или «Европа (Германия)».
Находит все записи, кроме тех, которые начинаются с буквы «Т». Если в базе данных применяется набор подстановочных знаков ANSI-92, используйте знак процента (%) вместо знака звездочки (*).
Находит все записи, которые не оканчиваются буквой «т». Если в базе данных применяются подстановочные знаки ANSI-92, используйте знак процента (%) вместо звездочки (*).
Находит все записи в списке со словами «Канада» или «Великобритания».
Находит в поле с типом данных «Текстовые» все записи, начинающиеся с букв «А–Г». Если в базе данных используются подстановочные знаки ANSI-92, используйте знак процента (%) вместо знака звездочки (*).
Находит все записи, которые содержат сочетание букв «тр». Если в базе данных применяются подстановочные знаки ANSI-92, используйте знак процента (%) вместо звездочки (*).
Like «Григорий Верны?»
Находит все записи, начинающиеся с имени «Григорий» и содержащие вторую строку из 9 букв, из которых 6 букв составляют начало фамилии «Верный», а последняя буква неизвестна. Если в базе данных применяется набор подстановочных знаков ANSI-92, используйте вместо вопросительного знака (?) знак подчеркивания (_).
Находит все записи для 2 февраля 2010 г. Если в базе данных используются подстановочные знаки ANSI-92, необходимо заключить дату в одинарные кавычки вместо знаков решетки (‘2.2.2010’).
Использует функцию Date для возврата всех дат не менее 30-дневной давности.
Использует функцию Date для возврата всех записей, содержащих текущую дату.
Between Date( ) And DateAdd(«M», 3, Date( ))
Использует функции Date и DateAdd которые возвращают все записи между текущей датой и датой на три месяца позже.
Возвращает все записи, содержащие пустое (незаполненное или неопределенное) значение.
Выбирает все записи с любым (не пустым) значением.
Возвращает все записи, содержащие строку нулевой длины. Пустые строки служат для добавления значений в обязательные поля, если фактическое значение неизвестно. Например, в поле требуется ввести номер факса, но у некоторых клиентов его нет. В этом случае вводится пара двойных кавычек без пробела («»).
К началу страницы
Советы по устранению неполадок
Почему на экране может появиться это сообщение об ошибке, и как его исправить?
Если запрос на удаление строится с использованием нескольких таблиц, а для свойства запроса Уникальные значения задано значение Нет, при попытке выполнения запроса Access выведет на экран сообщение об ошибке Удаление из указанных таблиц невозможно.
Чтобы решить эту проблему, задайте для свойства запроса Уникальные значения значение Да.
Откройте запрос на удаление в конструкторе.
Если окно свойств запроса не открыто, нажмите для его открытия клавишу F4.
Щелкните конструктор запросов, чтобы в окне свойств отображались свойства запроса, а не свойства поля.
В окне свойств найдите свойство Уникальные значения и назначьте ему значение Да.
Выполнение запроса, заблокированного из-за режима отключения содержимого
Если открыть базу данных рабочего стола, которая не является доверенной или не находится в надежном расположении, Access будет по умолчанию блокировать все запросы на изменение.
Если при попытке выполнения запроса на изменение ничего не происходит, проверьте, не появляется ли в строке состояния Access следующее сообщение:
Данное действие или событие заблокировано в режиме отключения.
Если отображается это сообщение, чтобы разблокировать содержимое, выполните следующие действия.
К началу страницы
Удаление поля — Access
Примечание: Мы стараемся как можно оперативнее обеспечивать вас актуальными справочными материалами на вашем языке. Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки. Для нас важно, чтобы эта статья была вам полезна. Просим вас уделить пару секунд и сообщить, помогла ли она вам, с помощью кнопок внизу страницы. Для удобства также приводим ссылку на оригинал (на английском языке) .
Можно удалить поле из запроса или таблицы. При удалении поля из запроса оно сохраняется в базе данных, но больше не используется в запросе. При удалении поля из таблицы оно удаляется из базы данных.
В этом разделе описана процедура удаления поля из запроса или таблицы и приведены соответствующие пошаговые инструкции.
В этом разделе не подробно #Deleted отображается в поле или элемент управления. В большинстве случаев, #Deleted указывает, что в настоящее время отображаемой записи недавно был удален. Как правило обновления данных исправить это. Дополнительные сведения об обновлении данных читайте в статье обновление или повторный запрос данных.
В этой статье
Просмотрите зависимостей объектов, прежде чем удалять поля
Удаление поля из запроса
Удаление поля из таблицы
Обзор
После удаления поля из запроса другие объекты базы данных, например формы, не смогут использовать запрос в качестве источника данных из удаленного поля. Однако такие объекты могут по-прежнему использовать поле, если в качестве источника данных применяется таблица или используется другой запрос, содержащий это поле.
Поле, удаленное из таблицы, недоступно для всех объектов базы данных.
Перед удалением поля рекомендуется проверить с помощью области зависимостей объектов, не зависят ли другие объекты базы данных от запроса или таблицы, из которых удаляется поле. Это дает возможность понять, как удаление поля повлияет на другие объекты базы данных, и соответствующим образом изменить структуру этих объектов.
К началу страницы
Проверка зависимостей объектов перед удалением поля
В области переходов выберите запрос или таблицу, содержащие поле, которое требуется удалить.
На вкладке Инструменты базы данных в группе Показать или скрыть нажмите кнопку Зависимости объектов.
В области зависимостей объектов отображаются объекты, зависящие от запроса или таблицы, выбранных в действии 1.

Примечание: Если область зависимостей объектов использовалась давно, отображение зависимостей может занять некоторое время.
Чтобы определить, используется ли поле, которое требуется удалить, определенным объектом, щелкните ссылку объекта в области зависимостей объектов. Будет выведена область Список полей для объекта.
Удаление поля из запроса
В области переходов щелкните правой кнопкой мыши запрос и выберите команду Конструктор.
В бланке запроса выберите поле, которое требуется удалить, и нажмите клавишу DEL.
Закройте и сохраните запрос.
К началу страницы
Удаление поля из таблицы
В области переходов щелкните правой кнопкой мыши таблицу и выберите команду Конструктор.
В бланке таблицы выберите поле, которое требуется удалить, и нажмите клавишу DEL.
Закройте и сохраните таблицу.
К началу страницы
Общие сведения о схеме данных
Примечание: Мы стараемся как можно оперативнее обеспечивать вас актуальными справочными материалами на вашем языке. Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки. Для нас важно, чтобы эта статья была вам полезна. Просим вас уделить пару секунд и сообщить, помогла ли она вам, с помощью кнопок внизу страницы. Для удобства также приводим ссылку на оригинал (на английском языке).
Схема данных позволяет определить отношение между элементами, которые хранятся в многочисленных таблицах Access. Чтобы увидеть его, выберите вкладку Работа с базами данных и щелкните элемент Схема данных.
Связи похожи на правила, определяющие способ подключения данных в базе данных. Например, в хорошо нормализованной базе данных обработки заказов, вероятнее всего, у вас есть сведения о клиенте в одной таблице и сведения о заказе в другой таблице. Хотите убедиться, что клиенты не отделены от заказов, верно? Вы не хотите, чтобы заказ был создан без действительного клиента, подключенного к нему. В окне «Схема данных» можно настроить эти правила так, чтобы они были применены ко всем данным.
Если вы уже создавали запрос Аccess, вы заметите, что окно «Схема данных» похоже на верхнюю часть построителя запросов:

Чтобы добавить таблицу в представление, используйте команды на вкладке Конструктор в окне «Схема данных», а затем перетаскивайте поля между таблицами, чтобы установить отношения. В этом примере отношения соединяют каждого из клиентов с несколькими заказами, но не позволяют создать заказ для несуществующего клиента. Когда вы установите эти правила в окне «Схема данных», они будут применятся ко всей базе данных (например, если вы создадите новый запрос, связи установятся автоматически согласно правил).
Примечание: Удаление таблицы из окна «Схема данных» не приведет к ее удалению из базы данных. Установленные отношения тоже не удаляются.
Возможные действия
Добавление таблицы или запроса в окно
На вкладке «Конструктор» щелкните Добавление таблицы, выберите необходимую таблицу или запрос, а затем нажмите кнопку Добавить.
Удаление таблицы или запроса из окна
Выберите таблицу или запрос и нажмите клавишу DELETE.
Скрытие таблицы или запроса
Щелкните таблицу или запрос правой кнопкой мыши и выберите пункт Скрыть таблицу.
Перетащите поле из одной таблицы или запроса в соответствующее поле в другой таблице или запросе.
Установка параметров отношения
Щелкните линию связи между двумя таблицами правой кнопкой мыши (может понадобиться несколько попыток, чтобы попасть на нее), а затем выберите пункт Изменение отношения.
Щелкните линию связи между двумя таблицами правой кнопкой мыши (может понадобиться несколько попыток, чтобы попасть на нее), а затем выберите пункт Удалить.
Отображение всех отношений
На вкладке Конструктор щелкните элемент Все связи.
Просмотр связей конкретной таблицы
Выберите таблицу, а затем на вкладке Конструктор щелкните элемент Прямые связи.
Просмотр связей одной таблицы без связей других таблиц
На вкладке Конструктор в группе Сервис щелкните элемент Очистить макет. Добавьте таблицу, для которой необходимо отобразить связи (Конструктор > Связи > Добавление таблицы), а затем на вкладке Конструктор в группе Связи выберите элемент Прямые связи.
Теперь, когда вы ознакомились с окном «Схема данных», узнайте, как создать, изменить или удалить связь.
Как удалить схему связей в аксесс

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

В окне «Отношения» с помощью команд на вкладке «Конструктор» можно добавить в представление таблицы, а затем перетащить поля между таблицами для добавления связей. В этом примере связь позволяет связывать несколько заказов с каждым клиентом, но не позволяет создать новый заказ. После того как вы настроите эти правила в окне «Отношения», они будут применяться ко всей базе данных (например, если создать новый запрос, связи будут автоматически настроены в соответствии с вашими правилами отношений).
Примечание: При удалении таблицы из окна «Отношения» она не удаляется из базы данных и не удаляется уже установленные связи.
Что вы можете делать
Добавление таблицы или запроса в окно
Нажмите кнопку > «Добавление таблиц» («Добавление таблицы в Access 2013 «), выберите таблицу или запрос и нажмите кнопку «Добавить».
Удаление таблицы или запроса из окна
Выберите таблицу или запрос и нажмите кнопку DELETE.
Скрытие таблицы или запроса
Щелкните таблицу или запрос правой кнопкой мыши и выберите «Скрыть таблицу».
Перетащите поле из одной таблицы или запроса на соответствующее поле в другой таблице или запросе.
Щелкните правой кнопкой мыши линию связи между двумя таблицами (это может занять несколько попыток точного нажатия) и выберите «Изменить связь».
Щелкните правой кнопкой мыши линию связи между двумя таблицами (это может занять несколько попыток точного нажатия вправо) и выберите «Удалить».
Нажмите кнопку «> все связи».
Просмотр связей для конкретной таблицы
Выберите таблицу и нажмите кнопку «Конструктор > прямые связи».
Просмотр связей для одной таблицы без просмотра связей для других таблиц
Выберите «Конструктор> Инструменты > «Очистить макет». Добавьте таблицу, для > (Конструктор связей > > Добавление таблиц (добавление таблицы в Access 2013 ),) и нажмите кнопку «Конструктор > Связи > «Прямыесвязи».
Настройм размер таблицы, чтобы показать дополнительные поля и связи.
Примечание. Требуется Access для Office 365.
Чтобы автоматически нажать размер таблицы, щелкните ее правой кнопкой мыши и выберите «Размер по размеру». Или дважды щелкните край таблицы на:
Справа на размер по горизонтали в зависимости от длины имени поля.
От нижнего к размеру по вертикали в зависимости от количества полей.
Нижний правый угол для автоматической настройки размера таблицы как по горизонтали, так и по вертикали (эквивалент размера по размеру).
Выбор подмножество таблиц
Примечание. Требуется Access для Office 365.
Чтобы сосредоточиться на определенных таблицах и их связях, с ними:
CTRL+(выберите несколько таблиц).
Щелкните и полностью перетащите поле вокруг выбранного диапазона.
В обоих этих действиях выделяется подмножество таблиц с более толстой границей. Чтобы отобрать выделение, щелкните за пределами выделения. Чтобы переместить выделение, щелкните и перетащите его в другое место.
Использование колесико прокрутки мыши
Примечание. Требуется Access для Office 365.
Прокрутите колесико мыши вверх или вниз по вертикали. Прокрутите страницу по горизонтали, нажав shift и прокручивая колесико мыши вверх или вниз.
Теперь, когда вы работаете в окне «Отношения», узнайте, как создавать, изменять и удалять связи.
Как создать, отредактировать и удалить связь таблицы в Access
В Microsoft Access связь помогает объединять или связывать данные из одной таблицы в другую. Отношения позволяют пользователю создавать запросы, формы и отчеты. Когда таблицы создаются для каждой темы в базе данных, вы должны поместить общие поля в связанную таблицу и сформировать с ними связь, чтобы информация снова была объединена.
Создание, изменение и удаление связи таблиц в Access
- Отношения «один к одному»: отношения «один к одному» — это самый простой вид отношений и наименее распространенный, потому что связанная информация хранится в той же таблице. Он связывает одну таблицу с отдельной записью в другой таблице; Первичные ключи связывают таблицы. Отношения «один-к-одному» могут соединять таблицу со многими полями вместе и разделять таблицу по соображениям безопасности.
- Отношения «один-ко-многим». Отношения «один-ко-многим» — это наиболее распространенные отношения; он связывает каждую запись в одной таблице с несколькими записями в другой таблице. Только одно из связанных полей может быть первичным ключом, а первичный ключ должен иметь одну запись для многих записей в другой таблице.
- Отношения «многие ко многим»: для отношения «многие ко многим» требуется таблица соединений, которая включает столбец первичного ключа двух таблиц, которые вы хотите соединить. Отношение «многие-ко многим» позволяет связать каждую строку одной таблицы со многими строками другой таблицы.
Зачем использовать отношения таблиц в Access?
- Взаимосвязи таблиц обновляют дизайн формы и отчета. При разработке формы и отчета необходимо, чтобы Access собирал информацию, которая может быть помещена в форму или отчет, которые вы создали.
- Взаимосвязи таблиц обновляют структуру вашего запроса — чтобы записи работали более чем из одной таблицы, необходимо создать запрос для объединения этих таблиц. Запрос работает путем сопоставления значений в поле первичного ключа первой таблицы с внешним ключом во второй таблице.
- Ссылочная целостность может быть усилена в связи между таблицами — ссылочная целостность помогает предотвратить потерянные записи в вашей базе данных. Сиротская запись — это запись со ссылкой на другую несуществующую запись.
В этой статье мы собираемся объяснить:
- Как создать отношения в Microsoft Access
- Как изменить отношение в Microsoft Access
- Как удалить связь в Microsoft Access
1]Как создать отношения в Microsoft Access

Перейдите на вкладку Таблица в строке меню. Выберите отношение. В окне отношений выберите «Добавить таблицу». Откроется диалоговое окно добавления таблицы; нажмите «Добавить выбранные таблицы».
В левом углу в разделе инструментов окна «Отношения» щелкните «Редактировать отношения». Выберите «Создать».
При создании нового диалогового окна вы выберете имя левой таблицы и имя правой таблицы для своей таблицы, затем выберите имя левого столбца и имя правого столбца, которые должны быть первичным ключом ваших таблиц; теперь нажмите ОК.
Диалоговое окно «Изменить взаимосвязь» снова появится с выбранным вами вариантом; нажмите создать. Существует также вариант быстрого доступа, с помощью которого вы можете перетащить первичный ключ из одной таблицы в другую; любая связанная таблица должна быть связана с первичным ключом. Это сформирует связь между двумя таблицами.
2]Как редактировать отношения в Microsoft Access

Вы можете изменить свои отношения в Microsoft Access; вот несколько шагов для этого.
Дважды коснитесь линии связи, и откроется диалоговое окно «Изменить связь».
Есть еще один способ открыть диалоговое окно редактирования отношения. На вкладке «Дизайн» вы увидите параметр «Изменить взаимосвязь»; нажмите здесь.
Внесите любые изменения, которые хотите внести.
3]Удаление отношений в Microsoft Access

Чтобы удалить связь, вы должны удалить строку из двух таблиц; это меры.
Щелкните курсор правой кнопкой мыши и выберите Удалить. Другой вариант — поместить курсор на строку и нажать кнопку «Удалить».
Появится диалоговое окно с вопросом: «Если вы уверены, что хотите окончательно удалить Связь».
Связанное чтение: Как создавать таблицы с помощью конструктора таблиц в Access.
Сообщите нам в комментариях, если у вас возникнут проблемы, и мы вам ответим.
Настройка связей между таблицами
Настройка связей между таблицами
В данном разделе вы узнаете, как создать и удалить связи между таблицами, как включить режим обеспечения целостности данных и как просмотреть дочерние записи при редактировании родительской таблицы.
Прежде чем приступить к настройке связей, следует отметить, что для установки связи между таблицами используются общие поля этих таблиц. Вторичный ключ дочерней таблицы содержит значения первичного ключа родительской таблицы, и таким образом запись дочерней таблицы ссылается на одну из записей родительской таблицы.
Просмотр, создание, редактирование и удаление связей осуществляются на схеме данных (рис. 2.21). Чтобы открыть схему данных, нажмите кнопку Схема данных на вкладке Работа с базами данных .
Рис. 2.21. Схема данных
Итак, начнем с рассмотрения процедуры создания связи.
Если вы хотите создать связь между двумя таблицами, выполните следующие действия.
1. Перед созданием связи обе связываемые таблицы должны отображаться на схеме данных. Если таблица отсутствует на схеме данных, ее требуется вначале добавить. Для этого нажмите кнопку Отобразить таблицу на вкладке Конструктор . Затем в появившемся окне Добавление таблицы щелкните кнопкой мыши на названии таблицы и нажмите кнопку Добавить . После добавления всех нужных таблиц нажмите кнопку Закрыть .
2. Щелкните кнопкой мыши на названии поля, которое является первичным ключом в родительской таблице. Удерживая нажатой кнопку мыши, перетащите поле первичного ключа, наведите указатель на название того поля дочерней таблицы, которое должно стать вторичным ключом (при этом в изображении указателя появится знак +), и отпустите кнопку мыши.
3. На экране появится окно Изменение связей (рис. 2.22). В этом окне указаны названия связываемых полей. Убедитесь, что поля для создания связи выбраны верно. В случае обнаружения ошибки выберите другие поля.
Рис. 2.22. Окно Изменение связей
4. Выберите режим обеспечения целостности данных (об этом режиме подробно будет рассказано в следующем подразделе). Рекомендуется установить флажок Обеспечение целостности данных . Затем нажмите кнопку Создать .
5. Сохраните изменения схемы данных, нажав комбинацию клавиш Ctrl+S .
Далее будет описано, как включить режим обеспечения целостности данных при создании или изменении связи.
Обеспечение целостности данных
Целостностью данных в Microsoft Access называется ссылочная целостность – состояние отдельной связи или всей базы данных, при котором отсутствуют некорректные ссылки. Иными словами, целостность данных означает, что в дочерней таблице нет записей, ссылающихся «в никуда», вторичный ключ каждой записи содержит значение, существующее в столбце первичного ключа родительской таблицы.
Целостность данных может нарушиться в следующих ситуациях:
• в дочернюю таблицу добавляется новая запись, содержащая некорректное (отсутствующее в первичном ключе родительской таблицы) значение вторичного ключа, или в существующей записи дочерней таблицы значение вторичного ключа изменяется на некорректное;
• из родительской таблицы удаляется запись, в результате чего ссылки на эту запись становятся некорректными;
• в родительской записи изменяется значение первичного ключа, следовательно, ссылки на эту запись также становятся некорректными.
Исключить все эти ситуации позволяет режим автоматического обеспечения целостности данных. Этот режим включается отдельно для каждой связи в окне Изменение связи (см. рис. 2.22). Если установить флажок Обеспечение целостности данных , программа Access не допустит выполнения операций, ведущих к нарушению ссылочной целостности. Так, запрещается:
• сохранение записи с некорректным значением вторичного ключа;
• удаление родительской записи, если для связи не установлен флажок каскадное удаление связанных записей ; либо вместе с родительской записью автоматически удаляются дочерние записи, если флажок каскадное удаление связанных записей установлен;
• изменение значения первичного ключа родительской записи, если для связи не установлен флажок каскадное обновление связанных полей ; либо при изменении значения первичного ключа в родительской записи автоматически меняются значения вторичного ключа в дочерних записях, если флажок каскадное обновление связанных полей установлен.
Если вторичный ключ дочерней таблицы содержит некорректные значения, то включить режим обеспечения целостности невозможно: необходимо вначале удалить или изменить значения, нарушающие целостность данных.
После того как режим обеспечения целостности данных включен, над линией связи в схеме данных появляется символ 1 возле родительской таблицы и символ ? возле дочерней таблицы (см. рис. 2.21). Благодаря этим подписям вы сразу увидите, что для данной записи поддерживается целостность данных.
Продолжим изучение операций, выполняемых со связями, и перейдем теперь к редактированию существующих связей.
Если вам необходимо изменить свойства связи, например режим обеспечения целостности данных для связи, дважды щелкните кнопкой мыши на линии связи в схеме данных.
На экране появится окно Изменение связей (см. рис. 2.22). В этом окне выполните необходимые изменения и нажмите кнопку ОК .
В следующем подразделе рассказывается, как удалить ненужную или ошибочно созданную связь между таблицами.
Чтобы удалить связь, щелкните кнопкой мыши на линии связи в схеме данных (линия при этом станет жирной) и нажмите клавишу Delete . На появившейся панели подтвердите необходимость удаления связи, нажав кнопку Да .
На этом заканчивается рассмотрение операций со связями. Последний подраздел этого раздела посвящен просмотру дочерних записей при работе с родительской таблицей.
Отображение дочерних записей
Итак, если между таблицами создана связь, то, открыв родительскую таблицу в режиме таблицы, вы сможете просматривать и записи дочерней таблицы.
Чтобы увидеть записи, ссылающиеся на данную родительскую запись, нажмите знак + слева от записи. Откроется подтаблица, содержащая дочерние записи (рис. 2.23).
Если таблица имеет несколько дочерних таблиц, то вы можете выбрать ту из них, которая будет отображаться в виде подтаблицы.
• Если подтаблица не выбрана, при первом щелчке кнопкой мыши на знаке + появляется окно Вставка подтаблицы . В этом окне щелкните кнопкой мыши на названии нужной дочерней таблицы (при этом внизу окна отобразятся названия первичного ключа и вторичного ключа, с помощью которых образована связь таблиц). Нажмите кнопку ОК .
• Если подтаблица уже была выбрана, но вы хотите выбрать другую дочернюю таблицу в качестве подтаблицы, выполните следующие действия.
1) Перейдите в режим конструктора (кнопка Режим вкладки Главная ).
2) На вкладке Конструктор нажмите кнопку Страница свойств .
Рис. 2.23. Просмотр дочерних записей
3) В появившемся окне свойств (рис. 2.24) щелкните кнопкой мыши на значении свойства Имя подтаблицы . Справа от значения свойства появится кнопка
4) Нажмите эту кнопку и выберите из списка название дочерней таблицы, записи которой будут отображаться в подтаблице.
5) Сохраните изменения, нажав сочетание клавиш Ctrl+S .
6) Вернитесь в режим таблицы (нажмите кнопку Режим на вкладке Главная или Конструктор ).
Теперь при нажатии знака + будут отображаться записи выбранной вами подтаблицы.
Настроив связи между таблицами, вы завершили создание структуры базы данных. Последним аспектом работы с таблицами, о котором будет рассказано, станет просмотр данных в режиме таблицы.
Рис. 2.24. Выбор подтаблицы
Данный текст является ознакомительным фрагментом.
Читайте также
Стереотипы связей
Стереотипы связей Связь может иметь некоторые стереотипы, которые записываются рядом с одним из ее концов и указывают на особенность реализации данной связи. В языке UML для этой цели могут использоваться следующие стереотипы: • «association» – ассоциация (предполагается по
5.4. Настройка связей типов файлов с приложениями
5.4. Настройка связей типов файлов с приложениями Настройка программ по умолчаниюДля смены программ, устанавливаемых для определенных типов файлов по умолчанию, в Windows Vista используется специальное окно Программы по умолчанию (рис. 5.11), которое можно открыть с помощью меню
6.1.4. Работа с таблицами
6.1.4. Работа с таблицами Думаю, не нужно говорить о важности таблиц в современных документах. Ведь таблица считается одним из самых эффективных способов представления данных. Для работы с таблицами используются команды меню Таблица. Изучите это меню: оно содержит все
Работа с таблицами
Работа с таблицами Хотя в большинстве случаев при изучении верстки и макетирования мы делаем акцент в сторону «высокохудожественной» верстки, некоторые чисто технические знания вам все же понадобятся. Как бы ни хотелось вам заниматься исключительно разработкой
2.3. Работа с таблицами
2.3. Работа с таблицами В этом разделе вы узнаете, как создать, изменить и удалить таблицу, как просмотреть информацию о ней и список всех таблиц в текущей базе данных. Начнем с наиболее сложной команды – создания таблицы.Создание таблицыЧтобы создать таблицу, выполните
15.4. Работа с таблицами
15.4. Работа с таблицами Для работы с таблицами предназначено меню Таблица, содержащее все необходимые команды: добавление и удаление строк и столбцов таблицы, объединение, разъединение ячеек и т. д.Начнем с самого начала — создадим небольшую таблицу. Для этого выполните
Организация связей между таблицами
Организация связей между таблицами Исходные таблицы в Access представляют собой обычные плоские таблицы Конечно, они не позволяют формировать иерархические информационные структуры; для данной цели используется аппарат связей между таблицами. Access 2002 дает возможность
12.7. Многотабличные базы данных. Отношения между таблицами
12.7. Многотабличные базы данных. Отношения между таблицами Реляционные базы данных состоят из нескольких таблиц, связь между которыми устанавливается с помощью совпадающих полей. Каждая запись в таблицах идентифицирует один объект. Отношение между объектами определяет
3.3. Работа с таблицами
3.3. Работа с таблицами Для работы с таблицами предназначено меню Таблица, содержащее все необходимые команды: добавление и удаление строк и столбцов таблицы, объединение, разъединение ячеек и т. д.Начнем с самого начала — создадим небольшую таблицу. Для этого выполните
Урок 7.4. Проектирование базы данных. Создание связей между таблицами
Урок 7.4. Проектирование базы данных. Создание связей между таблицами Связи между таблицами Современные базы данных обычно состоят из многих таблиц, связанных между собой. В реляционной теории баз данных выделяют несколько типов связей между таблицами, однако чаще всего
Связи между таблицами
Связи между таблицами Современные базы данных обычно состоят из многих таблиц, связанных между собой. В реляционной теории баз данных выделяют несколько типов связей между таблицами, однако чаще всего используется тип связи «один-ко-многим». Например, в базе данных
Порядок создания связей
Порядок создания связей В подавляющем большинстве случаев в базах данных используются связи типа «один-ко-многим». Для создания такой связи в Access можно использовать следующий алгоритм.1. Сначала создайте таблицу, которая участвует в связи на стороне «один».2. В процессе
Практическая работа 56. Создание связей между таблицами
Практическая работа 56. Создание связей между таблицами Задание. Создать в среде Access 2007 базу данных из трех связанных таблиц согласно разработанному в этом уроке проекту.Эта работа будет объемной, поэтому ее выполнение будет разделено на несколько
Настройка параметров связей
Настройка параметров связей 1. Закройте все ранее открытые вкладки таблиц.2. На ленте откройте вкладку Работа с базами данных и нажмите кнопку Схема данных в группе Показать или скрыть. В появившемся окне вы должны увидеть таблицы базы данных и линии связи между ними. Если
Как создать или удалить связи между таблицами в access
Я уже показал вам как данные из разных таблиц могут быть связаны при помощи связи по внешнему ключу. Вы видели как заказы связываются с клиентами путем помещения customer_id в качестве внешнего ключа в таблице заказов.
Другой пример связи один-ко-многим – это связь, которая существует между матерью и ее детьми. Мать может иметь множество детей, но каждый ребенок может иметь только одну мать.
(Технически лучше говорить о женщине и ее детях вместо матери и ее детях потому, что, в контексте связи один-ко-многим, мать может иметь 0, 1 или множество потомков, но мать с 0 детей не может считаться матерью.
Но давайте закроем на это глаза, хорошо?)
Когда одна запись в таблице А может быть связана с 0, 1 или множеством записей в таблице B, вы имеете дело со связью один-ко-многим. В реляционной модели данных связь один-ко-многим использует две таблицы.
Схематическое представление связи один-ко-многим. Запись в таблице А имеет 0, 1 или множество ассоциированных ей записей в таблице B.
Как опознать связь один-ко-многим?
Если у вас есть две сущности спросите себя: 1) Сколько объектов и B могут относится к объекту A? 2) Сколько объектов из A могут относиться к объекту из B?
Если на первый вопрос ответ – множество, а на второй – один (или возможно, что ни одного), то вы имеете дело со связью один-ко-многим.
Примеры
Некоторые примеры связи один-ко-многим:
- Машина и ее части. Каждая часть машины единовременно принадлежит только одной машине, но машина может иметь множество частей.
- Кинотеатры и экраны. В одном кинотеатре может быть множество экранов, но каждый экран принадлежит только одному кинотеатру.
- Диаграмма сущность-связь и ее таблицы. Диаграмма может иметь больше, чем одну таблицу, но каждая из этих таблиц принадлежит только одной диаграмме.
- Дома и улицы. На улице может быть несколько домов, но каждый дом принадлежит только одной улице.
В данном случае все настолько просто, что только поэтому может оказаться трудным понимание. Возьмем последний пример с домами.
На улице ведь действительно может быть любое количество домов, но у каждого дома именно на этой улице может быть только одна улица (не берем дома, которые на практике принадлежат разным улицам, возьмем, к примеру, дом в центре улицы).
Ведь не может конкретно этот дом быть одновременно в двух местах, на двух разных улицах, а мы говорим не про какой-то абстрактный дом вообще, а про конкретный.
8. Связь многие-ко-многим
Связь многие-ко-многим – это связь, при которой множественным записям из одной таблицы (A) могут соответствовать множественные записи из другой (B). Примером такой связи может служить школа, где учителя обучают учащихся.
В большинстве школ каждый учитель обучает многих учащихся, а каждый учащийся может обучаться несколькими учителями. Связь между поставщиком пива и пивом, которое они поставляют – это тоже связь многие-ко-многим.
Поставщик, во многих случаях, предоставляет более одного вида пива, а каждый вид пива может быть предоставлен множеством поставщиков.
Обратите внимание, что при проектировании базы данных вы должны спросить себя не о том, существуют ли определенные связи в данный момент, а о том, возможно ли существование связей вообще, в перспективе.
Если в настоящий момент все поставщики предоставляют множество видов пива, но каждый вид пива предоставляется только одним поставщиком, то вы можете подумать, что это связь один-ко-многим, но… Не торопитесь реализовывать связь один-ко-многим в этой ситуации. Существует высокая вероятность того, что в будущем два или более поставщиков будут поставлять один и тот же вид пива и когда это случится ваша база данных — со связью один-ко-многим между поставщиками и видами пива – не будет подготовлена к этому.
Создание связи многие-ко-многим
Связь многие-ко-многим создается с помощью трех таблиц. Две таблицы – “источника” и одна соединительная таблица. Первичный ключ соединительной таблицы A_B – составной.
Она состоит из двух полей, двух внешних ключей, которые ссылаются на первичные ключи таблиц A и B. Все первичные ключи должны быть уникальными. Это подразумевает и то, что комбинация полей A и B должна быть уникальной в таблице A_B. Пример проект базы данных ниже демонстрирует вам таблицы, которые могли бы существовать в связи многие-ко-многим между бельгийскими брендами пива и их поставщиками в Нидерландах. Обратите внимание, что все комбинации beer_id и distributor_id уникальны в соединительной таблице.
Таблицы “о пиве”

Таблицы выше связывают поставщиков и пиво связью многие-ко-многим, используя соединительную таблицу. Обратите внимание, что пиво 'Gentse Tripel' (157) поставляют Horeca Import NL (157, AC001) Jansen Horeca (157, AB899) и Petersen Drankenhandel (157, AC009). И vice versa, Petersen Drankenhandel является поставщиком 3 видов пива из таблицы, а именно: Gentse Tripel (157, AC009), Uilenspiegel (158, AC009) и Jupiler (163, AC009).
Еще обратите внимание, что в таблицах выше поля первичных ключей окрашены в синий цвет и имеют подчеркивание. В модели проекта базы данных первичные ключи обычно подчеркнуты. И снова обратите внимание, что соединительная таблица beer_distributor имеет первичный ключ, составленный из двух внешних ключей. Соединительная таблица всегда имеет составной первичный ключ.
Есть еще одна важная вещь на которую нужно знать. Связь многие-ко-многим состоит из двух связей один-ко-многим. Обе таблицы: поставщики пива и пиво – имеют связь один-ко-многим с соединительной таблицей.
Другой пример связи многие-ко-многим: заказ билетов в отеле

В качестве последнего примера позвольте мне показать как бы могла быть смоделирована таблица заказов номеров гостиницы посетителями. Соединительная таблица связи многие-ко-многим имеет дополнительные поля. В этом примере вы видите, что между таблицами гостей и комнат существует связь многие-ко-многим. Одна комната может быть заказана многими гостями с течением времени и с течением времени гость может заказывать многие комнаты в отеле. Соединительная таблица в данном случае является не классической соединительной таблицей, которая состоит только из двух внешних ключей. Она является отдельной сущностью, которая имеет связи с двумя другими сущностями. Вы часто будете сталкиваться с такими ситуациями, когда совокупность двух сущностей будет являться новой сущностью.
9. Связь один-к-одному
В связи один-к-одному каждый блок сущности A может быть ассоциирован с 0, 1 блоком сущности B. Наемный работник, например, обычно связан с одним офисом. Или пивной бренд может иметь только одну страну происхождения.
В одной таблице
Связь один-к-одному легко моделируется в одной таблице. Записи таблицы содержат данные, которые находятся в связи один-к-одному с первичным ключом или записью.
В отдельных таблицах
В редких случаях связь один-к-одному моделируется используя две таблицы.
Такой вариант иногда необходим, чтобы преодолеть ограничения РСУБД или с целью увеличения производительности (например, иногда — это вынесение поля с типом данных blob в отдельную таблицу для ускорения поиска по родительской таблице).
Или порой вы можете решить, что вы хотите разделить две сущности в разные таблицы в то время, как они все еще имеют связь один-к-одному. Но обычно наличие двух таблиц в связи один-к-одному считается дурной практикой.
Примеры связи один-к-одному
- Люди и их паспорта. Каждый человек в стране имеет только один действующий паспорт и каждый паспорт принадлежит только одному человеку.

Проект реляционной базы данных – это коллекция таблиц, которые перелинковываются (связываются) первичными и внешними ключами. Реляционная модель данных включает в себя ряд правил, которые помогают вам создать верные связи между таблицами. Эти правила называются “нормальными формами”. В следующих частях я покажу как нормализовать вашу базу данных.
Какой же вид связи вам нужен?
Примеры связей таблиц на практике. Когда какие-то данные являются уникальными для конкретного объекта, например, человек и номера его паспортов, то имеем дело со связью один-ко-многим. Т.е. в одной таблице мы имеем список неких людей, а в другой таблице у нас есть перечисление номеров паспортов этого человека (напр.
, паспорт страны проживания и загранпаспорт). И эта комбинация данных уникальная для каждого человека. Т.е. у каждого человека может быть несколько номеров паспортов, но у каждого паспорта может быть только один владелец. Итого: нужны две таблицы.
А если есть некие данные, которые могу быть присвоены любому человеку, то имеем дело со связью многие-ко-многим. Например, есть таблица со списком людей и мы хотим хранить информацию о том, какие страны посетил каждый человек. В данном случае имеется две сущности: люди и страны.
Любой человек может посетить любое количество стран равно, как и любая страна может быть посещена любым человеком. Т.е., в данном случае, страна не является уникальными данными для конкретного человека и может использоваться повторно.
В таких случаях использование связи многие-ко-многим с использованием трех таблиц и с хранением общей информации централизованно очень удобно.
Ведь если общие данные меняются, то для того, чтобы информация в базе данных соответствовала действительности достаточно подправить ее только в одном месте, т.к.
хранится она только в одном месте (таблице), в остальных таблицах имеются лишь ссылки на нее.
А когда у вас есть набор уникальных данных, которые имеют отношение только друг к другу, то храните все в одной таблице. Ваш выбор – связь один-к-одному. Например, у вас есть небольшая коллекция автомобилей и вы хотите хранить информацию о них (цвет, марка, год выпуска и пр.).
Как создать или удалить связи между таблицами в Access
2.4. Microsoft Access 2007
2.4.3. Установка логических связей в БД Access 2007
Логические связи устанавливаются между одноименными полями таблиц базы данных Access 2007. Связь данных в одной таблице с данными в других таблицах осуществляется через уникальные идентификаторы (ключи) или ключевые поля. В нашем случае мы должны установить логические связи между таблицами: Группы студентов, Студенты, Дисциплины и Успеваемость.
Для установления связей используем ключевые поля: КодГруппы, КодСтудентов и КодДисциплины. Например, между первичным ключом (КодГруппы) tables Группы студентов и вторичным ключом (КодГруппы) tables Студенты устанавливаем связь один — ко — многим.
Прежде чем приступить к созданию логических связей надо в Окне редактирования закрыть все tables и перейти на вкладку Работа с базами данных. Затем щелкнуть на пиктограмме Схема данных, в окне редактирования появится активное диалоговое окно «Добавление таблицы» на фоне неактивного окна Схема данных (рис. 1).
В окне Добавление таблиц необходимо выделить имена таблиц и нажать кнопку Добавить, при этом в окне «Схема данных» появятся все tables (рис. 2). После этого необходимо закрыть окно диалога.
Далее необходимо установить связи между табл. в окне Схема данных. Для этого в окне Схема данных необходимо отбуксировать (переместить) поле КодГруппы из таблицы Группы студентов на соответствующее поле tables Студенты, в результате этой операции появится окно «Изменение связей» (рис. 3) .
В появившемся окне диалога «Изменение связей» (рис. 3) необходимо установить флажки: «Обеспечить целостность данных», «каскадное обновление связанных полей» и «каскадное удаление связанных записей», убедиться в том, что установлен тип отношений один-ко-многим и нажать кнопку Создать.
В окне Схема данных появится связь один-ко-многим между таблицами Группы студентов и Студенты. Аналогичным образом надо связать поля КодСтудента в таблицах Студенты и Успеваемость, а затем поля КодДисциплины в таблицах Успеваемость и Дисциплины. В итоге получим Схему данных, представленную на рисунке 4.
После установки связей между таблицами, окно Схема данных необходимо закрыть. Далее необходимо осуществить заполнение всех таблиц. Заполнение целесообразно начинать с табл. Группы студентов, так как поле КодГруппы табл. Студенты используется в качестве столбца подстановки для заполнения соответствующего поля табл. Студенты.
Затем установить связи между табл. «Студенты» и «Успеваемость», «Дисциплины» и «Успеваемость», так как поля КодСтуденты и КодДисциплины табл. Успеваемость используется в качестве столбца подстановки для заполнения соответствующих полей таблицы Успеваемость.
Далее >>> Раздел: 2.4.4. Заполнение таблиц базы данных Access 2007
Реляционная база данных, созданная в соответствии с проектом канонической модели данных предметной области, состоит из нормализованных таблиц, связанных одно-многозначными отношениями.
В такой базе данных обеспечивается отсутствие дублирования описательных данных, их однократный ввод, поддержание целостности данных средствами системы.
Связи между таблицами позволяют выполнить объединение данных различных таблиц, необходимое для решения большинства задач ввода, просмотра и корректировки данных, получения информации по запросам и вывода отчетов.
Связи между таблицами устанавливаются в соответствии с проектом логической структуры базы данных и запоминаются в схеме данных Access.
Схема данных в Access является не только средством графического отображения логической структуры базы данных, она активно используется системой в процессе обработки данных.
Создание схемы данных позволяет упростить конструирование многотабличных форм, запросов, отчетов, а также обеспечить поддержание целостности взаимосвязанных данных при вводе и корректировке данных в таблицах.
Создание схемы данных
Создание схемы данных начинается с выполнения команды Схема данных (Relationships) в группе Отношения (Relationships) на вкладке ленты Работа с базами данных (Database Tools).
В результате выполнения этой команды открывается окно схемы данных и диалоговое окно Добавление таблицы (Show Table), в котором осуществляется выбор таблиц, включаемых в схему (см. рис. 3.48).
Диалоговое окно Добавление таблицы откроется автоматически, если в базе данных еще не определена ни одна связь.
Если окно не открылось, на ленте Работа со связями | Конструктор (Relationship Tools | Design) в группе Связи (Relationships) нажмите кнопку Отобразить таблицу (Show Table).

Включение таблиц в схему данных
В окне Добавление таблицы (Show Table) (рис. 3.48) отображены все таблицы и запросы, содержащиеся в базе данных.
Выберем вкладку Таблицы (Tables) и с помощью кнопки Добавить (Add) разместим в окне Схема данных (Relationships) все ранее созданные таблицы базы данных Поставка товаров, отображенные в окне Добавление таблицы (Show Table).
Затем нажмем кнопку Закрыть (Close). В результате в окне Схема данных (Relationships) таблицы базы будут представлены окнами со списками своих полей и выделенными жирным шрифтом ключами (см. рис. 3.52).

Создание связей между таблицами схемы данных
При создании связей в схеме данных используется проект логической структуры реляционной базы данных, в котором показаны все одно-многозначные связи таблиц. Реализуются связи с помощью добавления в связанные таблицы общих полей, называемых ключом связи. При одно-многозначных отношениях между таблицами ключом связи является ключ главной таблицы (простой или составной).
В подчиненной таблице он может быть частью уникального ключа или вовсе не входить в состав ключа таблицы. Одно-многозначные связи являются основными в реляционных базах данных. Одно-однозначные связи используются, как правило, при необходимости распределять большое количество полей, определяемых одним и тем же ключом, по разным таблицам, имеющим разный регламент обслуживания.
Создание связей по простому ключу
Установим связь между таблицами ПОКУПАТЕЛЬ и ДОГОВОР, которые находятся в отношении «один-ко-многим». Устанавливая связи между парой таблиц, находящихся в отношении типа 1 : M, выделим в главной таблице ПОКУПАТЕЛЬ ключевое поле КОД_ПОК, по которому устанавливается связь. Далее при нажатой кнопке мыши перетащим его в соответствующее поле подчиненной таблицы ДОГОВОР.
Поскольку поле связи является уникальным ключом в главной таблице связи, а в подчиненной таблице связи не является ключевым, схема данных в Access выявляет отношение «один-ко-многим» между записями этих таблиц. Значение «один-ко-многим» (One-To-Many) отобразится в окне Изменение связей (Edit Relationships) в строке Тип отношения (Relationship Type) (рис. 3.49).

Определение связей по составному ключу
Определим связи между таблицами НАКЛАДНАЯ ОТГРУЗКА, которые связаны по составному ключу НОМ_НАКЛ + КОД_СК. Для этого в главной таблице НАКЛАДНАЯ выделим оба этих поля, нажав клавишу , и перетащим их в подчиненную таблицу ОТГРУЗКА.
В окне Изменение связей (Edit Relationships) (рис. 3.50) для каждого поля составного ключа главной таблицы НАКЛАДНАЯ, названной Таблица/запрос (Table/Query), выберем соответствующее поле подчиненной таблицы ОТГРУЗКА, названной Связанная таблица/запрос (Related Table/Query).

Каскадное обновление и удаление связанных записей
Если для выбранной связи обеспечивается поддержание целостности, можно задать режим каскадного удаления связанных записей и режим каскадного обновления связанных полей.
Такие параметры делают возможным в главной таблице, соответственно, удаление записей и изменение значения в ключевом поле, т. к.
при этих параметрах система автоматически выполнит необходимые изменения в подчиненных таблицах, обеспечив сохранение свойств целостности базы данных.
В режиме каскадного удаления связанных записей при удалении записи из главной таблицы будут автоматически удаляться все связанные записи в подчиненных таблицах. При удалении записи из главной таблицы выполняется каскадное удаление подчиненных записей на всех уровнях, если этот режим задан на каждом уровне.
В режиме каскадного обновления связанных полей при изменении значения ключевого поля в записи главной таблицы Access автоматически изменит значения в соответствующем поле в подчиненных записях.
Установить в окне Изменение связей (Edit Relationships) (см. рис. 3.49) флажки каскадное обновление связанных полей (Cascade Update Related Fields) и каскадное удаление связанных записей (Cascade Delete Related Records) можно только после задания параметра обеспечения целостности данных.

После создания связей изображения таблиц могут перемещаться в пределах рабочего пространства окна схемы данных. Перемещения и изменения размеров окон со списками полей таблиц в окне схемы данных осуществляются принятыми в Windows способами.
- Заметим, если каскадное удаление не разрешено, невозможно удалить запись в главной таблице, если имеются связанные с ней записи в подчиненной. Смотрим видео:
- Вот основное, что мы хотели рассказать на тему «Схема данных в Access».
- Дальше будем изучать запросы в Access.
Система управления базами данных SQLite. Изучаем язык запросов SQL и реляционные базы данных на примере библиотекой SQLite3. Курс для начинающих
Здравствуйте, уважаемые посетители сайта ZametkiNaPolyah.ru. Продолжаем изучать базы данных и наше знакомство с библиотекой SQLite3.
Продолжаем изучать теорию реляционных баз данных и в этой части мы познакомимся с видами и типами связей между таблицами в реляционных базах данных. Так же мы познакомимся с такими термина, как: кортеж, атрибут и отношения.
Данная тема является базовой и ее понимание необходимо для работы с базами данных и для их проектирования.

Виды связей между таблицами в базе данных. Связи в реляционных базах данных. Отношения, кортежи, атрибуты.
Сразу скажу, что связей между таблицами в реляционной базе данных всего три. Поэтому их изучение, понимание и восприятие пройдет быстро, легко и безболезненно. Приступим к изучению.
Термины кортеж, атрибут и отношение в реляционных базах данных
В своей публикации я буду стараться объяснять теорию баз данных не с математической точки зрения, а на примерах. Грубо говоря, на пальцах.
Во-первых, практические примеры позволяют легче усваивать материал. Во-вторых, с математической теорией проще разобраться, когда понимаешь суть происходящего.
Давайте разбираться с тем, что такое: отношение, кортеж, атрибут в реляционной базе данных.

Таблица с данными из базы данных World
У нас есть простая таблица City из базы данных World, в которой есть строки и столбцы. Но термины: таблица, строка, столбец – это термины стандарта SQL.
Кстати: ни одна из существующих в мире СУБД не имеет полной поддержки того или иного стандарта SQL, но и ни один стандарт SQL полностью не реализует математику реляционных баз данных.
В терминологии реляционных баз данных: таблица – это отношение (принимается такое допущение), строка – это кортеж, а столбец – атрибут. Иногда вы можете услышать, как некоторые разработчики называют строки записями. Чтобы не было путаницы в дальнейшем предлагаю использовать термины SQL.
Если рассматривать таблицу, как объект (например книга), то столбец – это характеристики объекта, а строки содержат информацию об объекте.
Виды и типы связей между таблицами в реляционных базах данных
Давайте теперь рассмотрим то, как могут быть связаны таблицы в реляционных базах данных. Сразу скажу, что всего существует три вида связей между таблицами баз данных:
• связь один к одному;
• связь один ко многим;
• связь многие ко многим.
Рассмотрим, как такие связи между таблицами могут быть реализованы в реляционных базах данных.
Реализация связи один ко многим в теории баз данных
Связь один ко многим в реляционных базах данных реализуется тогда, когда объекту А может принадлежать или же соответствовать несколько объектов Б, но объекту Б может соответствовать только один объект А. Не совсем понятно, поэтому смотрим пример ниже.

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

Пример связи многие ко многим
У нас есть таблица с книгами и есть таблица с авторами. Приведу два верных утверждения. Первое: одну книгу может написать несколько авторов. Второе: автор может написать несколько книг. Здесь мы наблюдаем типичную ситуацию, когда связь между таблицами многие ко многим. Такая связь (связь многие ко многим) реализуется путем добавления третьей таблицы.
Связь один к одному
Связь один к одному – самая редко встречаемая связь между таблицами. В 97 случаях из 100, если вы видите такую связь, вам необходимо объединить две таблицы в одну.

Пример связи один к одному
Таблицы будут связаны один к одному тогда, когда одному объекту таблицы А соответствует один объект таблицы Б, и одному объекту таблицы Б соответствует один объект таблицы А. Как я уже говорил: если вы видите, что связь один к одному – смело объединяйте таблицы в одну, за исключением тех случаев, когда происходит модернизация базы данных.
Например, у нас была таблица, в которой хранились данные о сотрудниках компании. Но произошли какие-то изменения в бизнес-процессе и появилась необходимость создать таблицы с теми же самыми сотрудниками, но не для всей компании, а разбив их по отделам.
Таблицы отделов будут дочерними по отношению к таблице, в которой хранятся данные обо всех сотрудниках компании, и связаны такие таблицы будут связью один к одному.
Мы рассмотрели все виды связей между таблицами и то, как они реализуются в базах данных. В дальнейшем, когда мы начнем создавать свои базы данных, информация о видах связи между таблицами нам очень поможет.
Возможно, эти записи вам покажутся интересными
Установка связеймежду таблицами БД Access 2007
Логические связи устанавливаются между одноименными полями таблиц базы данных Access 2007. Связь данных в одной таблице с данными в других таблицах осуществляется через уникальные идентификаторы (ключи) или ключевые поля. В нашем случае мы должны установить логические связи между таблицами: Группы студентов, Студенты, Дисциплины и Успеваемость.
Для установления связей используем ключевые поля: КодГруппы, КодСтудентов и КодДисциплины. Например, между первичным ключом (КодГруппы) tables Группы студентов и вторичным ключом (КодГруппы) tables Студенты устанавливаем связь один — ко — многим.
Прежде чем приступить к созданию логических связей надо в Окне редактирования закрыть все tables и перейти на вкладку Работа с базами данных. Затем щелкнуть на пиктограмме Схема данных, в окне редактирования появится активное диалоговое окно «Добавление таблицы» на фоне неактивного окна Схема данных (рис. 1).

Рис. 1.
В окне Добавление таблиц необходимо выделить имена таблиц и нажать кнопку Добавить, при этом в окне «Схема данных» появятся все tables (рис. 2). После этого необходимо закрыть окно диалога.

Рис. 2.
Далее необходимо установить связи между табл. в окне Схема данных. Для этого в окне Схема данных необходимо отбуксировать (переместить) поле КодГруппы из таблицы Группы студентов на соответствующее поле tables Студенты, в результате этой операции появится окно «Изменение связей» (рис. 3) .

Рис. 3.
В появившемся окне диалога «Изменение связей» (рис. 3) необходимо установить флажки: «Обеспечить целостность данных», «каскадное обновление связанных полей» и «каскадное удаление связанных записей», убедиться в том, что установлен тип отношений один-ко-многим и нажать кнопку Создать.
В окне Схема данных появится связь один-ко-многим между таблицами Группы студентов и Студенты. Аналогичным образом надо связать поля КодСтудента в таблицах Студенты и Успеваемость, а затем поля КодДисциплины в таблицах Успеваемость и Дисциплины. В итоге получим Схему данных, представленную на рисунке 4.

Рис. 4.
После установки связей между таблицами, окно Схема данных необходимо закрыть. Далее необходимо осуществить заполнение всех таблиц. Заполнение целесообразно начинать с табл. Группы студентов, так как поле КодГруппы табл. Студенты используется в качестве столбца подстановки для заполнения соответствующего поля табл. Студенты.
Затем установить связи между табл. «Студенты» и «Успеваемость», «Дисциплины» и «Успеваемость», так как поля КодСтуденты и КодДисциплины табл. Успеваемость используется в качестве столбца подстановки для заполнения соответствующих полей таблицы Успеваемость.
Далее >>> Раздел: 2.4.4. Заполнение таблиц базы данных Access 2007
4. Создание связей между таблицами
MS Access поддерживает 3 типа связей между таблицами: «один-к-одному», «один-ко-многим», «много-ко-многим».
Связь «один-к-одному» означает, что каждая запись в одной таблице соответствует только одной записи в другой таблице.
Связь «один-ко-многим» означает, что каждая запись в одной таблице соответствует нескольким записям другой таблицы.
Связь «много-ко-многим» означает, что одна запись в первой таблице может быть связана более чем с одной записью из второй таблицы и одна запись из второй таблицы может быть связана более чем с одной записью из первой таблицы.
В MS Access можно устанавливать постоянные связи между таблицами, которые будут поддерживаться при создании форм, отчетов и запросов. Устанавливая связи между таблицами, нужно выбирать поле, которое содержит одну и ту же информацию. Чаще связывают первичный ключ одной таблицы с совпадающими полями другой таблицы.
- Создание связей между таблицами осуществляется в окне диалога Схема данных.
- Определение связей между таблицами БД.
- (Рассмотрим на примере определения связи между таблицами ТОВАРЫ и КАТЕГОРИЯ ТОВАРА. Одной записи в первой таблице соответствует только одна запись в другой таблице):
1-й шаг. Закрытие всех таблиц БД.
Нельзя создавать или удалять связи между открытыми таблицами.
2-й шаг. Открытие окна диалога Схема данных.
Для этого нужно выполнить команду Схема данных на вкладке Работа с базой данных в группе Отношения.
3-й шаг. Добавление в окно диалога связываемых таблиц.
В результате выполнения этой команды открывается окно схемы данных и диалоговое окно Добавление таблицы (рис. 13), в котором осуществляется выбор таблиц, включаемых в схему данных.
Рисунок 13 – Диалоговое окно Добавление таблицы
Диалоговое окно Добавления таблицы откроется автоматически, если в базе данных еще не определена ни одна связь.
Если окно не открылось (или нужно добавить еще какие-то таблицы из этой БД), тогда на контекстной вкладке Работа со связями | Конструктор в группе Связи нажмите кнопку Отобразить таблицу.
В списке таблиц нужно поочередно выбирать связываемые таблицы, нажимая кнопку Добавить (или выполняя двойной щелчок левой кнопки мыши на названии таблицы в диалоговом окне).
После выбора всех необходимых таблиц нужно закрыть диалоговое окно. В окне Схема данных появятся связываемые таблицы. Их месторасположение можно менять. Для этого необходимо выделить таблицу и, удерживая левую кнопку мыши, перемещать ее.
4-й шаг. Установка связей.
- Для связывания таблиц нужно выбрать ключевое поле в первой таблице и переместить его при помощи мыши (перетащить) на соответствующее ключевое поле в другой таблице.
- На экране появляется диалоговое окноИзменение связей (рисунок 14):
- Рисунок 14 – Диалоговое окно Изменение связей
- Здесь необходимо проверить правильность имен связываемых полей (если нужно – выбрать другие имена полей) и установить обеспечение целостности данных.
- Определение целостности данных.
Целостность данных является одним из самых важных требований, предъявляемых к базам данных. Для задания условий целостности данных служат установленные между таблицами отношения.
Условия целостности данных – это набор правил, используемых для поддержания связей между записями в связанных таблицах. Эти правила делают невозможным случайное удаление или изменение связей данных. Данная операция изменяет только макет в окне диалога “Схема данных”.
Ограничения:
Невозможно ввести в поле внешнего ключа связанной таблицы значение, не содержащееся в ключевом поле главной таблицы. Но можно вводить пустые значения, показывающие, что записи не связаны.
Нельзя удалять записи из главной таблицы, если существуют связанные с ней записи в подчиненной таблице.
Нельзя изменять значение ключевого поля в главной таблице, если имеются записи, связанные с этой записью.
Теперь любая попытка выполнить действие, нарушающее ограничения, приведет к открытию окна диалога с предупреждением, а действие выполнено не будет.
Чтобы преодолеть ограничения на удаление или изменение связанных записей, сохраняя при этом целостность данных, нужно включить режимы каскадного обновления и каскадного удаления.
При установленном флажке Каскадное обновление связанных полей изменение значения в ключевом поле главной таблицы приводит к автоматическому обновлению соответствующих значений во всех связанных записях.
При установленном флажке Каскадное удаление связанных записей удаление записи в главной таблице приводит к автоматическому удалению связанных записей в подчиненной таблице. Эти флажки устанавливаются в окне диалога “Изменение связей” только после установки опции Обеспечение целостности данных.
Затем нужно нажать кнопку Создать. Такие действия необходимо выполнить со всеми ключевыми полями, чтобы установить связи между таблицами БД, После этого окно Схема данных примет иной вид (рис. 15):
- Рисунок 15 – Окно диалога Схема данных после установки связей
- Изменение существующей связи.
- Изменять связи также можно только тогда, когда все таблицы закрыты.
1-й шаг. Перейти на вкладку Работа с базами данных, выполнить команду Схема данных.
2-й шаг. Если таблицы, связи между которыми требуется изменить, не отображаются в окне диалога Схема данных, нажмите кнопку Отобразить таблицу, выберите нужную таблицу, затем нажмите кнопку Закрыть.
3-й шаг. Установите указатель мыши на линию связи, которую требуется изменить, и дважды щелкните левой кнопкой. Откроется диалоговое окно Изменение связей, где вносятся нужные изменения (рисунок 16).
Рисунок 16 – Диалоговое окно Изменение связей
Удаление связи.
1-й шаг. Перейти на вкладку Работа с базами данных, выполнить команду Схема данных.
2-й шаг. Выделить мышью линию связи, которую нужно удалить.
3-й шаг. Нажать клавишу .
Аналогично в окне диалога Схема данных можно удалить таблицу из макета схемы данных (при этом таблица и ее связи сохранится в базе данных).
Процедура создания связей в базе данных Microsoft Access
В реляционной базе данных связи позволяют избежать избыточности данных.
Например, в ходе создания базы данных, содержащей сведения о книгах, может появиться таблица под названием «Книги», в которой будут храниться параметры каждой книги, такие как ее название, дата публикации и издатель.
Кроме того, есть и дополнительные сведения об издателе, которые может потребоваться сохранить, такие как его телефонный номер, адрес и почтовый индекс. Если хранить их в таблице с книгами, то телефонный номер издателя будет повторяться для каждой опубликованной им книги.
Более правильным вариантом является вынесение сведений об издателях в отдельную таблицу «Издатели». При этом таблица «Книги» будет содержать ссылки на записи таблицы «Издатели».
Чтобы сохранить синхронизацию, следует обеспечить целостность данных между таблицами «Книги» и «Издатели».
Связи с обеспечением целостности данных позволяют следить за тем, чтобы данные в одной таблице соответствовали данным в другой.
Например, каждая книга в таблице «Книги» связана с определенным издателем в таблице «Издатели». Добавить в таблицу книгу для издателя, отсутствующего в базе данных, невозможно.
Связь осуществляется путем сопоставления данных в ключевых столбцах; обычно это столбцы, имеющие в обеих таблицах одинаковые названия.
В большинстве случаев сопоставляются первичный ключ одной таблицы, содержащий для каждой из строк уникальный идентификатор, и внешний ключ другой таблицы.
Например, с каждым из изданий, находящихся в продаже, можно связать объемы его продаж путем создания столбца «ИД_издания» в таблице «Книги» (первичный ключ) и столбца «ИД_издания» в таблице «Продажи» (внешний ключ).
Существует три вида связей между таблицами. Вид создаваемой связи зависит от того, как заданы связанные столбцы.
Связь «один ко многим» — наиболее распространенный вид связи.
При такой связи каждой строке таблицы А может соответствовать множество строк таблицы Б, однако каждой строке таблицы Б может соответствовать только одна строка таблицы А.
Например, между таблицами «Издатели» и «Книги» установлена связь «один ко многим»: каждый из издателей может опубликовать множество книг, однако каждая книга публикуется лишь одним издателем.
Связь «один ко многим» создается в том случае, когда только на один из связываемых столбцов наложено ограничение уникальности или он является первичным ключом.
В Microsoft Access сторона связи «один ко многим», которой соответствует первичный ключ, обозначается символом ключа. Сторона связи, которой соответствует внешний ключ, обозначается символом бесконечности.
При установлении связи «многие ко многим» каждой строке таблицы А может соответствовать множество строк таблицы Б и наоборот. Такая связь создается при помощи третьей таблицы, называемой соединительной, первичный ключ которой состоит из внешних ключей, связанных с таблицами А и Б.
Например, между таблицами «Авторы» и «Книги» установлена связь вида «многие ко многим», задаваемая с помощью связей вида «один ко многим» между каждой из этих таблиц и таблицей «АвторыКниг».
Первичный ключ таблицы «АвторыКниг» — это сочетание столбцов «ИД_автора» (первичного ключа таблицы авторов) и «ИД_книги» (первичного ключа таблицы заголовков).
При установлении связи «один к одному» каждой строке таблицы А может соответствовать только одна строка таблицы Б и наоборот. Связь «один к одному» создается в том случае, когда оба связанные столбца являются первичными ключами или на них наложены ограничения уникальности.
Этот вид связи используется редко, поскольку в такой ситуации связываемые данные обычно можно хранить в одной таблице. Использовать связь вида «один к одному» можно в указанных ниже случаях.
- Чтобы разделить таблицу, содержащую слишком много столбцов.
- Чтобы изолировать часть таблицы по соображениям безопасности.
- Для хранения данных кратковременного использования, удалить которые проще всего путем очистки таблицы.
- Для хранения данных, имеющих отношение только к подмножеству основной таблицы.
В Microsoft Access сторона связи «один к одному», которой соответствует первичный ключ, обозначается символом ключа. Сторона связи, которой соответствует внешний ключ, также обозначается символом ключа.
При установлении связи между таблицами связанные поля не обязательно должны иметь одинаковые названия. При этом у них должен быть один и тот же тип данных, если только поле, являющееся первичным ключом, не относится к типу «Счетчик».
Поле типа «Счетчик» можно связать с полем типа «Числовой» только в том случае, если для свойства FieldSize (размер поля) каждого из них задано одно и то же значение. Например, можно связать столбцы типов «Счетчик» и «Числовой», если для свойства FieldSize каждого из них установлено значение «Длинное целое».
Даже если оба связываемых столбца относятся к типу «Числовой», значение свойства FieldSize для обоих полей должно быть одинаковым.
Чтобы создать связь вида «один ко многим» или «один к одному», воспользуйтесь приведенной ниже последовательностью действий:
- Закройте все открытые таблицы. Создавать или изменять связи между открытыми таблицами нельзя.
- В Access версий 2002 или 2003 выполните указанные ниже действия.
- Нажмите клавишу F11, чтобы перейти в окно базы данных.
- В меню Сервис выберите команду Связи.
В большинстве случаев понадобится перетащить поле первичного ключа (выделенное полужирным текстом) из одной таблицы на аналогичное поле (часто с тем же самым названием), называемое внешним ключом, другой таблицы.
При необходимости задайте параметры связи. Если требуются сведения о конкретном элементе окна Изменение связей, нажмите кнопку со знаком вопроса, а затем щелкните соответствующий элемент. Эти параметры будут подробно описаны ниже.
При закрытии диалогового окна Изменение связей Microsoft Access спросит, нужно ли сохранить макет. Вне зависимости от ответа на этот вопрос создаваемые связи сохраняются в базе данных.
Примечание. Создавать связи можно не только в таблицах, но и в запросах. При этом, однако, не обеспечивается целостность данных.
Чтобы создать связь вида «многие ко многим», выполните указанные ниже действия.
- Создайте две таблицы, которые необходимо связать отношением «многие ко многим».
- Создайте третью таблицу, называемую соединительной, и добавьте в нее поля с теми же определениями, что и поля первичных ключей в каждой из двух других таблиц. Поля первичных ключей соединительной таблицы служат внешними ключами. В соединительную таблицу, как и в любую другую, можно добавить и другие поля.
- Задайте первичный ключ этой таблицы таким образом, чтобы он включал в себя поля первичных ключей обеих основных таблиц. Например, первичный ключ соединительной таблицы «АвторыКниг» будет состоять из полей «ИД_заказа» и «ИД_продукта».
Примечание. Чтобы создать первичный ключ, выполните указанные ниже действия.
- Откройте таблицу в режиме конструктора.
- Выберите одно или несколько полей, которые необходимо определить в качестве первичного ключа. Чтобы выбрать одно поле, щелкните знак выбора строки для нужного поля.
Чтобы выбрать несколько полей, удерживайте нажатой клавишу CTRL и щелкните знак выбора строки для каждого из полей.
В Access 2007 нажмите кнопку Первичный ключ в группе Сервис вкладки Структура.
Примечание. Чтобы порядок следования полей в первичном ключе, состоящем из нескольких полей, отличался от такового в таблице, нажмите кнопку Индексы на панели инструментов, в результате чего появится диалоговое окно Индексы, в котором можно изменить порядок следования полей индекса под названием КлючевоеПоле.
Целостность данных — это система правил 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 — левое внешнее соединение. Левое внешнее соединение — это соединение, при котором все записи таблицы по левую сторону от оператора LEFT JOIN (левое объединение) инструкции SQL попадают в результаты запроса даже в том случае, если в связанном поле из правой таблицы отсутствуют соответствующие значения.
Вариант 3 — правое внешнее соединение. Правое внешнее соединение — это соединение, при котором все записи таблицы по правую сторону от оператора RIGHT JOIN (правое объединение) инструкции SQL попадают в результаты запроса даже в том случае, если в связанном поле из левой таблицы отсутствуют соответствующие значения.