Часть 1. Теоретические аспекты баз данных

Тем: 8

Тема 1. Введение

Содержание

  1. Структура курса
  2. Развитие баз данных
    1. Требования к системам управления базами данных
    2. База данных на основе текстового файла
    3. База данных на основе файловой системы
    4. Иерархические базы данных
    5. Сетевые базы данных
    6. Реляционные базы данных
    7. Объектные базы данных
  3. Архитектура современных СУБД
  4. Обзор современных РСУБД
    1. Oracle (Сайт, Wikipedia)
    2. DB2 (Сайт, Wikipedia)
    3. Microsoft SQL Server (Сайт, Wikipedia)
    4. MySQL (Сайт, Wikipedia)
    5. PostgreSQL (Сайт, Wikipedia)
    6. Firebird (Сайт, Wikipedia)
    7. Derby (Сайт, Wikipedia)
    8. HSQLDB (Сайт, Wikipedia)
    9. Microsoft Access (Сайт, Wikipedia)
  5. Введение в SQL
    1. Ревизии стандарта SQL
    2. Пример создания базы данных

Слайды

HTML

Экзаменационные вопросы

  1. Развитие баз данных.
  2. Архитектура современной СУБД.

Библиография

  1. Дейт К. Введение в системы баз данных
  2. Уидом Д., Ульман Д. Основы реляционных баз данных
  3. Гарсиа Молина Г., Уидом Д., Ульман Д. Системы баз данных полный курс
  4. Фаулер М. Архитектура корпоративных программных приложений
  5. Эмблер С. В., Садаладж П. Дж. Рефакторинг баз данных. Эволюционное проектирование
  6. Garcia-Molina H., Ullman J., Widom J. Database System Implementation
  7. Silberschatz A., Korth H.F., Sudarshan S. Database System Concepts
  8. Silberschatz A., Korth H.F., Sudarshan S. Database System Concepts (Slides)
  9. Werstein P. Database Theory and Applications (Slides)

Домашнее задание 1

  1. Установите систему управления реляционными базами данных.
  2. Узнайте, как в вашей СУБД исполнять SQL в интерактивном режиме.
  3. Узнайте, как в вашей СУБД исполнять SQL в пакетном режиме.
  4. Разберитесь, как в вашей СУБД осуществляется поддержка русского языка.
  5. Создайте базу данных и наполните ее в соответствии с разобранным примерами.

Тема 2. Моделирование баз данных

Содержание

  1. Физическая модель базы данных
    1. Таблицы
    2. Ключи
    3. Ссылки
    4. Графическая нотация
  2. Модель сущность-связь
    1. Сущности
    2. Связи
    3. Ассоциации
    4. Слабые сущности
    5. Альтернативные нотации
  3. Преобразование модели сущность-связь в физическую модель
  4. Запись физической модели на языке DDL
    1. DDL как часть SQL
    2. Типы данных
    3. Описание ключей
    4. Описание ссылок
    5. Создание, изменение и удаление таблиц

Слайды

HTML

Экзаменационные вопросы

  1. Физическая модель базы данных.
  2. Модель сущность-связь.
  3. Преобразование модели сущность-связь в физическую модель.

Практические навыки

  1. Создание модели сущность-связь по словесному описанию
  2. Создание модели физической модели по словесному описанию
  3. Построение физической модели по модели сущность-связь
  4. Запись физической модели на DDL

Библиография

  1. Дейт К. Введение в системы баз данных (глава 14)
  2. Уидом Д., Ульман Д. Основы реляционных баз данных (глава 2)
  3. Chen P. The Entity-Relationship Model: Toward a Unified View of Data
  4. Chen P. Entity-Relationship Modeling: Historical Events, Future Trends, and Lessons
  5. Hartmann S. Reasoning about participation constraints and Chen's constraints
  6. Data Definition Statements in MySQL Reference Manual

Домашнее задание 2

Спроектируйте базу данных «Деканат», позволяющую хранить информацию о студентах, группах, преподавателях, предметах, оценках.
  1. Составьте модель сущность-связь.
  2. Преобразуйте модель сущность-связь в физическую модель.
  3. Запишите физическую модель на языке SQL. Модель должна включать объявления ограничений.
  4. Создайте базу данных по спроектированной модели.
  5. Запишите операторы SQL, заполняющие базу тестовыми данными.

Тема 3. Реляционная модель и функциональные зависимости

Содержание

  1. Реляционная модель данных
    1. Отношение
    2. Кортежи
    3. Представление null'ов
    4. Отличия таблиц и отношений
  2. Ключи
    1. Надключи
    2. Ключи
    3. Требования к ключам
    4. Естественные и суррогатные ключи
    5. Выбор ключей
  3. Функциональные зависимости
    1. Определение и примеры
    2. Замыкание множества функциональных зависимостей
    3. Эквивалентность множеств функциональных зависимостей
    4. Правила вывода функциональных зависимостей
    5. Замыкание множество атрибутов
    6. Неприводимые множества функциональных зависимостей

Слайды

HTML

Экзаменационные вопросы

  1. Реляционная модель данных. Ключи.
  2. Функциональные зависимости: замыкание, эквивалентность и правила вывода.
  3. Функциональные зависимости: замыкание атрибутов, неприводимые множества функциональных зависимостей, их построение.

Практические навыки

  1. Выделение надключей и ключей отношения
  2. Определение функциональных зависимостей в отношении
  3. Построение замыкания множества атрибутов
  4. Построение неприводимого множества функциональных зависимостей, эквивалентного данному

Библиография

  1. Дейт К. Введение в системы баз данных (главы 9 и 11)
  2. Уидом Д., Ульман Д. Основы реляционных баз данных (глава 3)
  3. Fagin R. Functional Dependencies in a Relational Database and Propositional Logic
  4. Beeri C., Fagin R., Howard J. A complete axiomatization for functional and multivalued dependencies in database relations

Домашнее задание 3

Дано отношение с атрибутами StudentId, StudentName, GroupId, GroupName, CourseId, CourseName, LecturerId, LecturerName, Mark.
  1. Найдите функциональные зависимости в данном отношении.
  2. Найдите ключи данного отношения.
  3. Найдите неприводимое множество функциональных зависимостей для данного отношения.

Тема 4. Нормализация баз данных

Содержание

  1. Цели и средства нормализации
    1. Нормализация
    2. Проекции и соединения
    3. Декомпозиция отношений
  2. Первые нормальные формы
    1. Аномалии
    2. Первая нормальная форма
    3. Вторая нормальная форма
    4. Третья нормальная форма
    5. Нормальная форма Бойса-Кодда
  3. Многозначные зависmимости и четвертая нормальная форма
    1. Многозначные зависимости
    2. Четвертая нормальная форма
  4. Зависимости соединения и пятая нормальная форма
    1. Зависимости соединения
    2. Пятая нормальная форма
  5. Процесс нормализации и другие нормальные формы
    1. Иерархия нормальных форм
    2. Связи нормальных форм
    3. Другие нормальные формы
    4. Денормализация

Экзаменационные вопросы

  1. Цели и средства нормализации
  2. Нормальные формы: первая и вторая
  3. Нормальные формы: третья и Бойса-Кодда
  4. Многозначные зависимости и четвертая нормальная форма
  5. Зависимости соединения и пятая нормальная форма

Слайды

HTML

Практические навыки

  1. Нормализация баз данных
  2. Проектирование высококачественных баз данных

Библиография

  1. Дейт К. Введение в системы баз данных (главы 12 и 13)
  2. Уидом Д., Ульман Д. Основы реляционных баз данных (глава 3)
  3. Fagin R. Multivalued Dependencies and a New Normal Form for Relational Databases
  4. Beeri C., Fagin R., Howard J. A complete axiomatization for functional and multivalued dependencies in database relations
  5. Date C.J., Fagin R. Simple conditions for guaranteeing higher normal forms in relational databases
  6. Fagin R. Normal forms and relational database operators

Домашнее задание 4

Дано отношение с атрибутами StudentId, StudentName, GroupId, GroupName, CourseId, CourseName, LecturerId, LecturerName, Mark.
  1. Инкрементально приведите данное отношение в 5 нормальную форму.
  2. Постройте соответствующую модель сущность-связь.
  3. Постройте соответствующую физическую модель.
  4. Реализуйте SQL-скрипты, создающие схему базы данных.
  5. Создайте базу данных по спроектированной модели.
  6. Заполните базу тестовыми данными.

Тема 5. Реляционная алгебра

Содержание

  1. Реляционная алгебра
    1. Предназначение
    2. Замкнутость
  2. Унарные операции
    1. Проекция
    2. Фильтрация
    3. Переименование
  3. Операции над множествами
    1. Объединение
    2. Пересечение
    3. Разность
  4. Соединения
    1. Полное соединение
    2. Естественное соединение
    3. Внешние соединения
    4. Полусоединения
    5. Условные соединения
  5. Деление
  6. Операции над данными
    1. Расширение
    2. Агрегирование
  7. Свойства реляционной алгебры
    1. Базис операций
    2. Ограничения реляционной алгебры
  8. Реляционная алгебра и SQL
    1. Простые операции
    2. Соединения

Слайды

HTML

Экзаменационные вопросы

  1. Реляционная алгебра: предназначение и свойства
  2. Реляционная алгебра: унарные и множественные операции
  3. Реляционная алгебра: соединения
  4. Реляционная алгебра: деление и операции над данными

Практические навыки

  1. Построение запросов в терминах реляционной алгебры
  2. Преобразование запросов
  3. Перевод запросов из терминов реляционной алгебры в термины SQL и обратно
  4. Построение запросов на SQL (без подзапросов)

Библиография

  1. Дейт К. Введение в системы баз данных (глава 7)
  2. Уидом Д., Ульман Д. Основы реляционных баз данных (главы 4 и 5)
  3. Select Syntax in MySQL Reference Manual

Домашнее задание 5

Структура базы данных «Деканат»:

  • Students(StudentId, StudentName, GroupId)
  • Groups(GroupId, GroupName)
  • Courses(CourseId, CourseName)
  • Lecturers(LecturerId, LecturerName)
  • Plan(GroupId, CourseId, LecturerId)
  • Marks(StudentId, CourseId, Mark)

Составьте выражения реляционной алгебры и соответствующие SQL-запросы, позволяющие получать:

  1. Информацию о студентах, с заданной оценкой по предмету «Базы данных».
  2. Информацию о студентах не имеющих оценки по предмету «Базы данных»:
    • среди всех студентов
    • среди студентов, у которых есть этот предмет
  3. Информацию о студентах, имеющих хотя бы одну оценку у заданного лектора.
  4. Идентификаторы студентов, не имеющих ни одной оценки у заданного лектора.
  5. Студентов, имеющих оценки по всем предметам заданного лектора.
  6. Для каждого студента имя и предметы, которые он должен посещать.
  7. По лектору всех студентов, у которых он хоть что-нибудь преподавал.
  8. Пары студентов, такие, что все сданные первым студентом предметы сдал и второй студент.
  9. Такие группы и предметы, что все студенты группы сдали предмет.
  10. Средний балл студента.
    • по идентификатору
    • для каждого студента
  11. Средний балл средних баллов студентов каждой группы.
  12. Для каждого студента число предметов, которые у него были, число сданных предметов и число несданных предметов.
При выполнении задания укажите его формулировку, запросы в терминах реляционной алгебры и SQL подряд.

Тема 6. Реляционное исчисление

Содержание

  1. Реляционное исчисление
    1. Типы реляционного исчисления
    2. Структура запроса
  2. Исчисление кортежей
    1. Реляционные переменные
    2. Условия
      1. Простые
      2. С кванторами
  3. Связь реляционной алгебры и реляционного исчисления
    1. Выражение алгебры через исчисление
    2. Выражение исчисления через алгебру
    3. Реляционная полнота
  4. Исчисление доменов
    1. Доменные переменные
    2. Условие принадлежности
  5. Язык Datalog
    1. Определение отношений
    2. Реляционная полнота
    3. Рекурсия
  6. Реляционное исчисление и SQL
    1. Структура запроса
    2. Подзапросы
      1. Существования
      2. Вхождения
      3. Условные
      4. Скалярные
    3. Рекурсия

Слайды

HTML

Экзаменационные вопросы

  1. Исчисление кортежей и его реляционная полнота
  2. Исчисление доменов и его реляционная полнота
  3. Datalog и рекурсия

Практические навыки

  1. Построение запросов в терминах исчисления кортежей
  2. Построение запросов в терминах исчисления доменов
  3. Перевод запросов из терминов реляционного исчисления в SQL и обратно
  4. Построение запросов на SQL (с подзапросами)

Библиография

  1. Дейт К. Введение в системы баз данных (глава 8)
  2. Уидом Д., Ульман Д. Основы реляционных баз данных (главы 4 и 5)
  3. Codd E.F. A relational model of data for large shared data banks
  4. Codd E.F. Relational completeness of data base sublanguages

Домашнее задание 6

Составьте запросы в терминах исчисления кортежей и языков Datalog и SQL для базы данных «Деканат», позволяющие получать:
  1. Информацию о студентах, с заданной оценкой по предмету «Базы данных».
  2. Информацию о студентах не имеющих оценки по предмету «Базы данных»:
    • среди всех студентов
    • среди студентов, у которых есть этот предмет
  3. Информацию о студентах, имеющих хотя бы одну оценку у заданного лектора.
  4. Идентификаторы студентов, не имеющих ни одной оценки у заданного лектора.
  5. Студентов, имеющих оценки по всем предметам заданного лектора.
  6. Для каждого студента имя и предметы, которые он должен посещать.
  7. По лектору всех студентов, у которых он хоть что-нибудь преподавал.
  8. Пары студентов, такие, что все сданные первым студентом предметы сдал и второй студент.
  9. Такие группы и предметы, что все студенты группы сдали предмет.
При выполнении задания укажите его формулировку, запросы в терминах исчисления кортежей, на Datalog и SQL подряд.

Тема 7. Изменение данных

Содержание

  1. Операторы
    1. Вставка
    2. Обновление
    3. Объединение
    4. Удаление
  2. Целостность данных
    1. Корректность и целостность
    2. Типы ограничений целостности
      1. Типов и атрибутов
      2. Отношений
      3. Баз данных
    3. Компенсирующие действия
  3. Триггеры
  4. Представления
    1. Объявление и применения
    2. Обновление представлений
    3. Материализованные представления
  5. Управление доступом
    1. Схемы управления доступом
    2. Пользователи и группы
    3. Data Control Language
    4. Представления и права

Слайды

HTML

Экзаменационные вопросы

  1. Целостность данных. Триггеры
  2. Представления и их обновление
  3. Управление доступом к данным

Практические навыки

  1. Построение изменяющих запросов на SQL
  2. Задание ограничений целостности
  3. Работа с представлениями
  4. Управление доступом к данным

Библиография

  1. Дейт К. Введение в системы баз данных (главы 9, 10, 17)
  2. Уидом Д., Ульман Д. Основы реляционных баз данных (глава 6)

Домашнее задание 7

Будем считать, что у студента долг по предмету, если он изучает этот предмет и имеет по нему менее 60 баллов.
  1. Напишите запрос, удаляющий всех студентов, не имеющих долгов.
  2. Напишите запрос, удаляющий всех студентов, имеющих 3 и более долгов.
  3. Напишите запрос, удаляющий все группы, в которых нет студентов.
  4. Создайте view Losers в котором для каждого студента, имеющего долги указано их количество.
  5. Создайте таблицу LoserT, в которой содержится та же информация, что во view Losers. Эта таблица должна автоматически обновляться при изменении таблицы с баллами.
  6. Отключите автоматическое обновление таблицы LoserT.
  7. Напишите запрос (один), которой обновляет таблицу LoserT, используя данные из таблицы NewPoints, в которой содержится информация о баллах, проставленных за последний день.
  8. Добавьте проверку того, что все студенты одной группы изучают один и тот же набор курсов.
  9. Создайте триггер, не позволяющий уменьшить баллы студента по предмету. При попытке такого изменения, баллы изменяться не должны.

Тема 8. Неполные данные и null

Содержание

  1. Что означает null?
  2. Операции с null
  3. Null и SQL

Слайды

HTML

Экзаменационные вопросы

  1. Трактовки null и операции с ним
  2. Операции с null в SQL

Практические навыки

  1. Представление неполных данных

Библиография

  1. Дейт К. Введение в системы баз данных (глава 19)

Часть 2. Технические аспекты баз данных

Тем: 5

Тема 9. Хранение данных и индексирование

Содержание

  1. Подсистема хранения данных
    1. Структура подсистемы хранения данных
      1. Память и жёсткие диски
      2. Страничная организация памяти
      3. Интерфейс с СУБД
    2. Организация данных
      1. Списки страниц
      2. Хранение записей
      3. Сжатие данных
  2. Индексация данных
    1. Индексы
      1. Применение индексов
      2. Структура индекса
      3. Кластеризованные индексы
    2. Хеш-индексы
      1. Простой хеш-индекс
      2. Расширяемый хеш-индекс
    3. Упорядоченные индексы
      1. B-деревья
      2. B+-деревья
    4. Другие типы индексов
      1. Битовые индексы
      2. Индексы на R-деревьях
    5. Применение индексов
      1. Селективность индекса
      2. Покрывающие индексы
      3. Выбор индексов

Слайды

HTML

Экзаменационные вопросы

  1. Подсистема хранения данных.
  2. Индексация данных. Упорядоченные и хеш-индексы.
  3. Индексация данных. Другие типы индексов. Применение индексов

Практические навыки

  1. Выбор индексов в базе данных
  2. Запись индексов на языке SQL

Библиография

  1. Дейт К. Введение в системы баз данных (приложение Г)
  2. Кнут Д. Искусство программирования. Том 3. Сортировка и поиск
  3. Silberschatz A., Korth H.F., Sudarshan S. Database System Concepts

Тема 10. Хранимые процедуры

Содержание

  1. Хранимые процедуры
  2. Операторы
    1. Составной и присваивания
    2. Ветвления
    3. Циклы
    4. Обработка ошибок
  3. Курсоры
  4. Хранимые функции
  5. Управление доступом

Слайды

HTML

Экзаменационные вопросы

  1. Хранимые процедуры и функции. Сходства и различия.
  2. Императивное подмножество SQL
  3. Data Control Language

Практические навыки

  1. Реализация хранимых процедур и функций
  2. Реализация сложных триггеров
  3. Управление правами доступа

Библиография

  1. Дейт К. Введение в системы баз данных (главы 4 и 7)
  2. Уидом Д., Ульман Д. Основы реляционных баз данных (раздел 7.4)
  3. Gulutzan P. MySQL 5.0 Stored Procedures

Тема 11. Транзакции

Содержание

  1. Транзакции
    1. Определение
    2. Свойства транзакций
  2. Восстановление
    1. Сбои и их типы
    2. Журнал транзакций
    3. Классический алгоритм восстановления
    4. Алгоритм ARIES
    5. Повторные сбои
    6. Отказ оборудования
  3. Параллельное исполнение
    1. Изоляция и конфликты
    2. Блокировки
    3. Упорядочиваемость
    4. Восстановление
    5. Гранулярность блокировок
  4. Транзакции в SQL
    1. Уровни изоляции транзакций
      1. Уровни изоляции
      2. Аномалии
    2. Синтаксис
      1. Транзакции
      2. Точки сохранения

Слайды

HTML

Экзаменационные вопросы

  1. Транзакции. Восстановление. Классический алгоритм
  2. Транзакции. Восстановление. Алгоритм ARIES
  3. Транзакции. Параллельное исполнение. Блокировки.
  4. Транзакции. Параллельное исполнение. Уровни изоляции.

Практические навыки

  1. Выбор границ транзакции
  2. Объявление транзакций на языке SQL

Библиография

  1. Дейт К. Введение в системы баз данных (главы 15 и 16)
  2. Уидом Д., Ульман Д. Основы реляционных баз данных (раздел 7.2)
  3. 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
  4. Mohan C. Repeating History Beyond ARIES
  5. Bernstein P.A., Hadzilacos V., Goodman N. Concurrency Control and Recovery in Database Systems

Домашнее задание 8

В базе данных Airline информация о рейсах самолётов задана в виде таблиц Flights(FlightId, FligtTime, PlaneId), Seats(PlaneId, SeatNo).

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

  1. Одно место не может быть продано или забронировано более чем один раз (в том числе, продано и забронировано одновременно).
  2. Бронь можно обновить, после чего она будет действительна ещё одни сутки.
  3. Бронь автоматически снимается через сутки после последнего обновления, но не позже, чем за сутки, до вылета рейса.
  4. Бронирование автоматически закрывается за сутки до времени рейса.
  5. Продажи автоматически закрываются не позднее двух часов до вылета рейса, либо при распродаже всех мест либо по запросу администратора.

Спроектируйте соответствующую базу данных, и напишите запросы:

  1. По номеру рейса — список мест, доступных для продажи и бронирования.
  2. Бронирование места.
  3. Продление брони.
  4. Покупка места.
  5. Покупка места по брони.
  6. Закрытие продаж на рейс по запросу администратора.
  7. Статистика по рейсам: возможность бронирования и покупки, число свободных, забронированных и проданных мест.

Тема 12. Оптимизация запросов

Содержание

  1. Обработка запросов
    1. Разбор запроса
    2. Перезапись запроса
    3. Планировщик и его структура
  2. Перезапись запросов
    1. Минимизация набора операций
    2. Унарные операции
    3. Алгебраические свойства операций
    4. Обработка условий
    5. Семантические оптимизации
  3. Методы исполнения
    1. Унарные операции
    2. Операции над множествами
    3. Соединения
  4. Выбор структуры запроса
    1. Правила планирования операций
    2. Применение динамического программирования
    3. Применение других подходов
  5. Оценка размера и распределения
    1. Статистические характеристики
    2. Оценка худшего случая
    3. Оценка операций
  6. Пример оптимизации запроса
    1. Оценка путей доступа
    2. Оценка соединения

Слайды

HTML

Экзаменационные вопросы

  1. Этапы обработки запроса. Перезапись запросов.
  2. Оптимизация запросов. Выбор структуры исполнения запроса
  3. Оптимизация запросов. Выбор методов исполнения запроса
  4. Оптимизация запросов. Оценка размера и распределения

Практические навыки

  1. Перезапись плана исполнения запроса
  2. Оптимизация плана исполнения запроса
  3. Оценка времени исполнения плана запроса

Библиография

  1. Дейт К. Введение в системы баз данных (глава 18)
  2. Ioannidis Y.E. Query Optimization
  3. Mannino M.V., Chu P., Sager T. Statistical profile estimation in database systems

Тема 13. Распределенные базы данных

Содержание

  1. Секционирование
    1. Цели секционирования
    2. Типы секционирования
    3. Методы секционирования
    4. Управление секциями
  2. Репликация
    1. Цели репликации
    2. Реализация репликации
    3. Применения репликации
  3. Распределенных базы данных
    1. Цели распределения
    2. Распределенные транзакции
    3. Проблемы распределенных баз данных

Слайды

HTML

Экзаменационные вопросы

  1. Секционирование
  2. Репликация
  3. Распределенные транзакции
  4. Распределенные базы данных. Цели и проблемы

Практические навыки

  1. Секционирование данных
  2. Организация репликации данных
  3. Организация распределенных баз данных

Библиография

  1. Дейт К. Введение в системы баз данных (глава 21)
  2. Partitioning in MySQL Reference Manual
  3. Replication in MySQL Reference Manual

Часть 3. Применение баз данных

Тем: 3

Тема 14. Иерархические данные

Содержание

  1. Операции
    1. Базовые представления
    2. Навигационные запросы и пути
    3. Предикаты и статистика
    4. Упорядочивание
    5. Обновление
  2. Модель близости
    1. Представление данных
    2. Базовые представления
    3. Обновление
    4. Характеристики
  3. Вложенные множества
    1. Представление данных
    2. Базовые представления и упорядочивание
    3. Обновление
    4. Характеристики
  4. Модель путей
    1. Представление данных
    2. Базовые представления и упорядочивание
    3. Обновление
    4. Характеристики

Слайды

HTML

Экзаменационные вопросы

  1. Иерархические данные. Модель близости
  2. Иерархические данные. Вложенные множества
  3. Иерархические данные. Модель путей

Практические навыки

  1. Проектирование БД для хранения иерархических данных
  2. Управление иерархическими данными

Библиография

  1. Celko J. Деревья в SQL
  2. Celko J. SQL for Smarties (глава 28)

Тема 15. Временны́е данные

Содержание

  1. Время в SQL
  2. Временны́е данные
  3. Полутемпоральные базы данных
  4. Темпоральные базы данных
    1. Модель интервалов
    2. Модель событий

Слайды

HTML

Экзаменационные вопросы

  1. Временны́е данные. Полутемпоральные базы данных
  2. Временны́е данные. Модель интервалов
  3. Временны́е данные. Модель событий

Практические навыки

  1. Умение работать с временны́ми данными
  2. Проектирование БД для хранения темпоральных данных

Библиография

  1. Дейт К. Введение в системы баз данных (глава 23)
  2. Celko J. SQL for Smarties (глава 4)
  3. Gao D., Jensen C., Snodgrass R., Soo M. Join operations in temporal databases

Тема 16. Object-relational Mapping

Содержание

  1. Ключи и ссылки
    1. Генерация ключей
    2. Ссылки и их типы
  2. Наследование
    1. «Широкая» таблицы
    2. Таблицы конкретных классов
    3. Таблицы классов
  3. Динамичные структуры и модель сущность-атрибут-значение

Слайды

HTML

Экзаменационные вопросы

  1. ORM. Ключи и ссылки
  2. ORM. Наследование
  3. ORM. Модель сущность-атрибут-значение

Практические навыки

  1. Применение различных стратегий генерации ключей
  2. Управление ссылками
  3. Преставление наследования в БД
  4. Представление динамичных структур в БД

Библиография

  1. Дейт К. Введение в системы баз данных (глава 26)
  2. Фаулер М. Архитектура корпоративных программных приложений (главы 3, 13)