- •Основные функции субд:
- •По модели данных:
- •Иерархические (Иерархической базой данных является файловая система, состоящая из корневого каталога, в котором имеется иерархия подкаталогов и файлов).
- •Сетевые (Сетевые базы данных подобны иерархическим, за исключением того, что в них имеются указатели в обоих направлениях, которые соединяют родственную информацию).
- •По степени распределённости
- •Локальные субд (все части локальной субд размещаются на одном компьютере)
- •Распределённые субд (части субд могут размещаться на двух и более компьютерах).
- •Различные представления о данных в базах данных:
- •Ограничения не-Null Ограничение не-null просто говорит, что колонка не должна содержать значение null. Пример синтаксиса:
- •2. Определение структур базы данных (ddl)
- •3. Манипуляция данными (dml)
- •4. Отбор данных (dql)
- •5. Язык управления данными (dcl)
- •6. Команды администрирования данных
- •7. Команды управления транзакциями
- •14.Запись sql-операторов
- •15.Типы данных языка sql, определенные стандартом
- •16.Основные команды языка ddl
- •17.Основные команды языка dml
- •18.Оператор выбора select
- •19.Применение агрегатных функций и вложенных запросов в операторе выбора
- •20. Операторы манипулирования данными
- •21.Физическая организация бд: файлы, записи, блоки.
- •23.Организация файла бд в виде кучи. Эффективность таких файлов.
- •24.Хешированные файлы: бакет, каталог бакетов, дополнительный каталог бакетов, выбор хеш-функции. Операции над хешированными файлами.
- •25.Сравнение эффективности хешированных файлов и файлов, организованных в виде кучи. Причины снижения эффективности хешированных файлов.
- •26.Динамическое хеширование. Операции над динамически хешированными файлами.
- •27.Последовательная организация файлов. Операции добавления и удаления записей в последовательных файлах, блок переполнения.
- •28. Индексированные файлы: инициализация, поиск.
- •29. Индексированные файлы: операции вставки и удаления записей.
- •30.Разреженные и плотные индексы. Индексация по нескольким полям.
- •Составные индексы
- •31.Эффективность операций в индексированных файлах при различной организации поиска.
- •32.B-деревья: принципы построения, операция поиска.
- •33.В-деревья: операции добавления и удаления записей.
- •34.Эффективность организации файлов в виде в-дерева.
- •35.Технология кластеризации бд.
- •36.Технология сжатия информации в бд.
- •37.Основные шаги обработки запросов.
- •Можно транслировать в выражение
- •38.Статистика бд.
- •40.Алгоритмы выполнения селекции с одним условием сравнения: размер селекции, использование первичного индекса, использование вторичного индекса.
- •41.Размер комплексной селекции при конъюнкции и дизъюнкции условий.
- •43.Алгоритм внешней сортировки.
- •44.Размер операции соединения. Алгоритм соединения, основанный на двух вложенных циклах.
- •45.Алгоритмы выполнения соединения: поблочное соединение, усовершенствование алгоритма поблочного соединения, соединение по индексу.
- •46.Алгоритм соединения слиянием.
- •47.Алгоритмы выполнения операций с множествами, проекции, внешнего соединения.
- •48.Два подхода к вычислению выражений при обработке запросов.
- •50.Виды оптимизаторов: итеративный, основанный на стоимостях и эвристический.
- •51.Понятие транзакции. Свойства acid транзакций.
- •52.Аномалии параллельных транзакций: потерянное обновление, зависимость от нефиксированных результатов, несогласованная обработка.
- •53.Понятие плана параллельного выполнения транзакций. Последовательные, непоследовательные и неупорядоченные планы.
- •54.Конфликтное упорядочивание планов и упорядочивание планов по просмотру.
- •55.Блокировки как механизм управления параллельными транзакциями: понятие блокировки, хранение блокировок, виды блокировок.
- •56.Работа транзакций при использовании механизма блокировок. Предотвращение аномалий при использовании блокировок.
- •57.Понятие протокола. Двухфазный протокол.
- •58.Проблема каскадного отката в параллельных транзакциях. Строгий двухфазный протокол.
- •59.Взаимная блокировка параллельных транзакций.
- •60.Использование метода временных отметок для управления параллельными транзакциями.
- •61.Оптимистические технологии управления транзакциями.
- •63.Уровни изоляции параллельных транзакций.
- •64.Восстановление бд: возможные причины отказов, механизм резервного копирования, журнал транзакций, создание контрольных точек.
- •65.Методы восстановления бд: восстановление с резервной копии, метод «redo», метод теневых страниц.
- •66.Улучшенные модели транзакции: проблемы классических моделей транзакций, модель вложенных транзакций, модель хроник.
- •67.Технология raid. Уровни raid.
- •68.Oltp- технологии и хранилища данных. Хранилища данных.
- •Понятие хранилища данных.
- •Проблемы хранилищ данных.
- •Архитектура хранилища данных
- •Проектирование схемы бд для хранилища данных.
- •Olap-технологии.
61.Оптимистические технологии управления транзакциями.
Такие технологии основываются на предположении, что конфликты в системе возможны нечасто, поэтому эффективнее будет организовать выполнение транзакций без дополнительной обработки, связанной с блокировками или временными отметками.
Перед завершением выполнения транзакции выполняется проверка с целью определения, имел ли место конфликт. Если конфликт найден, то транзакция отменяется и перезапускается.
Оптимистический протокол управления параллельностью включает три фазы:
1 Фаза чтения. Она охватывает транзакцию от ее начала и вплоть до момента фиксации результатов. Транзакция считывает значения всех необходимых элементов и помещает из в локальные переменные. Любые обновления применяются только к локальной копии данных, но не к информации в основной БД.
2 Фаза проверки. Для транзакций, включающих только чтение элементов, проверка состоит в подтверждении того, что использованные транзакцией значения по-прежнему остаются текущими значениями соответствующих элементов. Если нарушений не отмечено, то транзакция завершает работу. Если найдены отличия в значениях, то транзакция отменяется и перезапускается. Если в рамках транзакции выполняются операции обновления данных, то проверка включает выполнение контроля согласованности БД при внесении изменений транзакции в основную БД, а также контроль упорядоченности. Если конфликты возможны, то транзакция отменяется и перезапускается.
3 Фаза записи. Эта фаза выполняется для транзакций, обновляющих данные. Она заключается в перенесении изменений локальных переменных в основную БД.
62.Параллельный доступ к иерархическим структурам: два типа иерархических структур, два вида политики параллельного доступа, простой протокол для иерархических структур, протокол блокирования поддеревьев.
Часто множества элементов, с которыми работают транзакции, можно рассматривать как иерархические структуры. Два основных типа иерархических структур:
1 Узлы В-деревьев.
2 Большинство элементов данных могут рассматриваться как составные части большего элемента. В связи с этим в БД можно выделить четыре уровня иерархии: а) БД в целом, б) отношение БД, в) блок, на который разбита база при хранении файла г) кортеж.
Существует два вида политики при обеспечении параллельного доступа к иерархическим структурам
1 При блокировании элемента не происходит блокирования ни каких других элементов. Эта политика присуща иерархическим структурам первого типа.
2 При блокировании элемента блокируются все его потомки. Характерна для структур второго типа.
Простой протокол для иерархических структур |
Автор: Administrator | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Будем рассматривать простую модель транзакций, учитывающую операторы Lock и Unlock.
При этом реализуется первый вид политики блокирования иерархических структур. Для таких транзакций используется следующий протокол. /*Протокол – ограничения на шаги транзакции */. 1 Никакой элемент не должен блокироваться раньше, чем будет заблокирован его родитель. Исключение составляет только корень дерева. 2 Ни один элемент не блокируется дважды одной и то же транзакцией. При этом транзакция, следующая этому протоколу, не обязана быть двухфазной. Рассмотрим пример.
При использовании политики первого вида и простого протокола возможны следующие действия. Заблокировать элемент А. Затем заблокировать элемент В, являющийся потомком А. Если описываемая ситуация характеризует вставку новой записи в В-дерево, то необходимо проверить есть ли в блоке В свободное место для нового элемента. Если такое В позволяет вставку без реструктуризации дерева, то возможно разблокировать элемент А. При этом появляется возможность блокировать А и потомков А, но не В. /*Преимущество политики */. Можно доказать, что если транзакции плана следуют простому протоколу для иерархической структуры, то план сериализуем. Предположим, что Ti и Tj – транзакции, блокирующие один и тот же элемент. /* Естественно в разное время. */. Обозначим черезFIRST(T) – первый элемент, который блокируется транзакцией Т. Если элементы First(Ti) и First(Tj) не зависимы, то есть ни один из них не является потомком другого, то протокол гарантирует, чтоTi и Tj не будут блокировать элемент совместно, а следовательно в графе не нужно строить соответствующей дуги. Рассмотрим ситуацию, когда first(Ti) – предок first(Tj). Если Ti блокируетfirst(Tj) прежде, чем это выполняет Tj, то строится дуга Ti ? Tj. Иначе строится дуга Tj ? Ti. Такой граф не будет иметь циклов. Каждая транзакция имеет границу из по нижним заблокированным узлам, а протокол гарантирует, что границы транзакций не пересекаются. Если граница Ti начинает пересекаться с границей Tj, то это происходит по элементам, которые блокируются обеими транзакциями, но это не приводит к конфликтам, так как такие элементы транзакция Ti всегда блокирует первой. Пример.
/*Обратите внимание на следование транзакций протоколу для иерархической структуры, Т1 – не двухфазная. Граф строим по изложенной выше методике, граф не имеет циклов, учитывая firstвсех транзакций. */ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Протокол блокирования поддеревьев |
|
Автор: Administrator | |||||||||
Рассмотрим второй вид политики блокирования иерархических структур.
В этом случае рассматриваемая структура имеет вид База данных-> отношения -> блоки -> Записи. Преимущество такой политики состоит в том, что вместо блокирования многих маленьких элементов данных (кортежей, например), можно заблокировать один большой (отношение, например). Это экономит время на блокирование и разблокирование. Проблема, с которой может столкнуться такая модель. Пусть Т1 блокирует элемент Е. Это приведет к блокированию элементов F иG. Если затем транзакции T2 потребуется блокировать элемент B. Это возможно, так как он не блокирован. Установка такой блокировки потребует блокирования элементов D, E, F, G. В результате появился конфликт. Поэтому в протокол блокирования поддеревьев вводится новое понятие “Предупреждение” (warning). Теперь, если транзакция устанавливает блокировку на элемент, то должны установить предупреждения на всех потомков узла. Установка предупреждения на элемент А, предотвращает блокирование этого элемента другими транзакциями, но позволяет им установить предупреждение на тот же элемент для установки блокировок на тех потомков А, на которые еще не было установлено ни блокировок, ни предупреждений. Матрица совместимости предупреждений и блокировок.
Протокол блокирования поддеревьев накладывает на транзакции следующие ограничения: 1 Начинаться транзакция должна с блокирования или установки предупреждения на корень дерева. 2 Не должно осуществляться блокирования элемента или установки предупреждения на элемент без установки предупреждения на всех предков элемента. 3 Не должно происходить снятия блокировки или предупреждения с элемента, если он имеет хотя бы одного потомка, на которого установлена блокировка или предупреждение. 4 Все транзакции должны следовать двухфазному протоколу в следующем прочтении: «Все блокировки и предупреждения транзакции должны предшествовать разблокированию» Пример плана, транзакции которого следуют протоколу блокирования поддеревьев.
Т1: (1) warn A; (4) warn B; (6) Lock D; (8) Unlock D; (10) Unlock B; (14) Unlock A T2: (2) warn A; (5) Lock C; (7) Unlock C; (9) Unlock A T3: (3) warn A; (11) Lock B; (12) warn C; (13) Lock F; (15) Unlock B; (16) Unlock B; (17) Unlock C; (18) Unlock A; |