Моделирование данных ERD Уровни проектирование БД: 1) логический 2) физический При логическом проектировании наиболее важна проблема разработки структур данных Подходы к проектированию структур данных 1. Нормализация данных (метод нормальных форм) 2. Моделирование структур данных 3 Алгоритм нормализации имеет серьезные недостатки: • Первоначальное размещение всех атрибутов в одном отношении является очень неестественной операцией. Интуитивно разработчик сразу проектирует несколько отношений в соответствии с обнаруженными сущностями • Невозможно сразу определить полный список атрибутов. Пользователи имеют привычку называть разными именами одни и те же вещи или наоборот, называть одними именами разные вещи • Для проведения процедуры нормализации необходимо выделить зависимости атрибутов, что тоже очень нелегко, т.к. необходимо явно выписать все зависимости, даже те, которые являются очевидными В реальном проектировании структуры базы данных применяются другой метод семантическое моделирование Семантическое моделирование представляет собой моделирование структуры данных, опираясь на смысл этих данных В качестве инструмента семантического моделирования используются различные варианты диаграмм сущность-связь (ER - Entity-Relationship) ER-проектирование, или проектирование БД методом «сущность-связь» (Entity-Relation), представляет собой один из этапов моделирования структур данных Метод «сущность-связь» разработан Ченом (Chen) в 1976 году с целью упрощения задачи проектирования БД Основные понятия метода Сущность – объект, информация о котором хранится в БД Экземпляры сущности отличаются друг от друга и однозначно идентифицируются Названиями сущностей являются, как правило, существительные Примеры: ПРЕПОДАВАТЕЛЬ, ПРЕДМЕТ, КАФЕДРА, ГРУППА 8 Атрибут сущности – свойство сущности (аналогично понятию атрибута в отношении) Ключ сущности – атрибут или набор атрибутов, используемый для идентификации экземпляра сущности 9 Связь двух или более сущностей – предполагает зависимость между атрибутами этих сущностей Название связи обычно представляется глаголом Примеры бинарной связи: ПРЕПОДАВАТЕЛЬ ЧИТАЕТ ПРЕДМЕТ, ПРЕПОДАВАТЕЛЬ ПРЕПОДАЕТ-В ГРУППЕ 10 Пример диаграммы ER-экземпляров 11 Пример диаграммы ER-типа 12 Степень связи является характеристикой связи между сущностями: 1:1, 1:M, M:1, M:N Класс принадлежности сущности является обязательным (О), если все экземпляры этой сущности должны участвовать в рассматриваемой связи Класс принадлежности сущности является необязательным (Н), если экземпляры сущности могут не участвовать в связи 13 Правила формирования отношений Степень связи 1:1 Степень связи 1:M Степень связи M:N 14 Рис.4. Диаграммы для связи типа 1:1 варианта О-О 15 ПРАВИЛО 1. Если степень бинарной связи равна 1:1 и класс принадлежности обеих сущностей является обязательным, то требуется только одно отношение. Первичным ключом этого отношения может быть ключ любой из двух сущностей ПРЕПОДАВАТЕЛЬ (ФИО, Должн, Каф, НП, Пред) или ПРЕПОДАВАТЕЛЬ (НП, ФИО, Должн, Каф, Пред) 16 Рис.2. Диаграммы для связи типа 1:1 варианта О-Н 17 18 ПРАВИЛО 2. Если степень бинарной связи равна 1:1 и класс принадлежности одной сущности является обязательным, а другой - необязательным, то необходимо построение двух отношений. Под каждую сущность необходимо выделение одного отношения, при этом ключ сущности должен служить первичным ключом для соответствующего отношения. Кроме того, ключ сущности, для которого класс принадлежности является необязательным, добавляется в качестве атрибута в отношение, выделенное для сущности с обязательным классом принадлежности ПРЕПОДАВАТЕЛЬ (ФИО, Должн, Каф, НП) ПРЕДМЕТ (НП, Пред) 19 Рис.3. Диаграммы для связи типа 1:1 варианта Н-О ПРЕПОДАВАТЕЛЬ (ФИО, Должн, Каф) ПРЕДМЕТ (НП, Пред, ФИО) 20 Рис.1. Диаграммы для связи типа 1:1 варианта Н-Н 21 1 22 1 23 24 ПРАВИЛО 3. Если степень бинарной связи равна 1:1 и класс принадлежности ни одной сущности не является обязательным, то необходимо использовать три отношения: по одному для каждой сущности, ключи которых служат в качестве первичных в соответствующих отношениях, и одного для связи. Среди своих атрибутов отношение, выделяемое связи, будет иметь по одному ключу сущности от каждой сущности ПРЕПОДАВАТЕЛЬ (ФИО, Должн, Каф) ПРЕДМЕТ (НП, Пред) ЧИТАЕТ (ФИО, НП) или ЧИТАЕТ (НП, ФИО) Рис.7. Диаграммы для связи типа 1:M варианта Н-О 26 Рис.8. Диаграммы для связи типа 1:M варианта О-О 27 1 28 ПРАВИЛО 4. Если степень бинарной связи равна 1:M и класс принадлежности m-связной сущности является обязательным, то достаточным является использование двух отношений, по одному на каждую сущность, при условии, что ключ сущности каждой сущности служит в качестве первичного ключа для соответствующего отношения. Дополнительно ключ 1-связной сущности должен быть добавлен как атрибут в отношение, отводимое m-связной сущности ПРЕПОДАВАТЕЛЬ (ФИО, Должн, Каф) ПРЕДМЕТ (НП, Пред, ФИО) 29 Рис.5. Диаграммы для связи типа 1:M варианта Н-Н 30 Рис.6. Диаграммы для связи типа 1:M варианта О-Н 1 32 33 ПРАВИЛО 5. Если степень бинарной связи равна 1:M и класс принадлежности m-связной сущности является необязательным, то необходимо формирование трех отношений: по одному для каждой сущности, причем ключ каждой сущности служит первичным ключом соответствующего отношения, и одного отношения для связи. Отношение, выделяемое для связи должно иметь среди своих атрибутов ключ от каждой сущности ПРЕПОДАВАТЕЛЬ (ФИО, Должн, Каф) ПРЕДМЕТ (НП, Пред) ЧИТАЕТ (НП, ФИО) Рис.13. Диаграммы для связи типа M:N варианта H-H 35 Рис.14. Диаграммы для связи типа M:N варианта O-H 36 Рис.15. Диаграммы для связи типа M:N варианта H-O 37 Рис.16. Диаграммы для связи типа M:N варианта O-O ПРАВИЛО 6. Если степень бинарной связи равна m:n, то для хранения данных необходимо три отношения: по одному для каждой сущности, причем ключ каждой сущности используется в качестве первичного ключа соответствующего отношения, и одного отношения для связи. Последнее отношение должно иметь в числе своих атрибутов ключ каждой сущности ПРЕПОДАВАТЕЛЬ (ФИО, Должн, Каф) ПРЕДМЕТ (НП, Пред) ЧИТАЕТ (НП, ФИО) 39 Алгоритм ER-проектирования 1. Выделение сущностей и связей между ними 2. Построение диаграмм ER-типа с учетом всех сущностей и связей 3. Формирование набора предварительных отношений с указанием первичного ключа для каждого отношения 4. Добавление неключевых атрибутов в отношения 5. Приведение предварительных отношений к НФБК 41