Access

Связанные таблицы access: Создание, изменение и удаление отношения

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

Работа с базами данных — процесс, требующий определённых навыков и понимания некоторых нюансов. Разработанная компанией Microsoft программа Access даёт пользователям возможность быстро создавать и редактировать БД. Один из важнейших моментов, с которым обязательно нужно разобраться, при создании БД — связывание её элементов. В этой статье разберёмся с тем, как создать или удалить связи между таблицами в Access. Давайте же начнём. Поехали!

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

Теперь уже можно связывать наши таблицы. Чтобы сделать это, откройте вкладку «Работа с базами данных» и в разделе «Отношения» ленты инструментов выберите пункт «Схема данных». Перед вами откроется окно, в котором понадобится выбрать все таблицы. Поочерёдно кликните по каждой из них. Закончив, выйдите из этого окна. Теперь нужно определиться с тем, как именно связывать. Например, есть две таблицы: «Бренд» и «Одежда», между которыми необходимо связать между собой. Поле «Код бренда» должно быть и там, и там. Если оно отсутствует — создайте его. При этом для записей категории «Бренд» оно будет ключевым (так называемый первичный ключ), а для «Одежда» — обычным (внешний ключ). Первичный ключ «Код бренда» перетащите на внешний ключ «Код бренда». После этого появится диалоговое окно, в котором нужно отметить галочками пункты: «Обеспечение целостности…», «Каскадное обновление связанных полей» и «Каскадное удаление связанных записей». Отметив все пункты, нажмите кнопку «Создать». Появится чёрная линия, соединяющая указанные строки. Созданная связь имеет название «один ко многим». То есть в приведённом примере это будет означать, что один бренд может выпускать много разной одежды.

Далее, аналогичным образом свяжите все остальные, не забывая добавлять поля. Имея минимум три таблицы (среди которых две основных и одна промежуточная), вы можете создать тип связи «многие ко многим». Для заполнения полей, являющихся внешними ключами, можно использовать «Мастер подстановок». Чтобы сделать это, перейдите в режим конструктора и в разделе «Тип данных» выберите пункт «Мастер подстановок». В открывшемся окне выберите откуда будет взята информация для заполнения. Затем укажите нужные поля и нажмите кнопку «Далее». Следующие два окна можно пропустить. В конце кликните по кнопку «Готово». Прежде чем начать заполнение, программа предложит вам сохраниться, щёлкните «Да». Обратите внимание, что заполнение таким способом возможно только в случае, если связь ещё не установлена. Если у вас так не получилось, то вы можете удалить её и заполнить ячейки. После этого она автоматически появится, однако, вам понадобится кликнуть по ней два раза и отметить галочками пункты: «Обеспечение целостности…», «Каскадное обновление связанных полей» и «Каскадное удаление связанных записей».

Чтобы удалить связь, кликните по кнопке «Схема данных» на панели инструментов, затем щёлкните по линии, показывающей её, и нажмите на клавиатуре клавишу delete.

Теперь вы знаете как добавляются и удаляются связи при работе с БД в программе Microsoft Access. Обладая этими навыками, вы уже сможете создавать полноценные, функционирующие БД, однако, продолжайте развивать свои знания программы 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.

Основы Microsoft Access: зачем создавать связанные таблицы? ИТ-служба

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

Все просто.

За исключением того, что это не так, если вам никогда не объясняли как следует.

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

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

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

На самом деле, это вторая, третья и четвертая статьи в этой серии, так как я разбил это руководство на три части:
Часть первая: Обоснование — зачем создавать связанные таблицы? И вообще какие они?
Часть вторая: Техника — как создавать связанные таблицы
Часть третья: Управление связанными таблицами — например, как повторно связать таблицы в базе данных Microsoft Access или как связать новую таблицу с существующей базой данных.

Начнем с…

Что такое связанная таблица?

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

Но стоит задаться вопросом — где хранить эти данные?

Очевидным ответом будет «Конечно, в базе данных».

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

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

Другими словами, разработка базы данных — это бесконечный процесс.

Куда делись мои данные?!

Вот в чем дело. Когда вам нужно внести изменения, как вы это делаете? Допустим, 1 декабря в 17:00 вы берете с сервера копию файла .accdb (или .mdb) со всеми его объектами и работаете над ним пару дней. В 9 утра 4 декабря вы затем загружаете свою «новую и улучшенную» копию файла обратно в то же место на сервере. Это означает, что формы, запросы и отчеты могут быть новыми и улучшенными, но данные, которые вы загрузили 4 декабря, идентичны тем, что были в конце 1 декабря. Любые добавления, изменения, удаления и т.д., сделанные людьми за прошедшие 3 дня, пропали!

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

Итак, вот решение.

Отделить приложение от данных

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

Рисунок 1: Панель объектов Microsoft Access, показывающая различные несвязанные таблицы

Другими словами, все, кроме таблиц — сами данные.

Для этого мы создаем два файла. Первый файл (файл Back end) содержит данные, второй файл (файл Front end) содержит все остальные объекты, а также набор ссылок на таблицы. Что касается всех форм, запросов, отчетов и прочих объектов, то все работает так, как если бы данные были и в этом файле. Но это не так — вместо этого данные находятся в файле Back End, а этот файл front end просто содержит эти ссылки — но не фактические данные.

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

Надеюсь, вы видите все преимущества работы таким образом, когда база данных разделена на отдельные файлы Front End и Back End. Итак, в следующей части этого руководства мы рассмотрим большой вопрос…

Как разделить базу данных на Front End и Back End?

Если вы готовы засучить рукава и приступить к делу, просто нажмите на ссылку ниже, и до встречи!

Часть вторая: как создавать связанные таблицы в Microsoft Access

Основы Microsoft Access: как управлять связанными таблицами ИТ-служба

Это заключительная часть серии руководств по связанным таблицам в Microsoft Access, состоящей из трех частей. Если вы пропустили предыдущие части, вам стоит ознакомиться с ними: Часть первая: Зачем создавать связанные таблицы в Microsoft Access, а затем Часть вторая: Как создавать связанные таблицы в Microsoft Access.

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

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

1. Помните, что это связанная таблица

Если вы работали с неразделенными базами данных, где данные находятся в локальных таблицах (т. е. не связанных таблицах), вы привыкли вносить изменения в структуру своих таблиц. просто открыв их в режиме конструктора. Но когда вы пытаетесь сделать то же самое в связанной таблице, вам вежливо, но твердо говорят: «Никаких шансов»:

Рисунок 5: Дизайн связанных таблиц нельзя изменить

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

2. Повторное связывание таблиц

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

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

Рисунок 6: Диспетчер связанных таблиц

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

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

3: Добавление ссылки на другую таблицу

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

Для этого вам нужно перейти на вкладку «Внешние данные» на ленте и найти кнопку «Доступ» в группе «Импорт и связь». Убедитесь, что вы используете эту группу — в группе «Экспорт» на ленте также есть кнопка «Доступ», но она вам не понадобится.

Когда вы нажмете эту кнопку, вам будет предложено указать местоположение файла, содержащего новые объекты, а также хотите ли вы их импортировать или связать:

Рис. 7. Диалоговое окно «Получить внешние данные»
Важно, чтобы вы щелкнули второй вариант, чтобы связать таблицу, иначе вы получите копию в бэкэнде и еще одну копию во внешнем интерфейсе!

На втором этапе мастера вам будет предложено, какие таблицы и другие объекты вы хотите связать. Выберите новые таблицы и нажмите OK, а Microsoft Access позаботится обо всем остальном.

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

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

В заключение — еще две причины для разделения базы данных

 

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

Во-первых, размер. Access позволяет работать с гораздо большими наборами данных, чем Excel — таблицы с несколькими миллионами строк, безусловно, возможны. Но все же может наступить момент, когда вы не сможете поместить все свои данные в свою базу данных; Microsoft Access имеет ограничение в 2 ГБ на базу данных.

Разделив базу данных, вы можете иметь несколько таблиц в одном файле серверной части, а некоторые в другом, эффективно удваивая доступное пространство. Кроме того, хотя мы и беспокоились здесь о разделении базы данных на два файла Access, те же инструменты также можно использовать (конечно, с несколькими другими настройками) для связи с таблицами, хранящимися в гораздо более крупной системе баз данных, такой как Microsoft SQL.

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

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