Что такое каскадное обновление связанных полей
Перейти к содержимому

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

  • автор:

Большая Энциклопедия Нефти и Газа

Каскадное обновление означает, что изменение значения связанного поля в главной таблице ( например, кода клиента) автоматически будет отражено в связанных записях подчиненной таблицы. Иными словами, если изменился код клиента в словаре клиентов, то он будет заменен и во всех заказах данного клиента. [3]

Чем отличается каскадное обновление от каскадного удаления. [5]

Механизм поддержки целостности позволяет организовать каскадное обновление полей и каскадное удаление записей БД при изменениях в главной из связанных таблиц. [6]

Полезно также установить флажок Обеспечение целостности данных и два флажка, которые отвечают за каскадное обновление и удаление данных. [7]

Убедитесь, что поле флажка Обеспечение целостности данных ( EnforceReferentiallntegrity) выделено, установите флажок в поле Каскадное обновление связанных полей ( Cascade Update Related Fields) и щелкните на кнопке ОК. [8]

Если между таблицами определено отношение один ко многим и в диалоговом окне Изменение связей установлен флажок опции каскадное обновление связанных полей , при любом изменении данных первичного ключа в главной таблице автоматически будут обновлены иучы — кгпуютис значения в поле внешнего ключа подчиненной таблицы. Целостность данных таким образом будет сохранена. [10]

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

Для таблиц Наборы и Подробности наборов задано каскадное обновление связанных полей . [13]

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

Убедитесь, что поле флажка Обеспечение целостности данных ( EnforceReferentiallntegrity) выделено, установите флажок в поле Каскадное обновление связанных полей ( Cascade Update Related Fields) и щелкните на кнопке ОК. Для таблиц Наборы и Подробности заказов задано каскадное обновление связанных полей . [15]

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

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

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

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

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

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

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

  • Обеспечение условия целостности данных — флаг служит для защиты от случаев, когда при удалении записей из одной таблицы, связанные с ними данные в других таблицах останутся без изменения. Для создания связи с таким условием целостности необходимо, чтобы поле основной таблицы было ключевым (см. «Шаг 5 — Ключевые и уникальные поля») и оба поля имели одинаковый тип (про типы полей говорилось в «Шаг 3 — Свойства и типы полей»).
  • Каскадное обновление связанных полей — установка этого флага обеспечит одновременное обновление данных во всех подчиненных таблицах, при их добавлении или редактировании в главной таблице. Например, если будет изменен код книги в таблице Книги, то это приведет к автоматическому изменению этого значения в таблицах Цитаты и КнигАвторы.
  • Каскадное удаление связанных полей — это свойство действует аналогично каскадному обновлению, но приводит к удалению данных из всех подчиненных таблиц, при их удалении в главной таблице.

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

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

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

Каскадные обновления и каскадные удаления – весьма полезные свойства процессора баз данных SQL Server. И вот почему.

Каскадные обновления. При изменении значения первичного ключа таблицы связанные данные во внешних ключах, относящихся к этой таблице, также изменяются, отражая изменения в первичном ключе. Следовательно, если вы измените идентификатор ID клиента Хокки Марта (Hockey Mart) в таблице tblCustomer с 48 на 72, то значение поля CustomerID всех заказов, сгенерированных этим Хокки Мартом в таблице tblOrder, автоматически изменится с 48 на 72. В рабочем приложении редко приходится изменять значения ключа (основная концепция заключается в том, что ключ должен быть уникальным и неизменным), но если это все-таки приходится делать, то все каскадные обновления этого ключа во внешних ключах будут выполнены автоматически.

Каскадные удаления. При удалении записи в таблице все записи, связанные с этой записью в соответствующих таблицах, автоматически удаляются. Следовательно, если вы удалите запись для Хокки Марта в таблице tblCustomer, все записи в таблице tblOrder для клиента Хокки Марта автоматически удаляются.

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

Каскадные обновления и удаления работают только в том случае, если вы установили отношение между двумя таблицами. Если вы всегда создаете таблицы с первичным ключом типа AutoNumber (Счетчик), (или первичными ключами типа AutoIncrement в терминах SQL Server), то каскадные удаления для вас окажутся более полезными, чем каскадные обновления, поскольку вы не в силах изменить значение поля типа AutoNumber или поля AutoIncrement (т.е. нет обновлений – нечего и тиражировать).

Для проверки возможностей каскадного удаления с помощью окна Server Explorer выполните перечисленные ниже действия.

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

2. Создайте запись о новом клиенте, щелкнув правой кнопкой мыши на таблице tblCustomer узла Tables в окне Server Explorer, выбрав в контекстном меню команду Retrieve Data from Table и введя необходимые данные. Запомните идентификатор ID, присвоенный процессором базы данных новому клиенту, потому что он потребуется для создания заказов данного клиента. Пусть эта таблица остается открытой, потому что она нам еще понадобится чуть позже.

3. Откройте таблицу tblOrder и создайте 2-3 заказа для нового клиента. Для этого укажите в поле CustomerID идентификатор ID, присвоенный процессором базы данных новому клиенту. Пусть эта таблица также остается открытой.

4. Вернитесь к таблице tblCustomer и попытайтесь удалить запись с данными этого клиента, щелкнув правой кнопкой мыши на левом конце записи и выбрав из контекстного меню команду Delete.

5. После этого на экране появится диалоговое окно с предупреждением и просьбой подтвердить удаление данных. Щелкните на кнопке Yes.

6. Вернитесь к таблице tblOrder, и вы обнаружите, что заказы этого клиента не удалены. Что произошло? На самом деле они удалены, но дают устаревшее представление данных. Для его обновления нужно выбрать команду меню Query?Run (Запрос1?Запуск). После этого вид таблицы будет обновлен и связанные заказы данного клиента будут удалены благодаря параметрам каскадного удаления.

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

4.11.3. Примеры удаления ipchains-правил

4.11.3. Примеры удаления ipchains-правил Попробуем отменить доступ к FTP на примере удаления записей из цепочки input. Я специально выбрал в качестве образца FTP-сервис, потому что он требует две строки описания, и при совершении операции нужно быть очень внимательным. На вскидку

Программы для удаления Spyware и Adware

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

Каскадные (иерархические) таблицы стилей

Каскадные (иерархические) таблицы стилей http://www.w3.org/Style/Web Style Sheets – стандарты.http://www.webreview.com/guides/style/ – Web Review Style Sheets Reference Guide – справочное

Каскадные таблицы стилей — CSS

Каскадные таблицы стилей — CSS Вообще, все уважающие себя веб-мастера используют в своей работе так называемые каскадные таблицы стилей (CSS). Что это такое? Сайт, как правило, состоит из нескольких страничек. Их может быть и десять, и сто, и даже несколько тысяч. Естественно,

Проблема удаления объекта “Singleton”.

Проблема удаления объекта “Singleton”. В приведенной выше реализации класса Singleton, есть метод создания объекта, но отсутствует метод его удаления. Это означает, что программист должен помнить в каком месте программы объект удаляется. Другая проблема, связанная с удалением

Урок 27. Три способа удаления эффекта красных глаз

Урок 27. Три способа удаления эффекта красных глаз Думаю, многим известен эффект красных глаз, зачастую появляющийся на фотографиях. Несомненно, впечатление от кадра он портит, особенно если вы любите показывать свой виртуальный альбом знакомым. Я не буду вам объяснять,

82. Используйте подходящие идиомы для реального уменьшения емкости контейнера и удаления элементов

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

4.4. Обеспечение удаления смахиванием в ячейках табличных видов

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

12.5.3. Алгоритмы удаления и подстановки

12.5.3. Алгоритмы удаления и подстановки Рассмотрим последовательность из трех символов: . Для нее существует шесть различных перестановок: abc, acb, bac, bca, cab и cba, лексикографически упорядоченных на основе оператора “меньше”. Таким образом, abc – это первая перестановка,

18.5.8. Удаления, выполняемые с помощью редактора sed

18.5.8. Удаления, выполняемые с помощью редактора sed В следующем примере для удаления всех пустых строк применяется потоковый редактор sed. Выходной поток данных направляется в новые файлы с расширением .HOLD. Затем команда mv возвращает файлам их исходные имена.$ pg

У15.8 Каскадные или «шагающие» (walking) меню

У15.8 Каскадные или «шагающие» (walking) меню Оконные системы вводят понятие меню, реализуемое классом MENU с запросом, возвращающим список элементов, и командами отображения, перехода к следующему элементу и т.д. Меню составлено из элементов, поэтому нам понадобится класс MENU_ENTRY

Обновления BIOS

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

Компьютер зависает даже после удаления программы

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

3.3. КАСКАДНЫЕ ТЕХНОЛОГИЧЕСКИЕ ПОДХОДЫ

3.3. КАСКАДНЫЕ ТЕХНОЛОГИЧЕСКИЕ ПОДХОДЫ Каскадные технологические подходы задают некоторую последовательность выполнения видов работ, обычно изображаемую в виде каскада. Иногда их называют подходами на основе модели водопада.Классический каскадный подход (от англ. pure

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

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

146 Глава 3

канонической модели данных, полученной при проектировании базы данных в гла- ве 2 (см. рис. 2.18). На рис. 3.52 в созданной схеме данных БД Поставка товаров все связи отмечены символами 1 и . Это свидетельствует о том, что одно-многозначные связи установлены правильно (по простому или составному ключу) и для них задан параметр обеспечения целостности данных. Задание 3.7. Проверка поддержания целостности в базе данных Если в схеме данных определена связь таблиц, и для нее установлены параметры обеспечения целостности, при вводе и корректировке данных во взаимосвязанных таблицах пользователь не сможет ввести записи, нарушающие требования связной целостности, рассмотренные в предыдущем разделе. Проверьте, как обеспечивается поддержание целостности при внесении изменений в таблицы ПОКУПАТЕЛЬ — ДОГОВОР, связанные одно-многозначными отношениями. Проверка автоматического поддержания целостности при изменении зна- чений ключей связи в таблицах. Откройте главную таблицу связи ПОКУПАТЕЛЬ в режиме таблицы. Измените значение ключевого поля КОД_ПОК (код покупателя) в одной из записей. Убедитесь, что во всех записях подчиненной таблицы ДОГОВОР для договоров, заключенных этим покупателем, автоматически также изменится значение поля КОД_ПОК. Изменение происходит, т. к. был установлен флажок каскадное обновление связанных полей (Cascade Update Related Fields) (см. рис. 3.49). Причем это изменение осуществляется мгновенно, как только изменяемая запись перестает быть текущей. Проверка при добавлении записей в подчиненную таблицу. Убедитесь, что невозможно включить новую запись в подчиненную таблицу ДОГОВОР со значением ключа связи КОД_ПОК, не представленным в таблице ПОКУПАТЕЛЬ. Измените значение ключа связи КОД_ПОК в подчиненной таблице ДОГОВОР на значение, не существующее в записях таблицы ПОКУПАТЕЛЬ, и убедитесь, что такое изменение запрещено, т. к. при поддержании целостности не может существовать запись подчиненной таблицы с ключом связи, которого нет в главной таблице. Проверка при удалении записи в главной таблице. Убедитесь, что вместе с удалением записи в главной таблице ПОКУПАТЕЛЬ удаляются все подчиненные записи в таблице ДОГОВОР, т. к. был установлен флажок каскадное удаление связанных записей (Cascade Delete Related Records). Заметим, если каскадное удаление не разрешено, невозможно удалить запись в главной таблице, если имеются связанные с ней записи в подчиненной. Контрольные вопросы 1. В файле какого типа сохраняется база данных Access 2010? 2. Какие объекты представлены в области навигации базы данных? 3. Чем определяется состав полей таблицы?

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

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