
- •Независимость данных. Трехуровневая модель описания данных.
- •Основные функции субд. Архитектуры приложений, использующих субд.
- •Модель данных сущность-связь: сущности, атрибуты и множества сущностей.
- •Модель данных сущность-связь: связи. Использование сущностей и связей при проектировании бд.
- •Модель данных сущность-связь: наследование, агрегирование. Использование при проектировании бд.
- •Модель данных сущность-связь: ограничения целостности.
- •Модель данных сущность-связь: Диаграммные и предикатные представления.
- •Реляционная модель данных: отношения, таблицы, домены, атрибуты. Описание таблиц и представлений в языке sql.
- •Реляционная модель данных: алгебраические операции.
- •Реляционная модель данных: исчисления. Эквивалентность алгебры и исчислений.
- •Объектно-ориентированные базы данных: типы данных. Идентификация и изменяемость.
- •Объектно-ориентированные базы данных: алгебраические операции.
- •Отображение модели сущность-связь в реляционную.
- •Иерархическая и сетевая модели данных, отображения в другие модели.
- •Функциональные зависимости и аномалии вставки, обновления, удаления.
- •Нормализация: декомпозиция отношений. Нормальные формы.
- •Язык запросов sql: операции реляционной алгебры.
- •Первичные и вторичные индексы. Плотные и неплотные индексы.
- •Протокол установки замков для дерева.
- •Мультигранулярные замки.
- •Уровни изоляции в sql и оптимистические замки.
- •Многоверсионные протоколы управления транзакциями.
- •Оптимистические протоколы управления транзакциями.
- •Распределенные субд: фиксация транзакций.
- •Хранение и использование xml в базах данных.
- •Темпоральные расширения моделей данных.
Первичные и вторичные индексы. Плотные и неплотные индексы.
Гарсиа-Молина 584 - первичные индексы
Гарсиа-Молина 599 - вторичные индексы
Плотный индекс — каждой записи из файла отвечает определённый элемент файла индекса.
Неплотный (разреженный) индекс — файл индекса содержит указатели только на некоторые записи файла данных (к примеру, по одному элементу на блок).
Первичный индекс — определяет местоположение индексированных записей в файле данных, отсортированном по ключу поиска.
Вторичный индекс — индекс по альтернативному ключу. Не оказывает воздействия на физическое расположение записей; лишь указывает позиции записей в файле данных. Вследствие этого всегда д.б. плотным.
Структуры хранения, реализующие индексы.
Гарсиа-Молина 612. - B-деревья.
молина, стр. 624 - хэш-таблица
http://citforum.ru/programming/theory/sorting/sorting2.shtml#5_3_2 - битовые шкалы
упорядоченные файлы, хеширование.
Выполнение запросов: реализация операций реляционной алгебры.
Гарсиа-Молина 683 (Глава 15)
конспект стр. 37-38
Задача оптимизации. Компоненты и функции оптимизатора запросов.
конспект стр. 39
Гарсиа-Молина 753 (Глава 16)
Оптимизация запросов по стоимости и на основе правил.
конспект, стр. 40
Гарсиа-Молина 753 (Глава 16)
Выбор планов с учётом их стоимости — ГМ, 797
Определение и основные свойства транзакций.
Молина, стр. 393
Дейт, стр. 582
конспект, стр. 46
Аномалии конкурентного выполнения транзакций.
Database Management Systems, Raghu Ramakrishnan, Johannes Gehrke, p. 528-530;2
конспект, стр. 47
Истории, расписания и семантика Эрбрана.
Слайды: 4-consistency, стр. 6-9; transactions, стр. 28-34, консп 47
Эквивалентность расписаний по конечному и по видимому состоянию.
4-consistency, слайд 10, 11
transactions, слайд 35
Конфликты и эквивалентность расписаний по конфликтам.
Молина стр. 887
конспект, стр. 47-48
Сериализуемость по конфликтам и граф сериализуемости.
Конспект стр. 48 п. 4.2.2
Молина, стр. 888
Планировщик поддерживает граф конфликтов, в котором вершины и дуги добавляются динамически в зависимости от операций, которые получает на вход планировщик. При этом конфликтующими называются любые две операции над одним и тем же элементом данных, если хотя бы одна из них является операцией модификации. Другими словами, для конфликтующих операций существенен порядок их выполнения. Таким образом, планирование конфликтующих операций накладывает ограничение на порядок сериализации транзакций. Эти ограничения и выражает граф конфликтов. Теперь рассмотрим, как происходит планирование очередной операции pi(x) с помощью SGT-планировщика.
Если это первая операция транзакции ti, поступившая планировщику, то создается новый узел в графе сериализации.
В граф добавляются дуги вида (tj, ti) для каждой запланированной ранее операции qj(x) (i ≠ j), конфликтующей с pi(x). Теперь возможны два варианта:
Результирующий граф содержит циклы. В этом случае транзакция ti откатывается.
Полученный граф ацикличен. В этом случае действие добавляется к списку запланированных.
Функции Диспетчера транзакций. Типы диспетчеров.
Конспект стр. 49
Использование замков: двухфазный протокол блокирования.
Молина стр. 895- замки, 897- двухфазный протокол
конспект стр. 49-50
4-consistency, слайд 18
Корректность двухфазного протокола блокирования.
Молина стр. 898
transactions, слайд 60
4-consistency, слайд 21
Тупики: обнаружение и разрешение.
(из конспекта, стр. 51) 4.3.4. Тупики
Также возможно возникновение тупиков. Для борьбы с ними применяются различные методы, однако сперва их необходимо обнаружить. Для этой цели мы будем строить граф ожидания (вершины — транзакции, дуги проводим из ожидающей транзакции в ту, которая удерживает замок).Наличие тупика равносильно наличию контура в графе. Для разрешения тупика нам нужно выбрать жертву, прервать и откатить транзакцию, у которой «не сложилась судьба».
Стратегии бывают разные (например, случайный выбор), но фактически нельзя указать самую эффективную (здесь под эффективностью подразумевается выбор жертвы таким образом, чтобы минимизировать количество обрывов в расписании). В некоторых БД применяется такой метод разрешения тупиков—обрыв по тайм-ауту.
4-consistency, слайд 21
transactions, слайд 62-65