Часть 1. Проектирование
Тем: 4
Тема 1. Введение
Содержание
- Структура курса
- Развитие баз данных
- Требования к системам управления базами данных
- База данных на основе текстового файла
- База данных на основе файловой системы
- Иерархические базы данных
- Сетевые базы данных
- Реляционные базы данных
- Объектные базы данных
- Архитектура современных СУБД
- Обзор современных РСУБД
- Введение в SQL
- Ревизии стандарта SQL
- Пример создания базы данных
Экзаменационные вопросы
- Развитие баз данных
- Архитектура современной СУБД
Библиография
- Дейт К. Введение в системы баз данных
- Уидом Д., Ульман Д. Основы реляционных баз данных
- Гарсиа Молина Г., Уидом Д., Ульман Д. Системы баз данных полный курс
- Фаулер М. Архитектура корпоративных программных приложений
- Эмблер С. В., Садаладж П. Дж. Рефакторинг баз данных. Эволюционное проектирование
- Garcia-Molina H., Ullman J., Widom J. Database System Implementation
- Silberschatz A., Korth H.F., Sudarshan S. Database System Concepts
- Gulutzan P., Pelzer T. SQL-99 complete, really
- Silberschatz A., Korth H.F., Sudarshan S. Database System Concepts (Slides)
- Werstein P. Database Theory and Applications (Slides)
Домашнее задание 1. Установка и использование СУБД
- Установите систему управления реляционными базами данных.
- Узнайте, как в вашей СУБД исполнять SQL в интерактивном режиме.
- Узнайте, как в вашей СУБД исполнять SQL в пакетном режиме.
- Разберитесь, как в вашей СУБД осуществляется поддержка русского языка.
- Создайте базу данных и наполните ее в соответствии с примерами из презентации.
Ожидаемая структура проекта
-
Текстовая часть
- Описание предметной области с кратким описанием неочевидных сущностей и атрибутов.
- Предварительное разбиение на отношения (может отсутствовать).
- Для каждого отношения: определение функциональных зависимостей, нормализация до 5НФ, денормализация (при необходимости).
- Модель сущность-связь.
- Физическая модель (должна соответствовать ERM) с указанием типов для доменов.
-
Часть на SQL
ddl.sql
– описание таблиц и индексов.insert.sql
– добавление тестовых данных.select.sql
– запросы на получение данных и представления.update.sql
– запросы на изменение данных, хранимые процедуры и триггеры.
В рамках проекта:
-
Выберите тему проекта.
- Тема должна быть уникальной.
- Тема должна быть достаточно сложной.
- Нельзя брать темы: обучение в университете; торговля (как товарами, так и билетами); cоревнования по программированию.
Тема 2. Моделирование баз данных
Содержание
- Физическая модель базы данных
- Таблицы
- Ключи
- Ссылки
- Графическая нотация
- Модель сущность-связь
- Сущности
- Связи
- Ассоциации
- Слабые сущности
- Альтернативные нотации
- Преобразование модели сущность-связь в физическую модель
- Запись физической модели на языке DDL
- DDL как часть SQL
- Типы данных
- Описание ключей
- Описание ссылок
- Создание, изменение и удаление таблиц
Экзаменационные вопросы
- Физическая модель базы данных
- Модель сущность-связь
- Преобразование модели сущность-связь в физическую модель
Практические навыки
- Создание модели сущность-связь по словесному описанию
- Создание модели физической модели по словесному описанию
- Построение физической модели по модели сущность-связь
- Запись физической модели на DDL
Библиография
- Дейт К. Введение в системы баз данных (глава 14)
- Уидом Д., Ульман Д. Основы реляционных баз данных (глава 2)
- Gulutzan P., Pelzer T. SQL-99 complete, really (Chapter 18 – SQL Table and View)
- Chen P. The Entity-Relationship Model: Toward a Unified View of Data
- Chen P. Entity-Relationship Modeling: Historical Events, Future Trends, and Lessons
- Hartmann S. Reasoning about participation constraints and Chen's constraints
- MySQL Data Definition Statements
- PostgreSQL Data Definition
- Oracle Managing tables
- MSSQL Server Transact-SQL statements
Тема 3. Реляционная модель и функциональные зависимости
Содержание
- Реляционная модель данных
- Отношение
- Кортежи
- Представление null'ов
- Отличия таблиц и отношений
- Ключи
- Надключи
- Ключи
- Требования к ключам
- Естественные и суррогатные ключи
- Выбор ключей
- Функциональные зависимости
- Определение и примеры
- Замыкание множества функциональных зависимостей
- Эквивалентность множеств функциональных зависимостей
- Правила вывода функциональных зависимостей
- Замыкание множество атрибутов
- Неприводимые множества функциональных зависимостей
Экзаменационные вопросы
- Реляционная модель данных. Ключи
- Функциональные зависимости: замыкание, эквивалентность и правила вывода
- Функциональные зависимости: замыкание атрибутов, неприводимые множества функциональных зависимостей, их построение
Практические навыки
- Выделение надключей и ключей отношения
- Определение функциональных зависимостей в отношении
- Построение замыкания множества атрибутов
- Построение неприводимого множества функциональных зависимостей, эквивалентного данному
Библиография
- Дейт К. Введение в системы баз данных (главы 9 и 11)
- Уидом Д., Ульман Д. Основы реляционных баз данных (глава 3)
- Armstrong W.W. Dependency Structures of Data Base Relationships
- Fagin R. Functional Dependencies in a Relational Database and Propositional Logic
- Beeri C., Fagin R., Howard J. A complete axiomatization for functional and multivalued dependencies in database relations
- Maier D. Maier D. - Minimum covers in the relational database model
Тема 4. Нормализация баз данных
Содержание
- Цели и средства нормализации
- Нормализация
- Проекции и соединения
- Декомпозиция отношений
- Первые нормальные формы
- Аномалии
- Первая нормальная форма
- Вторая нормальная форма
- Третья нормальная форма
- Нормальная форма Бойса-Кодда
- Многозначные зависимости и четвертая нормальная форма
- Многозначные зависимости
- Четвертая нормальная форма
- Зависимости соединения и пятая нормальная форма
- Зависимости соединения
- Пятая нормальная форма
- Процесс нормализации и другие нормальные формы
- Иерархия нормальных форм
- Связи нормальных форм
- Другие нормальные формы
- Денормализация
Экзаменационные вопросы
- Цели и средства нормализации
- Нормальные формы: первая и вторая
- Нормальные формы: третья и Бойса-Кодда
- Многозначные зависимости и четвертая нормальная форма
- Зависимости соединения и пятая нормальная форма
Практические навыки
- Нормализация баз данных
- Проектирование высококачественных баз данных
Библиография
- Дейт К. Введение в системы баз данных (главы 12 и 13)
- Уидом Д., Ульман Д. Основы реляционных баз данных (глава 3)
- Fagin R. Multivalued Dependencies and a New Normal Form for Relational Databases
- Beeri C., Fagin R., Howard J. A complete axiomatization for functional and multivalued dependencies in database relations
- Date C.J., Fagin R. Simple conditions for guaranteeing higher normal forms in relational databases
- Fagin R. Normal forms and relational database operators
Часть 2. Запросы
Тем: 3
Тема 5. Реляционная алгебра
Содержание
- Реляционная алгебра
- Предназначение
- Замкнутость
- Унарные операции
- Проекция
- Фильтрация
- Переименование
- Операции над множествами
- Объединение
- Пересечение
- Разность
- Соединения
- Полное соединение
- Естественное соединение
- Внешние соединения
- Полусоединения
- Условные соединения
- Деление
- Операции над данными
- Расширение
- Агрегирование
- Свойства реляционной алгебры
- Базис операций
- Ограничения реляционной алгебры
- Реляционная алгебра и SQL
- Простые операции
- Соединения
Экзаменационные вопросы
- Реляционная алгебра: предназначение и свойства
- Реляционная алгебра: унарные и множественные операции
- Реляционная алгебра: соединения
- Реляционная алгебра: деление и операции над данными
Практические навыки
- Построение запросов в терминах реляционной алгебры
- Преобразование запросов
- Перевод запросов из терминов реляционной алгебры в термины SQL и обратно
- Построение запросов на SQL (без подзапросов)
Библиография
- Дейт К. Введение в системы баз данных (глава 7)
- Уидом Д., Ульман Д. Основы реляционных баз данных (главы 4 и 5)
- Gulutzan P., Pelzer T. SQL-99 complete, really (Chapter 28 – Introduction to SQL-data operations)
- Gulutzan P., Pelzer T. SQL-99 complete, really (Chapter 29 – Simple Search Conditions)
- Gulutzan P., Pelzer T. SQL-99 complete, really (Chapter 30 – Searching with Joins)
- Gulutzan P., Pelzer T. SQL-99 complete, really (Chapter 32 – Searching with Set Operators)
- Gulutzan P., Pelzer T. SQL-99 complete, really (Chapter 33 – Searching with Groups)
- Gulutzan P., Pelzer T. SQL-99 complete, really (Chapter 34 – Sorting Search Results)
- Select Syntax in MySQL Reference Manual
Тема 6. Реляционное исчисление
Содержание
- Реляционное исчисление
- Типы реляционного исчисления
- Структура запроса
- Исчисление кортежей
- Реляционные переменные
- Условия
- Простые
- С кванторами
- Связь реляционной алгебры и реляционного исчисления
- Выражение алгебры через исчисление
- Выражение исчисления через алгебру
- Реляционная полнота
- Исчисление доменов
- Доменные переменные
- Условие принадлежности
- Язык Datalog
- Определение отношений
- Реляционная полнота
- Рекурсия
- Реляционное исчисление и SQL
- Структура запроса
- Подзапросы
- Существования
- Вхождения
- Условные
- Скалярные
- Рекурсия
Экзаменационные вопросы
- Исчисление кортежей и его реляционная полнота
- Исчисление доменов и его реляционная полнота
- Datalog и рекурсия
Практические навыки
- Построение запросов в терминах исчисления кортежей
- Построение запросов в терминах исчисления доменов
- Перевод запросов из терминов реляционного исчисления в SQL и обратно
- Построение запросов на SQL (с подзапросами)
Библиография
- Дейт К. Введение в системы баз данных (глава 8)
- Уидом Д., Ульман Д. Основы реляционных баз данных (главы 4 и 5)
- Gulutzan P., Pelzer T. SQL-99 complete, really (Chapter 31 – Searching with Subqueries)
- Codd E.F. A relational model of data for large shared data banks
- Codd E.F. Relational completeness of data base sublanguages
Тема 7. Изменение данных
Содержание
- Операторы
- Вставка
- Обновление
- Объединение
- Удаление
- Целостность данных
- Корректность и целостность
- Типы ограничений целостности
- Типов и атрибутов
- Отношений
- Баз данных
- Компенсирующие действия
- Триггеры
- Представления
- Объявление и применения
- Обновление представлений
- Материализованные представления
- Управление доступом
- Схемы управления доступом
- Пользователи и группы
- Data Control Language
- Представления и права
Экзаменационные вопросы
- Целостность данных. Триггеры
- Представления и их обновление
- Управление доступом к данным
Практические навыки
- Построение изменяющих запросов на SQL
- Задание ограничений целостности
- Работа с представлениями
- Управление доступом к данным
Библиография
- Дейт К. Введение в системы баз данных (главы 9, 10, 17)
- Уидом Д., Ульман Д. Основы реляционных баз данных (глава 6)
- Gulutzan P., Pelzer T. SQL-99 complete, really (Chapter 35 – Changing SQL-data)
- Gulutzan P., Pelzer T. SQL-99 complete, really (Chapter 18 – Table and View)
- Gulutzan P., Pelzer T. SQL-99 complete, really (Chapter 20 – SQL Constraint and Assertion)
- Gulutzan P., Pelzer T. SQL-99 complete, really (Chapter 24 – SQL Trigger)
- Gulutzan P., Pelzer T. SQL-99 complete, really (Chapter 15 – SQL Authorization)
Часть 3. Реализация
Тем: 5
Тема 8. Хранение данных и индексирование
Содержание
- Подсистема хранения данных
- Структура подсистемы хранения данных
- Память и жёсткие диски
- Страничная организация памяти
- Интерфейс с СУБД
- Организация данных
- Списки страниц
- Хранение записей
- Сжатие данных
- Структура подсистемы хранения данных
- Индексация данных
- Индексы
- Применение индексов
- Структура индекса
- Кластеризованные индексы
- Хэш-индексы
- Простой хэш-индекс
- Расширяемый хэш-индекс
- Упорядоченные индексы
- B-деревья
- B+-деревья
- Другие типы индексов
- Битовые индексы
- Индексы на R-деревьях
- Применение индексов
- Селективность индекса
- Покрывающие индексы
- Выбор индексов
- Индексы
Экзаменационные вопросы
- Подсистема хранения данных
- Индексация данных. Упорядоченные и хэш-индексы
- Индексация данных. Другие типы индексов. Применение индексов
Практические навыки
- Выбор индексов в базе данных
- Запись индексов на языке SQL
Библиография
- Дейт К. Введение в системы баз данных (приложение Г)
- Кнут Д. Искусство программирования. Том 3. Сортировка и поиск
- Silberschatz A., Korth H.F., Sudarshan S. Database System Concepts
Тема 9. Хранимые процедуры
Содержание
- Хранимые процедуры
- Операторы
- Составной и присваивания
- Ветвления
- Циклы
- Обработка ошибок
- Курсоры
- Хранимые функции
- Управление доступом
Экзаменационные вопросы
- Хранимые процедуры и функции. Сходства и различия
- Императивное подмножество SQL
- Data Control Language
Практические навыки
- Реализация хранимых процедур и функций
- Реализация сложных триггеров
- Управление правами доступа
Библиография
- Дейт К. Введение в системы баз данных (главы 4 и 7)
- Уидом Д., Ульман Д. Основы реляционных баз данных (раздел 7.4)
- Gulutzan P., Pelzer T. SQL-99 complete, really (Chapter 25 – SQL-Invoked Routine)
- Gulutzan P., Pelzer T. SQL-99 complete, really (Chapter 26 – PSM: Not Just Persistent Stored Modules)
- MySQL 8.0: CREATE PROCEDURE and CREATE FUNCTION Statements
Тема 10. Транзакции
Содержание
- Транзакции
- Определение
- Свойства транзакций
- Восстановление
- Сбои и их типы
- Журнал транзакций
- Классический алгоритм восстановления
- Алгоритм ARIES
- Повторные сбои
- Отказ оборудования
- Параллельное исполнение
- Изоляция и конфликты
- Блокировки
- Упорядочиваемость
- Восстановление
- Гранулярность блокировок
- Транзакции в SQL
- Уровни изоляции транзакций
- Уровни изоляции
- Аномалии
- Синтаксис
- Транзакции
- Точки сохранения
- Уровни изоляции транзакций
Экзаменационные вопросы
- Транзакции. Восстановление. Классический алгоритм
- Транзакции. Восстановление. Алгоритм ARIES
- Транзакции. Параллельное исполнение. Блокировки
- Транзакции. Параллельное исполнение. Уровни изоляции
Практические навыки
- Выбор границ транзакции
- Объявление транзакций на языке SQL
Библиография
- Дейт К. Введение в системы баз данных (главы 15 и 16)
- Уидом Д., Ульман Д. Основы реляционных баз данных (раздел 7.2)
- Gulutzan P., Pelzer T. SQL-99 complete, really (Chapter 36 – SQL Transactions)
- Gulutzan P., Pelzer T. SQL-99 complete, really (Chapter 37 – SQL Transactions Concurrency)
- Mohan C., Haderle D., Lindsay B., Pirahesh H., Schwarz P. ARIES: A Transaction Recovery Method Supporting Fine-Granularity Locking and Partial Rollbacks Using Write-Ahead Logging
- Mohan C. Repeating History Beyond ARIES
- Bernstein P.A., Hadzilacos V., Goodman N. Concurrency Control and Recovery in Database Systems
Тема 11. Оптимизация запросов
Содержание
- Обработка запросов
- Разбор запроса
- Перезапись запроса
- Планировщик и его структура
- Перезапись запросов
- Минимизация набора операций
- Унарные операции
- Алгебраические свойства операций
- Обработка условий
- Семантические оптимизации
- Методы исполнения
- Унарные операции
- Операции над множествами
- Соединения
- Выбор структуры запроса
- Правила планирования операций
- Применение динамического программирования
- Применение других подходов
- Оценка размера и распределения
- Статистические характеристики
- Оценка худшего случая
- Оценка операций
- Пример оптимизации запроса
- Оценка путей доступа
- Оценка соединения
Экзаменационные вопросы
- Этапы обработки запроса. Перезапись запросов
- Оптимизация запросов. Выбор структуры исполнения запроса
- Оптимизация запросов. Выбор методов исполнения запроса
- Оптимизация запросов. Оценка размера и распределения
Практические навыки
- Перезапись плана исполнения запроса
- Оптимизация плана исполнения запроса
- Оценка времени исполнения плана запроса
Библиография
- Дейт К. Введение в системы баз данных (глава 18)
- Ioannidis Y.E. Query Optimization
- Mannino M.V., Chu P., Sager T. Statistical profile estimation in database systems
- PostgreSQL Documentation Chapter 51. Overview of PostgreSQL Internals
Тема 12. Распределенные базы данных
Содержание
- Секционирование
- Цели секционирования
- Типы секционирования
- Методы секционирования
- Управление секциями
- Репликация
- Цели репликации
- Реализация репликации
- Применения репликации
- Распределенных базы данных
- Цели распределения
- Распределенные транзакции
- Проблемы распределенных баз данных
Экзаменационные вопросы
- Секционирование
- Репликация
- Распределенные транзакции
- Распределенные базы данных. Цели и проблемы
Практические навыки
- Секционирование данных
- Организация репликации данных
- Организация распределенных баз данных
Библиография
- Дейт К. Введение в системы баз данных (глава 21)
- Partitioning in MySQL Reference Manual
- Replication in MySQL Reference Manual
Часть 4. Применение
Тем: 4
Тема 13. Неполные данные и null
Содержание
- Что означает null?
- Операции с null
- Null и SQL
Экзаменационные вопросы
- Трактовки null и операции с ним
- Операции с null в SQL
Практические навыки
- Представление неполных данных
Библиография
- Дейт К. Введение в системы баз данных (глава 19)
- Gulutzan P., Pelzer T. SQL-99 complete, really (Chapter 13 – NULLs)
- Celko J. SQL and the Snare of Three-Valued Logic
- Wikibooks SQL: NULLs and the Three Valued Logic
Тема 14. Object-relational Mapping
Содержание
- Ключи и ссылки
- Генерация ключей
- Ссылки и их типы
- Наследование
- «Широкая» таблицы
- Таблицы конкретных классов
- Таблицы классов
- Динамичные структуры и модель сущность-атрибут-значение
Экзаменационные вопросы
- ORM. Ключи и ссылки
- ORM. Наследование
- ORM. Модель сущность-атрибут-значение
Практические навыки
- Применение различных стратегий генерации ключей
- Управление ссылками
- Преставление наследования в БД
- Представление динамичных структур в БД
Библиография
- Дейт К. Введение в системы баз данных (глава 26)
- Фаулер М. Архитектура корпоративных программных приложений (главы 3, 13)
Тема 15. Иерархические данные
Содержание
- Операции
- Базовые представления
- Навигационные запросы и пути
- Предикаты и статистика
- Упорядочивание
- Обновление
- Модель близости
- Представление данных
- Базовые представления
- Обновление
- Характеристики
- Вложенные множества
- Представление данных
- Базовые представления и упорядочивание
- Обновление
- Характеристики
- Модель путей
- Представление данных
- Базовые представления и упорядочивание
- Обновление
- Характеристики
Экзаменационные вопросы
- Иерархические данные. Модель близости
- Иерархические данные. Вложенные множества
- Иерархические данные. Модель путей
Практические навыки
- Проектирование БД для хранения иерархических данных
- Управление иерархическими данными
Библиография
- Celko J. Деревья в SQL
- Celko J. SQL for Smarties (глава 28)
Тема 16. Временны́е данные
Содержание
- Время в SQL
- Временны́е данные
- Полутемпоральные базы данных
- Темпоральные базы данных
- Модель интервалов
- Модель событий
Экзаменационные вопросы
- Временны́е данные. Полутемпоральные базы данных
- Временны́е данные. Модель интервалов
- Временны́е данные. Модель событий
Практические навыки
- Умение работать с временны́ми данными
- Проектирование БД для хранения темпоральных данных
Библиография
- Дейт К. Введение в системы баз данных (глава 23)
- Celko J. SQL for Smarties (глава 4)
- Gao D., Jensen C., Snodgrass R., Soo M. Join operations in temporal databases