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

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

Компьютерную программу, которая содержит данные и принимает запросы от пользователей, выдает на основе запроса необходимые данные (если таковые имеются!) в требуемом виде, называют системой управления базами данных (haldussüsteem (ABHS), database management system (DBMS)).

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

Использование баз данных предоставляет:

  • Высокую скорость доступа к необходимым данным
  • Сортировка данных в соответствие с заданными признаками
  • Нахождение только необходимых данных без лишнего «информационного шума»
  • Многопользовательский одновременный доступ к данным
  • Ввода данных из разных физически отдельно находящихся мест
  • Доступ к данным только авторизованным лицам.

Использование баз данных также поднимает ряд проблем:

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

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

Необходимую безопасность переводов характеризует сокращение «ACID», иногда используемое также как и «Acid Test», которое происходит от терминов:

  • атомарность (Atomicity) - перевод должен быть неделимым, прибывая действительно (юридически) законченным (совершить транзакцию=commit), а в противном случае отмененным (откат транзакции=rollback), последнее восстанавливает исходное состояние данных (состояние до начала транзакции), что в терминах логики означает все или ничего
  • согласованность (Consistency) - правила обновления соотвественно выбранным данным должны исключать ошибки при управлении данными, распознающими возникновения несоответствий и находящимися в согласованности
  • изоляция (Isolation) - одновременный доступ (concurrency) различных процессов к данным должен регулироваться в целях предотвращения конфликтов и для того, чтобы избежать ситуации искажений / зависаний (взаимных блокировок, deadlock) СУБД.
  • долговечность (Durability) - следует избегать случайной потери данных или свести ее к минимуму, добавив последнее действительное состояние, которое было у системы до неполадок в функционировании, и возможность восстановления.

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

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