
- •Конспект лекций
- •Раздел «бд. Субд. Основные понятия» 8
- •2. Жизненный цикл баз данных
- •3 Эксплуатационные характеристики базы данных
- •Раздел «бд. Субд. Основные понятия»
- •4. Управление параллельным доступом.
- •Раздел «бд. Субд. Основные понятия» Лекция №3 Место баз данных в архитектуре ис
- •1 Локальные ис
- •2 Ис в файл-серверной архитектуре
- •3 Ис в клиент-серверной архитектуре
- •4 Двухзвенные модели архитектуры
- •5 Трехзвенные модели
- •6 Монитор транзакций
- •7 Ис в Internet и intranet
- •Раздел «Концептуальный уровень проектирования бд» Лекция №4 Концептуальная модель данных. Сущности, атрибуты, ключи
- •1 Основные понятия
- •2 Задачи моделирования данных
- •3 Сущности
- •4 Атрибуты
- •5 Ключи
- •Раздел «Концептуальный уровень проектирования бд» Лекция №5 Концептуальная модель данных. Связи. Классы и подклассы. Концептуальная схема
- •1 Связи
- •2 Классы и подклассы
- •3 Источники данных для концептуального проектирования
- •4 Построение концептуальной схемы
- •5 Анализ концептуальной модели
- •Раздел «Логический уровень проектирования бд»
- •3.3 Реляционная модель
- •3.4 Объектно-реляционная модель
- •3.5 Объектно-ориентированная модель данных
- •3.6 Модель данных на основе xml
- •Раздел «Реляционная теория бд» Лекция №7 Реляционная модель данных. Основные понятия
- •1 Словарь терминов
- •2 Целостность реляционной модели
- •3 Математическое описание реляционной модели
- •Раздел «Реляционная теория бд» Лекция №8 Реляционная алгебра и реляционное исчисление
- •1 Реляционная алгебра. Теоретико-множественные операции
- •2 Реляционная алгебра. Специальные реляционные операции
- •3 Дополнительные реляционные операции
- •4 Примеры записи запросов
- •5 Реляционное исчисление
- •Раздел «Реляционная теория бд» Лекция №9 Нормализация реляционной модели. Функциональные зависимости
- •1 Что такое нормализация?
- •2 Функциональная зависимость
- •3 Теоремы о функциональных зависимостях
- •5 Алгоритм нормализации отношений. Метод декомпозиции
- •6 Другие нормальные формы
- •Раздел «Реляционная теория бд»
- •1.2 Связь частичная для одной из сущностей
- •1.3 Связь частичная для обеих сущностей
- •2 Реализация бинарной связи 1:m («один-ко-многим»)
- •2.1 Связь обязательная для m-связной сущности
- •2.2 Связь частичная для m-связной сущности
- •3 Бинарная связь n:m («многие-ко-многим»)
- •4 Связи более высокого порядка (n-арные)
- •5 Классы и подклассы
- •Раздел «Реляционная теория бд» Лекция №12 Стандарт idef1x
- •1 Стандарты моделирования данных
- •2 Основные понятия стандарта idef1x
- •3 Графический язык idef1x
- •Раздел «Физический уровень проектирования бд» Лекция №13 Физическая модель данных
- •1 Исходные данные для физического проектирования
- •2 Возможная методика перехода к физической модели на примере реляционной модели
- •2.1 Преобразование отношений в таблицы
- •2.2 Преобразование атрибутов в поля (столбцы) таблиц
- •2.3 Преобразование доменов в типы данных
- •2.4 Первичные ключи
- •2.5 Порядок расположения столбцов
- •2.6 Создание ссылочных ограничений
- •3 Факторы, влияющие на производительность бд
- •3.1 Индексы
- •3.2 Денормализация
- •Раздел «Язык sql» Лекция №14 Введение в язык sql. Команда Select
- •1 Стандарты
- •2 Возможности sql
- •3 Запросы на выборку данных
- •4 Примеры запросов
- •Раздел «Язык sql» Лекция №15 Команды определения данных
- •1 Команда create table
- •2 Команда alter table
- •3 Поддержка ограничений целостности
- •4. Редактирование записей в таблице
- •Раздел «Язык sql» Лекция №16 Дополнительные аспекты реляционной технологии
- •1 Проблемы, требующие решения
- •2 Запросы
- •3 Представления
- •4 Курсоры
- •5 Хранимые процедуры
- •6 Триггеры
- •7 Функции, определяемые пользователем
- •8 Транзакции
3 Бинарная связь n:m («многие-ко-многим»)
Пусть преподаватель читает много дисциплин или ничего, и каждая дисциплина читается несколькими преподавателями или никем (рисунок 6).
Рисунок 5 – Связь необязательная для m-связной сущности
Очевидно, что в этом случае устранить избыточность можно только путём создания трёх отношений:
ПРЕПОДАВАТЕЛЬ (Табельный номер, ФИО, Кафедра);
ДИСЦИПЛИНА (Код дисциплины, Название);
ЧИТАЕТ (Табельный номер, Код дисциплины).
В отношении ЧИТАЕТ между внешними ключами не существует функциональной зависимости и свойством уникальности обладает только их сочетание, поэтому первичным ключом отношения для связи становится составной ключ.
Если предположить, что связи ЧИТАЕТ и ЧИТАЕТСЯ носят обязательный характер, то рассуждая аналогично предыдущему, получим такой же результат: три отношения. Поэтому правило для связи n:m не включает характеристику обязательности связи. В дальнейшем для связей этого типа можно использовать сплошную линию независимо от обязательности.
Правило. Если связь n:m, то строится по одному отношению для каждой сущности и одно отношение для связи; отношение для связи содержит ключи обеих сущностей, первичным ключом отношения для связи является ключ, состоящий из ключей обеих сущностей; отношение для связи может иметь собственные неключевые атрибуты.
4 Связи более высокого порядка (n-арные)
Пусть концептуальная модель представлена следующим фрагментом (рисунок 7):
Рисунок 6 – Связь более высокого порядка
В этом случае для получения 3НФ необходимо создать 4 отношения:
ПРЕПОДАВАТЕЛЬ (Табельный номер, ФИО, Кафедра);
ДИСЦИПЛИНА (Код дисциплины, Название);
НАПРАВЛЕНИЕ (Шифр направления, Название направления);
ОБУЧАЕТ (Табельный номер, Код дисциплины, Код специальности).
Правило. Если связь n-арная, то строится по одному отношению для каждой сущности и одно отношение для связи; отношение для связи содержит ключи всех сущностей, первичным ключом отношения для связи является ключ, состоящий из ключей всех сущностей; отношение для связи может иметь собственные неключевые атрибуты.
5 Классы и подклассы
Переход от иерархии сущностей к отношениям реляционной модели может быть осуществлён по следующему правилу:
для каждой сущности в иерархии строится отдельное отношение.
Рассмотрим пример (рисунок 8).
Рисунок 8 – Классы и подклассы
Создадим следующие отношения:
РАБОТАЮЩИЙ (Табельный номер, Ф, И, О, Дата рождения);
МАСТЕР (Табельный номер мастера, Оклад, Телефон);
РАБОЧИЙ (Табельный номер рабочего, Тарифная ставка, табельный номер мастера).
Полученные отношения находятся в 3НФ, в них отсутствует избыточность.
На практике полученная модель имеет ряд недостатков.
Предположим, необходимо реализовать следующий запрос: вывести сведения о сотруднике Иванове И.И.
Алгоритм выполнения этого запроса в случае, когда должность сотрудника неизвестна, требует предварительного объединения всех отношений и применения к полученному отношению операции селекции. Если количество подклассов в иерархии велико, то запрос будет выполняться медленно.
Для ускорения поиска можно в отношении РАБОТАЮЩИЙ предусмотреть поле Должность. Значение в этом поле точно определит, в каком отношении необходимо продолжить поиск. Предположим, в результате запроса к отношению РАБОТАЮЩИЙ установлено, что атрибут Должность у Иванова И.И. имеет значение "Мастер", тогда поиск необходимо провести в отношении МАСТЕР. Такой алгоритм нельзя реализовать средствами реляционной алгебры.
Вывод. Реляционная алгебра не поддерживает операции над классами и подклассами. Окончательное решение по способу реализации иерархий сущностей принимается на физическом этапе проектирования.
Вернуться в содержание