Entity: понятие и применение в IT¶
Entity (от англ. entity — «сущность») — в широком смысле объект, существующий независимо и обладающий уникальной идентичностью; в информационных технологиях — поименованная область данных или класс объектов, обладающих набором атрибутов и поддающихся идентификации. Понятие используется в базах данных, программировании, семантической паутине и системном анализе для моделирования реальных или абстрактных объектов предметной области.
¶Определение и общая характеристика
В философии и онтологии сущность (entity) — это то, что обладает бытием, самостоятельным существованием. В прикладных дисциплинах термин наполняется практическим смыслом: сущностью называют элемент системы, который можно отличить от других элементов по совокупности свойств.
Ключевые свойства любой сущности:
- Идентичность — уникальный признак (идентификатор), позволяющий отличать одну сущность от другой.
- Атрибуты — набор характеристик, описывающих состояние сущности.
- Жизненный цикл — сущность создаётся, изменяется и удаляется.
В информатике понятие сущности тесно связано с моделью «сущность — связь» (ER-моделью), предложенной Питером Ченом в 1976 году.
¶Entity в базах данных
В реляционных базах данных сущность соответствует таблице, а её экземпляры — строкам (записям). Каждая строка представляет конкретный объект (например, клиента, товар, заказ), а столбцы описывают его атрибуты.
¶Типы сущностей
- Сильная (основная) сущность — существует независимо от других. Пример: таблица «Студент».
- Слабая (зависимая) сущность — существование зависит от другой сущности. Пример: таблица «Оценка» не существует без «Студента» и «Предмета».
¶Ключи и идентификация
Для идентификации записей используются первичные ключи (primary key) — уникальные значения (например, номер паспорта или автоинкрементный ID). Внешние ключи (foreign key) связывают сущности между собой, обеспечивая целостность данных.
¶Нормализация
Процесс проектирования базы данных включает нормализацию — разбиение больших сущностей на меньшие для устранения избыточности и аномалий обновления. Классические нормальные формы (от первой до пятой) определяют требования к структуре таблиц.
¶Entity в объектно-ориентированном программировании
В ООП сущность — это класс или объект, который хранит состояние и отражает элемент предметной области. В отличие от простых структур данных, сущности часто содержат бизнес-логику.
¶Entity в Java Persistence API (JPA)
В Java-экосистеме термин entity закреплён за классами, которые отображаются на таблицы базы данных через ORM-фреймворки (Hibernate, EclipseLink). Класс-сущность помечается аннотацией @Entity и должен соответствовать правилам:
- иметь конструктор без аргументов;
- не быть final;
- иметь поле, помеченное
@Id(первичный ключ).
Пример сущности на Java:
```java @Entity @Table(name = "users") public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id;
private String name; private String email; // геттеры и сеттеры } ```
¶Entity в Domain-Driven Design (DDD)
В предметно-ориентированном проектировании (DDD) сущности — это объекты, обладающие сквозной идентичностью, которая сохраняется во времени даже при изменении атрибутов. Например, «Заказ» остаётся тем же заказом, даже если меняется его статус. Противопоставляются объектам-значениям (value objects), которые определяются только своими свойствами (например, «Адрес»).
¶Entity в контексте баз данных и архитектуры
В архитектуре корпоративных приложений выделяют три уровня:
- Entity (сущность) — бизнес-объект с идентичностью.
- Repository (репозиторий) — механизм доступа к сущностям.
- Service (сервис) — слой бизнес-логики, оперирующий сущностями.
Такой подход позволяет отделить доменную модель от инфраструктуры (базы данных, внешних API).
¶Entity в семантической паутине и графах знаний
В веб-стандартах (RDF, OWL, Schema.org) сущность — это ресурс, описываемый триплетами «субъект — предикат — объект». Например, триплет «Лев Толстой — автор — Война и мир» связывает две сущности (писателя и произведение) через отношение.
В поисковых системах и графах знаний (Google Knowledge Graph, Wikidata) сущности — это именованные объекты реального мира: люди, организации, места, события. Для каждой сущности собирается страница с атрибутами и связями. Например, сущность «Москва» имеет атрибуты «население», «страна», «основана в».
¶Named Entity Recognition (NER)
В обработке естественного языка (NLP) выделяют задачу распознавания именованных сущностей (NER) — автоматического поиска в тексте упоминаний людей, организаций, мест, дат и других типов сущностей. Эта технология применяется в поисковых системах, системах анализа документов и чат-ботах.
¶Entity Component System (ECS)
В разработке игр и симуляций используется архитектурный паттерн ECS, где сущность — это просто уникальный идентификатор (ID), к которому прикрепляются компоненты (данные) и обрабатываются системами (логика). Такой подход отличается от классического ООП и позволяет гибко комбинировать поведение объектов.
Пример: игровой персонаж — сущность с компонентами «Позиция», «Здоровье», «Скорость»; система «Физика» обрабатывает все сущности, имеющие компонент «Позиция».
¶Entity в кибербезопасности и управлении доступом
В системах управления доступом (RBAC, ABAC) сущностью называется любой субъект или объект системы: пользователь, роль, ресурс, устройство. Политики доступа описывают правила взаимодействия между сущностями.
¶Заключение
Понятие entity универсально для всех областей работы с данными. Оно позволяет абстрагироваться от конкретных реализаций и оперировать объектами предметной области: от строки в таблице до концепта в графе знаний. Понимание сущностей и их связей — основа проектирования информационных систем любой сложности.
¶Источники
- Чен П. «Модель „сущность — связь“ — шаг к единому представлению данных» (1976).
- Фаулер М. «Архитектура корпоративных программных приложений» (2002).
- Эванс Э. «Предметно-ориентированное проектирование» (2003).
- Документация Java Persistence API (Jakarta Persistence).
- Спецификация Schema.org.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →

