Базы данных. Вводный курс

Базы данных. Вводный курс

Предисловие

Введение
Устройства внешней памяти
Файловые системы
Структуры файлов
Логическая структура файловых систем и именование файлов

Авторизация доступа к файлам
Синхронизация многопользовательского доступа
Области разумного применения файлов
Потребности информационных систем


Структуры данных
Целостность данных
Языки запросов

Транзакции, журнализация и многопользовательский режим
СУБД как независимый системный компонент
Модель данных
Ранние модели данных
Модель данных инвертированных таблиц
Манипулирование данными

Ограничения целостности
Иерархическая модель данных
Иерархические структуры данных
Сетевая модель данных
Сетевые структуры данных
Неформальное введение в реляционную модель данных

Реляционные структуры данных
Манипулирование реляционными данными
Целостность в реляционной модели данных
Современные модели данных
Объектно-ориентированная модель данных
Типы и структуры данных объектной модели

Манипулирование данными в объектной модели
Ограничения целостности в объектной модели
Модель данных SQL
Типы и структуры данных SQL
Манипулирование данными в SQL

Ограничения целостности в модели SQL
Истинная реляционная модель
Типы и структуры данных истинной реляционной модели
Манипулирование данными в истинной реляционной модели
Ограничения целостности в истинной реляционной модели
Основные понятия реляционных баз данных

Тип данных
Домен
Заголовок отношения, кортеж, тело отношения, значение отношения, переменная отношения
Первичный ключ и интуитивная интерпретация реляционных понятий
Фундаментальные свойства отношений
Отсутствие кортежей-дубликатов, первичный и возможные ключи отношений
Отсутствие упорядоченности кортежей

Отсутствие упорядоченности атрибутов
Атомарность значений атрибутов, первая нормальная форма отношения
Реляционная модель данных
Общая характеристика
Целостность сущности и ссылок

Обзор реляционной алгебры Кодда
Общая интерпретация реляционных операций
Замкнутость реляционной алгебры и операция переименования
Особенности теоретико-множественных операций реляционной алгебры
Операции объединения, пересечения, взятия разности. Совместимость по объединению

Операция расширенного декартова произведения и совместимость отношений относительно этой операции
Специальные реляционные операции
Операция ограничения
Операция взятия проекции
Операция соединения отношений
Операция деления отношений

Базовые операции Алгебры A
Операция реляционного дополнения
Операция удаления атрибута
Операция переименования
Операция реляционной конъюнкции
Операция реляционной дизъюнкции
Полнота Алгебры A
Выводимость операции взятия разности

Интерпретация операции ограничения
Соединения общего вида
Реляционное деление
Избыточность Алгебры A
Реляционные аналоги штриха Шеффера и стрелки Пирса
Избыточность операции переименования

Исчисление кортежей
Правильно построенные формулы
Простые условия
Кванторы, свободные и связанные переменные
Целевые списки и выражения реляционного исчисления

Исчисление доменов
Условия членства
Выражения исчисления доменов
Функциональные зависимости
Общие определения
Замыкание множества функциональных зависимостей. Аксиомы Армстронга. Замыкание множества атрибутов

Минимальное покрытие множества функциональных зависимостей
Декомпозиция без потерь и функциональные зависимости
Корректные и некорректные декомпозиции отношений. Теорема Хита
Диаграммы функциональных зависимостей

Минимальные функциональные зависимости

Минимальные функциональные зависимости и вторая нормальная форма

Аномалии обновления, возникающие из-за наличия неминимальных функциональных зависимостей
Возможная декомпозиция
Вторая нормальная форма
Нетранзитивные функциональные зависимости и третья нормальная форма
Аномалии обновлений, возникающие из-за наличия транзитивных функциональных зависимостей
Третья нормальная форма
Независимые проекции отношений. Теорема Риссанена
Перекрывающиеся возможные ключи и нормальная форма Бойса-Кодда

Аномалии обновлений, связанные с наличием перекрывающихся возможных ключей
Нормальная форма Бойса-Кодда
Всегда ли следует стремиться к BCNF?
Многозначные зависимости и четвертая нормальная форма
Аномалии обновлений при наличии многозначных зависимостей и возможная декомпозиция
Многозначные зависимости. Теорема Фейджина. Четвертая нормальная форма

Зависимости проекции/соединения и пятая нормальная форма
N-декомпозируемые отношения
Зависимость проекции/соединения
Аномалии, вызываемые наличием зависимости проекции/соединения
Устранение аномалий обновления в 3-декомпозиции
Пятая нормальная форма

Ограниченность реляционной модели при проектировании баз данных
Семантические модели данных
Семантическая модель Entity-Relationship (Сущность-Связь)
Основные понятия ER-модели

Уникальные идентификаторы типов сущности
Нормальные формы ER-диаграмм
Первая нормальная форма ER-диаграммы
Вторая нормальная форма ER-диаграммы
Третья нормальная форма ER-диаграммы
Более сложные элементы ER-модели
Наследование типов сущности и типов связи

Взаимно исключающие связи
Получение реляционной схемы из ER-диаграммы
Базовые приемы
Представление в реляционной схеме супертипов и подтипов сущности
Представление в реляционной схеме взаимно исключающих связей

Основные понятия диаграмм классов UML
Классы, атрибуты, операции
Категории связей. Связь-зависимость
Связи-обобщения и механизм наследования классов в UML
Связи-ассоциации: роли, кратность, агрегация

Ограничения целостности и язык OCL
Общая характеристика языка OCL
Инвариант класса
Операции над значениями предопределенных типов данных
Операции над объектами
Операции над множествами, мультимножествами и последовательностями
Операция select
Операция collect
Операции exists, forAll, size

Операции union, intersect, symmetricDifference
Примеры инвариантов
Плюсы и минусы использования языка OCL при проектировании реляционных баз данных
Получение схемы реляционной базы данных из диаграммы классов UML
Основные понятия, цели и общая организация System R

Используемая терминология
Цели System R и их связь с общей организацией системы
Организация внешней памяти в базах данных System R
Страницы данных и идентификаторы кортежей

Индексы и кластеризация таблиц
Интерфейс RSS
Операции сканирования таблиц и списков
Операции создания и уничтожения постоянных и временных объектов базы данных

Операции модификации таблиц и списков
Операция добавления поля к существующей таблице
Операции управления прохождением транзакций
Операция явной синхронизации
Общие принципы организации данных во внешней памяти в SQL-ориентированных СУБД
Хранение таблиц
Индексы

B+-деревья
Хэширование
Журнальная информация
Служебная информация
Общее понятие транзакции и основные характеристики транзакций

Атомарность транзакций
Транзакции и целостность баз данных
Изолированность транзакций
Отсутствие потерянных изменений (первый уровень изолированности)
Отсутствие чтения грязных данных (второй уровень изолированности)
Отсутствие неповторяющихся чтений (третий уровень изоляции)
Проблема фантомов
Сериализация транзакций

Методы сериализации транзакций
Синхронизационные блокировки
Гранулированные синхронизационные блокировки
Предикатные синхронизационные блокировки

Синхронизационные тупики, их распознавание и разрушение
Обнаружение тупиковых ситуаций
Разрушение тупиков
Метод временных меток
Методы сериализации транзакций на основе поддержки версий объектов базы данных

Версионный вариант алгоритма временных меток

Версионный вариант алгоритма временных меток

Версионный вариант двухфазного протокола синхронизационных блокировок
Версионно-блокировочный протокол сериализации транзакций для поддержки только читающих транзакций
Буферизация блоков базы данных в основной памяти и ее связь с журнализацией
Управление буферным пулом базы данных

Физическая синхронизация
Протокол упреждающей записи в журнал и его связь с буферизацией
Индивидуальный откат транзакции
Восстановление после мягкого сбоя
Схема восстановления от точки физической согласованности
Восстановление физической согласованности базы данных
Теневой механизм

Журнализация постраничных изменений
Восстановление базы данных после жесткого сбоя
Краткая история языка SQL

Структура языка SQL
Типы данных SQL
Tочные числовые типы
Истинно целые типы

Точные типы, допускающие наличие дробной части
Приближенные числовые типы
Типы символьных строк
Типы битовых строк
Типы даты и времени
Тип даты
Типы времени
Типы временной метки
Типы времени и временной метки с временной зоной

Типы временных интервалов
Булевский тип
Типы коллекций
Типы массивов
Типы мультимножеств
Анонимные строчные типы
Типы, определяемые пользователем
Ссылочные типы
Средства определения, изменения определения и отмены определения доменов

Определение домена
Примеры определений доменов
Изменение определения домена
Примеры изменения определения домена
Отмена определения домена
Неявные и явные преобразования типа или домена
Неявные преобразования типов в SQL
Явные преобразования типов или доменов и оператор CAST

Средства определения, изменения и ликвидации базовых таблиц
Определение базовой таблицы
Определение столбца
Значения столбца по умолчанию
Ограничения целостности столбца
Определение табличного ограничения
Табличное ограничение первичного или возможного ключа

Проверочное табличное ограничение
Табличное ограничение внешнего ключа
Разновидности способов сопоставления значений внешнего и возможного ключей
Поддержка ссылочной целостности и ссылочные действия
Примеры определений базовых таблиц

Изменение определения базовой таблицы
Добавление, изменение или удаление определения столбца
Примеры изменения определения столбца
Изменение набора табличных ограничений
Примеры изменения набора табличных ограничений
Отмена определения (уничтожение) базовой таблицы
Средства определения и отмены общих ограничений целостности
Определение общих ограничений целостности

Отмена определения общего ограничения целостности
Немедленная и откладываемая проверка ограничений
Скалярные выражения
Общие синтаксические правила построения скалярных выражений
Численные выражения

Выражения, значениями которых являются символьные или битовые строки
Выражения даты-времени
Булевские выражения
Выражения с переключателем
Общая структура оператора выборки в языке SQL
Семантика оператора выборки

Ссылки на таблицы раздела FROM
Табличное выражение, спецификация запроса и выражение запросов
Раздел WITH выражения запросов
Конструкторы значения строки и таблицы
Ссылки на базовые, представляемые и порождаемые таблицы
Представляемые таблицы, или представления (VIEW)

Логические выражения раздела WHERE
Предикат сравнения
Примеры запросов с использованием предиката сравнения
Предикат between
Примеры запросов с использованием предиката between

Предикат is null
Примеры запросов с использованием предиката null
Предикат in
Примеры запросов с использованием предиката in
Предикат like
Примеры запросов с использованием предиката like
Предикат similar
Примеры запросов с использованием предиката similar

Предикат exists
Примеры запросов с использованием предиката exists
Предикат unique
Примеры запросов с использованием предиката unique
Предикат overlaps
Предикат сравнения с квантором

Примеры запросов с использованием предиката match

Предикат match
Примеры запросов с использованием предиката match
Предикат is distinct
Внешние соединения
Агрегатные функции, группировка и условия раздела HAVING

Семантика агрегатных функций
Результаты запросов и агрегатные функции
Логические выражения раздела HAVING
Предикаты сравнения
Предикат null

Предикаты сравнения с квантором
Предикат distinct
Ссылки на порождаемые таблицы в разделе FROM
Еще один способ формулировки запросов
Случаи, в которых без порождаемых таблиц обойтись невозможно
Более сложные конструкции оператора выборки

Соединенные таблицы
Формальные определения
Примеры соединений разного вида
Примеры запросов с использованием соединенных таблиц
Порождаемые таблицы с горизонтальной связью (lateral_derived_table)

Возможности формулирования аналитических запросов
Раздел GROUP BY ROLLUP
Агрегатная функция GROUPING
Раздел GROUP BY CUBE

Рекурсивные запросы
Определения, относящиеся к рекурсии
Рекурсивные запросы с разделом WITH
Раздел SEARCH
Раздел CYRCLE
Рекурсивные представления

Базовые средства манипулирования данными
Оператор INSERT для вставки строк в существующие таблицы
Вставка всех строк указанной таблицы
Вставка явно заданного набора строк
Вставка строк результата запроса
Оператор UPDATE для модификации существующих строк в существующих таблицах
Оператор DELETE для удаления строк в существующих таблицах
Представления, над которыми возможны операции обновления

Представления, допускающие применение операций обновления, в стандарте SQL/92
Критерии применимости операций обновления
Правила функциональных зависимостей
Раздел WITH CHECK OPTION определения представления

Режимы проверки CASCADED и LOCAL
Исторический очерк
Операции обновления баз данных и механизм триггеров
Понятие триггера в SQL:1999
Синтаксис определения триггеров и типы триггеров
Триггеры BEFORE и AFTER

Триггеры INSERT, UPDATE и DELETE
Триггеры ROW и STATEMENT
Раздел WHEN
Тело триггера
Выполнение триггеров
Возможности использования старых и новых значений
Обработка нескольких триггеров, связанных с одной предметной таблицей

Триггеры и ссылочные действия
Поддержка авторизации доступа к данным в языке SQL
Пользователи и роли
Применение идентификаторов пользователей и имен ролей
Создание и ликвидация ролей
Передача привилегий и ролей

Передача привилегий
Привилегии и представления
Передача ролей
Изменение текущих идентификаторов пользователей и имен ролей
Оператор SET SESSION AUTHORIZATION
Оператор SET ROLE
Аннулирование привилегий и ролей
Аннулирование привилегий

Аннулирование ролей
Управление транзакциями в SQL
ACID-транзакция
Порождение транзакций в SQL:1999
Установка характеристик транзакции
Установка характеристик транзакции - 2
Явная инициация транзакции
Уровни изоляции SQL-транзакции
Феномен «грязного» чтения (dirty read)

Феномен неповторяемого чтения (unrepeatable read)
Феномен фантомов
Завершение транзакций
Транзакции и ограничения целостности
Точки сохранения
Подключения и сессии
Установление соединений

Операторы SQL для управления соединениями
Оператор CONNECT
Оператор SET CONNECTION
Оператор DISCONNECT
Истоки и краткая история объектно-реляционных баз данных
Первые ОРСУБД

Внедрение объектных расширений в основные РСУБД
Объектная модель SQL
Цели лекции
Определяемые пользователями типы
Индивидуальные типы

Определение структурных типов

Определение структурных типов
Определение атрибута структурного UDT
Раздел спецификации ссылочного типа
Разделы спецификации функций явного преобразования типов
Раздел объявления сигнатур методов

Типизированные таблицы
Определение типизированной таблицы
Подтаблицы и супертаблицы
Определение элементов типизированной таблицы
Ссылочные значения и REF-типы
Механизмы генерации ссылочных значений
Преобразование задаваемых пользователем ссылочных значений к ссылочному типу
Спецификация ссылочного типа при объявлении столбцов и атрибутов
Поддержка согласованности ссылок
Выборка данных из типизированных таблиц

Типизированные представления
Книги на русском языке:
Классические статьи в русских переводах.
Неклассические статьи и другие материалы, доступные в Internet

Лучшие (в основном, не переведенные
Статьи про System R, доступные в Internet

Классика баз данных перейти
Unigraphics. Справочник по черчению перейти