Приведите примеры моделей данных для разных предметных областей.
Ответы на вопрос
Ниже приведены примеры моделей данных для разных предметных областей. Под моделью данных здесь понимается набор сущностей, их атрибутов, связей и ограничений.
1. Библиотека
Основные сущности
-
Книга: идентификатор, название, год издания, ISBN, количество страниц.
-
Автор: идентификатор, фамилия, имя, дата рождения.
-
Экземпляр книги: инвентарный номер, состояние, дата поступления.
-
Читатель: номер читательского билета, ФИО, телефон, адрес.
-
Выдача: дата выдачи, срок возврата, фактическая дата возврата.
Связи
-
Один автор может написать много книг.
-
У одной книги может быть несколько авторов.
-
Одна книга может иметь несколько физических экземпляров.
-
Читатель может брать много экземпляров книг.
-
Один экземпляр в конкретный момент может быть выдан только одному читателю.
Реляционная схема
Автор(
author_id,
фамилия,
имя,
дата_рождения
)
Книга(
book_id,
название,
isbn,
год_издания,
страниц
)
КнигаАвтор(
book_id,
author_id
)
ЭкземплярКниги(
copy_id,
book_id,
инвентарный_номер,
состояние,
дата_поступления
)
Читатель(
reader_id,
фио,
телефон,
адрес
)
Выдача(
loan_id,
copy_id,
reader_id,
дата_выдачи,
срок_возврата,
дата_возврата
)
Связь между книгами и авторами имеет тип «многие ко многим», поэтому для нее используется отдельная таблица КнигаАвтор.
2. Интернет-магазин
Основные сущности
-
Товар: артикул, название, цена, описание, остаток.
-
Категория: название, родительская категория.
-
Покупатель: имя, электронная почта, телефон.
-
Заказ: дата, статус, сумма.
-
Позиция заказа: товар, количество, цена на момент покупки.
-
Оплата: способ оплаты, сумма, дата, статус.
-
Доставка: адрес, служба доставки, трек-номер.
Реляционная схема
Категория(
category_id,
название,
parent_category_id
)
Товар(
product_id,
category_id,
артикул,
название,
цена,
описание,
остаток
)
Покупатель(
customer_id,
имя,
email,
телефон
)
Заказ(
order_id,
customer_id,
дата_создания,
статус,
общая_сумма
)
ПозицияЗаказа(
order_item_id,
order_id,
product_id,
количество,
цена_на_момент_заказа
)
Оплата(
payment_id,
order_id,
способ,
сумма,
дата_оплаты,
статус
)
Доставка(
delivery_id,
order_id,
адрес,
перевозчик,
трек_номер,
статус
)
Важное правило: цена товара в ПозицияЗаказа хранится отдельно от текущей цены в таблице Товар, потому что цена может измениться после оформления заказа.
3. Медицинская клиника
Основные сущности
-
Пациент: ФИО, дата рождения, полис, контакты.
-
Врач: ФИО, специальность, кабинет.
-
Прием: дата и время, жалобы, диагноз, рекомендации.
-
Медицинская услуга: название, стоимость.
-
Назначение: лекарство, дозировка, период приема.
-
Анализ: вид исследования, дата, результат.
-
Медицинская карта: история заболеваний и обращений пациента.
Реляционная схема
Пациент(
patient_id,
фио,
дата_рождения,
телефон,
номер_полиса
)
Врач(
doctor_id,
фио,
специальность,
кабинет
)
Прием(
appointment_id,
patient_id,
doctor_id,
дата_время,
жалобы,
диагноз,
рекомендации,
статус
)
Услуга(
service_id,
название,
стоимость
)
ПриемУслуга(
appointment_id,
service_id,
количество,
стоимость_на_дату
)
Назначение(
prescription_id,
appointment_id,
препарат,
дозировка,
частота_приема,
дата_начала,
дата_окончания
)
Анализ(
test_id,
patient_id,
appointment_id,
вид_анализа,
дата_сдачи,
результат
)
Один пациент может иметь много приемов, а один врач принимает много пациентов. Один прием может включать несколько услуг и несколько назначений.
4. Университет или колледж
Основные сущности
-
Студент: номер зачетной книжки, ФИО, группа, дата поступления.
-
Преподаватель: ФИО, кафедра, должность.
-
Дисциплина: название, количество часов, форма контроля.
-
Учебная группа: код группы, курс, направление подготовки.
-
Семестр: учебный год, номер семестра.
-
Запись на дисциплину: студент, дисциплина, семестр.
-
Оценка: балл, дата, вид аттестации.
Реляционная схема
Группа(
group_id,
код,
курс,
направление
)
Студент(
student_id,
group_id,
фио,
дата_рождения,
дата_поступления
)
Преподаватель(
teacher_id,
фио,
кафедра,
должность
)
Дисциплина(
course_id,
название,
часы,
форма_контроля
)
Семестр(
semester_id,
учебный_год,
номер
)
ПроведениеДисциплины(
teaching_id,
course_id,
teacher_id,
semester_id,
group_id
)
ЗаписьНаДисциплину(
enrollment_id,
student_id,
teaching_id
)
Оценка(
grade_id,
enrollment_id,
вид_контроля,
балл,
дата
)
Эта модель позволяет хранить не только список дисциплин, но и сведения о том, кто, когда и какой группе преподавал предмет, а также результаты каждого студента.
5. Банковская система
Основные сущности
-
Клиент: физическое или юридическое лицо, паспортные или регистрационные данные.
-
Счет: номер, валюта, дата открытия, баланс.
-
Карта: номер, срок действия, статус.
-
Транзакция: дата, сумма, тип операции, назначение платежа.
-
Кредит: сумма, процентная ставка, срок, статус.
-
Платеж по кредиту: дата, сумма основного долга, проценты.
Реляционная схема
Клиент(
customer_id,
тип_клиента,
фио_или_наименование,
идентификационный_документ,
телефон
)
Счет(
account_id,
customer_id,
номер_счета,
валюта,
дата_открытия,
баланс,
статус
)
Карта(
card_id,
account_id,
маскированный_номер,
дата_окончания,
статус
)
Транзакция(
transaction_id,
счет_отправителя_id,
счет_получателя_id,
дата_время,
сумма,
валюта,
тип,
назначение,
статус
)
Кредит(
loan_id,
customer_id,
сумма,
процентная_ставка,
дата_выдачи,
дата_окончания,
статус
)
ПлатежПоКредиту(
payment_id,
loan_id,
дата,
сумма,
погашение_основного_долга,
погашение_процентов
)
Для банковской области особенно важны ограничения целостности: отрицательный баланс разрешается не для всех счетов, транзакции должны быть неизменяемыми после проведения, а доступ к персональным данным должен быть разграничен.
6. Склад и логистика
Основные сущности
-
Товар: артикул, название, единица измерения.
-
Склад: адрес, тип, ответственный сотрудник.
-
Ячейка хранения: номер, вместимость, зона склада.
-
Остаток: товар, ячейка, количество.
-
Поставка: поставщик, дата, статус.
-
Отгрузка: получатель, дата, маршрут, статус.
-
Перемещение: откуда, куда, какой товар, количество.
Реляционная схема
Товар(
product_id,
артикул,
название,
единица_измерения
)
Склад(
warehouse_id,
название,
адрес
)
Ячейка(
location_id,
warehouse_id,
код_ячейки,
зона,
вместимость
)
Остаток(
stock_id,
product_id,
location_id,
количество,
дата_обновления
)
Поставка(
receipt_id,
поставщик,
warehouse_id,
дата,
статус
)
СтрокаПоставки(
receipt_item_id,
receipt_id,
product_id,
количество,
цена
)
Отгрузка(
shipment_id,
получатель,
warehouse_id,
дата,
статус
)
СтрокаОтгрузки(
shipment_item_id,
shipment_id,
product_id,
количество
)
Перемещение(
movement_id,
product_id,
откуда_location_id,
куда_location_id,
количество,
дата_время
)
Такая модель помогает определить, где находится конкретный товар, сколько его доступно, какие поставки ожидаются и какие отгрузки должны быть выполнены.
7. Социальная сеть
Для этой области удобна графовая модель данных, поскольку основной интерес представляют связи между пользователями.
Узлы графа
-
Пользователь.
-
Публикация.
-
Сообщество.
-
Комментарий.
-
Изображение или видео.
Ребра графа
-
ПОДПИСАН_НА— пользователь подписан на пользователя. -
СОСТОИТ_В— пользователь состоит в сообществе. -
ОПУБЛИКОВАЛ— пользователь создал публикацию. -
ЛАЙКНУЛ— пользователь отметил публикацию. -
ПРОКОММЕНТИРОВАЛ— пользователь оставил комментарий. -
УПОМЯНУЛ— публикация содержит упоминание пользователя.
Пример
(Пользователь: Анна)-[:ПОДПИСАН_НА]->(Пользователь: Сергей)
(Пользователь: Анна)-[:ОПУБЛИКОВАЛ]->(Публикация: Пост_1)
(Пользователь: Сергей)-[:ЛАЙКНУЛ]->(Публикация: Пост_1)
(Пользователь: Сергей)-[:ПРОКОММЕНТИРОВАЛ]->(Комментарий: Комментарий_1)
(Комментарий: Комментарий_1)-[:К_ПУБЛИКАЦИИ]->(Публикация: Пост_1)
Графовая модель удобна для поиска общих друзей, построения рекомендаций, анализа связей и определения наиболее популярных пользователей.
8. Производственное предприятие
Основные сущности
-
Изделие: код, название, версия, себестоимость.
-
Компонент: материал или деталь, необходимая для производства.
-
Спецификация изделия: перечень компонентов и их количества.
-
Производственный заказ: изделие, плановое количество, срок исполнения.
-
Операция: резка, сборка, покраска, контроль качества.
-
Оборудование: тип, состояние, производительность.
-
Сотрудник: профессия, квалификация.
-
Контроль качества: результат проверки, выявленные дефекты.
Реляционная схема
Изделие(
product_id,
код,
название,
версия,
себестоимость
)
Компонент(
component_id,
код,
название,
единица_измерения
)
Спецификация(
specification_id,
product_id,
component_id,
количество
)
ПроизводственныйЗаказ(
work_order_id,
product_id,
плановое_количество,
дата_начала,
дата_окончания,
статус
)
Операция(
operation_id,
название,
нормативное_время
)
МаршрутПроизводства(
route_id,
product_id,
operation_id,
порядковый_номер
)
Оборудование(
machine_id,
название,
тип,
состояние
)
ВыполнениеОперации(
execution_id,
work_order_id,
operation_id,
machine_id,
дата_время,
фактическое_количество,
результат
)
Главная особенность этой модели — наличие спецификаций изделий и технологических маршрутов, то есть описаний, из чего производится изделие и в какой последовательности выполняются работы.
9. Система бронирования гостиницы
Основные сущности
-
Гость: ФИО, документ, телефон, электронная почта.
-
Номер: тип, вместимость, стоимость, статус.
-
Бронирование: даты заезда и выезда, статус, количество гостей.
-
Услуга: завтрак, трансфер, парковка, прачечная.
-
Оплата: сумма, дата, метод оплаты.
-
Проживание: фактический заезд и выезд.
Реляционная схема
Гость(
guest_id,
фио,
документ,
телефон,
)
Номер(
room_id,
номер,
тип,
вместимость,
стоимость_в_сутки,
статус
)
Бронирование(
reservation_id,
guest_id,
room_id,
дата_заезда,
дата_выезда,
количество_гостей,
статус
)
Услуга(
service_id,
название,
стоимость
)
БронированиеУслуга(
reservation_id,
service_id,
количество,
стоимость_на_дату
)
Оплата(
payment_id,
reservation_id,
дата,
сумма,
способ,
статус
)
Ограничение целостности: для одного номера не должно существовать двух подтвержденных бронирований с пересекающимися периодами проживания.
10. Аналитика продаж: многомерная модель
Для отчетов и бизнес-аналитики часто применяют не обычную операционную модель, а многомерную модель типа «звезда».
Таблица фактов
ФактПродаж(
дата_id,
товар_id,
покупатель_id,
магазин_id,
количество,
выручка,
скидка,
себестоимость
)
Таблицы измерений
Дата(
дата_id,
день,
месяц,
квартал,
год,
день_недели
)
Товар(
товар_id,
название,
категория,
бренд
)
Покупатель(
покупатель_id,
пол,
возрастная_группа,
город
)
Магазин(
магазин_id,
название,
город,
регион,
формат
)
Эта модель позволяет быстро отвечать на аналитические вопросы: какие товары лучше продавались по месяцам, в каких регионах выше выручка, как скидки влияют на объем продаж, какие категории покупают разные группы клиентов.
Таким образом, для разных предметных областей выбираются разные модели: реляционная модель хорошо подходит для учета операций и строгих связей, графовая — для социальных связей и рекомендаций, документная — для гибких и слабо структурированных данных, а многомерная — для аналитики и отчетности.
Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili

