Обеспечение целостности и правильности данных
Обеспечение целостности БД составляет необходимое условие успешного функционирования БД. Целостность БД есть свойство базы данных, означающее, что в ней содержится полная, непротиворечивая, согласованная и адекватно отражающая предметную область информация. Мы привыкли доверять данным, помещаемым в печатных изданиях. При подготовке книги размещаемые в ней данные проверяют несколько редакторов. Они же стараются сделать так, чтобы книга была написана грамотно и соответствовала неким нормам. Например, при чтении детектива было бы странно встретить детальный химический и физический анализ остатков пепла со ссылками на научную литературу. При общении с компьютером соблюдается все тот же принцип, т.е. компьютер сравнивается с известным издательством. Если что-то сделано на компьютере, то большинство людей этому слепо верит, мотивируя тем, что компьютер не может ошибаться. Но это не совсем так. О достоверности данных придется забыть, если в компьютер будут помещены некорректные данные или они могут стать некорректными вследствие сбоев, ошибок и т.д.
База данных является динамической информационной моделью некоторой части реального мира, с модификацией которой в БД изменяется определенная информация. В связи с постоянной актуализацией БД может происходить нарушение ее целостности, т.е. появление ошибок, приводящих к несоответствию структуры и содержимого БД состоянию объекта в реальном мире. Таким образом, целостность БД — это соответствие структуры и содержимого БД реальному состоянию объекта. Причинами нарушения целостности БД могут быть: ошибки ввода данных, сбои оборудования, программные ошибки, раздельное использование БД различными программами, одновременный доступ из различных программ, ошибки логической или физической структуры БД.
Поддержание целостности БД в случае появления ошибок осуществляют программы восстановления. При использовании БД ее содержимое запоминается в некоторые моменты времени. С возникновением ошибки последнее сохраненное содержимое БД восстанавливается с помощью программ восстановления.
Поддержание целостности БД включает проверку целостности и ее восстановление в случае обнаружения противоречий в БД. Целостное состояние БД описывается с помощью ограничителей целостности в виде условий, которым должны удовлетворять хранимые в базе данные. Ограничители целостности бывают трех типов:
· Ограничители значений. К ним относятся:
- задание типа и формата, которые позволяют ввод только определенных данных (задание типа Дата в формате дд.мм.гггг позволит ввести правильную дату);
- задание диапазона значений;
- задание списка значений;
· Ссылочная целостность. Обеспечивается контролем отношений между связанными данными и введением каскадного удаления и обновления связанных записей;
· Целостность записи. Обеспечивается проверкой на уникальность некоторых данных и объявлением обязательных данных.
Другим важным механизмом поддержания целостности является введение транзакций. Транзакцией называется некоторая неделимая последовательность операций над данными БД, которая отслеживается от начала и до завершения. Если по каким-либо причинам (сбои и ошибки) транзакция остается незавершенной, то производится отмена всех операций, входящих в ее состав. Транзакции присущи следующие свойства:
· атомарность (выполняются все входящие в транзакцию операции или ни одна);
· согласованность (любая транзакция должна переводить БД из одного согласованного состояния в другое согласованное состояние);
· изолированность (транзакции выполняются независимо друг от друга);
· безопасность (даже аварийное завершение работы не приводит к потери данных).
Контроль транзакций особенно важен в многопользовательских БД, где транзакции могут быть запущены параллельно. Так как компьютер не может обрабатывать параллельно выполняемые процессы вследствие ограниченности его ресурсов (один центральный процессор), то обычно прибегают к разбиению выполняемых процессов на сравнительно небольшие части и к их поочередному выполнению. Если две или более транзакции читают или модифицирую разные данные, то это не приводит к возникновению каких либо проблем. Другое дело, когда доступ осуществляется к одним и тем же данных. Тогда порядок выполнения частей транзакций может играть важную роль, так как от него будет зависеть конечное состояние данных.
В последнем случае говорят о сериализации транзакций, т.е. о составлении такого плана их выполнения (сериального плана), при котором суммарный эффект реализации транзакций эквивалентен эффекту их последовательного выполнения. При параллельном выполнении транзакций возможно возникновение конфликтов (блокировок). При обнаружении таких случаев обычно производится откат одной или нескольких транзакций.
Дата добавления: 2016-10-26; просмотров: 4567;