Что значит связать поля с сохранением целостности данных

Обновлено: 27.03.2024

Для того чтобы было удобно просматривать, создавать, удалять и модифицировать связи между таблицами, в Microsoft Access используется схема данных (Relationships) (рис. 2.27).

Чтобы открыть схему данных, необходимо выполнить команду Сервис, Схема данных (Tools, Relationships). По умолчанию схема будет содержать все таблицы со связями. Поэтому сюда будет включена, например, наша новая таблица "Список рассылки оповещений", которая была связана с таблицей "Клиенты" (Customers) при помощи Мастера подстановок (см. разд. "Использование Мастера подстановок" выше в данной главе).

Чтобы убрать какую-либо таблицу из схемы данных, необходимо щелкнуть правой кнопкой мыши на любом месте этой таблицы и из контекстного меню выбрать команду Скрыть таблицу (Hide table). Например, на рис. 2.27 таблица "Список рассылки оповещений" скрыта.

Удаление таблицы из схемы данных не означает удаление ее из базы данных, просто она не присутствует в схеме.

Чтобы вновь добавить в эту схему свернутую таблицу ("Список рассылки оповещений") или таблицу, у которой связи еще не установлены, необходимо:

  1. Щелкнуть правой кнопкой мыши на свободном пространстве схемы данных и из контекстного меню выбрать команду Добавить таблицу (Show table).
  2. В диалоговом окне Добавление таблицы (Show table) раскрыть вкладку Таблицы (Tables), выбрать из списка таблицу "Список рассылки оповещений", и нажать кнопку Добавить (Add) (рис. 2.28).

Рис. 2.28. Диалоговое окно Добавление таблицы

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

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

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

Если нужная связь автоматически не создана, ее можно создать двумя путями. Первый путь — графический. Следует выбрать в главной таблице поле для связи, нажать левую кнопку мыши и перетащить поле во вторую таблицу. Отпустить левую кнопку мыши над тем полем подчиненной таблицы, с которым устанавливается связь. После этого появится диалоговое окно Изменение связей (Edit Relationships) (рис. 2.29).

Альтернативный вариант — выбрать команду Связи, Изменить связь (Relationships, Edit Relationships) из главного меню Access. Эта команда появляется в меню, когда открыто окно Схема данных (Relationships).

    В диалоговом окне Изменение связей (Edit Relationships) можно выбрать из списков названия связанных таблиц и полей для связывания. Если отношение между таблицами "один-ко-многим", то слева из списка Таблица/запрос (Table/ Query) выбирается главная таблица и поле в этой таблице, а справа из списка Связанная таблица/запрос — подчиненная и соответственно поле в ней. Если отношение "один-к-одному", то порядок таблиц значения не имеет. Если вы устанавливали связь графически, то все поля в списках уже выбраны, и нужно только определить правила ссылочной целостности.

  1. Объединение только тех записей, в которых связанные поля обеих таблиц совпадают;
  2. Объединение ВСЕХ записей из и только тех записей из , в которых связанные поля совпадают;
  3. Объединение ВСЕХ записей из и только тех записей из , в которых связанные поля совпадают.

По умолчанию устанавливается первый переключатель. Нажать кнопку ОК.

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

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

Зачем используется свойство обеспечения целостности данных

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

Для чего используется свойство обеспечения целостности данных?

Если применять свойство обеспечения целостности данных на практике, то это будет означать:

  1. Отсутствие возможности корректировки значения связанного поля в подчиненной таблице, если данное значение отсутствует в связанном поле главной таблицы. Например, нет возможности создать запись для регистрации книги, которую написал несуществующий автор — такую запись можно создать только в том случае, если в поле «автор» ввести значение «NULL», означающее, что книга пока не принадлежит никому из авторов.
  2. Нет возможности удалить какую-либо запись из главной таблицы, если с этой записью существует хоть какая-то связь с записями подчиненной таблицы. Например, нет возможности уничтожить запись из таблицы «Издательский дом», если в другой таблице «Книги» есть книги, которые выпустило именно это издательство.
  3. Нет возможности поменять значение ключевого поля главенствующей таблицы, пока в ней есть записи, имеющие связь с подчиненной таблицей. Например, нет возможности откорректировать ID писателя в таблице «Авторы», пока в другой таблице «Книги» есть записи о трудах этого писателя.

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

Заключение

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

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

Внимание! Материал, изложенный в этой статье, требует знания пользовательского интерфейса на компьютерах с одним пользователем. Эта статья относится только к базе данных Microsoft Access (.mdb или .accdb).

Аннотация

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

  • Что такое связи между таблицами?
  • Виды связей между таблицами
    • Связи "один ко многим"
    • Связи "многие ко многим"
    • Связи "один к одному"
    • Как определить связи "один ко многим" или "один к одному"
    • Как определить связь "многие ко многим"

    Что такое связи между таблицами?

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

    Лучшим решением является хранение информации издателя только один раз, в отдельной таблице, которую мы будем называть "Издатели". Затем вы поместите указатель в таблице "Названия", которая ссылается на запись в таблице "Издатели".

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

    Логические связи в базе данных позволяют эффективно запрашивать данные и создавать отчеты.

    Виды связей между таблицами

    Связь работает путем сопоставления данных в ключевых столбцах, обычно столбцах (или полях), которые имеют одно и то же имя в обеих таблицах. В большинстве случаев связь соединяет основной ключ или уникальный столбец идентификатора для каждой строки, от одной таблицы к полю в другой таблице. Колонка в другой таблице называется "внешний ключ". Например, если вы хотите отслеживать продажи каждого названия книги, создайте связь между основным ключевым столбцом (назовем его title_ID) в таблице «Названия» и столбцом в таблице «Продажи», который называется title_ID. Столбец title_ID в таблице "Продажи" является внешним ключом.

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

    Связи "один ко многим"

    Связь "один ко многим" являются наиболее распространенным типом связи. В такого рода связях строка в таблице А может иметь много строк в таблице B. Но строка в таблице B может иметь только одну строку в таблице А. Например, таблицы "Издатели" и "Названия" имеют связь "один ко многим". То есть, каждый издатель выпускает много названий. Но каждое название принадлежит только одному издателю.

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

    В окне связей в Access, сторона первичного ключа связи "один ко многим" обозначается номером 1. Сторона внешнего ключа связи обозначается символом бесконечности.

    Снимок экрана с примером отношений «один ко многим» в окне отношений в Access.

    Связи "многие ко многим"

    В связи "многие ко многим" строка в таблице А может иметь много совпадающих строк в таблице B, и наоборот. Вы создаете такую связь, определяя третью таблицу, которая называется промежуточной таблицей. Первичный ключ промежуточной таблицы состоит из внешних ключей как таблицы А, так и таблицы B. Например, таблица "Авторы" и таблица "Названия" имеют связь "многие ко многим", которая определяется связью "один ко многим" из каждой из этих таблиц к таблице "TitleAuthors". Первичным ключом таблицы "TitleAuthors" является комбинация столбца au_ID (первичный ключ таблицы "Authors") и столбца title_ID (первичный ключ таблицы "Titles").

    Снимок экрана с примером отношений «многие ко многим» в окне отношений в Access.

    Связи "один к одному"

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

    Этот тип отношений не распространен, потому что большая часть информации, которая связана таким образом, будет в одной таблице. Вы можете использовать связь "один к одному", чтобы предпринять следующие действия:

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

    В Access сторона первичного ключа связи "один к одному" обозначается символом ключа. Сторона внешнего ключа также обозначается символом ключа.

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

    При создании связи между таблицами связанные поля не должны иметь одни и те же имена. Однако связанные поля должны иметь один и тот же тип данных, если только поле первичного ключа не является полем AutoNumber. Вы можете сопоставить поле AutoNumber с полем Number, только если свойство FieldSize обоих совпадающих полей совпадает. Например, можно сопоставить поле AutoNumber и поле Number, если свойство theFieldSizeproperty обоих полей имеет значение Long Integer. Даже если оба совпадающих поля являются числовыми полями, они должны иметь параметр sameFieldSizeproperty.

    Как определить связи "один ко многим" или "один к одному"

    Чтобы создать связь "один ко многим" или "один к одному", выполните следующие действия.

    Закройте все таблицы. Нельзя создавать или изменять связи между открытыми таблицами.

    В Access 2002 и Access 2003 выполните следующие действия.

    1. Нажмите F11, чтобы переключиться в окно базы данных.
    2. В меню Инструменты выберите Связи.

    В Access 2007, Access 2010 или Access 2013 нажмите Связи в группе Показать/Скрыть на вкладке Инструменты базы данных.

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

    Дважды щелкните имена таблиц, которые необходимо связать, а затем закройте диалоговое окно Добавление таблицы. Чтобы создать связь между одной и той же таблицей, добавьте эту таблицу два раза.

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

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

    Откроется диалоговое окно Изменение связей. Убедитесь, что имена полей, отображаемые в двух столбцах, верны. Вы можете изменить имена, если это необходимо.

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

    Повторите шаги с 4 по 7 для каждой пары таблиц, которые вы хотите связать.

    При закрытии диалогового окна Изменение связей Access спрашивает, хотите ли вы сохранить макет. Сохраняете ли вы макет или не сохраняете макет, созданные вами связи сохраняются в базе данных.

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

    Как определить связь "многие ко многим"

    Чтобы создать связь "многие ко многим", выполните следующие действия.

    Создайте две таблицы, которые будут иметь связь "многие ко многим".

    Создайте третью таблицу. Это стыковочная таблица. В таблице соединения добавьте новые поля, которые имеют те же определения, что и основные ключевые поля из каждой таблицы, созданной в шаге 1. В связующей таблице основные ключевые поля функционируют как внешние ключи. Вы можете добавить другие поля в связующую таблицу, так же, как и в любую другую таблицу.

    В связующей таблице установите первичный ключ, чтобы включить основные ключевые поля из двух других таблиц. Например, в связующей таблице "TitleAuthors" первичный ключ будет состоять из полей OrderID и ProductID.

    Чтобы создать первичный ключ, выполните следующие действия:

    Откройте таблицу в Конструкторе.

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

    В Access 2002 или в Access 2003 нажмите на Первичный ключ на панели инструментов.

    В Access 2007 нажмите на Первичный ключ в группе Инструменты на вкладке Дизайн.

    Если вы хотите, чтобы порядок полей в первичном ключе с несколькими полями отличался от порядка этих полей в таблице, нажмите Индексы на панели инструментов для отображения диалогового окна Indexes, а затем заново упорядочите имена полей для индекса с именем PrimaryKey.

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

    Целостность данных

    Референтная целостность — это система правил, которую использует Access, чтобы убедиться, что связи между записями в соответствующих таблицах действительны и что пользователь не удалит или не изменит случайно связанные с ними данные. Вы можете задать целостность данных при выполнении следующих условий:

    • Совпадающие поля из основной таблицы являются первичным ключом или имеет уникальный индекс.
    • Связанные поля имеют один и тот же тип данных. Из этого правила есть два исключения: Поле счетчика может быть связано с полем номера, которое имеет FieldSize значение свойства «Длинное целое», а поле счетчика, имеющее FieldSize значение свойства «Код репликации», может быть связано с полем номера, которое имеет FieldSize значение свойства «Код репликации».
    • Обе таблицы относятся к одной и той же базе данных Access. Если таблицы являются связанными таблицами, они должны быть таблицами в формате Access, и необходимо открыть базу данных, в которой они хранятся, чтобы установить целостность данных. Референтная целостность не может быть применена для связанных таблиц из баз данных в других форматах.

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

    • Невозможно ввести значение во внешнем ключевом поле связанной таблицы, которое не существует в первичном ключе первичной таблицы. Тем не менее, можно ввести значение Null во внешнем ключе. Это указывает на то, что записи не связаны между собой. Например, невозможно иметь заказ, который назначается клиенту, который не существует. Тем не менее, можно иметь заказ, который не назначается никому, введя значение Null в поле CustomerID.
    • Вы не можете удалить запись из основной таблицы, если в соответствующей таблице существуют соответствующие записи. Например, вы не можете удалить запись сотрудника из таблицы "Сотрудники", если в таблице "Заказы" есть заказы, назначенные сотруднику.
    • Невозможно изменить основное ключевое значение в основной таблице, если эта запись имеет соответствующие записи. Например, вы не можете изменить идентификатор сотрудника в таблице "Сотрудники", если в таблице "Заказы" есть заказы, назначенные этому сотруднику.

    Каскадные обновления и удаления

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

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

    Если выбрать Каскадное удаление связанных полей при определении связей, то при удалении записей в главной таблице Access автоматически удаляет связанные записи в соответствующей таблице. Например, при удалении записи клиента из таблицы "Клиенты", все заказы клиента автоматически удаляются из таблицы "Заказы". (Это включает записи в таблице "Детали заказа", которые связаны с записями "Заказы"). При удалении записей из формы или таблицы после установки флажка Каскадное удаление связанных записей Access выводит предупреждение, что связанные записи также могут быть удалены. Однако при удалении записей с помощью запроса удаления Access автоматически удаляет записи в соответствующих таблицах, не отображая предупреждение.

    Типы соединения

    Существует три основных типа соединения: Вы можете увидеть их на следующем снимке экрана:

    Снимок экрана параметров объединения, на котором показаны три типа объединения.

    Вариант 1 определяет внутреннее соединение. Внутреннее соединение — это соединение, в котором записи из двух таблиц объединяются в результатах запроса только в том случае, если значения в объединенных полях соответствуют определенному состоянию. В запросе соединение по умолчанию — это внутреннее соединение, которое выбирает записи только в том случае, если значения в объединенных полях совпадают.

    Вариант 2 определяет левое внешнее соединение. Левое внешнее соединение — это соединение, в котором все записи с левой стороны операции LEFT JOIN в оператора запроса SQL добавляются к результатам запроса, даже если нет соответствующих значений в объединенном поле из таблицы на правой стороне.

    Вариант 3 определяет правое внешнее соединение. Правое внешнее соединение — это соединение, в котором все записи с правой стороны операции RIGHT JOIN в операторе запроса SQL добавляются к результатам запроса, даже если нет соответствующих значений в объединенном поле из таблицы на левой стороне.

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

    Предполагаемое действие:

    Правила целостности ссылочных данных

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

    Предположим, в базе данных «Книги» имеются две таблицы — «Названия» и «Авторы». У каждой книги есть только один автор, но каждый автор может иметь несколько книг — это называется связью «один-ко-многим». Таблица на стороне «один» называется родительская таблица. Таблица на стороне «многие» — дочерняя таблица.

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

    Если значение «КодАвтора» в родительской таблице будет изменено, а его обновление в таблице «Названия» выполнено не будет, книги в таблице «Названия» будут отображены с неверным автором.

    Вместо изменения значения «КодАвтора» в обеих таблицах можно установить правила целостности данных по выполнению нужных действий. Можно выбрать вариант, при котором в модели базы данных будут выполнены определенные действия в случае изменения или удаления ключа в родительской таблице.

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

    Установка действий для обеспечения целостности данных

    Дважды щелкните связь, для которой требуется установить действие.

    В окне «Свойства базы данных» в группе Категории выберите вариант Действие ссылочной целостности.

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

    Без действия При изменении или удалении значения в первичном ключе родительской таблицы соответствующее значение во внешнем ключе дочерней таблицы остается без изменений.

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

    Присвоить пустое значение При изменении или удалении значения в первичном ключе родительской таблицы соответствующее значение во внешнем ключе дочерней таблицы будет NULL.

    По умолчанию При изменении или удалении значения в первичном ключе родительской таблицы соответствующему значению во внешнем ключе дочерней таблицы будет задано значение по умолчанию.

    Не обеспечивать Это действие отключает правила целостности данных для этой связи.

    Примечание: Если параметры Присвоить пустое значение и По умолчанию недоступны, вероятно, для связи выбран параметр «Необязательный» на вкладке Прочее окна «Свойства базы данных».

    Задание значения по умолчанию для столбца

    Чтобы воспользоваться действием По умолчанию, для столбца необходимо задать значение по умолчанию.

    Дважды щелкните таблицу в схеме, чтобы открыть окно «Свойства базы данных».

    В группе Категории выберите вариант Столбцы, выделите столбец, для которого требуется создать значение по умолчанию, а затем нажмите кнопку Изменить.

    На вкладке Определение диалогового окна Свойства столбца введите значение по умолчанию.

    Отображение целостности данных с помощью нотации

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

    Что означают буквы в нотации целостности данных

    В нотации целостности данных связи отображаются двумя буквами, разделенными двоеточием, в виде: [выполненное действие в родительской таблице]:[результат в дочерней таблице]. Например, «d:C» означает удаление какого-либо элемента в родительской таблице, что приведет к каскадным изменениям в дочерней таблице.

    Действия в родительской таблице обозначаются строчными буквами.

    u Данные в родительской таблице обновлены.

    Данные в родительской таблице d будут удалены.

    Результаты в дочерней таблице обозначаются прописными буквами.

    R (без действия) Изменение дочерней таблицы не требуется.

    C (каскад) Повторение изменения в дочерней таблице.

    D (по умолчанию) Вставка значения по умолчанию, заданного ранее для этого столбца в дочерней таблице.

    N (присвоить пустое значение) Задание дочерней таблице значения NULL.

    (Пусто) Не следить за целостностью данных этой связи.

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

    Отображение целостности данных

    В меню База данных выберите пункт Параметры, а затем — команду Документ.

    На вкладке Отношение в группе Показывать установите флажок Действия ссылочной целостности.

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

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

    • связанное поле главной таблицы является ключевым полем или имеет уникальный индекс;
    • связанные поля имеют один тип данных. Здесь существует два исключения. Поле счетчика может быть связано с числовым полем, если в последнем поле в свойстве Размер поля (FieldSize) указано значение Длинное целое (Long Integer), или в обоих полях свойство Размер поля (FieldSize) имеет значение Код репликации (Replication ID);
    • обе таблицы принадлежат одной базе данных Microsoft Access.

    Таблицы одного приложения могут содержаться и в нескольких файлах базы данных (см. также гл. 3).

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

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

    Чтобы эти правила контролировались для конкретной связи, при ее создании следует установить флажок Обеспечение целостности данных (Enforce Referential Integrity). Тогда любая попытка выполнить действие, нарушающее одно из перечисленных выше правил, приведет к выводу на экран предупреждения, а само действие выполнено не будет.

    Чтобы преодолеть ограничения на удаление или изменение связанных записей, сохраняя при этом целостность данных, следует установить флажки каскадное обновление связанных полей (Cascade Update Related Fields) и каскадное удаление связанных записей (Cascade Delete Related Records). Если установлен флажок каскадное обновление связанных полей (Cascade Update Related Fields), то при изменении ключевого поля главной таблицы автоматически будут изменены и соответствующие значения поля связанных записей. Если установлен флажок каскадное удаление связанных записей (Cascade Delete Related Records), то при удалении записи в главной таблице удаляются и все связанные записи в подчиненной таблице.

    Читайте также: