Лекции и практики (1). Курс лекций и материалы для практических занятий
Скачать 1.01 Mb.
|
Временные отметкиИспользование временных отметок относится к оптимистическим алго- ритмам разграничения транзакций. Для их эффективного функционирования необходимо, чтобы вероятность одновременного обращения нескольких пи- шущих транзакций к одним и тем же данным была невелика. Временная отметка – это уникальный идентификатор, который СУБД со- здаёт для обозначения относительного момента запуска транзакции. Временная отметка может быть создана с помощью системных часов или путём присвое- ния каждой следующей транзакции очередного номера (SCN – system change number). Каждая транзакция Тiимеет временную отметку ti, и каждый элемент данных в БД (запись или блок) имеет две отметки: tread(x) – временная отметка транзакции, которая последней считала элемент x, и twrite(x) – временная отмет- ка транзакции, которая последней записала элемент x. При выполнении транзакции Тiсистема сравнивает отметку tiи отметки tread(x)и twrite(x)элемента xдля обнаружения конфликтов: для читающей транзакции Тi: если ti < twrite(x), то элемент данных х перезапи- сан более поздней транзакцией, и его значение может оказаться несогласо- ванным с теми данными, которые эта транзакция уже успела прочитать. для пишущей транзакции: если ti < tread(x), то элемент данных х считан более поздней транзакцией. Ес- ли транзакция Т изменит значение элемента х, то в другой транзакции может возникнуть ошибка. если ti < twrite(x), то элемент хперезаписан более поздней транзакцией, и транзакция Тпытается поместить в БД устаревшее значение элемента х. Во всех случаях обнаружения конфликта система перезапускает текущую тран- закцию Тiс более поздней временной отметкой. Если конфликта нет, то тран- закция выполняется. Очевидно следующее: если разные транзакции часто об- ращаются к одним и тем же данным одновременно, то транзакции часто будут перезапускаться, и эффективность такого механизма будет невелика. МноговариантностьДля увеличения эффективности выполнения запросов некоторые СУБД используют алгоритм многовариантности. Этот алгоритм позволяет обеспечи- вать согласованность данных при чтении, не блокируя эти данные. Согласованность данных для операции чтения заключается в том, что все значения данных должны относиться к тому моменту, когда начиналась эта операция. Для этого можно предварительно запретить другим транзакциям из- менять эти данные до окончания операции чтения, но это снижает степень па- раллельности работы системы. При использовании алгоритма многовариантности каждый блок данных хранит номер последней транзакции, которая модифицировала данные, храня- щиеся в этом блоке (SCN – system change number). И каждая транзакция имеет свой SCN. При чтении данных СУБД сравнивает номер транзакции и номер считываемого блока данных: если блок данных не модифицировался с момента начала чтения, то данные считываются из этого блока; если данные успели измениться, то система обратится к сегменту отката и считает оттуда значения данных, относящиеся к моменту начала чтения. Недостатком этого метода является возможность возникновения ошибки при чтении данных, если старые значения данных в сегменте отката будут переза- писаны. При этом будет выдано сообщение об ошибке и операцию чтения при- дётся перезапускать вручную. Для устранения подобных проблем можно уве- личить размер сегмента отката или разбить одну большую операцию чтения на несколько (но при этом согласованность данных обеспечиваться не будет). "Стыднонеуметьзащищатьсебярукою,ноещёболеестыдноне уметьзащищатьсебя словом". Аристотель, древнегреческий философ Защита данных – это организационные, программные и технические ме- тоды и средства, направленные на удовлетворение ограничений, установ- ленных для типов данных или экземпляров типов данных в СОД [5]. Лекция 9. ЗАЩИТА ДАННЫХ В БАЗАХ ДАННЫХ Защита данных включает предупреждение случайного или несанкциони- рованного доступа к данным, их изменения или разрушения со стороны пользо- вателей или при сбоях аппаратуры. Реализация защиты включает: контроль достоверности данных с помощью ограничений целостности; обеспечение безопасности данных (физической целостности данных); обеспечение секретности данных. |