Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Настройка ссылочной целостности (RI actions) в ErWIN / 6 сообщений из 6, страница 1 из 1
20.09.2011, 18:19
    #37448635
May12
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Настройка ссылочной целостности (RI actions) в ErWIN
Перерыл весь рунет, но однозначного понимания и описания принципов настройки ссылочной целостности в 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
20.09.2011, 18:25
    #37448644
Программист-Любитель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Настройка ссылочной целостности (RI actions) в ErWIN
Формилировки каждого режима точные и полные. Что именно вам непонятно ?
...
Рейтинг: 0 / 0
20.09.2011, 18:29
    #37448652
May12
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Настройка ссылочной целостности (RI actions) в ErWIN
я начинающий проектировщик, поэтому у меня есть сомнения в части сделанных формулировок и я хотел бы чтобы профессионалы поправили или дополнили эти формулировки в случае необходимости.
...
Рейтинг: 0 / 0
21.09.2011, 09:06
    #37449167
Программист-Любитель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Настройка ссылочной целостности (RI actions) в ErWIN
Их не нужно поправлять или дополнять. Они точные и не допускают двоякого толкования. Напишите в каких именно вы сомневаетесь и почему ? Конкретно ?
...
Рейтинг: 0 / 0
21.09.2011, 11:08
    #37449355
May12
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Настройка ссылочной целостности (RI actions) в ErWIN
Не совсем понятна разница между NO ACTIONS и NONE

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

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

Delete
No Action
Cascade
Set Null
Set Default

Update
Cascade
Set Null
Set Default

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


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