2.1.2 Сохранение данных

Компьютерную программу, которая содержит данные и принимает запросы от пользователей, выдает на основе запроса необходимые данные (если таковые имеются!) в требуемом виде, называют системой управления базами данных (haldussüsteem (ABHS), database management system (DBMS)).
Данные сохраняются, как правило, в какой-либо базе данных. Базу данных можно определить как совокупность записей, которые находятся в запоминающем устройстве компьютера, так, что если пользователь обращается к компьютеру с желанием получить некоторую информацию с целью принятия решения, то компьютер обращается к базе данных и если желаемые данные найдены, то выдает их пользователю. Для лучшего доступа к данным (поиска) в базе данных записи, как правило, организуются в виде набора элементов данных (фактов).
Использование баз данных предоставляет:
- Высокую скорость доступа к необходимым данным
- Сортировка данных в соответствие с заданными признаками
- Нахождение только необходимых данных без лишнего «информационного шума»
- Многопользовательский одновременный доступ к данным
- Ввода данных из разных физически отдельно находящихся мест
- Доступ к данным только авторизованным лицам.
Использование баз данных также поднимает ряд проблем:
- Необходимо защищать данные от несанкционированного использования
- Необходимо приобрести систему управления базами данных (СУБД), т.е. программу
- Необходимо обучать пользователей и менеджеров СУБД
- Необходимо обеспечить целостность данных
- Необходимо вводить данные в заданном виде
- Базы данных требуют проектирования, что, в свою очередь, требует времени.
Классическим примером полной надежности СУБД является операция проверки текущего банковского счета. Необходимо гарантировать, что в любом случае (также и в случае катастрофического состояния) надежность данных не пострадает, и в случае каждой онлайн-транзакции (сделки, перевода) сумма не должна переводиться на счет получателя без снятия со счета отправителя, и наоборот.
Необходимую безопасность переводов характеризует сокращение «ACID», иногда используемое также как и «Acid Test», которое происходит от терминов:
- атомарность (Atomicity) - перевод должен быть неделимым, прибывая действительно (юридически) законченным (совершить транзакцию=commit), а в противном случае отмененным (откат транзакции=rollback), последнее восстанавливает исходное состояние данных (состояние до начала транзакции), что в терминах логики означает все или ничего
- согласованность (Consistency) - правила обновления соотвественно выбранным данным должны исключать ошибки при управлении данными, распознающими возникновения несоответствий и находящимися в согласованности
- изоляция (Isolation) - одновременный доступ (concurrency) различных процессов к данным должен регулироваться в целях предотвращения конфликтов и для того, чтобы избежать ситуации искажений / зависаний (взаимных блокировок, deadlock) СУБД.
- долговечность (Durability) - следует избегать случайной потери данных или свести ее к минимуму, добавив последнее действительное состояние, которое было у системы до неполадок в функционировании, и возможность восстановления.
Программа СУБД не содержит прямых ссылок на данные, находящиеся в базе данных, поскольку невозможно предварительно определить, какие данные фактически вводятся в базу данных. Эта проблема решается специально для этой цели добавленного пространства памяти, где сохраняют «словарь данных» (data dictionary), описывающий действительную информацию, которую можно вводить в базу данных.
Систематическое сохранение данных и информации в памяти компьютера имеет ряд преимуществ, но также несет с собой и риски, которые должны быть рассмотрены и решены. Этими проблемами являются избыточность данных, целостность, гибкость, безопасность, которые будут обсуждаться ниже.