Научная статья на тему 'ОСОБЕННОСТИ СОХРАНЕНИЯ ИНФОРМАЦИИ В БАЗАХ ДАННЫХ'

ОСОБЕННОСТИ СОХРАНЕНИЯ ИНФОРМАЦИИ В БАЗАХ ДАННЫХ Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
450
13
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ACCESS / ТРАНЗАКЦИИ / ОБЕСПЕЧЕНИЕ ЦЕЛОСТНОСТИ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Басов А. С.

В данной статье рассматриваются особенности сохранения информации в базах данных на примере СУБД Access, а также показано влияние транзакций на поведение системы при вводе данных.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «ОСОБЕННОСТИ СОХРАНЕНИЯ ИНФОРМАЦИИ В БАЗАХ ДАННЫХ»

УДК 004.65

Басов А.С.

студент 2 курса магистратуры кафедры информатики и вычислительной техники Сибирский государственный университет науки и технологий имени академика М. Ф. Решетнева (Россия, г. Красноярск)

ОСОБЕННОСТИ СОХРАНЕНИЯ ИНФОРМАЦИИ В БАЗАХ ДАННЫХ

Аннотация: в данной статье рассматриваются особенности сохранения информации в базах данных на примере СУБД Access, а также показано влияние транзакций на поведение системы при вводе данных.

Ключевые слова: Access, транзакции, обеспечение целостности.

Цель данной статьи - рассмотреть особенности сохранения информации в базах данных на примере СУБД Access, описать такие специальные понятия как транзакция и целостность базы данных.

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

1. Общие операции сохранения: операции изменения структуры БД, то есть создание или модификация базовых таблиц и других объектов, осуществляются по командам пользователя. В операциях сохранения объектов участвует операционная система - на экране появляется диалоговое окно с сообщением привычного вида, оно содержит «Сохранить? ДА, НЕТ, ОТМЕНА».

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

2. Специальный режим сохранения для данных: операции сохранения при изменении данных в базовых таблицах автоматизированы и выполняются без предупреждения. Такие операции происходят в обход операционной системы, их осуществляет СУБД. Если Вы меняете данные в таблице, изменения сохраняются в файл базы данных автоматически и сразу после перехода к следующей записи. Отменить операцию нельзя!

Таким образом СУБД как бы «защищает» информацию от объективных факторов - сбоев электроснабжения, зависаний компьютера, и от субъективных факторов - например таких как, забывчивость оператора, умышленное не сохранение данных о внесении денежных средств, искажение данных с целью наживы, невнимательность или некомпетентность при работе с ценными данными.

Такой подход к сохранению информации приводит к необычному выполнению операций с файлом данных, что наблюдается в следующих моментах:

• если нужно создать новую БД, сначала надо создать файл БД указывая имя файла и папку размещения файла, так как именно в этот файл будет осуществляться автоматическое сохранение данных;

• если открыть следующую БД, предыдущая автоматически закрывается;

• каждый объект в БД создается и сохраняется отдельно, начиная с базовых таблиц;

• команда «Сохранить» или комбинация Ctrl+S относится к активному открытому объекту: таблице, форме, запросу, отчету;

• команда «Файл/Сохранить как.../Сохранить объект как ...», относится к выбранному объекту: таблице, форме, запросу, отчету;

• команда «Файл/Сохранить как./Сохранить базу данных как ...», относится к файлу базы данных;

• при закрывании таблиц, форм, запросов отменить изменения содержания невозможно;

• при закрывании программы или файла БД нет необходимости сохранять данные;

• закрыть файл отказавшись от внесенных изменений, как бы «без сохранения» нельзя;

• данные будут внесены в любом случае, если они правильные, т.е. соответствуют всем предусмотренным в БД условиям;

• произойдет блокировка изменения данных, отказ системы сохранить данные, если они неправильные.

Данные, которые с точки зрения СУБД являются «неправильными» система блокирует, не принимает, выводит различного рода сообщения в диалоговых окнах, поясняя свои действия и предлагая осуществить повторный ввод данных. При работе неподготовленного пользователя с программой такое случается довольно часто. При этом поведение программы раздражает, утомляет, повышая уровень отрицательных эмоций, снижая интерес к программе и мотивацию к изучению. Чтобы этого не произошло, необходимо ознакомить учащихся с основными правилами ввода данных и особенностями работы системы управления базами данных при сохранении данных.

При операциях изменения данных СУБД работает с электронным носителем (диском) напрямую, при этом осуществляются так называемые транзакции. За сложный процесс сохранения данных отвечает специальный компонент СУБД - администратор транзакций. Администратор транзакций обеспечивает обновление базы данных так, чтобы после изменения она вновь оказалась в согласованном состоянии. Если произошел сбой, транзакция отменяется, исходные данные восстанавливаются из резервного файла на диске. Рассмотрим детальнее понятие транзакции.

Транзакция (англ. transaction) - это несколько согласованных операций по изменению содержания базы данных. Транзакцией называется

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

Для транзакции, как логической единицы работы системы, характерны следующие требования: атомарность (аtomicity), согласованность (сonsistency), изоляция (isolation), долговечность (durability). Сокращенно ACID. Эти требования были сформулированы в конце 70-х годов Джимом Греем.

Атомарность (Atomicity). Это требование иногда называют "все или ничего", оно означает, что никакая транзакция не будет завершена в системе частично. Либо все подоперации транзакции будут выполнены и произойдет фиксация изменений БД, либо произойдет «откат» транзакции, БД будет восстановлена в прежнем состоянии.

Согласованность (Consistency). В соответствии с этим требованием, система находится в согласованном (целостном) состоянии до начала транзакции и должна остаться в согласованном (целостном) состоянии после завершения транзакции.

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

Долговечность (Durability). Можно сказать, что это требование надежности работы системы. Если транзакция прошла успешно, изменения, которые были внесены в файл базы данных благодаря ей должны сохраняться даже в случае сбоев аппаратуры или программного обеспечения.

По мнению некоторых специалистов, в контексте баз данных термины «согласованность» и «целостность» эквивалентны. Единственным критерием согласованности данных является их удовлетворения ограничением целостности. Однако по мнению других нельзя путать требование согласованности с требованиями целостности (integrity). Последние правила являются более узкими и, во многом, специфичны для реляционных СУБД: есть

требования целостности типов (domain integrity), целостности ссылок (referential integrity), целостности сущностей (entity integrity), которые не могут быть нарушены физически в силу особенностей реализации системы.

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

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

По области действия ограничения целостности делятся на:

• ограничение домена (поля);

• ограничение атрибута (значения поля);

• ограничение кортежа (записи);

По времени проверки ограничения целостности делятся на:

• ограничения, которые проверяются немедленно.

• ограничения с отложенной проверкой.

Ограничения, которые проверяются немедленно, проверяются немедленно при выполнении операции, что может привести к несоответствию данных. Например, проверка уникальности значения ключевого поля проверяется при вставке записи в таблицу. Если ограничение нарушено, эта операция блокируется. Система отказывается выполнять "незаконную" операцию.

Ограничения с отложенной проверкой проверяются в конце транзакции. Ограничение не может быть выполнено внутри транзакции. Если при фиксации транзакции обнаруживается нарушение ограничения целостности, транзакция откатывается.

В СУБД Access при создании связей между таблицами можно явно указать параметр "обеспечение целостности данных" для связанных таблиц. Включение

параметра целостности данных обязательно для рабочих баз данных. это позволяет избежать записей без пары в подчиненной таблице и неправильно связанных записей. При сохранении новой или измененной записи автоматически проверяются значения критических полей, которые являются полями для связи, то есть внешними ключами. При попытке ввести данные об объекте, не связанном с главной таблицей, в подчиненную таблицу транзакция отменяется и данные не сохраняются. Данные должны быть введены сначала в основную таблицу, а затем в подчиненную таблицу. Целостность данных не может быть включена, если целостность данных нарушена, и в этом случае вы должны изменить данные.

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

Современные СУБД разработали инструменты для поддержки ограничений целостности. Существует два способа реализации ограничений целостности:

• декларативная поддержка ограничений целостности;

• процедурная поддержка ограничений целостности.

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

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

Триггер — это особый тип хранимой процедуры, которая используется при возникновении определенного события (действия) в реляционной базе данных:

• добавление записи в таблицу;

• удаление записи в таблице;

• изменение данных в ячейке таблицы.

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

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

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

Если СУБД не имеет возможности воспроизвести все необходимые ограничения предметной области, то может случиться так, что, хотя база данных и будет находиться в полном состоянии с точки зрения СУБД, это состояние не будет логичным и корректным с точки зрения пользователя. Именно такая ситуация иногда наблюдалась при работе с ранними версиями СУБД Access.

Усовершенствования СУБД Access устранили этот недостаток в последующих версиях. Microsoft Access 2010 представила макросы данных. Макросы данных - это новая функция программы. Это новая функция, которая позволяет добавлять логику к событиям, происходящим в таблицах при

добавлении, обновлении или удалении данных. Макросы данных похожи на триггеры в Microsoft SQL Server и выполняют те же функции.

СПИСОК ЛИТЕРАТУРЫ:

Пушников А.Ю «Глава 9. Транзакции и целостность баз данных» / Пушников А.Ю. Введение в системы управления базами данных. Часть 2. Нормальные формы отношений и транзакции: Учебное пособие/Изд-е Башкирского ун-та. -Уфа, 2009. - 138 с.

Сабанов А. А. Безопасность баз данных: учеб. пособие / А. А. Сабанов. -Таганрог : ТРТУ, 2016. - 130 с.

Гурвиц, Г. Microsoft Access 2010. Разработка приложений на реальном примере / Г. Гурвиц. - М.: БХВ-Петербург, 2016. - 496 с.

i Надоели баннеры? Вы всегда можете отключить рекламу.