Захват и освобождение объекта 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Захват и освобождение объекта



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

14) совместный режим - S (Shared), означающий разделяемый захват объекта и необходимый для выполнения операции чтения объекта;

15) монопольный режим - X (eXclusive), означающий монопольный захват объекта и необходимый для выполнения операций записи, удаления и модификации.

 

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

При соблюдении двухфазного протокола основная проблема состоит в том, что следует считать объектом для захвата?

 

В контексте реляционных баз данных возможны следующие варианты (слайд 11):

16) файл - физический (с точки зрения базы данных) объект, область хранения нескольких отношений и, возможно, индексов;

17) таблица - логический объект, соответствующий множеству записей данного отношения;

18) страница данных - физический объект, хранящий записи одного или нескольких отношений, индексную или служебную информацию;

19) запись - элементарный физический объект базы данных.

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

 


Лекция 27 (DB _ l 27. ppt).

Идентификация пользователей. Проверка и назначение полномочий и представлений данных пользователей. Защита базы данных.

Контроль параллельной обработки. Обслуживание и восстановление базы данных. Источники отказов и сбоев. Резервное копирование данных. Процедуры восстановления

 

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

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

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

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

 

Управление системой баз данных производится обычно с помощью нескольких сервисных программ – отдельных приложений, выполняемых в среде операционной системы. Рассмотрим основные функции и компоненты управления на примере сервера реляционных баз данных MS SQL Server.

Большинство функций администрирования, таких как создание, удаление или редактирование объектов БД в SQL Server можно проводить тремя способами: при помощи специализированных диалоговых «мастеров», средствами Enterprise Manager или командами языка T-SQL (надмножество языка SQL-92, включающее дополнительные функции, операторы условия и цикла, хранимые процедуры и т.д.), выполняемым из приложения или, например, из утилиты Query Analizer. Большая часть функций администрирования работы пользователей, серверов и баз данных сосредоточена в приложении SQL Server Enterprise Manager, которое позволяет осуществлять, в том числе, следующие функции (слайд 3).

 

Планирование БД

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

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

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

 

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

Для отдельной таблицы можно построить только один кластерный индекс (слайд 5).

 

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

Некластерный индекс позволяет быстро получить доступ к данным и не требует физического переупорядочения строк данных таблицы.

 

27.2. Управление доступом (слайд 6)

Система безопасности SQL Server имеет несколько уровней безопасности:

- Операционная система;

- SQL Server;

- База данных;

- Объект базы данных.

 

С другой стороны механизм безопасности предполагает существование четырех типов пользователей:

- системный администратор, имеющий неограниченный доступ;

- владелец БД, имеющий полный доступ ко всем объектам БД;

- владелец объектов БД;

- другие пользователи, которые должны получать разрешение на доступ к объектам БД.

 

Модель безопасности SQL Server включает следующие компоненты (слайд 7):

- Тип подключения к SQL Server;

- Пользователь базы данных;

- Пользователь guest;

- Роли (roles).

 



Поделиться:


Последнее изменение этой страницы: 2021-12-07; просмотров: 82; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.222.111.24 (0.01 с.)