Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

3сем / лаб / 1

.docx
Скачиваний:
0
Добавлен:
04.04.2026
Размер:
1.09 Mб
Скачать

Министерство цифрового развития, связи и массовых коммуникаций Российской Федерации

Ордена Трудового Красного Знамени федеральное государственное бюджетное образовательное учреждение высшего образования

МОСКОВСКИЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

СВЯЗИ И ИНФОРМАТИКИ

(МТУСИ)

Факультет "Сети и системные связи"

Кафедра “ВвИТ"

ОТЧЕТ

по дисциплине " Информационные технологии и программирование"

на тему: 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 сущностей с установленными связями между ними. Модель охватывает все основные бизнес-процессы:

  1. Учет книг - информация о книгах, авторах, жанрах и издательствах

  2. Складской учет - отслеживание остатков и минимальных запасов

  3. Логистика - управление поставками от различных поставщиков

  4. Продажи - оформление заказов и ведение истории продаж

  5. Работа с клиентами - учет клиентской базы и их заказов

Преимущества разработанной модели:

  • Полное покрытие предметной области

  • Гибкость для расширения (добавление новых сущностей)

  • Соответствие принципам нормализации

  • Возможность легкой трансформации в физическую базу данных

ER-диаграмма может быть использована как основа для создания реальной системы управления книжным магазином.

Соседние файлы в папке лаб