Тематический план
Введение. Принципы построения распределенных баз данных. Требования к распределенным базам данных. Характеристики распределенных баз данных.
Краткий обзор курса. Цель курса. Задачи курса. Место курса в общем образовании бакалавра. Связь с другими дисциплинами. Этапы проектирования БД. Термин "распределенная база данных". Общая схема распределенной базы данных. Требования к РБД. Принципы построения РБД. Критерии построения РБД. Типы распределенных архитектур БД. 12 правил К.Дж. Дейт построения РБД. Проблемы создания распределенной базы данных. Система управления распределенной базой данных. Общие понятия о фрагментации и репликации.Реляционные, постреляционные, NoSQL, NewSQL базы данных. Характеристика, обзор современных СУБД, сравнительный анализ современных СУБД
История развития БД. Реляционные БД, их характеристики и принципы построения. NoSql базы данных, история появления, причины появления. Виды NoSql: Strozzi NoSQL, BigTable, Amazon DynamoDB, Cassandra, HBase, Neo4J, Scalaris и другие. Их особенности. Типы данных. Структуры для хранения. Достоинства и недостатки. NewSQL базы данных, история появления, причины появления. Виды NewSQL: MySQL Cluster, Postgres-XC, Oracle RAC, VoltDB, MemSQL, NuoDB, FoundationDB, и другие. Их особенности. Типы данных. Структуры для хранения. Достоинства и недостатки. ACID свойства. Уровни изолированности.Многомерное представление данных. Общая схема организации хранилища данных. Характеристики, типы и основные отличия технологий OLAP и OLTP. Схемы звезда и снежинка. Агрегирование.
Лекция посвящена теме хранилища данных и OLAP. В теоретической части рассказывается о том, что такое хранилища данных, приводятся их ос-новные характеристики. Рассказывается о преимуществах, основных элементах и операциях OLAP, о типах OLAP (в частности: MOLAP (Multidimensional OLAP), ROLAP (Relational OLAP), HOLAP (Hybrid OLAP)), их преимуществах и недостатках, о моделировании многомерных кубов на реляционной модели данных. Схемы звезда и снежинка. Преимущества и недостатки этих схем.Денормализация и нормализация данных. Репликация и фрагментация в распределенных базах данных.
Два основных правила нормализации. Назначение денормализации. Три основных подхода к денормализации: дублирование данных, предварительная подготовка данных, вертикальные таблицы, Масштабирование баз данных. Стратегии масштабирования. Репликация данных. Виды репликации: Master-Slave и Master-Master. Задержка репликации. Выход из строя. Резервирование. Асинхронность репликации. Синхронный режим репликации. "Ручная" репликация. Шардинг. Вертикальный шардинг. Подготовка шардинга. JOIN'ы. Отказоустойчивость. Горизонтальный шардинг. Распределение данных. Разделение на n серверов. Словарь. Ограничения. Проблема свежих записей. Организация поиска и фильтрации. Перебалансировка. Партиционирование.Внутренне устройство индексов и их применение в распределенных базах данных .
Структуры хранения в базе данных. Тип данных, мно́жество, абстра́ктный тип да́нных, список, стек, очередь, ассоциативный массив, очередь с приоритетом. Структура данных. Структуры хранения в базе данных. Формы хранения данных: неупорядоченное хранение, упорядоченное хранение, структурированные файлы, кучи, хеш-корзины, B+-деревья. Индексы в базах данных. Две базовые функции индексов. Два типа индекса: кластерный (clustered) и некластерный (nonclustered). Доступ к записям при наличии или отсутствии индексов. Сканирование таблицы. Доступ к данным с использованием кластерного индекса. Доступ к данным с использованием не кластерного индекса. Статистика и выбор индексов. Распределение статистики. Обслуживание статистики. Создание индексов и статистики. Фрагментация и сопровождение индексов.Оптимизация запросов и их реализация в распределенных базах данных
Обработка и оптимизация запросов. Декомпозиция запроса. Локализация данных. Правила фрагментации через реляционные операции: селекции для горизонтальной фрагментации и проекции для вертикальной. Модель стоимости. Стратегия поиска. Пространство поиска. Операция полусоединения отношений R и S. Путь обработки запроса в реляционной СУБД. Логическая оптимизация запросов. Классы логических преобразований. Семантическая оптимизация запросов. Выбор и оценка альтернативных планов выполнения запросов. Оптимизаторы с гибкой структурой.Управление транзакциями в распределенных базах данных. Управление доступом в распределенных базах данных .
Архитектуры серверов баз данных. OLTP-системы - системы оперативной обработки транзакций. Их характеристика, свойствва, достоинства и недостатки. OLAP-системы. Расширяемость системы БД. Свойство многопроцессорности систем. Многопроцессорная обработка с помощью процессов типа "thread". Поддержка параллелизма. Cмешанная загрузка СУБД (OLCP). Эффективное управление ресурсами. Постоянная доступность данных. Оперативное администрирование в режиме OnLine. Функциональная насыщенность СУБД. Решения аппаратной избыточности.Параллельные системы баз данных. Заключение.
Цели и параметры параллелизма: ускорение и расширяемость. Линейное ускорение. Линейная расширяемость. Три архитектурных решения расширяемых многопроцессорных систем. Фрагментирование по диапазоном, круговое фрагментирование и фрагментирование с хешированием. Параллелизм внутри реляционных операторов. Синхронный конвейер. Итераторная модель. Скобочный шаблон. Фрагментный параллелизм. Обработка запроса в параллельной СУБД. Формы параллелизма. Межтранзакционный параллелизм. Внутритранзакционный параллелизм. Внутризапросный (внутриоператорный) параллелизм. Межоперационный параллелизм. Вертикальный (конвейерный) параллелизм. Внутриоперационный параллелизм. Требования к параллельной системе баз данных. Подведение итогов. Обзор специальных глав теории распределенных баз данных.