powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Настройка ссылочной целостности (RI actions) в ErWIN
6 сообщений из 6, страница 1 из 1
Настройка ссылочной целостности (RI actions) в ErWIN
    #37448635
Фотография May12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Перерыл весь рунет, но однозначного понимания и описания принципов настройки ссылочной целостности в erwin так и не нашел (см.аттач). И есть предположение что нет в рунете всеобъемлющего описания правил ссылочной целостности. То, что ниже написано, конечно, на всеобъемлемость не претендует. Просто хочется разобраться. Данное описание базируется на найденной в интернете информации, в том числе на англоязычных источниках.
Специалистов по настройке ссылочной целостности в Erwin, прошу дать свои комментарии в части корректности трактования соответствующих пунктов настройки меню в erwin и по возможности сразу дать корректировки в тексте.

1.Child
DELETE
RESTRICT – удаление кортежа из дочерней таблицы возможно только в том случае если в родительской таблице отсутствуют связанные кортежи.
CASCADE – при удалении кортежа из дочерней таблицы в родительской таблице также удаляется соответствующий кортеж.
SET NULL – при удалении кортежа из дочерней таблицы первичный ключ в родительской таблице делается null (противоречит теории).
SET DEFAULT – при удалении кортежа из дочерней таблицы значение первичного ключа в родительской таблице устанавливается как значение по умолчанию.
NO ACTIONS – при удалении кортежа из дочерней таблицы никаких действий по отношению к родительской таблице не предпринимается.
NONE – никаких действий по поддержанию ссылочной целостности не требуется.

INSERT
RESTRICT – вставке нового кортежа в дочернюю таблицу возможна только в том случае если в родительской таблице существует кортеж с соответствующим первичным ключом.
CASCADE – при вставке кортежа в дочернюю таблицу в родительской таблице появляется кортеж с соответствующим первичным ключом.
SET NULL – при вставке кортежа в дочернюю таблицу в родительской таблице появляется кортеж со значением первичного ключа null (этого не может быть по теории!).
SET DEFAULT - при вставке кортежа в дочернюю таблицу в родительской таблице появляется кортеж со значением первичного ключа по умолчанию.
NO ACTIONS – при вставке кортежа в дочернюю таблицу никаких действий по отношению к родительской таблице не предпринимается.
NONE – никаких действий по поддержанию ссылочной целостности не требуется.

Update
RESTRICT – обновление внешнего ключа в дочерней таблице возможно только в том случае если в родительской таблице существует кортеж с соответствующим первичным ключом.
CASCADE – при обновлении внешнего ключа в дочерней таблице в родительской таблице обновляется соответствующий первичный ключ.
SET NULL – при обновлении внешнего ключа в дочерней таблице в родительской таблице появляется кортеж со значением первичного ключа null (этого не может быть по теории!).
SET DEFAULT – при обновлении внешнего ключа в дочерней таблице в родительской таблице также обновляется соответствующее значение первичного ключа.
NO ACTIONS – при обновлении внешнего ключа в дочерней таблице никаких действий по отношению к родительской таблице не предпринимается.
NONE – никаких действий по поддержанию ссылочной целостности не требуется.


2. Parent
delete
RESTRICT – удаление кортежа из родительской таблицы возможно только в том случае если в дочерней таблице отсутствуют связанные кортежи.
CASCADE – при удалении кортежа из родительской таблицы в дочерней таблице также удаляется соответствующий кортеж.
SET NULL – при удалении кортежа из родительской таблицы значение внешнего ключа в дочерней таблице делается null.
SET DEFAULT - при удалении кортежа из родительской таблицы значение соответствующего внешнего ключа в дочерней таблице устанавливается как значение по умолчанию.
NO ACTIONS – при удалении кортежа из родительской таблицы никаких действий по отношению к дочерней таблице не предпринимается.
NONE – никаких действий по поддержанию ссылочной целостности не требуется.

Insert
RESTRICT – вставка нового кортежа в родительскую таблицу возможна только в том случае если в дочерней таблице существует кортеж с соответствующим внешним ключом.
CASCADE – при вставке кортежа в родительскую таблицу в дочерней таблице появляется кортеж с соответствующим вторичным ключом.
SET NULL – при вставке кортежа в родительскую таблицу в дочерней таблице появляется кортеж со значением вторичного ключа равным null (противоречит теории!).
SET DEFAULT - при вставке кортежа в родительскую таблицу в дочерней таблице появляется кортеж со значением вторичного ключа по умолчанию.
NO ACTIONS – при вставке кортежа в родительскую таблицу никаких действий по отношению к дочерней таблице не предпринимается.
NONE – никаких действий по поддержанию ссылочной целостности не требуется.

Update
RESTRICT – обновление кортежа в родительской таблице возможно только в том случае если в дочерней таблице существует кортеж с соответствующим вторичным ключом. .
CASCADE – при обновлении первичного ключа в родительской таблице в дочерней таблице обновляется соответствующий вторичный ключом.
SET NULL – при вставке кортежа в родительскую таблицу в дочерней таблице появляется кортеж со значением вторичного ключа null.
SET DEFAULT - при обновлении кортежа в родительской таблице в дочерней таблице значение вторичного ключа устанавливается как значение по умолчанию.
NO ACTIONS – при обновлении кортежа в родительской таблице никаких действий по отношению к дочерней таблице не предпринимается.
NONE – никаких действий по поддержанию ссылочной целостности не требуется.
...
Рейтинг: 0 / 0
Настройка ссылочной целостности (RI actions) в ErWIN
    #37448644
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Формилировки каждого режима точные и полные. Что именно вам непонятно ?
...
Рейтинг: 0 / 0
Настройка ссылочной целостности (RI actions) в ErWIN
    #37448652
Фотография May12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я начинающий проектировщик, поэтому у меня есть сомнения в части сделанных формулировок и я хотел бы чтобы профессионалы поправили или дополнили эти формулировки в случае необходимости.
...
Рейтинг: 0 / 0
Настройка ссылочной целостности (RI actions) в ErWIN
    #37449167
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Их не нужно поправлять или дополнять. Они точные и не допускают двоякого толкования. Напишите в каких именно вы сомневаетесь и почему ? Конкретно ?
...
Рейтинг: 0 / 0
Настройка ссылочной целостности (RI actions) в ErWIN
    #37449355
Фотография May12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не совсем понятна разница между NO ACTIONS и NONE

автор1.Child
UPDATE
NO ACTIONS – при обновлении внешнего ключа в дочерней таблице никаких действий по отношению к родительской таблице не предпринимается.
NONE – никаких действий по поддержанию ссылочной целостности не требуется.

NO ACTIONS в данном случае - это вообще сознательное нарушение ссылочной целостности?
...
Рейтинг: 0 / 0
Настройка ссылочной целостности (RI actions) в ErWIN
    #37449439
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы можете сгенерить код триггера для этих двух опций и выложить его сюда на форум ? Если в качестве сервера задат MS SQL, то большинство ограничений от парента к чаилду можно реализовать совместимыми опциям ссылочной целостности сервера.

Delete
No Action
Cascade
Set Null
Set Default

Update
Cascade
Set Null
Set Default

для остальных Erwin должен бы нагенерить триггеры. Про другие СУБД не знаю, может у них набор опций шире. Если Erwin будет вынужден при задании опций от чаилда к паренту генерить триггеры, то из их кода должны быть видны нюансы этих двух опций - NO ACTIONS, NONE.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Настройка ссылочной целостности (RI actions) в ErWIN
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]