Тема  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. Armstrong W.W. Dependency Structures of Data Base Relationships
  4. Fagin R. Functional Dependencies in a Relational Database and Propositional Logic
  5. Beeri C., Fagin R., Howard J. A complete axiomatization for functional and multivalued dependencies in database relations
  6. Maier D. Maier D. - Minimum covers in the relational database model

Домашнее задание 3. Функциональные зависимости в БД «Университет»

Дано отношение с атрибутами StudentId, StudentName, GroupId, GroupName, CourseId, CourseName, LecturerId, LecturerName, Mark.

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

Примечания

  1. Не требуется поддержка:
    • нескольких университетов;
    • дисциплин по выбору;
    • дисциплин с необычным распределением по группам (таких как физическая культура и иностранный язык);
    • переводов между группами;
    • нескольких оценок по одной дисциплине.
  2. Многосеместровые дисциплины считаются по семестрам, например: Математический анализ (семестр 1), Математический анализ (семестр 2).

Форма для сдачи ДЗ. Проверка проводится в полуавтоматическом режиме, поэтому строго соблюдайте указанные форматы.

В рамках проекта:

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