Как сделать связь между таблицами в access
Тема урока №7. Создание базы данных. Установка связей между таблицами
Установка связей между таблицами в СУБД Access
После создания структуры таблиц (Студенты, Группы студентов, Дисциплины, Успеваемость) для сущностей базы данных "Деканат" необходимо установить связи между таблицами. Связи между таблицами в БД используются при формировании запросов, разработке форм, при создании отчетов. Для создания связей необходимо закрыть все таблицы и выбрать команду "Схема данных" из меню Сервис, появится активное диалоговое окно "Добавление таблицы" на фоне неактивного окна Схема данных.
В появившемся диалоговом окне Добавление таблиц необходимо выделить имена таблиц и нажать кнопку Добавить, при этом в окне "Схема данных" добавляются таблицы. После появления всех таблиц в окне Схема данных необходимо закрыть окно Добавление таблицы, щелкнув левой кнопкой мыши на кнопке Закрыть.
Следующий шаг - это установка связей между таблицами в окне Схема данных. Для этого в окне Схема данных необходимо отбуксировать (переместить) поле КодГруппы из таблицы Группы на соответствующее поле таблицы Студенты, в результате этой операции появится окно "Изменение связей".
В появившемся окне диалога "Изменение связей" необходимо активизировать флажки: "Обеспечить целостность данных", "каскадное обновление связанных полей" и "каскадное удаление связанных записей", убедиться в том, что установлен тип отношений один-ко-многим и нажать кнопку Создать.
В окне Схема документа появится связь один-ко-многим между таблицами Группы студентов и Студенты. Аналогичным образом надо связать поля КодСтудента в таблицах Студенты и Успеваемость, а затем поля КодДисциплины в таблицах Успеваемость и Дисциплины. В итоге получим Схему данных, представленную на рисунке.
После установки связей между таблицами, окно Схема данных необходимо закрыть. Далее необходимо осуществить заполнение всех таблиц. Заполнение таблиц целесообразно начинать с таблицы Группы студентов, так как поле Код группы таблицы Студенты используется в качестве столбца подстановки для заполнения соответствующего поля таблицы Студенты.
В следующем уроке №8 данной рассылки мы с Вами обсудим тему: Создание базы данных (Заполнение таблиц).
Наблюдай внимательно за природой, и ты будешь всё понимать намного лучше.
Альберт Эйнштейн
Вопросы к экзамену
Для всех групп технического профиля
Учу детей тому, как надо учиться
Часто сталкиваюсь с тем, что дети не верят в то, что могут учиться и научиться, считают, что учиться очень трудно.
Урок 33. Практическая работа № 21. Организация баз данных. Заполнение полей баз данных.
Практическая работа № 21
Тема: Организация баз данных. Заполнение полей баз данных.
Цель работы: изучение приемов установки связей между таблицами базы данных.
Оборудование: ПК, Windows XP Professional, MS Access 2007.
Ход работы
1 В соответствие с заданием создать и заполнить таблицы БД "Фирма", установить связи между ними.
2 Продемонстрировать на компьютере заполненные таблицы, схему данных.
3 Ответить на контрольные вопросы.
4 Сделать вывод о проделанной работе.
Порядок выполнения:
1. Запустите Microsoft Access.
2. Создайте базу данных Фирма . Сотрудники данной организации работают с клиентами и выполняют их заказы.
Для этого запустите Access, создайте новую базу данных, задайте имя базы данных Фирма, выберите место сохранения Вашей базы данных (диск Х:) и нажмите кнопку Создать. (подробный порядок действий описан в лабораторной работе № 23)
3. Создайте в режиме Конструктор 3 таблицы: Сотрудники, Клиенты и Заказы . Если все сведения поместить в одной таблице, то она станет очень неудобной для работы. В ней начнутся повторы данных. Всякий раз, когда сотрудник Иванов будет работать с какой-либо фирмой, придется прописывать данные о сотруднике и клиенте заново, в результате чего можно допустить множество ошибок. Чтобы уменьшить число ошибок, можно исходную таблицу разбить на несколько таблиц и установить связи между ними. Это будет более рационально.
Таблица Сотрудники
Таблица Клиенты
Таблица Заказы
4. Установите ключевые поля.
Отдельные таблицы, содержащие информацию по определенной теме, необходимо связать в единую структуру базы данных. Для связывания таблиц следует задать ключевые поля.
Ключ состоит из одного или нескольких полей, значения которых однозначно определяют каждую запись в таблице. Наиболее подходящим в качестве ключевого поля является Счетчик, так как значения в данном поле являются уникальными (т. е. исключают повторы).
При создании таблиц в режиме конструктора ключевое поле устанавливается автоматически. Откройте созданные Вами таблицы в режиме Конструктор и проверьте установленные ключевые поля:
1) в таблице Сотрудники ключевое поле Код сотрудника
2) в таблице Клиенты ключевое поле Код клиента
3) в таблице Заказы ключевое поле Код заказа
Если значение Ключевых полей не задалось автоматически, то задайте их вручную. Для этого откройте таблицу Сотрудники в режиме Конструктора. Нажмите правой кнопкой мыши на поле Код сотрудника и в появившемся контекстном меню выберите команду Ключевое поле. Если в таблице необходимо установить несколько ключевых полей, то выделить их можно, удерживая клавишу Ctrl. Для таблицы Клиенты установите ключевое поле Код клиента, а для таблицы Заказы - Код заказа.
5. Создайте раскрывающиеся списки с помощью Мастера подстановок.
Таблица Заказы содержит поля Код сотрудника и Код клиента. При их заполнении могут возникнуть некоторые трудности, так как не всегда удается запомнить все предприятия, с которыми работает фирма, и всех сотрудников с номером кода. Для удобства можно создать раскрывающиеся списки с помощью Мастера подстановок.
Откройте таблицу Заказы в режиме Конструктора. Для поля Код клиента выберите тип данных Мастер подстановок.
В появившемся окне выберите команду Объект "столбец подстановки" будет использовать значения из таблицы или запроса и щелкните на кнопке Далее.
В списке таблиц выберите таблицу Клиенты и щелкните на кнопке Далее.
В списке Доступные поля выберите поле Код клиента и щелкните на кнопке со стрелкой >>, чтобы ввести поле в список Выбранные поля. Таким же образом добавьте поле Название компании и щелкните на кнопке Далее.
Выберите порядок сортировки списка по полю Название компании и нажмите кнопку Далее.
В следующем диалоговом окне задайте необходимую ширину столбцов раскрывающегося списка, установите флажок Скрыть ключевой столбец и нажмите кнопку Далее.
На последнем шаге Мастера подстановок замените при необходимости надпись для поля подстановок и щелкните на кнопке Готово.
Сохраните полученный результат.
6. Аналогичным образом создайте раскрывающийся список для поля Код сотрудника.
Теперь в списке таблиц выберите таблицу Сотрудники
В списке Доступные поля выберите поля Код сотрудника, Фамилия, Имя.
Порядок сортировки списка выберите по полю Фамилия.
Все остальные действия проводятся аналогично пункту 6.
7. Создайте связей между таблицами.
Существует несколько типов отношений между таблицами:
Закройте все открытые таблицы, так как создавать или изменять связи между открытыми таблицами нельзя.
Выполните команду вкладки Лента Работа с базами данных кнопка Схема данных
Если ранее никаких связей между таблицами базы не было, то при открытии окна Схема данных одновременно открывается окно Добавление таблицы, в котором выбираются нужные таблицы. Для добавления в схему данных новой таблицы необходимо щелкнуть правой кнопкой мыши на схеме данных и в контекстном меню выбрать пункт Добавить таблицу.
Если связи между таблицами уже были заданы, то откроется окно Схема данных, на котором будут отображены таблицы и связи между ними.
Отредактируйте связь между таблицами Сотрудники и Заказы , для этого щелкните правой кнопкой мыши (ПКМ) на линию связи и в открышемся контекстном меню выберите команду Изменить связь.
Откроется диалоговое окно Изменение связей, в котором включите флажок Обеспечение целостности данных . Это позволит предотвратить случаи удаления записей из одной таблицы, при которых связанные с ними данные других таблиц останутся без связи. Обратите внимение на тип отношений: один-ко-многим.
Флажки Каскадное обновление связанных полей и Каскадное удаление связанных записей обеспечивают одновременное обновление или удаление данных во всех подчиненных таблицах при их изменении в главной таблице.Параметры связи можно изменить, нажав на кнопку Объединение. После установления всех необходимых параметров нажмите кнопку ОК.
Аналогично измените связь между таблицами Клиенты и Заказы.
В результате должна получиться схема данных, представленная на рисунке.
7. В таблицу Сотрудники внесите данные о 7 работниках.
8. В таблицу Клиенты внесите данные о 7 предприятиях, с которыми работает данная фирма.
9. В таблице Заказы оформите 5 заявок, поступивших на фирму.
10. Покажите работу преподавателю.
11. Ответьте на контрольные вопросы.
Контрольные вопросы:
1 С помощью чего можно создавать таблицы?
2 Что такое ключевое поле?
3 Как установить несколько ключевых полей?
4 Как установить связи между таблицами?
5 Какие существуют отношения между таблицами?
7 Зачем нужен Мастер подстановок?
8 Для чего нужен механизм запросов?
Методические указания к лабораторной работе № 24 Создание связей в базе данных
Если Вы являетесь автором материалов или обладателем авторских прав, и Вы возражаете против его использования на моем интернет-ресурсе - пожалуйста, свяжитесь со мной. Информация будет удалена в максимально короткие сроки.
Спасибо тем авторам и правообладателям, которые согласны на размещение своих материалов на моем сайте! Вы вносите неоценимый вклад в обучение, воспитание и развитие подрастающего поколения.
Процедура создания связей в базе данных 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 автоматически удалит записи из связанных таблиц без вывода предупреждения.
Типы соединений
Ниже перечислены существующие типы соединений.
Вариант 1 - внутреннее соединение. Внутреннее соединение - это соединение, при котором записи из двух таблиц объединяются в результатах запроса лишь в том случае, если значения связанных полей соответствуют заданному условию. Внутреннее соединение является типом соединения по умолчанию, в результате в запросе происходит выборка лишь тех записей, для которых значения связанных полей совпадают.
Вариант 2 - левое внешнее соединение. Левое внешнее соединение - это соединение, при котором все записи таблицы по левую сторону от оператора LEFT JOIN (левое объединение) инструкции SQL попадают в результаты запроса даже в том случае, если в связанном поле из правой таблицы отсутствуют соответствующие значения.
Вариант 3 - правое внешнее соединение. Правое внешнее соединение - это соединение, при котором все записи таблицы по правую сторону от оператора RIGHT JOIN (правое объединение) инструкции SQL попадают в результаты запроса даже в том случае, если в связанном поле из левой таблицы отсутствуют соответствующие значения.
Работа с базами данных — процесс, требующий определённых навыков и понимания некоторых нюансов. Разработанная компанией Microsoft программа Access даёт пользователям возможность быстро создавать и редактировать БД. Один из важнейших моментов, с которым обязательно нужно разобраться, при создании БД — связывание её элементов. В этой статье разберёмся с тем, как создать или удалить связи между таблицами в Access. Давайте же начнём. Поехали!
Теперь вы знаете как добавляются и удаляются связи при работе с БД в программе Microsoft Access. Обладая этими навыками, вы уже сможете создавать полноценные, функционирующие БД, однако, продолжайте развивать свои знания программы Access. Пишите в комментариях была ли полезной для вас эта статья и задавайте любые интересующие вопросы по рассмотренной теме.
Таблицы - основные объекты БД. Без запросов, форм, отчетов и прочего можно обойтись, но если нет таблиц, то, значит, нет и базы данных.
Создание таблицы состоит в задании ее полей и назначении их свойств. Оно начинается с щелчка на кнопке "Создать" на вкладке "Таблицы"в окне базы данных, после чего откроется диалоговое окно, представленное на рисунке 5.1.1.
Как видно на рисунке 5.1.1, существует несколько способов создания новой таблицы.
- Импорт таблиц из другой базы, может быть, даже созданной в другой системе. В зависимости от обстоятельств из импортируемой таблицы может поступить структура полей, их названия и свойства, а также и содержимое базы. Если что-то импортируется не совсем так, как надо, необходимые правки (например, изменение свойств полей) вносят вручную.
- В тех случаях, когда речь идет о чужой таблице, которая находится на удаленном сервере и которую нельзя импортировать целиком, пользуются режимом Связь с таблицами. Это напоминает подключение к таблице для совместного использования ее данных.
- Использование Мастера таблиц. Мастер задает ряд вопросов и, руководствуясь полученными ответами, создает структуру таблицы автоматически. Несмотря на то что этот режим служит для упрощения работы, начинающим пользоваться им не рекомендуется, поскольку, не владея всей терминологией, легко запутаться в вопросах и ответах. Первые таблицы стоит попробовать создать вручную.
- Пункт Режим таблицы открывает заготовку, в которой все поля имеют формальные имена: Поле1, Поле2. и т. д. и один стандартный текстовый тип. Такую таблицу можно сразу наполнять информацией.
- Использование Конструктора. В этом режиме можно самостоятельно задать имена полей, выбрать их тип и настроить свойства, как показано на рисунке 5.1.2.
Редактирование таблицы возможно в двух режимах: "Режим таблицы" (можно просматривать и изменять непосредственно данные) и "Режим конструктора" (можно изменять свойства и структуру таблицы). При изменении структуры таблицы система управления базой данных всегда выдает запрос на сохранение изменений. Все изменения в данных таблицы сохраняются автоматически в режиме реального времени, т.е. как только заканчивается ввод данных в одно поле и происходит переход к следующему полю, данные немедленно записываются на жесткий диск. Поэтому, для экспериментов надо создавать отдельные копии базы или таблиц и работать с ними.
5.2. Типы данных в MS Access. Их использование и размеры
Числовые, денежные и логические типы данных, а также Дата/Время, обеспечивают определенные ранее форматы отображения. Для выбора форматов для каждого типа данных определите свойство "Формат поля". Также можно создать пользовательский формат отображения для всех данных, кроме объектов OLE.
5.3. Создание связей между таблицами в MS Access
Для создания связей между таблицами СУБД Access имеет специальное диалоговое окно, которое называется "Схема данных" (см. Рисунок 5.3.1).
* Примечание: Разумеется, одновременно несколько контекстных меню (контекстные меню вызываются нажатием правой кнопки "мыши") на экране отображаться не могут. На рисунке 5.3.1 несколько контестных меню представлены для наглядности.
Окно "Схема данных" открывают щелчком на одноименной кнопке панели инструментов или командой "Сервис" → " Схема данных". Если ранее никаких связей между таблицами базы не было, то при открытии окна "Схема данных" одновременно открывается окно "Добавление таблицы" (см. рисунок 5.3.2), в котором можно выбрать нужные таблицы для включения в структуру межтабличных связей. Если связи между таблицами уже были заданы, то для введения в схему данных новой таблицы надо щелкнуть правой кнопкой мыши на схеме данных и в контекстном меню выбрать пункт "Добавить таблицу".
Добавив в схему данных все таблицы, которые необходимо связать, можно приступать к созданию связей между полями таблиц. Связь между полями таблиц устанавливают путем перетаскивания имени поля из одной в таблицы в другую на соответствующее ему связанное поле, после чего открывается диалоговое окно "Связи", в котором можно задать свойства образующейся связи (см. рисунок 5.3.3).
Включение флажка "Обеспечение целостности данных "позволяет защититься от случаев удаления записей из одной таблицы, при которых связанные с ними данные других таблиц останутся без связи.
- Связанное поле главной таблицы является ключевым полем или имеет уникальный индекс.
- Связанные поля имеют один тип данных. Здесь существует два исключения. Поле счетчика может быть связано с числовым полем, если в последнем в свойстве "Размер поля "(Field Size) указано значение "Длинное целое". А также поле счетчика можно связать с числовым полем, если и в обеих ячейках свойства "Размер поля" (Field Size) задано значение "Код репликации".
- Обе таблицы принадлежат одной базе данных MS Access. Если таблицы являются связанными, то они должны быть таблицами MS Access. Для установки целостности данных база данных, в которой находятся таблицы, должна быть открыта. Для связанных таблиц из баз данных других форматов установить целостность данных стандартными средствами MS Access невозможно.
- Невозможно ввести в поле внешнего ключа связанной таблицы значение, не содержащееся в ключевом поле главной таблицы. Однако в поле внешнего ключа возможен ввод пустых значений, показывающих, что записи не являются связанными. Например, нельзя сохранить запись, регистрирующую заказ, сделанный несуществующим клиентом, но можно создать запись для заказа, который пока не отнесен ни к одному из клиентов, если ввести пустое значение в поле "Код Клиента".
- Не допускается удаление записи из главной таблицы, если существуют связанные с ней записи в подчиненной таблице. Например, невозможно удалить запись из таблицы "Сотрудники", если в таблице "Заказы" имеются заказы, относящиеся к данному сотруднику.
- Невозможно изменить значение ключевого поля в главной таблице, если существуют записи, связанные с данной. Например, невозможно изменить код сотрудника в таблице "Сотрудники", если в таблице "Заказы" имеются заказы, относящиеся к этому сотруднику.
Чтобы наложить эти правила на конкретную связь, при ее создании следует установить флажок . Если данный флажок установлен, то любая попытка выполнить действие, нарушающее одно из перечисленных выше правил, приведет к выводу на экран предупреждения, а само действие выполнено не будет.
Чтобы преодолеть ограничения на удаление или изменение связанных записей, сохраняя при этом целостность данных, следует установить флажки "Каскадное обновление связанных полей" и "Каскадное удаление связанных полей". Если установлен флажок "Каскадное обновление связанных полей", то при изменении ключевого поля главной таблицы автоматически изменяются и соответствующие значения связанных записей. Если установлен флажок"Каскадное удаление связанных полей", то при удалении записи в главной таблице удаляются и все связанные записи в подчиненной таблице.
Читайте также: