- •Реляционные базы данных
- •Цели проектирования баз данных
- •Универсальные отношения
- •Проблемы, связанные с использованием единственного отношения
- •Проблема вставки.
- •Проблема обновления.
- •Проблема удаления.
- •Функциональные зависимости
- •Нормальные формы отношений Первая нормальная форма
- •Вторая нормальная форма
- •Третья нормальная форма
- •Третья усиленная форма или нормальная форма Бойса–Кодда (нфбк)
- •Декомпозиция отношений
- •Избыточные функциональные зависимости. Правила вывода
- •Правило 1. Транзитивные зависимости
- •Пример удаления избыточных зависимостей с помощью правил вывода
- •Общая схема проектирования баз данных методом декомпозиции
- •Построение отношений для базы данных “Начальник отдела”.
- •Выявление функциональных зависимостей
- •Декомпозиция универсального отношения
- •Семантическое моделирование или проектирования баз данных методом “Сущность-связь”
- •Сущности и связи
- •Диаграмма еr–экземпляров:
- •Диаграмма er–типа:
- •Терминология метода “Сущность-связь”
- •Степень связи
- •Класс принадлежности сущности
- •Примеры диаграмм er-типа связей степени 1:1.
- •Примеры диаграмм er-типа связей степени 1:n и n:1
- •Примеры диаграмм er-типа связей степени m:n
- •Порядок или мерность связи
- •Бинарные связи со степенью связи 1: 1
- •Правило 1.
- •Правило 2.
- •Правило 3.
- •Бинарные связи со степенью связи 1: n
- •Правило 4.
- •Правило 5.
- •Бинарные связи степени m:n.
- •Правило 6.
- •Пример проектирования с использованием связей степенью м:n
- •Связи более высокого порядка
- •Правило 7
- •Пример проектирования с использованием связей более высокого порядка
- •Использование ролей
- •Правило 8
- •Пример проектирования с использованием ролей
Правило 4.
Если связь бинарная и степень ее 1:N или N:1, а класс принадлежности n–связной сущности является обязательным, то достаточно (в независимости от класса принадлежности односвязной сущности) выделить два отношения, в одно из которых включаем все атрибуты, характеризующие одну сущность, во второе хранящие другую сущность. Ключами отношения является ключи соответствующих сущностей и к отношению, содержащему в себе атрибуты n–связной сущности добавляем, как атрибут, ключ односвязной сущности.
Рассмотрим ситуацию, когда класс принадлежности n-связной сущности является необязательным:
|
|
|
Рис. 7.36 |
необяз. |
необяз. |
Таблица 7.15 R-универсальное отношение. |
|||||
НП |
Фам |
Тел |
НК |
V |
|
П1 |
Иванов |
32 |
К2 |
34 |
|
П1 |
Иванов |
32 |
К3 |
18 |
|
П2 |
Зайцев |
34 |
- |
- |
|
В данной таблице происходит дублирование информации, кортежи с пустыми полями, следовательно, одним отношением не обойтись, значит, разбиваем на два отношения:
Таблица 7.16 R1 отношение “Преподаватель”. |
Таблица 7.17 R2 отношение “Курс_НП”. |
|||||||
НП |
Фам |
Тел |
|
НК |
V |
НП |
|
|
П1 |
Иванов |
32 |
|
К1 |
24 |
П5 |
|
|
П2 |
Зайцев |
34 |
|
К2 |
12 |
П1 |
|
|
П3 |
Смирнов |
23 |
|
К3 |
11 |
П1 |
|
|
|
|
|
|
К4 |
43 |
П3 |
|
|
|
|
|
|
К5 |
12 |
- |
|
В наших таблицах есть пустые поля, поступаем следующим образом:
Таблица 7.18 R1-отношение |
Таблица 7.19 R2-отношение |
Таблица 7.20 R3–отношение “Читает”. |
|||||||
“Преподаватель”. |
“Курс”. |
||||||||
НП |
Фам |
Тел |
|
НК |
V |
|
НК |
НП |
|
П1 |
Иванов |
32 |
|
К1 |
24 |
|
К1 |
П5 |
|
П2 |
Зайцев |
34 |
|
К2 |
12 |
|
К2 |
П1 |
|
П3 |
Смирнов |
23 |
|
К3 |
11 |
|
К3 |
П1 |
|
|
|
|
|
К4 |
43 |
|
К4 |
П6 |
|
|
|
|
|
К5 |
12 |
|
К5 |
П3 |
|
Рассмотрим класс принадлежности – Преподаватель обязательный:
|
|
|
Рис. 7.37 |
обяз. |
необяз. |
Отличие этого случая от предыдущего в том, что в случае одного отношения не будет пустых полей, но сохранится избыточное дублирование не ключевых атрибутов сущности преподаватель.
В случае двух отношений:
В отношении Преподаватель в поле НК не будет пустых полей, но если Преподаватель читает более одного курса, информация о всех читаемых курсах, за исключением одного, будет утеряна.
Как и в предыдущем случае, в отношении курс в поле НП для начитанных курсов будет пустое поле.
Размещение информации в трех отношениях допустимо.