logo
Microsoft Access

Целостность данных

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

Минимальная избыточность данных обозначает, что любой элемент данных должен храниться в базе данных в единственном виде, что позволяет избежать необходимости дублирования операций, производимых с ними.

К утере связей между записями в родительской и дочерней таблицах могут привести два вида изменений:

изменение значения поля связи в записи родительской таблицы без изменения значения поля связи в соответствующих записях дочерней таблицы;

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

И в первом, и во втором случаях наблюдается нарушение целостности базы данных, поскольку информация в ней становится недостоверной. Следовательно, нужно блокировать действия, которые нарушают целостность связей между таблицами, называемую ссылочной целостностью. Чтобы предотвратить потерю ссылочной целостности, используется механизм каскадных изменений. Он состоит в обеспечении следующих требований:

необходимо запретить изменение поля связи в записи дочерней таблицы без синхронного изменения поля связи в родительской и дочерней таблицах, обычно инициатива изменения поля связи реализуется в записи родительской таблицы;

при изменении поля связи в записи родительской таблицы следует синхронно изменить значения полей связи в соответствующих записях дочерней таблицы;

при удалении записи в родительской таблице следует удалить соответствующие записи в дочерней таблицы.

Обычно в СУБД для реализации ссылочной целостности в дочерней таблице создают внешний (чужой) ключ, ссылающийся на родительскую таблицу, и указывают вид каскадного воздействия. Во внешний ключ входят поля связи дочерней таблицы. Для связей типа "один - ко - многим" внешний ключ по составу полей должен совпадать с первичным ключом родительской таблицы.

Существует и другой вид целостности - смысловая (семантическая) целостность БД. Требование смысловой целостности определяет, что данные в БД должны изменяться таким образом, чтобы не нарушалась сложившаяся между ними смысловая связь. Изменения данных в таблицах базы происходят под некоторым воздействием. Воздействие на БД, переводящее ее из одного целостного состояния в другое, называется транзакцией. Если одно из изменений, вносимых в БД в рамках транзакции, завершается неуспешно, должен быть произведен откат к состоянию базы данных, имевшему место до начала транзакции. Следовательно, все изменения, внесенные в БД в рамках транзакции, либо одновременно подтверждаются, либо не подтверждается ни одно из них.

По определенным ключам СУБД автоматически строит индексы. Механизм индексов основан на понятии методов доступа. Индексы представляют собой механизм быстрого доступа к данным в таблицах БД. Сущность индексов состоит в том, что они хранят значения индексных полей (т.е. полей, по которым построены индексы) и указатель на данные в таблицах.