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