Проверка выполнения транзакций.



Наиболее частыми операциями по работе с БД являются ввод, удаление и модификация записей, а также выборка данных. На основе текущей 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; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!