Похожие презентации:
Презентация к лекции №2
1. Лекция №2. Концептуальное моделирование. ER-диаграммы.
Лекция №2. Концептуальноемоделирование. ERдиаграммы.
2. Оглавление
§2.1 Концептуальное моделирование§2.2 Сущности, атрибуты, связи (1:1, 1:M, M:N)
§2.2 Ограничения целостности
§2.3 Нотации ER-диаграмм
§2.3.1 Нотация Чена
§2.3.2 Нотация Crow’s Foot («Вороньи лапы»)
§2.4 Обобщение и специализация
§2.4 Сильные и слабые сущности
3. §2.1 Концептуальное моделирование
Концептуальная модель данных (КМД) — это абстрактноепредставление предметной области.
Она описывает:
- Объекты (сущности)
- Их свойства (атрибуты)
- Взаимосвязи между ними
КМД не зависит от конкретной СУБД и служит основой для логического
и физического проектирования.
4. §2.1 Концептуальное моделирование
5. §2.1 Концептуальное моделирование
6. §2.1 Цели концептуального моделирования
Концептуальная модель необходима для:- Чёткого понимания бизнес-требований и облегчения общения
между аналитиками, разработчиками и пользователями.
- Формирования основы для логического и физического
моделирования.
- Абстрагирования от деталей реализации базы данных, что
упрощает проектирование.
7. §2.2 Сущность
Сущность — это объект или понятие реального мира, котороеможно отличить от других и о котором нужно хранить
информацию.
Примеры:
- Материальные: Студент, Книга, Автомобиль.
- Абстрактные: Заказ, Сессия, Должность.
На ER-диаграмме сущность изображается в виде прямоугольника с
именем (существительное в ед. числе), либо в виде таблицы
8. §2.2 Типы и экземпляры сущностей
Тип сущности — это категория объектов с одинаковымисвойствами.
Например: тип сущности «Студент» описывает всех студентов вуза.
Экземпляр сущности — это конкретный объект данного типа.
Например: Иван Петров — это экземпляр типа сущности «Студент».
Тип — это шаблон. Экземпляр — это конкретная запись по этому
шаблону.
9. §2.2 Атрибуты
Атрибут — это характеристика или свойство, описывающее сущность.Пример для сущности «Студент»:
- ФИО, Дата рождения, Номер зачётной книжки, Группа.
Типы атрибутов:
• Простые (атомарные): возраст, телефон.
• Составные: адрес (город, улица, дом).
• Однозначные: ФИО (одно значение).
• Ключевые: Номер зачётной книжки (уникально идентифицирует).
10. §2.2 Ключевые атрибуты
Ключевой атрибут (или первичный ключ) — это атрибут (или набор атрибутов),который однозначно идентифицирует каждый экземпляр сущности.
Свойства первичного ключа:
- Уникальность: каждое значение должно быть уникальным.
- Обязательность: не может быть пустым (NULL).
Примеры:
- Для «Студента»: Номер зачётной книжки.
- Для «Книги»: ISBN.
- Для «Заказа»: Номер заказа.
11. §2.2 Связи
Связь — это отношение или ассоциация между двумя или более сущностями.Связи показывают, как объекты взаимодействуют друг с другом в предметной
области.
Примеры:
- Студент ЗАЧИСЛЕН В Группу.
- Клиент ОФОРМИЛ Заказ.
- Автор НАПИСАЛ Книгу.
На диаграмме связь изображается линией, соединяющей сущности.
12. §2.2 Кардинальность: Отношение 1:1
«Один к Одному» (1:1)Одному экземпляру сущности A соответствует не более одного
экземпляра сущности B, и наоборот.
Примеры:
- Один человек имеет один паспорт.
- Один сотрудник может иметь одну корпоративную карточку.
- Один заказ может иметь один уникальный промокод.
Редкий тип связи, часто объединяют в одну сущность.
13. §2.2 Кардинальность: Отношение 1:M
«Один ко Многим» (1:M)Одному экземпляру сущности A может соответствовать много
экземпляров сущности B, но каждому экземпляру B соответствует только
один экземпляр A.
Примеры:
- Один отдел имеет много сотрудников.
- Один автор написал много книг.
- Один клиент сделал много заказов.
Самый распространённый тип связи в реляционных базах данных.
14. §2.2 Кардинальность: Отношение M:N
«Многие ко Многим» (M:N)Одному экземпляру сущности A может соответствовать много
экземпляров сущности B, и наоборот.
Примеры:
- Один студент изучает много предметов, и один предмет изучают много
студентов.
- Один покупатель покупает много товаров, и один товар покупают
много покупателей.
В реляционных БД такая связь реализуется через третью
(ассоциативную) сущность (например, «Зачисление» или «Покупка»).
15. §2.2 Ограничения целостности
Ограничение целостности — это набор правил, гарантирующихточность, согласованность и достоверность данных в БД.
Основные типы:
- Ограничения домена
- Ограничения сущности
- Ограничения ссылочной целостности
- Бизнес-правила
16. §2.2 Ограничения домена
Определяют допустимый набор значений для конкретного атрибута.Примеры:
- Возраст: от 0 до 150 (целое число).
- Пол: только 'М' или 'Ж'.
- Email: должен содержать символ '@'.
- Дата рождения: не может быть в будущем.
Цель: предотвратить ввод некорректных или бессмысленных данных.
17. §2.2 Ограничения сущности
Гарантируют уникальность каждой записи в таблице.Реализуются с помощью первичного ключа (Primary Key).
Правила:
- Значение первичного ключа должно быть уникальным для каждой
строки.
- Значение первичного ключа не может быть пустым (NULL).
Если правила нарушены, СУБД выдаст ошибку: "primary key violation".
18. §2.2 Ограничения ссылочной целостности
Обеспечивают согласованность данных в связанных таблицах.Реализуются с помощью внешнего ключа (Foreign Key).
Правило: значение внешнего ключа в подчинённой таблице должно
существовать как значение первичного ключа в главной таблице.
Пример: В таблице «Заказы» поле «ID_Клиента» (внешний ключ)
должно ссылаться на существующий «ID» в таблице «Клиенты»
(первичный ключ).
19. §2.2 Бизнес-правила
Отражают специфические требования предметной области, которые непокрываются стандартными ограничениями.
Примеры:
- Заработная плата сотрудника не может превышать зарплату его
руководителя.
- Скидка на заказ не может быть больше 50%.
- Возраст клиента для оформления кредита должен быть от 21 до 65 лет.
- Общая сумма заказа не может быть отрицательной.
Реализуются с помощью триггеров, хранимых процедур или на уровне
приложения.
20. §2.3 Нотации ER-диаграмм
ER-диаграмма (Entity-Relationship Diagram) — это графическоепредставление концептуальной модели данных.
Правила построения ER-диаграмм:
1. Каждая сущность должна быть уникальной и значимой.
2. Называйте сущности существительными.
3. Атрибуты должны относиться только к одной сущности.
4. Определите первичный ключ для каждой сущности.
5. Связи должны быть осмысленными и читаемыми.
6. Избегайте избыточных связей.
7. Разрешайте связи M:N через ассоциативную сущность.
21. §2.3.1 Нотация Чена
Предложена Питером Ченом в 1976 году.Цель: создание концептуальной схемы, отображающей объекты
(сущности) и их отношения.
Используется для высокоуровневого (концептуального) проектирования.
Отличительная черта: использование ромбов для обозначения связей.
Позволяет чётко выделить ключевые сущности и связи между ними.
22. §2.3.1 Элементы нотации Чена
Основные элементы:- Сущность: Прямоугольник с именем внутри.
- Атрибут: Овал, соединённый линией с сущностью. Ключевой
атрибут подчёркивается.
- Связь: Ромб с именем связи внутри.
- Кардинальность: Числа (1, N, M) или слова, размещённые рядом с
линиями связи.
23. §2.3.1 Правила построения (Нотация Чена)
1. Определение сущностей: Выделите основные объекты системы иразместите их на диаграмме в виде прямоугольников.
2. Идентификация атрибутов: Определите свойства для каждой
сущности. Свяжите атрибуты (овалы) с соответствующими
сущностями. Пометьте ключевые атрибуты.
3. Определение связей: Установите, какие сущности связаны.
Добавьте ромбы, представляющие связи, и соедините их с
сущностями линиями.
4. Указание кардинальности: Определите, сколько экземпляров
одной сущности может быть связано с экземплярами другой
(например, 1:1, 1:N). Добавьте обозначения на линии связи.
24. Пример нотации Чена
25. §2.3.2 Нотация Crow’s Foot («Вороньи лапы»)
Crow's Foot — это визуальный язык для представления связеймежду сущностями в ERD.
Название происходит от вида символов, напоминающих птичью
лапку.
Преимущества:
- Более компактна и наглядна, чем нотация Чена.
- Широко используется в современных инструментах
проектирования (например, PowerDesigner, Lucidchart).
- Легко читается и интерпретируется разработчиками.
26. §2.3.2 Элементы нотации Crow’s Foot
Основные элементы:1. Сущность: Таблица. Имя сущности сверху, атрибуты перечислены
внутри.
2. Связь: Прямая линия между сущностями. На концах линии —
символы, обозначающие кардинальность.
Символы кардинальности:
- | (палка): «Один» (One)
- O (кружок): «Ноль» (Zero, опционально)
- < (воронья лапка): «Много» (Many)
27. §2.3.2 Основные символы кардинальности (Crow’s Foot)
- «Один и только один к одному и только одному»- «Один и только один к нулю и более»
- «Один и только один ко многим»
- «Один и только один к нулю или одному»
28. §2.3.2 Правила построения (Нотация Crow’s Foot)
1. Используйте однозначные имена сущностей2. Соблюдайте последовательность символов
3. Ранняя проверка кратности
4. Явно обозначайте связи
5. Сохраняйте чистый макет
29. Нотация Crow’s Foot
30. §2.4 Обобщение
Обобщение — это процесс объединения двух или более типовсущностей более низкого уровня в один тип сущности более
высокого уровня на основе их общих характеристик.
Работает по принципу «снизу вверх».
31. §2.4 Специализация
Специализация — это процесс разделения типа сущности болеевысокого уровня на один или несколько типов сущностей более
низкого уровня на основе их различающихся характеристик.
Работает по принципу «сверху вниз».
32. §2.4 Сильная сущность
Сильная сущность (независимая сущность) — это сущность, котораяимеет собственный уникальный идентификатор (первичный ключ)
и может существовать независимо от других сущностей.
Характеристики:
- Имеет первичный ключ, который не зависит от других сущностей.
- Может существовать в БД без связанных с ней записей в других
таблицах.
33. §2.4 Слабая сущность
Слабая сущность (зависимая сущность) — это сущность, которая неможет существовать без другой (родительской, сильной) сущности
и не имеет собственного уникального первичного ключа.
Характеристики:
- Её существование зависит от сильной сущности.
- Её первичный ключ включает в себя первичный ключ
родительской сущности (частичный ключ + внешний ключ).
34. Правила хорошей ER-диаграммы
1. Именуйте сущности существительными: Клиент, Заказ, Продукт.2. Именуйте связи глаголами или отглагольными
существительными: Оформляет, Содержит, Назначается.
3. Определите первичные ключи: Для каждой сущности.
4. Разрешайте M:N связи: Через ассоциативную (связующую)
сущность.
5. Используйте слабые сущности: Для зависимых объектов.
6. Избегайте избыточности: Не дублируйте атрибуты и связи.
7. Поддерживайте читаемость: Располагайте элементы логично,
минимизируйте пересечение линий.
Базы данных