2.1.3 Избыточность и несогласованность данных

iDevice ikoon 2.1.3 Избыточность и несогласованность данных

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

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

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

Рисунок 2-1. Повторение данных (Андрес (nimi), проживающий по адресу Йые 9 (aadress), имеющий номер работника 34 (töötaja_nr), имеет специальности (ameti_nimetus) сварщика, водителя и механизатора. Номера этих специальностей (ameti_nr) - 2, 5, 6 соответственно.)

Доступность, целостность, конфиденциальность

Доступность (availability) данных - своевременная и удобная досягаемость информации и удобство работы для авторизированных лиц и субъектов.

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

Примеры проблем доступности:

  • Студентам выдается дублированный диплом (регистр народонаселения не доступен)
  • Женятся две личности, находящиеся в браке (уполномоченный сотрудник Дворца бракосочетаний не имеет доступа к регистру народонаселения).

Целостность данных (integrity) - происхождение данных из подлинного источника и уверенность в том, что они позже не изменились, и / или их позже несанкционированно не изменяли.

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

Данные, как правило, связаны с создателем, со временем создания, контекстом и пр., нарушение этих связей может привести к непредвиденным последствиям.

Примеры нарушения целостности:

  • Взломавший базу данных Riigi Teataja хакер может самоуправно изменять законы
  • В результате ошибочного изменения в Регистре наказаний заключенные раньше освободят.

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

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

Конфиденциальность данных (confidentiality), или секретность - доступность данных только для этого уполномоченным лицам (и недоступность до всех оставшихся).

Примеры нарушения конфиденциальности:

  • Данные пациентов клиники Тартуского университета попали в сеть
  • Государственный служащий Министерства обороны потерял карту памяти, отчего конфиденциальная информация попала в частные руки.

Гибкость данных, одновременный доступ и безопасность

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

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

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

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