- •Основные функции субд:
- •По модели данных:
- •Иерархические (Иерархической базой данных является файловая система, состоящая из корневого каталога, в котором имеется иерархия подкаталогов и файлов).
- •Сетевые (Сетевые базы данных подобны иерархическим, за исключением того, что в них имеются указатели в обоих направлениях, которые соединяют родственную информацию).
- •По степени распределённости
- •Локальные субд (все части локальной субд размещаются на одном компьютере)
- •Распределённые субд (части субд могут размещаться на двух и более компьютерах).
- •Различные представления о данных в базах данных:
- •Ограничения не-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-технологии.
23.Организация файла бд в виде кучи. Эффективность таких файлов.
База данных (БД) – это совместно используемый набор логически связанных данных и описание этих данных, предназначенное для удовлетворения информационных потребностей организации. Можно сказать, что база хранится на диске как набор записей различного формата, т.е. в виде файлов. В данном случае под файлом понимают набор записей одинакового формата, т.е. файл аналогичен отношению. Для наиболее быстрой обработки данных отношение при хранении разбивается на фрагменты. Такие фрагменты наз-ся блоки или страницы. Блоки м.б. по-разному организованы внутри файла, напр., м.б. файлы, организованные в виде кучи, хешированные и последовательные файлы.
Организация файла БД в виде кучи это наиболее простой и самый неэф-ный способ организации файла БД. При таком подходе записи размещаются в блоках без какого-либо порядка, т.е. по мере поступления. Блоки файла также не имеют порядка.
|
|
|
|
Поиск в таких файлах осущ-ся путем перебора всех записей из всех блоков файла, т.е. эф-ть поиска в отношении r равна Br, где Br – число блоков в отношении r.
Вставка нового элемента в файл в виде кучи осущ-ся в первое свободное место в последнем блоке, указатель на который можно хранить в нулевом блоке. Если его нет (свободного места), то создается новый блок. Если необходима уникальность, то необходимо просмотреть весь файл.
Модификация эл-та осущ-ся в 3 этапа: ищем данный эл-т в файле; изменяем его; перезаписываем блок. Удаление эл-та осущ-ся в 2 этапа: поиск удаляемого элемента; помечаем на удаление. Часто для последующего использования освободившегося пространства, последняя запись последнего блока перемещается на место удаленной записи. Это замедляет процесс удаления, но ускоряет другие операции.
Т.о. время при выполнении операции затрачивается на поиск записей, т.е. для повышения эффективности необходимо ускорить именно поиск. Это может быть достигнуто за счет другой организации файла
24.Хешированные файлы: бакет, каталог бакетов, дополнительный каталог бакетов, выбор хеш-функции. Операции над хешированными файлами.
База данных (БД) – это совместно используемый набор логически связанных данных и описание этих данных, предназначенное для удовлетворения информационных потребностей организации. Можно сказать, что база хранится на диске как набор записей различного формата, т.е. в виде файлов. В данном случае под файлом понимают набор записей одинакового формата, т.е. файл аналогичен отношению. Для наиболее быстрой обработки данных отношение при хранении разбивается на фрагменты. Такие фрагменты наз-ся блоки или страницы. Блоки м.б. по-разному организованы внутри файла, напр., м.б. файлы, организованные в виде кучи, хешированные и последовательные файлы.
Основная идея хешированных файлов состоит в том, что файл разбивается на бакеты (участки). Каждая запись файла размещается в соответствующем бакете в зависимости от значения ключа записи. Ключ в данном случае не обязан быть уникальным. Для каждого файла, организованного таким способом, выбирается hash-функция h(v). Эта ф-ция в качестве параметра получает ключ записи. Выходом такой ф-ции явл-ся целое число в диапазоне от 0 до B-1, где B – желаемое число бакетов. Внутри бакета записи организованы также как в файле-куче, т.е. нет никакой упорядоченности.
В хешированных файлах нулевой блок содержит так называемый каталог бакетов. Каталог бакетов предст-ет собой массив указателей, индексированный от 0 до В-1.
Основная проблема построения ХФ это построение хеш-функции. Главное требование состоит в том, что хеш-функция должна принимать все значения с равной вероятностью. Работа простейшей хеш-функции состоит из двух шагов:1 -конвертирование ключа к целому типу; 2 - получение остатка от деления результата первого шага на число бакетов. Наиболее проста hash-ф-ция h(v)=v mod B
Поиск в таких файлах организуется след. образом. На основе ключа искомой записи рассчитывается hash-ф-ция. Т.о. получаем индекс эл-та в массиве (в каталоге бакетов) и находим 1ый блок необходимого бакета. Далее поиск производится внутри бакета как в файле, организованном в виде кучи, т.е. путем перебора всех записей из всех блоков бакета. Другие бакеты не просматриваются. Т.о. поиск в хешированных файлах в идеальном случае (т.е. количество записей в бакетах равномерно распределено) в В раз быстрее, чем в файлах, организованных в виде кучи.
Вставка записи. Для этого также вычисляем h(v) и находим нужный бакет. Пустое место для вставки записи будет иметь последний блок бакета, поэтому просматриваем все блоки бакета, пока не найдем блок с пустым указателем. Ситуации, когда не надо смотреть весь бакет:
1. если нам необходимо обеспечить уникальность записи, то перед вставкой мы просмотрели весь бакет и памяти уже находится последний блок.
2. Если нам не важна уникальность, то каталог бакетов можно усилить дополнительным массивом содержащим указатели на последние блоки бакетов.
После того, как необходимый блок найден, новая запись записывается в него, и блок записывается на диск. Если блок уже заполнен, то выделяется новый блок и в него заносим новую запись. Если заголовок бакета уже содержит пустой указатель, то выделяем новый блок и указатель на него помещаем в заголовок бакета. Перезаписываем новый блок и каталог бакетов.
Удаление. Производится поиск записи, а само удаление производится как в файле организованном в виде кучи.
Модификация. Если модификация не ключевого поля, то производится операция поиска, а затем выполняется 2 операции: чтение и запись. Если нужно ключевое поле, то после поиска выполняется операции удаления и вставки.