- •Основные функции субд:
- •По модели данных:
- •Иерархические (Иерархической базой данных является файловая система, состоящая из корневого каталога, в котором имеется иерархия подкаталогов и файлов).
- •Сетевые (Сетевые базы данных подобны иерархическим, за исключением того, что в них имеются указатели в обоих направлениях, которые соединяют родственную информацию).
- •По степени распределённости
- •Локальные субд (все части локальной субд размещаются на одном компьютере)
- •Распределённые субд (части субд могут размещаться на двух и более компьютерах).
- •Различные представления о данных в базах данных:
- •Ограничения не-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-технологии.
63.Уровни изоляции параллельных транзакций.
Если транзакция будет работать параллельно с другими, то для нее можно установить уровень изоляции. Уровень изоляции – это степень влияния изменений транзакции на параллельные транзакции.
Существуют следующие уровни изоляции.
1 Read uncommitted. Этот уровень позволяет читать изменения, внесенные незаконченными транзакциями, то есть грязные данные. При таком подходе возможны аномалии незавершенных зависимостей и противоречивого анализа. Кроме того, возможно появление фантомных строк, то есть кортежей, которые были внесены транзакцией 1, затем считаны транзакцией 2, а затем отменены вместе с транзакцией 1, но не перечитаны транзакцией 2.
2 Read committed – чтение изменений только завершенных транзакций, следовательно отсутствуют все проблемы, связанные с чтением грязных данных.
3 RepeatableRead. При таком уровне изоляции данные, прочитанные транзакцией один раз, никогда не изменяются, даже если фактически они были изменены другими завершенными транзакциями. Такой уровень имеет смысл использовать для транзакций только читающих данные, иначе на основе чтения уже удаленных данных может произойти попытка модификации несуществующей информации.
64.Восстановление бд: возможные причины отказов, механизм резервного копирования, журнал транзакций, создание контрольных точек.
Восстановление БД – это процесс возвращения БД в корректное состояние, утраченное в результате сбоя или отказа системы.
Причины отказов:
1 Аварийное прекращение работы системы, вызванное ошибкой оборудования или программного обеспечения, приведшей к разрушению оперативной памяти.
2 Отказ носителей информации.
3 Ошибки прикладных программ – например, логические ошибки в программах, получающих доступ к БД, послужившие причиной сбоев при выполнении некоторых транзакций.
4 Стихийные бедствия.
5 Непреднамеренное или преднамеренное разрушение данных пользователями системы или при внешней атаке.
СУБД должна поддерживать атомарность и продолжительность транзакций. При доступе к данным в рамках транзакции в оперативную память считываются блоки (страницы). При модификации данных изменения производятся в этих блоках в оперативной памяти. После внесения всех необходимых изменений блоки записываются на диск.
Если отказ системы произошел между записью изменений в блоки, размещенные в памяти, и выгрузкой этих блоков на диск, то менеджер восстановления должен уточнить состояние транзакций, выполнявшихся на момент отказа. Если транзакция уже выдала команду завершения, то менеджер должен ее повторно выполнить (redo).
Типичная СУБД должна иметь следующие функции восстановления:
*Типичная – не значит любая, могут быть СУБД без этих функций или реализовывать их не в полном объеме. */
1 Механизм резервного копирования (backup,dump). Этот механизм позволяет создавать резервные копии БД и ее журнала без необходимости останавливать систему. /*Если есть возможность остановить систему или нет нужного механизма, то можно просто копировать необходимые файлы. */ Резервная копия используется в случае повреждения физического носителя. В этом случае БД восстанавливается (restore) с резервной копии в том состоянии, в котором находилась на момент создания копии, то есть все изменения, произошедшие после, будут потеряны. Резервное копирование может выполняться для БД в целом или в инкрементном режиме. В последнем случае в копию помещаются изменения, произошедшие в БД со времени последнего резервного копирования. Существует возможность создавать резервные копии не целой БД, а отдельных таблиц.
2 Журнал (log). Журнал – отдельный файл, который содержит информацию о ходе выполнения транзакций в БД. Для каждой операции, выполненной в БД , журнал может содержать следующую информацию:
а) идентификатор транзакции;
б) тип записи: начало транзакции, операция вставки, удаления, модификации, отмена транзакции или ее фиксация;
в) идентификатор элемента данных, вовлеченного в операцию;
г) копию элемента данных до начала операции
д) копию элемента данных после окончания операции
е) служебную информацию, например, указатели на следующую и предыдущую операции этой транзакции.
3 Создание контрольных точек (checkpoint). Помещаемая в журнал информация предназначена для использования в процессе восстановления системы после отказа. Одно из основных затруднений в этой схеме состоит в том, что, когда происходит отказ, может отсутствовать какая-либо информация о том, насколько далеко назад следует откатиться в файле журнала, что бы начать повторное выполнение завершенных транзакций. Для ограничения повторного выполнения транзакций используются контрольные точки.
Контрольная точка – это запись в журнале транзакций, означающая момент синхронизации между журналом и БД, то есть это момент, когда все блоки БД из оперативной памяти записываются на диск.
Журналы БД имеют тенденцию к быстрому увеличению размеров, поэтому возникает необходимость их усечения. С точки зрения возможности восстановления, усечение может быть произведено до последней контрольной точки. Однако, журналы могут использоваться не только для целей восстановления, но например, для отслеживания обращений к БД и изменения информации, их авторизации. В этом случае усечение журнала до создания его резервной копии приводит к потере информации.