- •Прил 1
- •Прил n
- •Прил 2
- •Концептуальная модель
- •2. Классификация м данных.
- •3. Иерархическая мд. Операции над данными в иерархической базе данных. Достоинства и недостатки иерархической мд.
- •4. Сетевая мд. Операции над данными в сетевой базе данных. Достоинства и недостатки сетевой мд.
- •5. Реляционная мд. Её свойства.
- •6. Реляционная алгебра.
- •7. Ключи в отношениях. Зависимости между атрибутами в реляционной м.
- •8. Нормализация отношений.
- •9. Языки бд.
- •10. Определение данных в языке структурированных запросов sql.
- •11. Манипулирование данными в языке sql.
- •12. Основные принципы управления тран-ями.
- •Операции тран-ии
- •Обеспечение согласованности
- •13. Защита бд от сбоев.
- •Резервные копии и контрольные точки
- •Журналы тран-ий
- •Восстановление посредством повторной обработки
- •Восстановление посредством прокрутки вперед
- •Восстановление посредством отката
- •Восстановление при повреждении жесткого диска
- •Поддержка автоматического восстановления
- •14. Основные средства субд, свойства субд, классификация современных субд.
- •15. Архит-ра «Клиент - Сервер». М взаимодействия fs, rda, dbs, as, их анализ.
- •16. Эволюция серверов бд.
- •17. Хранилища данных и olap-технология.
Обеспечение согласованности
БД находится в согласованном состоянии, если выполняются все ограничения МД. Среди них — ограничения первичного и внешнего ключей, ограничения домена и дополнительные, более сложные, бизнес-правила. Модель тран-ий обеспечивает возможность снятия и наложения согласованности, когда это нужно для обновлений БД.
Согласно М тран-ий, каждая тран-я должна быть разработана таким образом, что если перед выполнением тран-ии БД находится в согласованном состоянии, то и после успешного завершения тран-ии она должна оказаться в согласованном состоянии. Модель также подразумевает, что БД может находиться в несогласованном состоянии во время выполнения тран-ии.
В идеале операция фиксации, которая делает изменения перманентными, должна выполнить проверку согласованности результирующего состояния. Если БД оказывается в несогласованном состоянии, операция фиксации оканчивается неудачей, оставляя транзакцию открытой. После этого прил может или выполнить откат тран-ии, или внести изменения в состояние для достижения согласованности и попытаться повторно выполнить операцию фиксации. Если операция фиксации не проверяет целостности измененных данных, ответственность за поддержание ограничений полностью ложится на плечи разработчиков прил.
Тран-я, или атомарная тран-я, — это логическая единица работы, которая должна быть выполнена полностью либо не выполнена вовсе. Каждая операция доступа к информации БД должна производиться как часть некой тран-ии. Разработчик прил может осуществлять управление стадиями тран-ии, явно выполняя операцию открытия для создания и инициализации тран-ии и операцию фиксации или отката для закрытия тран-ии. Несколько пользователей БД (или несколько сеансов) выполняют отдельные тран-ии параллельно.
Идеалом при обработке тран-ий является достижение ACID-свойств: атомарности, согласованности, изолированности и продолжительности. Тран-я, не удовлетворяющая свойствам ACID, может с высокой вероятностью привести к повреждению БД или других тран-ий.
Режимом доступа к базам данных по умолчанию является режим автофиксации, когда каждый оператор SQL выполняется как отдельная тран-я, которая начинается одновременно с началом обработки SQL-оператора и завершается, когда оператор успешно завершает свое выполнение.
Атомарность тран-ии зависит от операции отката, которая отменяет все выполненные транзакцией обновления и восстанавливает состояние, существовавшее до начала тран-ии. Тран-я считается согласованной, если она переводит базу данных из одного согласованного состояния в другое. В частности, ключ тран-ии не должен нарушать ограничений домена, ключа и внешнего ключа.
Проблема изолированности тран-ий возникает только при наличии нескольких параллельных тран-ий. Тран-я является не изолированной от другой тран-ии, если обновления второй тран-ии оказывают воздействие на первую. Взаимное влияние тран-ий друг на друга может приводить к потерям обновления, чтению мусора, недостоверному итогу, неповторяемому чтению или чтению фантома.
Для уменьшения или исключения взаимного влияния тран-ий друг на друга программное обеспечение менеджера тран-ий использует блокировки. Блокировка для чтения является разделяемой и допускает чтение, но не запись объекта. Блокировка для записи является эксклюзивной и позволяет одной тран-ии выполнять запись в объект, но запрещает запись в этот объект других тран-ий. Системы с СУБД поддерживают разнообразные размеры блоков (уровней детализации), это может быть БД, таблица, строка, столбец или блокировка полей. Они также поддерживают блокировку индексов и системных ресурсов.
Язык SQL поддерживает неявное блокирование, при котором блокировки создаются и освобождаются обработчиком SQL-операторов. Прил может задать уровень изоляции тран-ии, который должен будет обеспечить SQL-процессор. Язык SQL поддерживает четыре уровня изоляции, в диапазоне от полного отсутствия до гарантированной изоляции.
Как и в любой другой системе, в которой параллельные процессы запрашивают и удерживают блокировки на ресурсы, взаимная блокировка тран-ий является основной проблемой. Обнаружение и устранение взаимных блокировок в SQL-системах возможно, но может быть очень дорогостоящим. Для предотвращения подобных проблем часто используются протоколы предотвращения взаимных блокировок.
График набора тран-ий — это упорядочение их операций. График называется последовательным, если отсутствует чередование операций различных тран-ий. График является упорядоченным, если он эквивалентен последовательному графику. Упорядоченные графики идеальны потому, что каждая тран-я остается изолированной от влияния других тран-ий. Каждая тран-я видит согласованное состояние БД, как, если бы она выполнялась как единственная тран-я.
Протокол двухфазной блокировки требует, чтобы процесс установки и освобождения блокировок каждой транзакцией состоял из двух фаз: фазы нарастания и фазы сжатия. График, удовлетворяющий этому протоколу, является также и упорядоченным графиком. Хотя взаимовлияние тран-ий исключается, они все же могут оказываться в ситуациях взаимной блокировки. Наиболее популярным вариантом двухфазной блокировки является строгая двухфазная блокировка (2PL), при которой все блокировки удерживаются до конца тран-ии и освобождаются во время фиксации или отката. Строгая 2PL используется коммерческими системами с СУБД для получения упорядоченных графиков.