Проверка выполнения транзакций.
Наиболее частыми операциями по работе с БД являются ввод, удаление и модификация записей, а также выборка данных. На основе текущей ERD необходимо проверить выполнимость и, далее, корректность выполнения всех требуемых операций по работе с БД. Примеры транзакций:
· изменение наименования раздельного пункта;
· удаление задания на расчет;
· выборка данных по раздельным пунктам расчетного пути участка и т. д.
Определение требований поддержки целостности данных.
Ограничения целостности данных представляют собой ограничения, которые вводятся с целью предотвращения помещения в базу противоречивых данных.
К этим ограничениям относятся:
· обязательные данные – атрибуты, которые всегда должны содержать одно из допустимых значений (NOT NULL). Например, поворот кривой (влево или вправо) должен быть обязательно задан. Обязательными также являются все атрибуты, входящие в первичный ключ сущности;
· домены – наборы допустимых значений для атрибута. Например, радиус кривой должен быть положительным числом не более 4 цифр или поворот кривой может принимать одно из двух допустимых значений – «Л» (влево) или «П» (вправо);
· бизнес-правила (бизнес-ограничения) – ограничения, принятые в рассматриваемой предметной области. Например, сумма длин переходных кривых не должна быть более длины всей кривой, километраж начала или конца кривой должен быть в пределах общего километража пути и т. д.;
|
|
· ссылочная целостность – набор ограничений, определяющих действия при вставке, обновлении и удалении записей (экземпляров сущности). Например:
o при наличии обязательной связи вставка записи в дочернюю сущность требует обязательного заполнения атрибутов внешнего ключа, и введенному значению должна соответствовать запись родительской сущности;
o аналогичное требование выдвигается при обновлении внешнего ключа в дочерней сущности;
o удаление записи из дочерней сущности или вставка записи в родительскую не вызывают нарушения ссылочной целостности;
O удаление записи в родительской сущности может требовать удаления всех связанных записей в дочерней сущности.
Автоматическая поддержка всех видов ограничений целостности возможна за счет использования операторов SQL.
Ссылочная целостность может быть обеспечена за счет использования триггеров. Триггер – это хранимая в БД процедура, вызываемая автоматически при выполнении удаления (DELETE), вставки (INSERT) или обновления (UPDATE) записи. Набор команд, входящих в триггер, зависит от принятой стратегии (типа триггера) поддержания целостности. Рассмотрим типы триггеров на примере удаления записи:
|
|
· RESTRICT (ограничение действия). Удаление записи из родительской таблицы запрещается, если в дочерней таблице существует хотя бы одна зависимая запись;
· CASCADE (каскадное удаление или обновление). При удалении записи из родительской таблицы автоматически удаляются все связанные с ней записи дочерней таблицы. Если удаляемая запись из дочерней таблицы выступает в качестве родительской стороны в некоторой другой связи, то операция удаления применяется ко всем записям дочерней таблицы этой связи и т.д.;
· SET NULL (установка неопределенного значения). При удалении записи из родительской таблицы во всех связанных с ней записях дочерней таблицы в атрибуты внешнего ключа записываются неопределенные значения (NULL). Такой тип триггера возможен только для необязательных связей;
· SET DEFAULT (установка значения по умолчанию). При удалении записи из родительской таблицы во всех связанных с ней записях дочерней таблицы в атрибуты внешнего ключа записываются заранее определенные значения по умолчанию. Такой тип триггера возможен только для необязательных связей;
· NO CHECK или NONE или IGNORE (без проверки). При удалении записи из родительской таблицы никаких действий по сохранению ссылочной целостности данных не предпринимается.
Назначение типа триггера на действия с записями является ответственной операцией. Выбор неверного типа может привести к нарушению ссылочной целостности в БД. Особой осторожности требует выбор каскадного удаления, ведь при таком удалении по цепочке могут быть удалены сотни и тысячи записей из разных таблиц.
Дата добавления: 2019-02-22; просмотров: 143; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!