- •Проектирование баз данных. Лекция 1. Введение. Банки и базы данных. Архитектура субд.
- •Хранимая база данных (Внутренняя модель)
- •Понятие проектирования баз данных. Различные подходы к проектированию бд.
- •Различные подходы к проектированию данных.
- •Сетевая модель данных.
- •Лекция 2.
- •Реляционные операции над отношениями.
- •Лекция 3. Аномалии хранения данных.
- •Функциональная зависимость.
- •Концептуальное проектирование данных. Нормализация. Понятие функциональной зависимости. Теорема Хита.
- •Теорема Хита.
- •Лекция 4. Пятая нф. Универсальное отношение. I и II нф.
- •Первая нормальная форма.
- •Вторая нормальная форма.
- •Третья нормальная форма. Транзитивные зависимости.
- •Лекция 5. Нормальная форма Бойса-Кодда. Четвертая нормальная форма. «Перенормализованные» модели данных.
- •Четвертая нормальная форма.
- •«Перенормализованные» модели данных.
- •Пример проектирования бд.
- •Отношение “Аптека”
- •Отношение “Лекарство”
- •Отношение “Наличие лекарств”
- •Отношение “Поставщик”
- •Отношение “Лицензия поставщика”
- •Отношение “Запрос на поставку”
- •Лекция 6. Проектирование в терминах «Сущность – связь»
- •Сущности и связи.
- •Классификация связей
- •Предварительные отношения для бинарных связей степени 1:1.
- •Лекция 7. Предварительные отношения для степени связи 1:n и m:n.
- •Предварительные отношения для степени связи m:n.
- •Лекция 14. Предварительные отношения для связей высших порядков. Использование ролевых отношений.
- •Студент
- •Использование ролевых отношений.
- •Рабочий
- •Подчиненный
- •Лекция 8. Развитой пример применения e-r проектирования.
- •Сопоставление методик нормализации и e-r проектирования. Физическое проектирование.
- •Физическое проектирование.
- •Ограничения целостности.
- •Заключение.
Лекция 7. Предварительные отношения для степени связи 1:n и m:n.
Как было показано, для связи степени 1:1 форма предвари-тельных отношений зависит от класса принадлежности обеих сущностей. В случае 1:N связи определяющим фактором для генерации предварительных отношений является класс принадлежности n – связной сущности; класс принадлежности односвязной сущности не имеет значения.
В нашем примере степень связи 1:N будет соответствовать предположению, что каждый преподаватель может вести несколько курсов, но каждый курс по- прежнему читается лишь одним преподавателем. Обязательный класс принадлежности для сущности «Курс» означает, что за каждым курсом обязательно закреплен один преподаватель. Приведем E-R диаграмму и экземпляры отношений для этого случая.
Преподаватель
Курс
Таб. № |
ФИО |
|
|
|
Курс |
Колич. часов |
|
Иванов |
|
|
|
Математика |
120 |
|
Петров |
|
|
|
Физика |
80 |
|
Сидоров |
|
|
|
Философия |
150 |
245 |
Кузнецов |
|
|
|
Сопромат |
90 |
|
|
|
|
|
Механика |
120 |
|
|
|
|
|
Информатика |
150 |
Рис. 24. Отношения, связанные степенью связи 1:N с обязательным классом принадлежности многосвязной сущности.
Из рис. 24 видно, что передать подобную связь одним отношением и при этом избежать аномалий обработки данных невозможно. Однако реляционное представление из двух отношений в данном случае вполне работоспособно.
Если степень связи равна 1:N и класс принадлежности n – связной сущности является обязательным, то достаточно использовать два отношения, по одному на каждую сущность. Ключ каждой сущности должен стать первичным ключом отношения. Кроме того, первичный ключ односвязной сущности должен быть добавлен как атрибут в отношение, реализующее многосвязную сущность.
Приведем экземпляры отношений для данного примера.
Преподаватель Курс
Таб. № |
ФИО |
|
Курс |
Колич. часов |
Таб. № |
101 |
Иванов |
|
Математика |
120 |
101 |
120 |
Сидоров |
|
Физика |
80 |
101 |
203 |
Кузнецов |
|
Философия |
150 |
203 |
245 |
Петров |
|
Сопромат |
90 |
245 |
|
|
|
Механика |
120 |
245 |
|
|
|
Информатика |
150 |
120 |
Теперь опять изменим начальные предположения. Пусть каждый преподаватель по - прежнему ведет несколько курсов, и каждый курс читается не более чем одним преподавателем. Предположим, что возможно существование курсов, за которыми не закреплен преподаватель. Приведем E-R диаграмму и экземпляры отношений для этого случая.
Преподаватель
Курс
Таб. № |
ФИО |
|
|
|
Курс |
Колич. часов |
101 |
Иванов |
|
|
|
Математика |
120 |
120 |
Сидоров |
|
|
|
Физика |
80 |
203 |
Петров |
|
|
|
Философия |
150 |
245 |
Кузнецов |
|
|
|
Сопромат |
90 |
|
|
|
|
|
Механика |
120 |
|
|
|
|
|
Информатика |
150 |
Рис. 25. Отношения, связанные степенью связи 1:N с необязательным классом принадлежности многосвязной сущности.
Если, как в предыдущем случае, попытаться представить такой набор сущностей лишь двумя отношениями, то в экземплярах отношений станет возможным появление пустых полей, что говорит о возможности появления аномалий.
Преподаватель Курс
Таб. № |
ФИО |
|
Курс |
Колич. часов |
Таб. № |
101 |
Иванов |
|
Математика |
120 |
101 |
120 |
Сидоров |
|
Физика |
80 |
101 |
203 |
Кузнецов |
|
Философия |
150 |
|
245 |
Петров |
|
Сопромат |
90 |
245 |
|
|
|
Механика |
120 |
245 |
|
|
|
Информатика |
150 |
|
В данном случае не обойтись без трех отдельных отношений, подобно ранее рассмотренному случаю связи 1:1 и необязательным с двух сторон классом принадлежности.
Если степень бинарной связи равна 1:N и класс принадлежности многосвязной сущности является обязательным, то необходимо формирование трех отношений. По одному отношению формируется для каждой сущности, при этом ключ сущности является первичным ключом отношения. Еще одно отношение формируется для связи; ключом отношения связи является комбинация ключей сущностей.
Пример экземпляров полученных отношений показан на рис. 26.
Преподаватель Читает Курс
Таб. № |
ФИО |
|
Курс |
Таб. № |
|
Курс |
Колич. часов |
101 |
Иванов |
|
Математика |
101 |
|
Математика |
120 |
120 |
Сидоров |
|
Сопромат |
120 |
|
Физика |
80 |
203 |
Кузнецов |
|
Физика |
101 |
|
Философия |
150 |
245 |
Петров |
|
Механика |
120 |
|
Сопромат |
90 |
|
|
|
|
|
|
Механика |
120 |
|
|
|
|
|
|
Информатика |
150 |
Рис. 26. Экземпляры отношений для схемы рис. 25.
Рассмотрим отношение «Читает», которое реализует связь между сущностями. Ключом его является сочетание полей «Курс» и «Таб. №». Здесь нельзя не оговорить ограничения, накладываемые на составные части этого ключа, так и на весь ключ. Сформулируем эти требования.
Сочетание значений атрибутов «Курс» и «Таб. №» должно быть уникальным для данного отношения. Это требование следует из того, что эти поля образуют первичный ключ отношения.
Каждое значение поля «Курс» должно принадлежать домену атрибута «Курс» отношения «Курс». В противном случае это значение будет указывать на несуществующий курс, что недопустимо.
Каждое значение поля «Курс» должно встречаться в этом отношении не более одного раза. Это требование отражает тот факт, что каждый преподаватель читает не более одного курса, другими словами – реализует степень связи.
Каждое значение поля «Таб. №» должно принадлежать множеству значений атрибута «Таб. №» отношения «Преподаватель» из тех же соображений, по которым значение поля «Курс» должно принадлежать домену атрибута «Курс» отношения «Курс».
Если сравнить эти требования с тем, что было сформулировано для случая связи 1:1 с необязательным для обеих сущностей классом принадлежности, то можно увидеть, что снято требование на уникальность поля «Таб. №». Это и отражает тот факт, что преподаватель может читать несколько курсов.

101
120
203