- •Реляционные базы данных
- •Цели проектирования баз данных
- •Универсальные отношения
- •Проблемы, связанные с использованием единственного отношения
- •Проблема вставки.
- •Проблема обновления.
- •Проблема удаления.
- •Функциональные зависимости
- •Нормальные формы отношений Первая нормальная форма
- •Вторая нормальная форма
- •Третья нормальная форма
- •Третья усиленная форма или нормальная форма Бойса–Кодда (нфбк)
- •Декомпозиция отношений
- •Избыточные функциональные зависимости. Правила вывода
- •Правило 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
- •Пример проектирования с использованием ролей
Правило 1.
Если связь бинарна, степени 1:1 и класс принадлежности обеих сущностей является обязательным, то требуется только одно отношение. В это отношение включаются все атрибуты обеих сущностей. Ключом данного отношения может быть ключ любой из двух сущностей.
Рассмотрим ситуацию, когда класс принадлежности одной из сущностей является необязательным:
|
|
Рис. 7.25 ER-диаграмма для бинарной связи ‘Преподаватель читает Курс’ степени 1:1 и Класс принадлежности Преподаватель – обязательным, а Курс не обязательным |
Таблица 7.2 R Универсальное отношение. |
|
||||
НП |
Фам. |
Тел. |
НК |
V |
Если использовать единственное отношение, в нем могут появляться кортежи с пустыми полями (в том случае, если в реальной ситуации возникают курсы никем не читаемые). Это недопустимо. |
П1 |
Иванов |
33-22-11 |
К2 |
24 |
|
П2 |
Минин |
56-98-76 |
К4 |
36 |
|
П3 |
Орлов |
53-87-98 |
К1 |
18 |
|
- |
- |
- |
К3 |
54 |
Попытаемся использовать для хранения информации два отношения. Первое отношение будет хранить информацию о сущности ПРЕПОДАВАТЕЛЬ, второе отношение будет хранить информацию о сущности КУРС. При этом к отношению ПРЕПОДАВАТЕЛЬ необходимо добавить еще одно поле, где будет храниться значение ключа сущности КУРС, т.е. номер курса читаемого данным преподавателем. Если мы попробуем добавить поле НП к таблице КУРС, то потерпим не удачу, так как пустые строчки не исчезнут.
Таблица 7.3 R1 отношение “Преподаватель_НК”. |
Таблица 7.4 R2 отношение “Курс”. |
|||||||
НП |
Фам. |
Тел. |
НК |
|
НК |
V |
|
|
П1 |
Иванов |
33-22-11 |
К2 |
|
K1 |
18 |
|
|
П2 |
Минин |
56-98-76 |
К4 |
|
K2 |
24 |
|
|
П3 |
Орлов |
53-87-98 |
К1 |
|
K3 |
56 |
|
|
|
|
|
|
|
K4 |
36 |
|
Преподаватель (НП, Фам, Тел., НК)
Курс (НК, V)
Правило 2.
Если связь бинарна, степени 1:1 и класс принадлежности одной сущности является обязательным, а другой необязательным, информацию необходимо хранить в двух отношениях. Под каждую сущность необходимо выделить одно отношение. Кроме того, к отношению, порожденному сущностью, класс принадлежности которой является обязательным, необходимо добавить один атрибут – являющийся ключом сущности, класс принадлежности которой является необязательным.При этом ключом каждого отношения будет ключ соответствующей сущности.
Рассмотрим ситуацию, когда классы принадлежности обеих сущностей являются необязательными:
|
|
Рис. 7.26 ER-диаграмма для бинарной связи ‘Преподаватель читает Курс’ степени 1:1 и классом принадлежности обеих сущностей необязательным |
Таблица 7.5 R-универсальное отношение. |
Пустые поля возникают по двум причинам – из-за наличия курсов, никем не читаемых и из-за наличия ничего не читающих преподавателей. Невозможно использование одного или двух отношений:
|
|||||
НП |
Фам. |
Тел. |
НК |
V |
||
П1 |
Иванов |
33-22-11 |
К2 |
24 |
||
П2 |
Минин |
56-98-76 |
- |
- |
||
П3 |
Орлов |
53-87-98 |
К4 |
36 |
||
П4 |
Петров |
52-78-00 |
К1 |
18 |
||
- |
- |
- |
К3 |
24 |
Таблица 7.6 R1 отношение “Преподаватель_НК”. |
Таблица 7.7 R2 отношение “Курс_НП”. |
|||||||||
НП |
Фам. |
Тел. |
|
НК |
|
НК |
V |
|
НП |
|
П1 |
Иванов |
33-22-11 |
|
К3 |
|
К1 |
18 |
|
П4 |
|
П2 |
Минин |
56-98-76 |
|
- |
|
К2 |
24 |
|
- |
|
П3 |
Орлов |
53-87-98 |
|
К4 |
|
К3 |
56 |
|
П1 |
|
П4 |
Петров |
52-78-00 |
|
К1 |
|
К4 |
36 |
|
П3 |
|
В таб.7.6 и таб.7.7 также возникают пустые поля, если атрибут НК добавить к R1 возникнет пустое поле там, где преподаватель ни чего не читает. Если добавить атрибут НП к R2, возникнут пустые поля там, где присутствуют не читаемые курсы.
Попробуем использование трех отношений:
Таблица 7.8 R3 |
Таблица 7.9 R4 |
Таблица 7.10 R5 |
|||||||||
отношение “Преподаватель”. |
отношение “Курс”. |
отношение “Читает”. |
|||||||||
НП |
Фам. |
Тел. |
|
НК |
V |
|
НП |
НК |
|
||
П1 |
Иванов |
33-22-11 |
|
К1 |
18 |
|
П1 |
К3 |
|
||
П2 |
Минин |
56-98-76 |
|
К2 |
24 |
|
П3 |
К4 |
|
||
П3 |
Орлов |
53-87-98 |
|
К3 |
56 |
|
П4 |
К1 |
|
||
П4 |
Петров |
52-78-00 |
|
К4 |
36 |
|
|
|
|
Отношения ПРЕПОДАВАТЕЛЬ и КУРС находятся в НФБК. Отношение ЧИТАЕТ содержит неповторяющиеся значения атрибутов НП и НК, а также не содержит пустых полей.
Два детерминанта и два возможных ключа – отношение находится в НФБК.
|
Рис. 7.27 Диаграмма функциональных зависимостей R5, отношения ‘Читает’ |