Степень детализации блокировок
SQL Server может блокировать ресурсы данных пользователя на уровне строки, страницы или таблицы. Помимо этого SQL Server способен блокировать отдельные ключи индекса и целые диапазоны их значений
на уровне БД: блокировка всей БД, все таблицы
на уровне таблице – доступ к строке
на уровне странице - страница , но таблица может быть на несколько страниц, а страницы могут содержать строки нескольких таблиц
на уровне строки – доступ к строкам одной страницы, если они размещены на одной диск. странице
на уровне поля – доступ по одной строке, если в ней разные поля
69. Типы блокировок. Двоичная блокировка см 64 и 68 вопросы
Типы блокировок
Разделяемые блокировки./ Исключающие блокировки
Двоичная блокировка.
Двоичная. Двоичная блокировка имеет только два состояния: 1 (заблокировано) и 0 (разблокировано). Если некоторый объект БД блокируется транзакцией, то ни одна другая транзакция не сможет получить доступ к этому объекту.
недостатки: Страница может быть заблокирована в течении продолжительного времени. Может привести к ошибкам блокировки при одновременном редактировании записи двумя пользователями, когда они будут проводить обновление.
70. Разделяемая/исключающая блокировка
Разделяемая/исключающая. Исключающая блокировка устанавливается, когда транзакции необходимо обновить данные в БД и при этом на эти данные не установлена никакая другая блокировка. Исключающая блокировка должна использоваться, когда есть вероятность конфликта. Разделяемая блокировка применяется, когда одна транзакция считывает данные из БД и для данного объекта не установлена исключающая блокировка.
Таким образом блокировка может находиться в 3х состояниях:
Разблокировка; Разделение; Исключение.
Хотя возможность разделяемой блокировки обеспечивает более эффективный доступ к данным, схема исключающей/разделяемой блокировки требует больших ресурсов системы по след. Причинам:
1) перед предоставлением блокировки необходимо проверить тип уже установленной блокировки.
2) Имеются три операции ( проверка типа блокировки, установка блокировки, отмена блокировки).
3) В сложных системах эта схема обычно расширяется для того чтобы разрешить повышение статуса блокировки и понижение её статуса.
Несмотря на то, что блокировки предотвращают противоречивость данных их использование может вызвать 2 больших проблемы:
1) Окончательный ключ транзакций не всегда удаётся сериализовать.
2) В плане выполнения транзакций могут возникнуть тупики.
71. Определение блокировки. Недостатки использования блокировок. Двухфазная блокировка 68 и 69 вопросы
При двухфазной блокировке строки данных блокируются по мере необходимости. Изменения производятся, но не записываются в базу данных, пока транзакция не будет полностью обработана.
Двухфазная блокировка работает здесь следующим образом.
В фазе расширения (подготовки) транзакция должна затребовать предикат-блокировку. Узел-координатор ведет таблицу блокировок. Блокировка осуществляется, если она не вступает в конфликт с другими блокировками. Иначе - транзакция переводится в режим ожидания или ей разрешается осуществить перехват ресурса.
В фазе сжатия (разблокировки) осуществляется удаление строки из таблицы блокировок: первая же разблокировка говорит о начале фазы сжатия.
Тупиковые ситуации могут быть устранены в трехфазной транзакции (блокировка, выполнение, разблокировка).
72. Тупики и методы их контроля. Критерии выбора наилучшего метода. 68 и 69 вопросы
Если не управлять доступом к совместно используемым объектам, то между потребителями ресурсов могут возникать тупиковые ситуации.
Существует два основных вида тупиков:
взаимные (deadlock)
односторонние (livelock).
Простейшим случаем взаимного тупика является ситуация, когда каждый из двух пользователей стремится захватить данные, уже захваченные другим пользователем . В этой ситуации пользователь-1 ждет освобождения ресурса N, в то время как пользователь-2 ожидает освобождения от захвата ресурса М. Следовательно, никто из них не может продолжить работу.
Односторонний тупик возникает в случае требования получить монопольный доступ к некоторому ресурсу как только он станет доступным и невозможности удовлетворить это требование.
Технологии контроля тупиков:
1. предотвращение тупиков - запрос с транзакцией новой блокировки отменяется, если есть вероятность возникновения тупика, для этого строиться граф ожидания транзакции
Основой обнаружения тупиковых ситуаций является построение графа ожидания транзакций. Граф ожидания транзакций - это ориентированный двудольный граф, в котором существует два типа вершин - вершины, соответствующие транзакциям, и вершины, соответствующие объектам захвата. В этом графе существует дуга, ведущая из вершины-транзакции к вершине-объекту, если для этой транзакции существует удовлетворенный захват объекта. В графе существует дуга из вершины-объекта к вершине-транзакции, если транзакция ожидает удовлетворения захвата объекта. Легко показать, что в системе существует ситуация тупика, если в графе ожидания транзакций имеется хотя бы один цикл.
2. выявление тупиков –СУБД периодически проверяет БД на тупики, если транзакция находиться в режиме ожидания предоставления ей блокировки опред. время, то считается что образуется тупик, и производиться откат транзакции. и её повторный запуск.
3. уклонение тупиков – транзакция должна получать все необходимы блокировки перед тем, как начать свою работу.
Выбор метода зависит от конфигурации БД.
Если возможность возник. тупика не велика, то – метод выявления тупиков. в противном случаи – предотвращение тупика
Если время отклика не играет сущес. роли – уклонение тупика
73. Определение и свойства транзакции. Управление параллельным выполнением транзакций при помощи меток времени и оптимистических методов.
см
Управление параллельным выполнением транзакций при помощи меток времени
Каждой транзакции присваивается глобальная универсальная метка соответ. времени начала этой транзакции. Все операции БД в рамках этой транзакции должны иметь одну и туже метку времени. – Метка времени определяет порядок предоставлении транзакций субд.
Метки времени:
1. уникальны, 2. монотонны – всегда значение растёт
Управление параллельным выполнением транзакций при помощи оптимистических методов.
Оптимистические подходы исходят из предположения о том, что конфликты между транзакциями редки, и доводят транзакцию до конца, а затем производят проверку корректности. При оптимистическом подходе каждая транзакция проходит две или три фазы: чтение, подтверждение, и запись.
На фазе чтения транзакция читает БД, выполняет необходимые расчеты и делает обновления в индивидуальной копии значений БД. Все операции обновления в транзакции записываются во временный файл обновлений, недоступный остальным транзакциям.
На фазе подтверждения транзакция проверяется на предмет возможного нарушения целостности и непротиворечивости БД. Если подтверждается, что транзакция не приводит к нарушениям, то она переводится в фазу записи. Если же проверка выявляет возможность нарушений, то транзакция перезапускается, а все сделанные изменения отменяются.
На фазе записи в базу данных вводятся все необходимые изменения.
74. Распределенные базы данных. Компоненты РСУБД. Преимущества и недостатки РСУБД. Уровни распределения данных и их обработки.
РБД – лог-связ. между собой БД, кот. располагаться на 2х или более независ узлах, связ. в комп. сети причём доступ к хран. в них данных обеспечив. из различных мест.
Преимущества и недостатки:
+
1. данные распред близко к наиболее востреб. узлу
2.быстрый доступ к данным
3. быстрая обработка данных
4. возможность роста
5. улучшения взаимодействия
6. уменьшение стоимости операции
7. дружест. интерфейс
8. уменьшения опасности сбоя
9. независимость узла от обработки данных
-
1.сложность управления и контроля
2. безопасность
3.недостаток стандартизации
4. сложность управления средой данных
5. повышение стоимости обучения
Компоненты СУРБД:
1. рабочая станция (узлы)
2. компонент сетевого оборудования и программного обеспечения каждой раб. стации
3. коммуникационные устройства
4. процессор транзакции – програм. компонент, нахо. на каждом компьютере, где выполн. запрос данных.
5.процессор данных – распю на компьютерах, где хранятся или извлекаются данные
Уровни распределения данных:
централизованные СУБД( обработка данных и их размещение на одном узле)
файл-сервер, клиент-сервер СУБД (обработка на нескольких узлах, размещение на одном)
полностью распределённые субд( всё на разных узлах)
75. Распределенные базы данных. Уровни распределения данных и их обработки. Обработка данных на нескольких узлах, размещение данных на
Обработка данных на нескольких узлах, размещение данных на одном узле.(MPSD)
необходимо наличие файл-сервера,
на котором выпол. опред. приложения, при этом: процессор транзакции на каждой рабочей станции действ. только как *** переназначения, направ. всю информацию сетев. запросов на файл-сервер
Чтобы получить доступ к данным, кон. пользователь должен на прямую ссылаться на файл-сервер
Функции выбор, ***, обновления данных выполняется только на рабочих станциях
Необходимо чтобы весь файл-данных передавался по сети на рабочую станцию для обработки , что приводит к повышению трафика.
один из вариантов обработки данных – клиент –сервер
76. Обработка и размещение данных на нескольких узлах.
74 вопрос
MPMD-полностью распределённые БД
размешает лог.-связь БД на 2х или более физ.-незав. узлах комп. сети
РБД – состоит из нескольких частей, кот. наз. фрагментами БД
В MPMD пользователю необходимо знать имя или распределение каждого фрагмента, для того чтобы получить доступ к БД
СУРБД:
1. гомогенные – объединяют по сети только один тип центр. СУБД,на разных узлах сети РБД будут выполняться одинаковые СУБД
2. гетерогенные – объедин. по сети различные типы центр. СУБД. Полностью гетерогенные СУРБД поддерживают различные СУБД, кот возможно исп. даже различные модели данных выполн. в разных системах
Особенности:
1.рапсределнная обработка данных не требуют распред. БД,но распр. БД требует обязат. распред. обработку информации.
2. распред. обработка данных основана на един. БД, размещён. на одном из компьютеров, чтобы упр-ть распред. данными копии функций обработки БД или их некотр. часть должна быть распред. по всем узлам, где хран. данные
Репликация – связанна с ранением данных на нескольких узлах комп. сети, поскольку копии фрагментов повышают уровень доступности данных и уменьшают время отклика., репликация поможет уменьшить общие затраты на коммуникации при выполнении запросов.
Репликация — это процесс создания копий файлов, между которыми может осуществляться обмен обновляемыми данными или объектами. Такие копии называются репликами, а такой обмен — синхронизацией .
преимущества:
1. в разных местах
2. все данные актуальны
3. не требует затрат на синхронизацию
Типы: полностью, частично, не реплицированная БД
На репликацию влияет: размер БД, частота исп-ия БД, затраты.
77. Распределенные базы данных. Уровни распределения данных и их обработки. Технология "клиент-сервер". Достоинства и недостатки технологии "клиент-сервер".
74 вопрос
Основной принцип технологии "клиент-сервер" заключается в разделении функций приложения на три группы:
· ввод и отображение данных (взаимодействие с пользователем);
· прикладные функции, характерные для данной предметной области;
· функции управления ресурсами (файловой системой, базой даных и т.д.)
Клиент получает от пользователя запрос, проверяет его синтаксис и генерирует sql запрос к серверу. Сервер либо передаёт полученные данные обратно клиенту или выполняет модификацию БД
Клиент принимает данные серверы и и выводит удобной для пользователя форме
Обработка запроса сервером включает: проверка полномочий клиента, обеспечение требований целостности, выполнение запроса и передача клиенту результатов
Преимущества:
1. обеспечивает более широкий доступ к сущест. БД
2.повышение производительности системы, т.к. клиент наод. на разных компьютерах и выполняет приложения параллельно
3. сокращается нагрузка на сеть
4. повышение уровня не противоречивости
5. снижение стоимости аппаратного обеспечения, так как самые дорогие операции выполняются на сервере
недостаток: может исп. когда мало клиентов
78. Двенадцать правил Дейта для распределенных баз данных.
74 вопрос
1. Локальная независимость узла.
2. Никакой конкретный узел не зависит от узла. все имеют равные права
3. Непрерывность функционирования. независимость от сбоев на каком либо узле
4. Независимость от местоположения.
5. Независимость от фрагментации.
6. прозрачность репликации
7. Распределенная обработка запросов.
8. Управление распределенными транзакциями.
9. Независимость от оборудования.
10. Независимость от операционных систем.
11. Независимость от сети. на любой сетевой платформе
12. Независимость от СУБД. поддержка любой бд