Научная статья на тему 'Об особенностях сохранения информации в базах данных'

Об особенностях сохранения информации в базах данных Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
1488
67
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
Access / ограничения целостности / транзакции / Access / integrity constraints / transactions

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

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

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

About the peculiarities of saving information in databases

The author examines the peculiarities of saving information in a database and describes how a transaction mechanism affects the behavior of the system when entering data. The author notes that the information in the database has a particular value and used by different users. Therefore, an important problem is to check the integrity constraints for the database when the data saved. In order to ensure integrity of databases are using the transaction mechanism. A special component the database management system (transaction manager) provides a database update, so that after the change, it was again in a consistent state. If there was a failure, there is a rollback, the transaction is canceled, the original data is restored from the backup file on the disk. Transaction a sequence of data manipulation operators, has four important properties: atomicity, consistency, isolation, durability. In carrying out the transaction can be used procedures, triggers, and Data Macros, that used to ensure data integrity, and implement complex business logic. The author is available and explains in detail the concepts: transaction, database integrity constraints, the database trigger, business logic. The article contains explanations and methodic recommendations for the study of the topic "Database Management Systems" in the course of computer science.

Текст научной работы на тему «Об особенностях сохранения информации в базах данных»

Scientific journal PHYSICAL AND MATHEMATICAL EDUCATION

Has been issued since 2013.

Науковий журнал Ф1ЗИКО-МАТЕМАТИЧНА ОСВ1ТА

Видасться з 2013.

http://fmo-journal.fizmatsspu.sumy.ua/

Шамшина Н.В. Об особенностях сохранения информации в базах данных// Ф'зико-математична освта : науковий журнал. - 2016. - Випуск 4(10). - С. 148-151.

Shamshina N. V. About the peculiarities of saving information in databases // Physical and Mathematical Education : scientific journal. - 2016. - Issue 4(10). - Р. 148-151.

УДК 372.8+004.65

Н.В. Шамшина

Сумський державний педагогiчний унверситет iменi А.С. Макаренка, Украна

shamichek@ukr.net

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

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

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

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

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

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

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

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

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

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

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

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

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

ISSN 2413-158X (online) ISSN 2413-1571 (print)

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

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

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

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

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

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

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

Данные, которые с точки зрения СУБД являются «неправильными» система блокирует, не принимает, выводит

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

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

Рассмотрим детальнее понятие транзакции.

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

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

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

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

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

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

Для сохранения промежуточных состояний БД создаётся «Журнал транзакций», в котором записываются все манипуляции з данными. Благодаря этим сведениям возможен откат транзакции и восстановления согласованного состояния базы данных после любого сбоя.

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

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

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

области.

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

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

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

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

- ограничение отношения (таблицы);

- ограничение базы данных (связанных таблиц).

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

- добавлением записи в таблице;

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

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

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

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

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

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

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

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

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

Список использованных источников

1. Кузнецов С. Базы данных. Вводный курс» [Електронний ресурс] / С. Кузнецов. - Режим доступу: http://citforum.ck.ua/database/advanced_intro/39.shtml

2. Матерiал з Вштедм - втьно''' енциклопедп [Електронный ресурс]. - Режим доступа: https://ru.wikipedia.org/wiki

3. Пушников А.Ю «Глава 9. Транзакции и целостность баз данных» / Пушников А.Ю. Введение в системы управления базами данных. Часть 2. Нормальные формы отношений и транзакции: Учебное пособие/Изд-е Башкирского ун-та. -Уфа, 1999. - 138 с. [Електронний ресурс]. - Режим доступу: http://citforum.ru/database/dblearn/dblearn09.shtml

4. Шамшина Н.В., 1нформатика. Система управлЫня базами даних Microsoft Access. // Навчальний поабник. - Суми: Вид-во СумДПУ iм. А.С. Макаренка, 2015. - 72 с.

Анотац'я. Шамшина Н.В. Про особливост'1 збереження '¡нформацн в базах даних.

Автор розглядае особливостi збереження iнформацi¡ в базах даних i описуе як мехашзм транзак^й впливае на повед'нку системи при введенн даних. Автор пдкреслюе, що iнформацiя в базах даних мае особливу ^ннсть i може бути затребувана рiзними користувачами. Тому важливим моментом при збереженнi даних е перевiрка обмежень цiлiсностi для бази даних. Для забезпечення цлснот баз даних використовують мехашзм транзак^й. Спе^альний компонент системи управлiння базами даних (адмiнiстратор транзак^й) забезпечуе оновлення бази даних так, щоб псля зм'ни вона знову опинилася в узгодженому сташ. Якщо стався збiй, в'дбуваеться в'дкат, транзак^я скасовуеться, дан в'дновлюються з резервного файлу на диску.

Транзак^я - це посл'довшсть операторiв манпулювання даними, мае чотири важливих властивост'г. атомаршсть, узгодженсть, iзоляцiя, довгов'!чшсть. При виконанн транзак^йможуть бути використан процедури, тригери i макроси даних, як застосовують для забезпечення цiлiсностi даних i реал'зацПскладно¡ бiзнес-логiки.

Автор зрозумло i детально пояснюе поняття: транзак^я, обмеження цiлiсностi бази даних, тригер бази даних, бiзнес-логiка. Матер'ал статт'1 м/'стить роз'яснення i методичн рекомендацП для вивчення теми «Системи Управлiння Базами Даних» в кура iнформатики.

Ключов! слова: Access, обмеження цiлiсностi, транзакцП.

Аннотация. Шамшина Н.В. Про особенности сохранения информации в базах данных.

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

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

Автор доступно и детально поясняет понятия: транзакция, ограничения целостности базы данных, триггер базы данных, бизнес-логика. Материал статьи содержит разъяснения и методические рекомендации для изучения темы «Системы Управления Базами Данных» в курсе информатики.

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

Abstract. Shamshina N.V. About the peculiarities of saving information in databases.

The author examines the peculiarities of saving information in a database and describes how a transaction mechanism affects the behavior of the system when entering data. The author notes that the information in the database has a particular value and used by different users. Therefore, an important problem is to check the integrity constraints for the database when the data saved. In order to ensure integrity of databases are using the transaction mechanism. A special component the database management system (transaction manager) provides a database update, so that after the change, it was again in a consistent state. If there was a failure, there is a rollback, the transaction is canceled, the original data is restored from the backup file on the disk.

Transaction - a sequence of data manipulation operators, has four important properties: atomicity, consistency, isolation, durability. In carrying out the transaction can be used procedures, triggers, and Data Macros, that used to ensure data integrity, and implement complex business logic.

The author is available and explains in detail the concepts: transaction, database integrity constraints, the database trigger, business logic. The article contains explanations and methodic recommendations for the study of the topic "Database Management Systems" in the course of computer science.

Key words: Access, integrity constraints, transactions.

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