Модели данных и базы данных
С.Т.Главацкий, И.Г.Бурыкин
Аннотация курса: В спецкурсе будут изложены основы современной теории баз данных:
- базовые модели данных (реляционная, иерархическая, сетевая);
- принципы и методы моделирования данных;
- построение и организация современных систем управления базами данных (СУБД), включая NoSQL базы данных и базы данных, использующие оперативную память компьютера в качестве основного хранилища (in-memory databases).
В первую очередь будет рассмотрена реляционная модель данных: реляционная алгебра, реляционное исчисление, язык определения и моделирования данными SQL.
Будут изложены основные подходы к проектированию баз данных (ER-моделирование структур данных, учет функциональных и многозначных зависимостей в реляционной модели, оптимизация основных запросов и т.д.).
Тематическое содержание курса
1 семестр
Модели данных и основы систем баз данных
- Основы баз данных. История развития. Понятие модели данных. СУБД, устройства хранения данных, языки манипулирования данными.
- СУБД: основные функции, запросы, транзакции. Компоненты СУБД, архитектура современных СУБД.
- Модели данных. Иерархическая, сетевая, реляционная и слабоструктурированная модели. Основы реляционной модели данных.
- Реляционная алгебра, отношения, кортежи, основные операции.
- Реляционная алгебра: представление сложных запросов. Мультимножества.
- Язык определения данных и манипулирования данными SQL.
- SQL: основные стандарты и особенности реализации.
- Функциональные зависимости и их роль в устранении аномалий манипулирования в реляционных базах данных.
- Исчисление функциональных зависимостей, алгоритмы вычисления замыканий.
- Декомпозиция схем отношений. Свойства соединения без потерь и сохранения зависимостей.
- Декомпозиция схем отношений. Основные алгоритмы.
- Нормальные формы схем отношений. Основные теоремы о декомпозиции схем.
- Алгоритмы приведения к 3-й нормальной форме и нормальной форме Бойса-Кодда.
- Многозначные зависимости. Исчисление многозначных зависимостей. Замыкание множества функциональных и многозначных зависимостей.
- Декомпозиции схем отношений, 4-я нормальная форма.
- Проектирование схем баз данных. Концептуальные модели, модель сущностей-связей: основные понятия и представления.
- Модель сущностей-связей: правила описания связей и ограничений.
2 семестр
Базы данных: дополнительные данные
- Модель сущностей-связей: принципы проектирования.
- Прошлое, настоящее и будущее корпоративных приложений. Новые требования к корпоративным приложениям.
- Методы хранения баз данных. Словарное кодирование.
- Сжатие: Prefix Encoding / Run-Length Encoding / Cluster Encoding / Indirect Encoding / Delta Encoding.
- Размещение данных в оперативной памяти. Секционирование.
- Структуры и операции. Манипулирование данными (insert / update / delete / insert only).
- Реконструкция кортежей. Поиск данных. Стратегии материализации.
- Продвинутые техники баз данных. Архитектура базы данных: дифференциальный буфер, операция слияния.
- Параллельная обработка данных.
- Материализованные агрегаты, их кеширование. Управление рабочей нагрузкой и планирование.
- Механизм старения данных. Актуальное и историческое хранение.
- Внутренние механизмы базы данных. Индексы.
- Журналирование. Восстановление. Репликация. Резервирование.
- Введение в СУБД HANA. SAP S/4HANA. Структура данных: таблицы, представления и материализованные агрегаты.
- СУБД HANA: введение в язык манипулирования данными SQLScript.
- СУБД HANA: интерфейсы и сервисы для доступа к данным.
- NoSQL. Идея NoSQL. SQL & NoSQL – теорема CAP.
- NoSQL – data layout
Типовые контрольные задания
- Устройства хранения данных.
- Понятие модели данных.
- Языки манипулирования данными.
- Ограничения данных.
- СУБД: основные функции, запросы, транзакции.
- Компоненты СУБД,
- Архитектура современных СУБД
- Реляционная модель данных.
- Реляционная алгебра, отношения, кортежи, основные операции.
- Язык определения данных и манипулирования данными SQL.
- SQL: основные стандарты и особенности реализации.
- Функциональные зависимости и их роль в устранении аномалий манипулирования в реляционных базах данных.
- Исчисление функциональных зависимостей, алгоритмы вычисления замыканий.
- Декомпозиция схем отношений.
- Свойства соединения без потерь и сохранения зависимостей.
- Основные алгоритмы.
- Нормальные формы схем отношений.
- Основные теоремы о декомпозиции схем.
- Алгоритмы приведения к 3-й нормальной форме и нормальной форме Бойса-Кодда.
- Многозначные зависимости. Исчисление многозначных зависимостей. Замыкание множества функциональных и многозначных зависимостей.
- Декомпозиции схем отношений, 4-я нормальная форма.
- Функциональные зависимости и их роль в устранении аномалий манипулирования в реляционных базах данных.
- Исчисление функциональных зависимостей, алгоритмы вычисления замыканий.
- Модель сущностей-связей:
- – правила описания связей и ограничений,
- – принципы проектирования.
Задача 1: Рассмотрим схему отношения R(A, B, C, D) и следующий набор FD: AB → C, C → D и D → A.
a) Каковы все нетривиальные FD, которые следуют из заданных FD? Ограничьтесь рассмотрением FD с единственным атрибутом в правой части.
b) Каковы все ключи отношения R?
c) Каковы все суперключи R, не являющиеся ключами?
Задача 2: Выполните задания предыдущего упражнения для следующих схем отношений и наборов FD:
i) S(A, B, C, D) с FD A → B, B → C и B → D.
ii) T(A, B, C, D) с FD AB → C, BC → D, CD → A и AD → B.
iii) U(A, B, C, D) с FD A → B, B → C, C → D и D → A.
Задача 3: Докажите, что (X +)+ = X +.
Задача 4: Пусть дано отношение R(A, B, C, D, E) с некоторым набором FD и необходимо отыскать FD, справедливые для отношения, которое получено проецированием R на схему S(A, B, C). Найдите FD, удовлетворяющие S, если наборы FD для R таковы:
a) AB → DE, C → E, D → C и E → A;
b) A → D, BD → E, AC → E и DE → B;
c) AB → D, AC → E, BC → D, D → A и E → B;
d) A → B, B → C, C → D, D → E и E → A.
В каждом из случаев достаточно предъявить минимальный базис для полного множества FD, справедливых для S.
Задача 5: Даны следующие схемы отношений и FD’s.
a) R(A, B, C,D) с FD's AB → C, C → D, and D → A.
b) R(A, B,C, D) с FD's B → C и B → D.
c) R(A, B,C, D) с FD's AB → C, BC → D, CD → A и AD → B.
d) R(A, B,C, D) с FD's A → B, B → C, C → D и D → A.
e) R(A, B, C, D, E) с FD's AB → C, DE → C, и B → D.
f) R(A, B, C, D, E) с FD's AB → C, C → D, D → B и D → E.
Выполнить:
i) Отметить все нарушения BCNF. Не забыть принять во внимание не только данные FD, но и логические следствия из них. Не нужно отмечать FD, содержащие в правой части более одного атрибута.
ii) Произвести декомпозицию (насколько это нужно) с получаемыми компонентами в BCNF.
iii) Отметить все нарушения 3NF.
iv) Произвести декомпозицию (насколько это нужно) с получаемыми компонентами в 3NF.
Задача 6: Спроектируйте структуру, адекватно описывающую университетскую базу данных, которая должна включать информацию о студентах, факультетах, профессорах, курсах, а также о том, какие студенты слушают какие курсы и какие профессора преподают эти курсы, какие курсы читаются на том или ином факультете, об отметках студентов и лучших достижениях студентов по каждому курсу. Вы вправе представить на ER-диаграмме и другие данные, которые покажутся вам уместными и значимыми. Это задание предусматривает большую свободу действий, нежели предыдущие, и при его выполнении вам придется принимать самостоятельные решения, касающиеся свойств множественности связей, выбора их типов и даже того, какого рода информация достойна представления в базе данных.
Задача 7: Пусть даны таблицы Государств, Поставщиков и Товаров. Построить SQL-запрос для выдачи всех поставщиков из государства N, которые поставляют более пятидесяти различных товаров.
Перечень учебной литературы
- К. Дж. Дейт. Введение в системы баз данных. (Introduction to Database Systems.) — 8-е изд. — М.: Вильямс, 2006. — С. 1328. — ISBN 5-8459-0788-8.
- Hector Garcia-Molina, Jeffrey D. Ullman, Jennifer Widom. Database systems. The Complete Book. 2009, 2002 by Pearson Education Inc., Pearson Prentice Hall, Pearson Education, Inc. Upper Saddle River, NJ 07458. – ISBN 0-13-606701-8.
- Гектор Гарсиа-Молина, Джеффри Ульман, Дженнифер Уидом. Системы баз данных. Полный курс. : Пер. с англ. — М.: Издательский дом “Вильямс”, 2002. — 1088 с. : ил. — Парал. тит. англ. –ISBN 5-8459-0384-X.
- К. Дж. Дейт. SQL и реляционная теория. Как грамотно писать код на SQL. – Пер. с англ. – СПб.: Символ-Плюс, 2010. – 480 с., ил. – ISBN 978-5-93286-173-8.