- •Основные функции субд:
- •По модели данных:
- •Иерархические (Иерархической базой данных является файловая система, состоящая из корневого каталога, в котором имеется иерархия подкаталогов и файлов).
- •Сетевые (Сетевые базы данных подобны иерархическим, за исключением того, что в них имеются указатели в обоих направлениях, которые соединяют родственную информацию).
- •По степени распределённости
- •Локальные субд (все части локальной субд размещаются на одном компьютере)
- •Распределённые субд (части субд могут размещаться на двух и более компьютерах).
- •Различные представления о данных в базах данных:
- •Ограничения не-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-технологии.
65.Методы восстановления бд: восстановление с резервной копии, метод «redo», метод теневых страниц.
Первый метод используется в случае, если БД были нанесены серьезные повреждения, например, разрушен физический носитель.
В этом случае БД восстанавливается с резервной копии. После этого в ней выполняются все транзакции, присутствующие в журнале. Такой подход предусматривает, что журнал должен остаться не поврежденным, то есть находиться на другом физическом носителе. /*физическое размещение резервных копий и журналов транзакций производиться на этапе физического проектирования БД. */
Второй метод применяется в случае, если БДоказалась в несогласованном состоянии в результате сбоя. /*То есть результаты выполнения некоторых транзакций записались на диск частично */
Протокол, который обеспечивает восстановление после сбоя на основе журнала, называется «redo», так как осуществляетперезапуск некоторых транзакций. Этот протокол является расширением двухфазного протокола. Если транзакция следует этому протоколу, то после точки завершения она должна выполнить следующие действия:
1 Для каждого элемента, значение которого транзакция записывает, в журнал записываются соответствующие строки. 2 Для шага commit записывается необходимая строка в журнал. 3 Журнал записывается на диск. Только после этого транзакция считается завершенной. /*Запись на диск, так как журнал или отельный его блок находится в оперативной памяти */. 4 Для каждого элемента, который был изменен транзакцией, осуществляется запись в БД.
Пример транзакции, работающей по протоколу «redo».
1 |
|
(T, begin) |
2 |
lock A |
|
3 |
lock B |
|
4 |
|
(T, A, v) |
5 |
|
(T, B, v) |
6 |
|
(T, commit) |
7 |
write A |
|
8 |
write B |
|
9 |
Unlock A |
|
10 |
Unlock B |
|
/*Пояснить, что write – фактически запись на диск. Что после шага 6 транзакция считается завершенной. */
Если транзакция следует этому протоколу, то при системном сбое используется алгоритм восстановления, который приводит систему в корректное (непротиворечивое) состояние. /*Пример. Сбойная транзакция переводила деньги с одного счета на другой. Информация об удалении суммы перевода с одного счета зафиксировалась в БД, а о появлении тай же суммы на другом счете – еще нет. */
Прежде всего, этот алгоритм проверяет оставшиеся транзакции. Если транзакция успешно завершена, но ее блокировки не были сняты до сбоя, то это необходимо выполнить, чтобы получить возможность использовать блокированные элементы. /*Транзакция дошла до write, но не дошла до unlock */. Если транзакция не завершилась, то ее блокировки так же нужно снять, так как перезапуск транзакции приведет к требованию установить те же блокировки.
Затем алгоритм просматривает журнал и находит все транзакции, для которых существует строка (T, commit). Для каждой найденной транзакции вновь читается журнал, и для каждой строки, соответствующей записи элемента, выполняется запись в БД. Действия транзакций, не имеющих в журнале записи об успешном завершении или имеющих запись о снятии (T, abort) не выполняются алгоритмом восстановления. Если транзакция имела в журнале запись о начале, но не имела записи об окончании, алгоритм добавляет ее в список сбойных транзакций.
Если в рассмотренной ранее транзакции сбой произошел до шага 6, то алгоритм пропустит в журнале все записи об изменении элементов этой транзакцией, то есть действия 7 и 8 не будут выполнены. Если сбой произошел после шага 6, то данные могли записаться или не записаться на диск. Поэтому алгоритм проверит все записи в журнале, относящиеся к этой транзакции и восстановит все ее изменения. В любом случае алгоритм снимет все блокировки этой транзакции, то есть шаги 9, 10 выполняться в любом случае.
Чтение журнала выполняется до последней контрольной точки.
Этот метод является альтернативой методу ведения журнала транзакций. .
Он предусматривает организацию на время выполнения транзакции двух наборов страниц – текущего и теневого. Когда транзакция начинает работу, оба набора идентичны. Теневые страницы не изменяются в ходе транзакций и служат для восстановления при сбое в системе. В ходе выполнения транзакции текущий набор страниц используется для записи в БД. После завершения транзакции текущий набор становиться теневым. При восстановлении не выполняются никакие транзакции, а просто происходит замещение страниц текущих страниц теневыми.