Общая характеристика моделей данных
Понятие модели данных
Модель данных — это формализованное описание структуры, взаимосвязей и правил обработки данных в информационной системе.
Она определяет:
- какие объекты (сущности) описываются;
- какие у них свойства (атрибуты);
- как объекты связаны между собой;
- какие операции можно выполнять над данными;
- какие ограничения действуют на данные.
Модель данных является промежуточным звеном между предметной областью и базой данных — она позволяет перевести реальные объекты и процессы в понятные для СУБД структуры.
Основные задачи модели данных:
- стандартизировать представление информации;
- обеспечить целостность и непротиворечивость данных;
- упростить проектирование, сопровождение и развитие базы данных;
- позволить разным участникам проекта (аналитикам, разработчикам, администраторам) одинаково понимать структуру данных.
Пример:
- В предметной области «Учебное заведение» есть сущности: Студент, Группа, Преподаватель, Дисциплина.
- Модель данных показывает, как эти сущности связаны (например, студент относится к одной группе, изучает несколько дисциплин и т.д.).
Классификация моделей данных
Существует два основных подхода к классификации моделей данных:
По уровню абстракции (уровни проектирования)
Эта классификация показывает, насколько близко модель находится к реальной реализации в СУБД:
- Концептуальная модель
- Описывает предметную область в терминах сущностей, атрибутов и связей.
- Не зависит от выбранной СУБД.
- Используется для согласования с заказчиком.
- Логическая модель
- Определяет таблицы, поля, ключи и связи.
- Ориентирована на конкретную модель БД (чаще реляционную), но не на конкретную СУБД.
- Используется для проектирования структуры данных.
- Физическая модель
- Показывает, как данные будут реально храниться в выбранной СУБД.
- Учитывает типы данных, индексы, доступ, резервирование.
Каждая модель уточняет предыдущую и приближает проект к реальной базе данных.
По типу организации данных (типовые модели)
Эта классификация показывает, в какой форме структурированы данные:
- Иерархическая модель — древовидная структура, «родитель — потомок».
- Сетевая модель — графовая структура с множеством связей.
- Реляционная модель — таблицы (отношения), основаны на теории множеств.
- Объектно-ориентированная модель — объекты с атрибутами и методами.
- Нереляционные (NoSQL) модели — документо-ориентированные, ключ-значение, графовые, колонночные.
Каждая модель имеет свои особенности, области применения, преимущества и ограничения.
Иерархическая модель данных
Иерархическая модель данных — одна из первых моделей баз данных, в которой данные организованы в виде дерева.
Структура
- Каждая запись (узел) имеет одного родителя и может иметь несколько потомков.
- Связи жёстко фиксированы: нельзя создать связь между узлами, не находящимися в отношениях «родитель — потомок».
- Доступ к данным осуществляется сверху вниз, начиная от корневого узла.
Пример:

Особенности и свойства
- Простая и наглядная структура.
- Быстрый доступ к данным при фиксированных связях.
- Высокая производительность при запросах, повторяющих иерархию.
- Сложность изменения структуры: добавление новых связей требует перестройки дерева.
- Дублирование данных при необходимости связей между узлами разных ветвей.
Применение
- Хорошо подходит для статических и строго иерархических структур, например:
- каталог файловой системы;
- организационная структура предприятия;
- справочники и классификаторы.
Примеры СУБД: IBM IMS, Windows Registry.
Иерархическая модель исторически важна как первый шаг в развитии баз данных, но в современных системах используется редко из-за низкой гибкости.
Сетевая модель данных
Сетевая модель данных — это модель, в которой данные организованы в виде графа, где каждая запись может иметь много связей (отношений) с другими записями.
Структура
- Основные элементы:
- Записи (record) — хранят данные об объектах.
- Связи (set) — определяют отношения между записями.
- В отличие от иерархической модели, запись может иметь нескольких родителей и несколько потомков.
- Связи реализуются с помощью указателей (pointer), которые напрямую соединяют связанные записи.
Пример:

Студент может быть зачислен на много дисциплин, а дисциплина может изучаться многими студентами.
Особенности и свойства
- Гибкая структура с возможностью описания сложных взаимосвязей.
- Высокая производительность при сложных связях и больших объёмах данных.
- Позволяет эффективно выполнять запросы, минуя промежуточные уровни.
- Сложнее в проектировании и понимании по сравнению с иерархической моделью.
- Сложность изменения структуры и сопровождения — требует точного учёта всех указателей.
Применение
- Используется в системах, где важна высокая производительность и множество взаимосвязей, например:
- банковские и финансовые системы;
- логистические и складские системы;
- телекоммуникационные сети.
Примеры СУБД: IDMS, TurboIMAGE, Raima Database Manager.
Сетевая модель стала логическим развитием иерархической, решая её главную проблему — жёсткую структуру связей, но в современных системах также почти вытеснена реляционными и NoSQL БД.
Реляционная модель данных
Реляционная модель данных — наиболее распространённая и универсальная модель, в которой данные хранятся в виде таблиц (отношений). Каждая строка таблицы — это запись (кортеж), а каждый столбец — атрибут.
История и основы
- Разработана Эдгаром Коддом в 1970 году.
- Основана на математической теории множеств и логике предикатов.
- Цель — упростить работу с данными и устранить недостатки иерархических и сетевых моделей.
Структура
- Отношения (таблицы) — основной объект хранения данных.
- Кортежи (строки) — отдельные записи в таблице.
- Атрибуты (столбцы) — характеристики записей.
- Схема отношения — описание структуры таблицы: названия столбцов и их типы данных.
- Ключи:
- Первичный ключ (Primary Key) — уникально идентифицирует запись.
- Внешний ключ (Foreign Key) — создаёт связь между таблицами.
Пример:

Связи между таблицами
- 1:1 — каждой записи в таблице A соответствует одна запись в B.
- 1:М — одной записи в A соответствует много записей в B.
- М:М — каждая запись в A может быть связана с несколькими в B и наоборот (реализуется через промежуточную таблицу).
Особенности и свойства
- Строгая структурированность и стандартизованность.
- Поддержка языка SQL для определения, изменения и запросов данных.
- Поддержка ограничений целостности (NOT NULL, UNIQUE, CHECK и др.).
- Возможность нормализации данных для устранения избыточности.
- Поддержка транзакций и свойств ACID (атомарность, согласованность, изолированность, надёжность).
Применение
- Универсальны и подходят для большинства приложений:
- учётные системы;
- веб-приложения;
- банковские и финансовые системы;
- образовательные порталы и др.
Примеры СУБД: MySQL, PostgreSQL, Oracle, MS SQL Server.
Реляционная модель — стандарт де-факто для большинства современных систем управления базами данных благодаря своей гибкости, универсальности и поддержке стандарта SQL.
Объектно-ориентированная модель данных
Объектно-ориентированная модель данных (ООМД) — это модель, которая объединяет принципы объектно-ориентированного программирования и хранение данных в базах. Данные в такой модели представляются в виде объектов, содержащих не только данные (атрибуты), но и методы для их обработки.
Основные принципы
ООМД наследует ключевые принципы объектно-ориентированного подхода:
- Инкапсуляция — данные и методы объединены в один объект.
- Наследование — объекты могут наследовать свойства и методы от других объектов.
- Полиморфизм — возможность переопределения методов и работы с объектами разных типов единообразно.
- Идентичность объектов — каждый объект имеет уникальный идентификатор (OID).
Структура
- Классы — описывают структуру и поведение объектов (аналог таблицы в РБД).
- Объекты — экземпляры классов с конкретными значениями атрибутов.
- Атрибуты — свойства объектов (могут быть простыми или ссылками на другие объекты).
- Методы — процедуры или функции, которые можно вызывать у объектов.
- Связи между объектами — реализуются как ссылки (указатели) на другие объекты.
Пример:

Особенности и свойства
- Позволяет хранить сложные и составные структуры данных (массивы, списки, мультимедиа, геоданные и др.).
- Снижает разрыв между программным кодом и данными (объекты БД напрямую соответствуют объектам приложения).
- Поддерживает расширяемость и повторное использование кода.
- Более сложна в проектировании и требует объектного подхода от разработчиков.
Применение
- Применяется там, где нужно хранить сложные и слабо структурированные данные:
- Системы САПР (проектирование);
- Научные и инженерные базы данных;
- Геоинформационные системы (ГИС);
- Хранение мультимедиа.
Примеры СУБД: ObjectDB, db4o, Versant, GemStone.
Объектно-ориентированная модель используется реже, чем реляционная, но остаётся востребованной в нишевых областях, где важна работа со сложными структурами и тесная интеграция с объектным кодом.
Нереляционные (NoSQL) модели данных
Нереляционные модели данных (NoSQL) — это обобщённое название для баз данных, которые не используют табличную структуру и не требуют фиксированной схемы. Они появились как ответ на рост объёмов и разнообразия данных, а также на необходимость горизонтального масштабирования.
Основные типы NoSQL-моделей
-
Документо-ориентированные
- Хранят данные в виде документов (обычно JSON или BSON).
- Каждый документ может иметь уникальную структуру.
- Примеры: MongoDB, CouchDB.

-
Ключ-значение
- Хранят пары ключ — значение, как ассоциативные массивы.
- Очень быстрые при простых запросах по ключу.
- Примеры: Redis, Amazon DynamoDB, Riak.

-
Колонночные (широкостолбцовые)
- Данные организованы по столбцам, а не по строкам.
- Эффективны при аналитических запросах и больших массивах данных.
- Примеры: Apache Cassandra, HBase.

-
Графовые
- Хранят данные в виде вершин и рёбер графа.
- Позволяют быстро выполнять запросы на поиск связей.
- Примеры: Neo4j, OrientDB.

Особенности и свойства
- Гибкая схема — не требуют заранее определённой структуры.
- Высокая масштабируемость — легко распределяются между множеством серверов.
- Высокая производительность при больших объёмах данных и нагрузках.
- Отсутствие строгой поддержки транзакций ACID (часто используется принцип BASE — «Basically Available, Soft state, Eventually consistent»).
- Обычно ориентированы на конкретные сценарии использования (ключ-значение, графы и т.д.), а не универсальны, как реляционные БД.
Применение
- Хранят большие и быстро изменяющиеся данные, например:
- социальные сети (графовые БД);
- интернет-магазины и каталоги (документо-ориентированные БД);
- кэширование и сессии пользователей (ключ-значение);
- аналитика больших данных (колонночные БД).
NoSQL-модели не заменяют реляционные, а дополняют их, обеспечивая гибкость и масштабируемость там, где это необходимо.
Сравнение моделей данных
Ниже приведена сравнительная таблица, показывающая основные характеристики различных моделей данных:
| Модель | Структура | Тип связей | Гибкость схемы | Производительность | Масштабируемость | Применение | Примеры СУБД |
|---|---|---|---|---|---|---|---|
| Иерархическая | Дерево | Один-ко-многим (жёсткие) | Низкая | Высокая | Низкая | Статические иерархии, справочники | IBM IMS, Windows Registry |
| Сетевая | Граф | Много-ко-многим | Средняя | Высокая | Низкая | Сложные взаимосвязанные данные | IDMS, TurboIMAGE |
| Реляционная | Таблицы | 1:1, 1:М, М:М | Высокая | Средняя | Средняя | Универсальные системы учёта и анализа | MySQL, PostgreSQL, Oracle, MS SQL Server |
| Объектно-ориентированная | Объекты | Ссылки на объекты | Высокая | Средняя | Низкая | Сложные структурированные данные | ObjectDB, db4o, Versant |
| NoSQL (документо-ориентированные) | JSON-документы | Гибкие связи | Очень высокая | Высокая | Очень высокая | Каталоги, интернет-магазины, CMS | MongoDB, CouchDB |
| NoSQL (ключ-значение) | Пары ключ-значение | Нет явных связей | Очень высокая | Очень высокая | Очень высокая | Кэширование, сессии, быстрый доступ | Redis, DynamoDB, Riak |
| NoSQL (колонночные) | Таблицы по столбцам | Нет явных связей | Высокая | Очень высокая | Очень высокая | Аналитика больших данных | Cassandra, HBase |
| NoSQL (графовые) | Вершины и рёбра графа | Много-ко-многим | Высокая | Высокая | Высокая | Социальные сети, поисковые системы | Neo4j, OrientDB |
Таблица показывает, что разные модели ориентированы на разные задачи: реляционные — универсальны, NoSQL — гибкие и масштабируемые, иерархические и сетевые — быстрые, но жёсткие по структуре.