Основы современных баз данных

       

Основы современных баз данных

Лекция 1. Базы данных и файловые системы
Файловые системы
Структуры файлов
Именование файлов
Защита файлов
Режим многопользовательского доступа
Области применения файлов

Потребности информационных систем
Лекция 2. Функции СУБД. Типовая организация СУБД. Примеры
Типовая организация современной СУБД
Пример: System R
Лекция 3. Ранние подходы к организации
Основные особенности систем, основанных на инвертированных списках

Структуры данных
Манипулирование данными
Ограничения целостности
Иерархические системы
Иерархические структуры данных
Манипулирование данными
Ограничения целостности
Сетевые системы
Сетевые структуры данных
Манипулирование данными

Ограничения целостности
Достоинства и недостатки
Теоретические основы
Лекция 4. Общие понятия реляционного подхода к организации БД. Основные концепции и термины
Базовые понятия реляционных баз данных
Тип данных
Домен
Схема отношения, схема базы данных
Кортеж, отношение
Фундаментальные свойства отношений

Отсутствие кортежей-дубликатов
Отсутствие упорядоченности кортежей
Отсутствие упорядоченности атрибутов
Атомарность значений атрибутов
Реляционная модель данных
Общая характеристика
Целостность сущности и ссылок
Лекция 5. Базисные средства манипулирования реляционными данными

Реляционная алгебра
Общая интерпретация реляционных операций
Замкнутость реляционной алгебры и операция переименования
Особенности теоретико-множественных операций реляционной алгебры
Специальные реляционные операции
Реляционное исчисление
Кортежные переменные и правильно построенные формулы

Целевые списки и выражения реляционного исчисления
Реляционное исчисление доменов
Лекция 6. Проектирование реляционных БД
Проектирование реляционных баз данных с использованием нормализации
Вторая нормальная форма
Третья нормальная форма
Нормальная форма Бойса-Кодда
Четвертая нормальная форма

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

Лекция 7. System R: общая организация системы, основы языка SQL
Используемая терминология
Основные цели System R и их связь с архитектурой системы
Организация внешней памяти в базах данных System R

Интерфейс RSS
Синхронизация в System R
Журнализация и восстановление в System R

Журнализация и восстановление в System R - 8
История СУБД Ingres
Ingres как UNIX-ориентированная СУБД. Динамическая структура системы: набор процессов
Структуры данных, методы доступа, интерфейсы доступа к данным
Общая характеристика языка QUEL. Язык программирования EQUEL
Общий подход к организации представлений, ограничениям целостности и контролю доступа
Лекция 9. Cтруктуры внешней памяти, методы организации индексов

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

Лекция 10. Управление транзакциями, сериализация транзакций
Транзакции и целостность баз данных
Изолированность пользователей
Сериализация транзакций
Лекция 11. Методы сериализации транзакций
Синхронизационные захваты

Гранулированные синхронизационные захваты
Предикатные синхронизационные захваты
Тупики, распознавание и разрушение
Метод временных меток
Лекция 12. Журнализация изменений БД
Журнализация и буферизация

Индивидуальный откат транзакции

Индивидуальный откат транзакции
Восстановление после мягкого сбоя

Физическая согласованность базы данных
Восстановление после жесткого сбоя
SEQUEL/SQL СУБД System R
Запросы и операторы манипулирования данными
Операторы определения и манипулирования схемой БД
Определения ограничений целостности и триггеров
Представления базы данных

Определение управляющих структур
Авторизация доступа к отношениям и их полям
Точки сохранения и откаты транзакции
Встроенный SQL
Динамический SQL
Язык SQL в коммерческих реализациях
Стандартизация SQL
Лекция 14. Стандартный язык баз данных SQL
Типы данных

Основные функции СУБД
Непосредственное управление данными во внешней памяти
Управление буферами оперативной памяти
Управление транзакциями
Журнализация
Поддержка языков БД
Средства определения схемы

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

Оператор выборки
Подзапрос
Табличное выражение
Раздел FROM
Раздел WHERE
Раздел GROUP BY
Раздел HAVING

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

Операторы, связанные с курсором
Одиночные операторы манипулирования данными
Динамический SQL в Oracle V.6
Оператор подготовки
Оператор получения описания подготовленного оператора
Оператор выполнения подготовленного оператора
Работа с динамическими операторами SQL через курсоры
Лекция 17. Некоторые черты SQL/92 и SQL-3

Оператор выделения памяти под дескриптор
Оператор освобождения памяти из-под дескриптора
Оператор получения информации из области дескриптора SQL
Оператор установки дескриптора
Оператор подготовки
Оператор отказа от подготовленного оператора
Оператор запроса описания подготовленного оператора
Оператор выполнения подготовленного оператора
Оператор подготовки с немедленным выполнением
Оператор объявления курсора над динамически подготовленным оператором выборки

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

Некоторые другие свойства SQL-3
Лекция 18. Компиляторы SQL. Проблемы оптимизации
Общая схема обработки запроса
Синтаксическая оптимизация запросов
Простые логические преобразования запросов
Преобразования запросов с изменением порядка реляционных операций
Приведение запросов со вложенными подзапросами к запросам с соединениями
Семантическая оптимизация запросов

Преобразования запросов на основе семантической информации
Использование семантической информации при оптимизации запросов
Выбор и оценка альтернативных планов выполнения запросов
Генерация планов
Оценка стоимости плана запроса

Более точные оценки
Лекция 19. Архитектура "клиент-сервер"
Открытые системы
Клиенты и серверы локальных сетей
Системная архитектура "клиент-сервер"

Серверы баз данных
Принципы взаимодействия между клиентскими и серверными частями
Преимущества протоколов удаленного вызова процедур
Типичное разделение функций между клиентами и серверами
Требования к аппаратным возможностям и базовому программному обеспечению клиентов и серверов
Лекция 20. Распределенные БД
Разновидности распределенных систем
Распределенная система управления базами данных System R*

Именование объектов и организация распределенного каталога
Распределенная компиляция запросов
Управление транзакциями и синхронизация

Интегрированные или федеративные системы и мультибазы данных
Современные направления исследований и разработок
Лекция 21. Системы управления базами данных следующего поколения
Ориентация на расширенную реляционную модель
Абстрактные типы данных
Генерация систем баз данных, ориентированных на приложения
Оптимизация запросов, управляемая правилами

Поддержка исторической информации и темпоральных запросов
Лекция 22. Объектно-ориентированные СУБД
Связь объектно-ориентированных СУБД с общими понятиями объектно-ориентированного подхода
Объектно-ориентированные модели данных

Языки программирования объектно-ориентированных баз данных

Языки программирования объектно-ориентированных баз данных
Потеря соответствия между языками программирования и языками запросов в реляционных СУБД
Языки программирования ООБД как
Примеры языков программирования ООБД
Языки запросов объектно-ориентированных баз данных
Явная навигация как следствие преодоления потери соответствия
Ненавигационные языки запросов
Проблемы оптимизации запросов

Примеры объектно-ориентированных СУБД
Проект ORION
Проект O2
Лекция 23. Системы баз данных, основанные на правилах
Экстенсиональная и интенсиональная части базы данных
Активные базы данных
Дедуктивные базы данных

Восстановление после мягкого сбоя

Индивидуальный откат транзакции
Восстановление после мягкого сбоя

Физическая согласованность базы данных
Восстановление после жесткого сбоя
SEQUEL/SQL СУБД System R
Запросы и операторы манипулирования данными
Операторы определения и манипулирования схемой БД
Определения ограничений целостности и триггеров
Представления базы данных

Определение управляющих структур
Авторизация доступа к отношениям и их полям
Точки сохранения и откаты транзакции
Встроенный SQL
Динамический SQL
Язык SQL в коммерческих реализациях
Стандартизация SQL
Лекция 14. Стандартный язык баз данных SQL
Типы данных

Основные функции СУБД
Непосредственное управление данными во внешней памяти
Управление буферами оперативной памяти
Управление транзакциями
Журнализация
Поддержка языков БД
Средства определения схемы

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

Оператор выборки
Подзапрос
Табличное выражение
Раздел FROM
Раздел WHERE
Раздел GROUP BY
Раздел HAVING

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

Операторы, связанные с курсором
Одиночные операторы манипулирования данными
Динамический SQL в Oracle V.6
Оператор подготовки
Оператор получения описания подготовленного оператора
Оператор выполнения подготовленного оператора
Работа с динамическими операторами SQL через курсоры
Лекция 17. Некоторые черты SQL/92 и SQL-3

Оператор выделения памяти под дескриптор
Оператор освобождения памяти из-под дескриптора
Оператор получения информации из области дескриптора SQL
Оператор установки дескриптора
Оператор подготовки
Оператор отказа от подготовленного оператора
Оператор запроса описания подготовленного оператора
Оператор выполнения подготовленного оператора
Оператор подготовки с немедленным выполнением
Оператор объявления курсора над динамически подготовленным оператором выборки

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

Некоторые другие свойства SQL-3
Лекция 18. Компиляторы SQL. Проблемы оптимизации
Общая схема обработки запроса
Синтаксическая оптимизация запросов
Простые логические преобразования запросов
Преобразования запросов с изменением порядка реляционных операций
Приведение запросов со вложенными подзапросами к запросам с соединениями
Семантическая оптимизация запросов

Преобразования запросов на основе семантической информации
Использование семантической информации при оптимизации запросов
Выбор и оценка альтернативных планов выполнения запросов
Генерация планов
Оценка стоимости плана запроса

Более точные оценки
Лекция 19. Архитектура "клиент-сервер"
Открытые системы
Клиенты и серверы локальных сетей
Системная архитектура "клиент-сервер"

Серверы баз данных
Принципы взаимодействия между клиентскими и серверными частями
Преимущества протоколов удаленного вызова процедур
Типичное разделение функций между клиентами и серверами
Требования к аппаратным возможностям и базовому программному обеспечению клиентов и серверов
Лекция 20. Распределенные БД
Разновидности распределенных систем
Распределенная система управления базами данных System R*

Именование объектов и организация распределенного каталога
Распределенная компиляция запросов
Управление транзакциями и синхронизация

Интегрированные или федеративные системы и мультибазы данных
Современные направления исследований и разработок
Лекция 21. Системы управления базами данных следующего поколения
Ориентация на расширенную реляционную модель
Абстрактные типы данных
Генерация систем баз данных, ориентированных на приложения
Оптимизация запросов, управляемая правилами

Поддержка исторической информации и темпоральных запросов
Лекция 22. Объектно-ориентированные СУБД
Связь объектно-ориентированных СУБД с общими понятиями объектно-ориентированного подхода
Объектно-ориентированные модели данных

Языки программирования объектно-ориентированных баз данных

Языки программирования объектно-ориентированных баз данных
Потеря соответствия между языками программирования и языками запросов в реляционных СУБД
Языки программирования ООБД как
Примеры языков программирования ООБД
Языки запросов объектно-ориентированных баз данных
Явная навигация как следствие преодоления потери соответствия
Ненавигационные языки запросов
Проблемы оптимизации запросов

Примеры объектно-ориентированных СУБД
Проект ORION
Проект O2
Лекция 23. Системы баз данных, основанные на правилах
Экстенсиональная и интенсиональная части базы данных
Активные базы данных
Дедуктивные базы данных