7.13M
Категория: Базы данныхБазы данных

Концептуальное проектирование

1.

Обзор концептуального проектирования
баз данных
Создание модели данных без привязки к СУБД — ключевой этап
разработки базы.

2.

Назначение концептуального
проектирования
Концептуальное проектирование нужно, чтобы описать
предметную область на высоком уровне — её сущности,
атрибуты и связи между ними, без привязки к конкретной
СУБД. Это общая картина будущей базы данных, понятная и
заказчикам, и разработчикам.
2

3.

Основные элементы ER-диаграммы
Сущности
Представлены прямоугольниками, символизируют объекты или вещи, важные для хранения
данных.
Атрибуты
Изображаются овальными формами и показывают свойства или характеристики сущностей.
Связи
Ромбы обозначают отношения между сущностями, визуализируя их взаимодействия.
Линии связи
Соединяют сущности, атрибуты и связи, отражая структуру и взаимосвязи данных.
8

4.

5.

Сущность (Entity) в концептуальном проектировании
Сущность — это реальный объект или понятие, о котором
сохраняется информация, защищённая уникальным
идентификатором для однозначной идентификации.
Каждая сущность существует самодостаточно и описывается
через набор своих атрибутов, отражающих её характеристики и
свойства.
В реализации на PostgreSQL сущности становятся таблицами с
уникальными первичными ключами, обеспечивающими
целостность данных.
3

6.

Атрибуты сущности и их классификация
Типы атрибутов
Атрибуты — это свойства сущности, которые могут быть простыми,
составными, однозначными или многозначными, отражающими
разные уровни детализации информации.
Реализация в базе данных
В реляционной СУБД каждый атрибут реализуется как столбец
таблицы с определённым типом данных, обеспечивающим корректное
хранение и обработку информации.
4

7.

Связи между сущностями (Relationship)
Связи описывают, как сущности взаимодействуют,
включая один-к-одному, один-ко-многим и многие-комногим типы связей.
Связь один-ко-многим реализуется через внешний ключ в
таблице, принадлежащей множественной стороне
отношения.
Связи многие-ко-многим моделируются при помощи
промежуточных таблиц, содержащих внешние ключи на
обе связанные сущности.
Эффективное проектирование связей обеспечивает
целостность и удобство управления данными в базе.
5

8.

Первичный ключ —
уникальный идентификатор
записи
Первичный ключ служит для уникальной
идентификации каждой записи, обеспечивая
отсутствие дубликатов и обязательность
значения в столбце.
В PostgreSQL первичный ключ объявляется
через PRIMARY KEY и гарантирует не NULL и
уникальность для всех записей таблицы.
6

9.

Внешний ключ и обеспечение целостности
данных
Внешний ключ — это столбец,
указывающий на первичный
ключ другой таблицы. Он
связывает сущности,
поддерживая согласованность
данных.
Механизм внешнего ключа
предотвращает нарушение
ссылочной целостности,
блокируя удаление или
изменение связанных записей
без соответствующей
корректировки.
7

10.

Кардинальность в связях: количественные
ограничения
Кардинальность определяет минимальное и максимальное
число объектов, связанных с другим объектом в отношении
между сущностями.
Варианты кардинальности включают ноль или один, ровно один,
один или много, а также ноль или много для точного описания
ограничений.
Правильное указание кардинальности является основой для
точного моделирования и реализации бизнес-правил в базе
данных.
10

11.

Примеры кардинальности в реальных
сценариях
Связь студентов с курсами
Студент может быть записан на множество курсов — от нуля и более.
Такая кардинальность (0..N) обеспечивает гибкость в учёте учебной
нагрузки каждого обучающегося.
Уникальные и множественные связи
Преподаватель ведёт хотя бы один курс и может вести несколько
(1..N). Паспорт же уникален для каждого студента, связь строго один к
одному (1..1), что гарантирует однозначную идентификацию.
11

12.

От концептуальной модели к реализации в
PostgreSQL
На этом этапе сущности из
концептуальной модели
преобразуются в таблицы,
атрибуты становятся
столбцами с
соответствующими типами
данных, а связи — внешними
ключами для сохранения
целостности.
После проектирования ERдиаграммы пишутся SQLскрипты для создания таблиц
и ограничения связей, что
обеспечивает реализацию
задуманной структуры в
PostgreSQL.
14

13.

Практический пример: сущности и связи
библиотеки
Построение связей
Определение
сущностей
Выделены ключевые объекты:
Книга, Автор, Читатель с их
основными атрибутами для
дальнейшего описания базы.
Установлены основные типы
связей: Множество авторов к
книгам (M:N), одна книга с
множеством выдач (1:N), один
читатель с множеством выдач
(1:N).
Создание
промежуточных
таблиц
Для связи M:N создана
таблица book_authors для
корректного отражения
множественных авторов у книг
и обеспечения целостности
данных.
Формирование SQLструктуры
Разработаны SQL-скрипты
для создания таблиц с
соответствующими ключами и
ограничениями, готовые к
внедрению в PostgreSQL.
15

14.

Таблица сущностей и ключевых атрибутов для
библиотеки
Данная таблица иллюстрирует сущности
библиотеки, выделяет их ключевые
атрибуты и типы данных, а также
ключевые ограничения целостности.
Чёткое определение ключевых
атрибутов и ограничений способствует
сохранению целостности и упрощает
управление базой.
16

15.

Статистика использования связей в примере
библиотеки
Диаграмма отражает, что наибольшая
часть связей приходится на отношение
многих авторов к книгам, что важно при
оптимизации запросов.
Понимание распределения типов
связей помогает эффективнее
проектировать структуру базы и
оптимизировать обработку связанных
данных.
Внутренний анализ проекта библиотеки, 2024
17

16.

Рекомендации по проектированию концептуальной
модели
Выделяйте сущности с уникальными первичными
ключами, обеспечивающими однозначную
идентификацию каждой записи для надёжного
управления данными.
Избегайте многозначных атрибутов внутри одной
сущности, вместо этого используйте отдельные таблицы
с надлежащими связями для точности модели.
Тщательно определяйте кардинальность связей и
выполняйте нормализацию до этапа реализации,
чтобы обеспечить целостность и масштабируемость
базы.
18

17.

Типичные ошибки при
концептуальном
проектировании
Неправильный выбор первичных ключей
приводит к дублированию данных и затрудняет
связь между сущностями, что отрицательно
сказывается на целостности и
производительности.
Игнорирование нормализации и включение
многозначных атрибутов в одну таблицу
вызывают аномалии обновления и усложняют
дальнейшее сопровождение базы данных.
19
English     Русский Правила