Министерство цифрового развития, связи и массовых коммуникаций Российской Федерации
Ордена Трудового Красного Знамени федеральное государственное бюджетное образовательное учреждение высшего образования
МОСКОВСКИЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
СВЯЗИ И ИНФОРМАТИКИ
(МТУСИ)
Факультет "Сети и системные связи"
Кафедра “ВвИТ"
ОТЧЕТ
по дисциплине " Информационные технологии и программирование"
на тему: ER-диаграмма (Сущность-связь)
"Лабораторная работа №1"
Выполнил
Студент гр. БИН2412 ____________________ Бригада №6
Проверил
Преподаватель ___________________
Дата защиты _________2025г.
Москва 2025
Цель работы:
Изучение универсальной модели проектирования Entity Relationship (ER), принципов построения ER-диаграммы.
Введение
Модель проектирования — ER (Entity Relationship) была предложена учёным в области информатики Питером Ченом в 1976 году. Для понимания удобнее абстрагировать эту модель с принципом Объектно-ориентированного программирования/проектирования (ООП), где сущность — объект, атрибуты — его характеристики, а связи — что-то вроде посредника (в некоторых случаях — как метод). Перед разработкой ПО нужно определить, с какими данными предстоит работать и как они связаны между собой. Для этого в первую очередь строят модели данных и создают ER-диаграммы. Специалист начинает работу с изучения предметной области и выявления терминов, которые в ней используются. Например, нужно создать систему для бронирования билетов на самолёт. Термины проекта: аэропорт, авиакомпания, дата, рейс, пассажир, пункты прибытия и назначения, багаж. Их ещё называют понятиями или сущностями. Сущность может быть представлена в виде экземпляров. Например, экземпляры сущности «Аэропорт» ― аэропорты «Домодедово», «Пулково», «Воронеж». У сущностей есть атрибуты — характеристики, которые их описывают. Например, атрибутами сущности «Аэропорт» будут код, адрес, номер телефона. Атрибуты есть у каждого экземпляра сущности, но у них разные значения. У аэропортов «Домодедово» и «Воронеж» есть одинаковый атрибут «Адрес», но у каждого из них разное значение этого атрибута. Собрав все, далее необходимо определить как они связаны между собой, и создается ER-модель. В модели есть три типа связей: q «Один-к-одному» — один экземпляр сущности связан только с одним экземпляром другой сущности. Например, пассажир рейса и его место в самолете. q «Один-ко-многим» — один экземпляр сущности связан со множеством экземпляров другой сущности. Например, у одного пассажира может быть несколько единиц багажа, при этом каждая единица багажа может быть связана только с одним пассажиром. q «Многие-ко-многим» — множество экземпляров одной сущности связаны со множеством экземпляров другой сущности. Например, аэропорт обслуживает несколько авиакомпаний. При этом каждая авиакомпания может обслуживаться в нескольких аэропортах. 1 ER-диаграмма модели данных - это схема, которая показывает, с какими данными нужно будет работать в данном проекте, и как эти данные связаны между собой. Например, ER-диаграмма проиллюстрирует, что багаж связан с номером рейса, но не связан со временем окончания посадки пассажиров на него. Чтобы создать ER-модель, не нужны специальные инструменты. Её можно построить вручную в любом графическом редакторе: для диаграмм «сущность-связь» используют простые символы вроде квадратов, стрелок и линий.
Задания: построить ER-диаграмму для предметной области "Книжный магазин" (вариант 6), включая все сущности, атрибуты и связи. Отчет содержит 5 изображения
Модель Entity Relationship (ER) - это концептуальный подход к проектированию баз данных, предложенный Питером Ченом в 1976 году. Модель включает три основных компонента:
Figure
1 ER
Фигуры ER-диаграммы в нотации Чена:
Прямоугольник - представляет сущность (Entity)
Овал - представляет атрибут (Attribute)
Подчеркнутый овал - ключевой атрибут (Primary Key)
Ромб - представляет связь (Relationship)
Двойной прямоугольник - слабая сущность
Двойной ромб - идентифицирующая связь
Типы связей:
1:1 (один к одному)
1:N (один ко многим)
M:N (многие ко многим)
3. ПРАКТИЧЕСКАЯ РЕАЛИЗАЦИЯ
3.1. СУЩНОСТИ И ИХ АТРИБУТЫ
1. Издательство (Entity - прямоугольник)
Издательство (название_издательства, адрес, телефон, email)
('Эксмо', 'Москва, ул. Зорге, 1', '+7-495-123-45-67', 'info@eksmo.ru'),
('АСТ', 'Москва, пр. Мира, 111', '+7-495-765-43-21', 'contact@ast.ru'),
('РОСМЭН', 'Москва, ул. Шаболовка, 31', '+7-495-123-00-01', 'info@rosman.ru'),
('Азбука',
'Санкт-Петербург, Невский пр., 40',
'+7-812-222-33-44', 'contact@azbuka.ru');
Рисунок 1 Издательство
ER-элементы: Прямоугольник "Издательство" с овалами-атрибутами и подчеркнутым овалом "код_издательства"
2. Автор (Entity - прямоугольник)
INSERT INTO Автор (фио_автора, страна, дата_рождения) VALUES
('Джоан Роулинг', 'Великобритания', '1965-07-31'),
('Джон Рональд Руэл Толкин', 'Великобритания', '1892-01-03'),
('Мао
Ни', 'Китай', '1979-12-08');
Рисунок 2 Автор
ER-элементы: Прямоугольник "Автор" с ключевым атрибутом "код_автора"
3. Жанр (Entity - прямоугольник)
INSERT INTO Жанр (название_жанра, описание) VALUES
('Фэнтези', 'Литература с элементами волшебства и магии'),
('Приключения', 'Книги о путешествиях и опасных предприятиях'),
('Ранобэ', 'Японские легкие романы с иллюстрациями');
ER-элементы: Прямоугольник "Жанр" с атрибутами в овалах
4. Книга (Entity - прямоугольник)
INSERT INTO Книга (isbn, название_книги, год_издания, цена, количество_страниц, тип_обложки, код_издательства) VALUES
('9785352018625', 'Гарри Поттер и философский камень', 2021, 650.00, 432, 'твердая', 3),
('9785352018632', 'Гарри Поттер и Тайная комната', 2021, 670.00, 480, 'твердая', 3),
('9785170801152', 'Хоббит, или Туда и обратно', 2022, 580.00, 320, 'твердая', 4),
('9785041187654', 'Повелитель тайн. Том 1', 2023, 450.00, 280, 'мягкая', 1);
Рисунок 3 Книги
ER-элементы: Основная сущность "Книга" с ключевым атрибутом "ISBN"
3.2. СВЯЗИ МЕЖДУ СУЩНОСТЯМИ
5. Связь Книга-Автор (Relationship - ромб)
INSERT INTO Книга_Автор (isbn, код_автора) VALUES
('9785352018625', 1),
('9785352018632', 1),
('9785170801152', 2),
('9785041187654', 3);
ER-элементы: Ромб "пишет" между сущностями "Книга" и "Автор" с мощностью M:N
6. Связь Книга-Жанр (Relationship - ромб)
INSERT INTO Книга_Жанр (isbn, код_жанра) VALUES
('9785352018625', 1),
('9785352018625', 2),
('9785352018632', 1),
('9785352018632', 2),
('9785170801152', 1),
('9785170801152', 2),
('9785041187654', 1),
('9785041187654', 3);
ER-элементы: Ромб "входит_в_жанр" с мощностью M:N
7. Склад (Weak Entity - двойной прямоугольник)
INSERT INTO Склад (isbn, количество_на_складе, минимальный_запас) VALUES
('9785352018625', 15, 5),
('9785352018632', 12, 5),
('9785170801152', 20, 3),
('9785041187654', 25, 10);
ER-элементы: Слабая сущность с идентифицирующей связью "учтена"
8. Поставщик (Entity - прямоугольник)
INSERT INTO Поставщик (название_компании, телефон, email) VALUES
('Книготорг', '+7-495-111-22-33', 'order@knigotorg.ru'),
('Литературный мир', '+7-495-444-55-66', 'supply@litmir.ru');
9. Поставка (Identifying Relationship - двойной ромб)
sql
INSERT INTO Поставка (isbn, код_поставщика, дата_поставки, цена_закупки, количество) VALUES
('9785352018625', 1, '2024-01-20', 350.00, 15),
('9785352018632', 1, '2024-01-20', 370.00, 12),
('9785170801152', 2, '2024-01-25', 300.00, 20),
('9785041187654', 2, '2024-02-01', 250.00, 25);
Рисунок 4 Поставка
ER-элементы: Идентифицирующая связь "поставляется" между "Книга" и "Поставщик"
3.3. БИЗНЕС-ПРОЦЕССЫ
10. Клиент (Entity - прямоугольник)
sql
INSERT INTO Клиент (фио_клиента, email, телефон) VALUES
('Иванов Петр Сергеевич', 'ivanov@mail.ru', '+7-916-123-45-67'),
('Сидорова Анна Владимировна', 'sidorova@gmail.com', '+7-925-765-43-21');
11. Заказ (Weak Entity - двойной прямоугольник)
sql
INSERT INTO Заказ (код_клиента, общая_сумма, статус_оплаты) VALUES
(1, 1230.00, 'оплачен'),
(2, 450.00, 'ожидает');
ER-элементы: Слабая сущность с связью "делает" к клиенту
12. Состав заказа (Identifying Relationship - двойной ромб)
sql
INSERT INTO Состав_Заказа (код_заказа, isbn, количество, цена_за_единицу) VALUES
(1, '9785352018625', 1, 650.00),
(1, '9785170801152', 1, 580.00),
(2, '9785041187654', 1, 450.00);
ER-элементы: Идентифицирующая связь "содержит" между "Заказ" и "Книга"
4. ER-ДИАГРАММА
Визуальное представление: Диаграмма построена в draw.io с использованием следующих элементов:
7 основных сущностей (прямоугольники)
5 ассоциативных сущностей (двойные прямоугольники)
12 связей (ромбы и двойные ромбы)
35+ атрибутов (овалы)
12 ключевых атрибутов (подчеркнутые овалы)
Основные связи:
Книга ←→ Автор (M:N через Книга_Автор)
Книга ←→ Жанр (M:N через Книга_Жанр)
Книга ←→ Издательство (N:1)
Книга ←→ Поставщик (M:N через Поставка)
Книга ←→ Склад (1:1)
Клиент ←→ Заказ (1:N)
Заказ ←→ Книга (M:N через Состав_Заказа)
5. ВЫВОД
В ходе лабораторной работы была успешно разработана ER-диаграмма для книжного магазина, включающая 12 сущностей с установленными связями между ними. Модель охватывает все основные бизнес-процессы:
Учет книг - информация о книгах, авторах, жанрах и издательствах
Складской учет - отслеживание остатков и минимальных запасов
Логистика - управление поставками от различных поставщиков
Продажи - оформление заказов и ведение истории продаж
Работа с клиентами - учет клиентской базы и их заказов
Преимущества разработанной модели:
Полное покрытие предметной области
Гибкость для расширения (добавление новых сущностей)
Соответствие принципам нормализации
Возможность легкой трансформации в физическую базу данных
ER-диаграмма может быть использована как основа для создания реальной системы управления книжным магазином.
