Материал: Базы данных-конспект

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

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

На экране откроется окно диалога «Связи».

Связи

Таблица/Запрос Связанная Таблица/Запрос

Клиенты Заказы

Код клиента Код клиента

Обеспечение целостности данных

Каскадное обновление связей полей

Каскадное удаление связей записей

Тип отношений: один-ко-многим

Тип создаваемой связи зависит от полей, которые были указаны при определении связи:

  • отношение «один-ко-многим» - создается в том случае, когда только одно из полей является ключевым или имеет уникальный индекс

  • отношение «один-к-одному» - создается в том случае, если оба связываемых поля является уникальными или ключевыми.

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

При переносе поля, на являющегося ключевым, на другое такое же поле, создаются неопределенные отношения.

В окне диалога «схема данных» можно не только устанавливать связи между таблицами, но и выполнять следующие действия:

  • изменять структуру таблицы

  • изменять существующую связь

  • удалять связь

  • удалять таблицу из окна диалога «Схема данных»

  • вывести на экран все существующие связи или связи только для конкретной таблицы.

  • определить связи для запросов, не задавая условия целостности данных.

Связывание двух полей одной таблицы

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

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

Изменение структуры таблицы в окне Схема данных

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

Для удаления связи нужно ее выделить и нажать клавишу Delete. Для удаления таблицы из схемы данных нужно ее выделить и нажать Delete (только из одного окна, а не из базы данных).

Определение условий целостности данных

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

Условия целостности данных выполняются при следующих условиях:

  • связанное поле главной таблицы является ключевым полем;

  • связанные поля имеют один тип данных;

  • обе таблицы принадлежат одной базе данных.

  • для определения целостности данных нужно в окне диалога Схема данных установить флажок «Обеспечение целостности данных».

При этом, над под лишней соединяющей поля, появятся обозначения 1 ко .

Данное условие делает доступным следующие два режима:

  • каскадное обновление связанных полей

  • каскадом удаление связанных полей.

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

Тема 7. Многотабличные запросы

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

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

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

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

Запросы к связанным таблицам с отношением "один-к-одному"

Например, нужно создать запрос о заработной плате программистов предприятия.

Сотрудники Физ. лица

Код сотрудника Код физ. лица

Должность Фамилия

Зар./плата Имя

Поле

Фамилия

Имя

Отл.

Должность

Зар./плата

Табл.

Физ.лица

Физ.лица

Физ.лица

Сотрудник

Сотрудник

Сорт.

Выв.на экран

Усл.отб.

"Прогр."

Запросы к связанным таблицам с отношением "один-ко-многим"

Например, необходимо получить информацию о всех выполненных заказах.

Клиенты Заказы Товары

Код клиента Дата заказа Код товара

Фамилия Код товара Категория

Имя Код клиента Наименование

Заказано Цена

Дата продажи

Поле

Фамилия

Имя

Дата заказа

Заказано

Наиме-новае

Продано

Имя табл.

Клиенты

Клиенты

Заказы

Заказы

Товары

Заказы

Сорт.

Выв.на экран

Усл.отб.

=[Заказано]

Запросы к связанным таблицам с отношением "многие-ко-многим"

Как отмечалось ранее, для создания связи "многие-ко-многим" необходимо:

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

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

Определить связи с отношением "один-ко-многим" между каждой из двух таблиц и связывающей таблицей.

Например, между Заказами и Поставщиками товаров добавим таблицу Товары. Которая будет связывающим звеном между данными таблицами.

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

Поставщики Товары Заказы

Код пред-тия Код товара Код товара

Код товара Категория Код клиента

Мин.партия Наименование Дата заказа

Цена Цена

Поле

Код пр-тия

Код клиента

Наименование

Продано

Мин. партия

Имя табл.

Пост.тов.

Заказы

Тов.

Зак.

Поставка

Сорт.

Выв.на экран

Усл.отб.

Источник: https://studfile.net/preview/16530623/