Структурированные данные
Структурированные данные — это информация, организованная по заранее определённой модели (схеме), что позволяет однозначно идентифицировать, хранить, обрабатывать и извлекать её как машинами, так и человеком. В отличие от неструктурированных данных (тексты, изображения, видео), структурированные данные имеют фиксированный формат, обычно представляются в виде таблиц с чётко заданными полями (столбцами) и типами значений (числа, даты, строки). Ключевой характеристикой является возможность выполнения точных запросов, сортировки и агрегации без необходимости интерпретации контекста.
История и развитие
Концепция структурированных данных возникла с развитием систем управления базами данных (СУБД). В 1960-х годах появились иерархические и сетевые модели данных, но настоящий прорыв произошёл в 1970 году, когда Эдгар Кодд из IBM предложил реляционную модель. Она основывалась на математическом понятии отношения и позволяла описывать данные в виде таблиц, связанных между собой ключами. Реляционная модель легла в основу языка SQL (Structured Query Language), который стал стандартом для работы со структурированными данными.
В 1980-1990-х годах реляционные СУБД (Oracle, MySQL, PostgreSQL) доминировали в корпоративном секторе. С ростом интернета и объёмов данных в 2000-х годах возникли новые подходы, такие как NoSQL-базы (например, Cassandra, MongoDB), которые пожертвовали строгой структурой ради горизонтального масштабирования. Однако для задач, требующих строгой согласованности и сложных запросов, структурированные данные в реляционных базах остаются основным инструментом. В веб-технологиях термин «структурированные данные» также используется для разметки контента на страницах (JSON-LD, Microdata, RDFa), помогая поисковым системам понимать смысл информации.
Характеристики и свойства
Структурированные данные обладают набором свойств, которые отличают их от других типов:
- Схема (Schema): жёстко определённая структура, описывающая типы данных, ограничения (например, NOT NULL, UNIQUE) и связи между сущностями.
- Типизация: каждое поле имеет строгий тип (целое число, строка фиксированной длины, дата, логическое значение).
- Однозначность: данные интерпретируются одинаково всеми системами, что исключает двусмысленность.
- Машиночитаемость: возможность автоматической обработки, поиска и анализа без участия человека.
- Согласованность (ACID): поддержка атомарности, согласованности, изолированности и долговечности транзакций в реляционных СУБД.
Классификация и виды
Структурированные данные можно классифицировать по нескольким признакам:
По способу хранения
- Реляционные базы данных: таблицы со строками и столбцами, связанные внешними ключами (например, PostgreSQL, MySQL).
- Табличные форматы файлов: CSV, TSV, Excel (XLSX), Parquet, ORC. Эти форматы не требуют СУБД и широко используются для обмена данными.
- Документо-ориентированные базы с фиксированной схемой: некоторые NoSQL-системы, где структура определена, но не обязательна для всех записей (например, MongoDB с валидацией схемы).
По типу данных
- Числовые: целые, дробные, денежные единицы.
- Текстовые: строки фиксированной или переменной длины, уникальные идентификаторы.
- Временные: даты, временные метки, интервалы.
- Логические: булевы значения (истина/ложь).
- Бинарные: изображения, файлы, но в структурированном контексте обычно хранятся ссылки, а не сами файлы.
По области применения
- Транзакционные данные: записи о покупках, банковских операциях, заказах — требуют высокой точности и согласованности.
- Аналитические данные: агрегированные показатели, статистика, исторические срезы — часто хранятся в колоночных СУБД (ClickHouse, Vertica).
- Справочные данные: каталоги товаров, классификаторы, коды валют — статичны и редко изменяются.
Применение
Структурированные данные лежат в основе большинства корпоративных информационных систем:
- Финансовый сектор: банковские транзакции, бухгалтерский учёт, отчётность для регуляторов. Любая ошибка в структуре может привести к финансовым потерям.
- Электронная коммерция: каталоги товаров, корзины покупок, история заказов. Структурированные данные позволяют быстро фильтровать товары по цене, категории, наличию.
- Здравоохранение: электронные медицинские карты, записи о назначениях, результаты анализов. Строгая схема обеспечивает совместимость между разными системами.
- Логистика: отслеживание грузов, складской учёт, маршруты доставки.
- Веб-разработка и SEO: разметка Schema.org (например, для рецептов, событий, организаций) помогает поисковым системам показывать расширенные сниппеты (звёздные рейтинги, цены, время работы). В России Яндекс также активно использует структурированные данные для своих сервисов.
Преимущества и недостатки
Преимущества
- Простота поиска: возможность выполнять сложные запросы (JOIN, GROUP BY, WHERE) с высокой скоростью.
- Согласованность: гарантия, что данные не противоречат друг другу (например, сумма заказа не может быть отрицательной).
- Эффективное хранение: сжатие и индексация позволяют экономить место и ускорять доступ.
- Безопасность: возможность разграничения доступа на уровне строк и столбцов.
Недостатки
- Жёсткость: изменение схемы (добавление нового поля) требует миграции и может быть трудоёмким для больших таблиц.
- Сложность масштабирования: реляционные базы плохо подходят для распределённых систем с высокой нагрузкой (горизонтальное масштабирование требует шардинга и нарушает ACID).
- Ограниченность: не все данные можно представить в виде таблиц (например, сложные графы или неструктурированные тексты).
Примеры
Простейший пример структурированных данных — таблица в Excel или CSV-файл:
| ID | Имя | Город | Дата рождения | Зарплата |
|---|---|---|---|---|
| 1 | Иванов И. | Москва | 1990-05-12 | 75000 |
| 2 | Петров П. | Санкт-Петербург | 1985-11-03 | 82000 |
Каждая строка — запись, каждый столбец — поле с определённым типом (ID — целое, Имя — строка, Дата — дата, Зарплата — число). В реляционной базе данных такие таблицы могут быть связаны: например, таблица «Города» с уникальным кодом города, а в таблице «Сотрудники» — внешний ключ на этот код.
Другой пример — разметка веб-страницы в формате JSON-LD для рецепта:
``json { "@context": "https://schema.org", "@type": "Recipe", "name": "Борщ", "cookTime": "PT2H", "recipeIngredient": ["свёкла", "капуста", "мясо"] } ``
Критика и ограничения
Несмотря на широкое распространение, структурированные данные критикуются за избыточную жёсткость. В эпоху Big Data значительная часть информации (социальные сети, логи серверов, изображения) является неструктурированной или полуструктурированной. Попытки «загнать» её в таблицы приводят к потере контекста и сложности анализа. Кроме того, поддержание схемы в актуальном состоянии требует постоянных усилий разработчиков. В ответ на это появились подходы «схема на чтение» (schema-on-read), когда данные хранятся в сыром виде, а структура накладывается только при запросе (например, в Apache Spark).
Источники
- Кодд Э. Ф. «Реляционная модель данных для больших совместно используемых банков данных» (1970).
- Дата К. Дж. «Введение в системы баз данных» (8-е издание, 2003).
- Документация Schema.org (schema.org).
- Материалы Яндекса по структурированным данным для веб-мастеров (yandex.ru/support/webmaster/structured-data).
- Стандарт ISO/IEC 9075:2016 (SQL).
- Учебные материалы по базам данных (например, курс «Базы данных» на Stepik).
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →