Структурированные данные и структура в информатике¶
Structured (от англ. structure — «структура», «строение») — в информатике и обработке данных обобщающее понятие, обозначающее организацию информации по заранее определённым правилам, схемам или типам, при которой элементы данных связаны между собой устойчивыми отношениями. Термин противопоставляется понятию unstructured (неструктурированный) и применяется к данным, языкам программирования, документам, запросам и форматам хранения. В русскоязычной литературе чаще используются эквиваленты «структурированные данные», «структурированная информация», «структурный тип».
¶Общее определение
Под структурированными понимают данные, которые:
- имеют заранее заданную схему (модель, тип, формат);
- разбиты на поля, элементы или узлы с определёнными именами;
- допускают машинную обработку без предварительного анализа смысла;
- подчиняются правилам, позволяющим однозначно интерпретировать значения.
Простейший пример — таблица с фиксированными столбцами: каждая строка описывает один объект, а столбцы соответствуют его атрибутам. Более сложные формы — иерархические деревья, графы, реляционные схемы, объектные модели.
¶История и происхождение понятия
Понятие структуры данных возникло в 1950–1960-е годы вместе с развитием программирования. В 1968 году нидерландский учёный Эдсгер Дейкстра и его коллеги сформулировали принципы структурного программирования, а в 1970-е годы работы Никлауса Вирта и Дональда Кнута закрепили разделение «алгоритмы + структуры данных». В 1970 году Эдгар Кодд предложил реляционную модель данных, где информация организуется в таблицы-отношения. С этого момента структурированность стала основой промышленных систем управления базами данных (СУБД).
В 1990–2000-е годы понятие расширилось: появились языки разметки (SGML, HTML, XML), язык запросов SQL, форматы обмена JSON и YAML, а также концепция «связанных данных» (Linked Data) и семантической паутины.
¶Классификация
¶По степени структурированности
| Тип | Характеристика | Примеры |
|---|---|---|
| Структурированные | Жёсткая схема, поля с типами | Таблицы SQL, CSV, JSON со схемой |
| Полуструктурированные | Гибкая схема, теги или ключи | XML, JSON, HTML, электронная почта |
| Неструктурированные | Схема отсутствует | Текст, изображения, аудио, видео |
¶По форме организации
- Линейные — массивы, списки, очереди, стеки.
- Иерархические — деревья, DOM-модель документа.
- Сетевые и графовые — графы, онтологии, социальные сети.
- Табличные (реляционные) — отношения, кортежи, домены.
¶Структуры данных в программировании
В программировании термин structured тесно связан с понятием структуры данных — способа хранения и организации информации в памяти. Базовые структуры:
- Массив — набор элементов одного типа с доступом по индексу.
- Связный список — последовательность узлов со ссылками.
- Стек и очередь — структуры с ограниченным порядком доступа.
- Хеш-таблица — отображение ключей на значения.
- Дерево — иерархия узлов (например, двоичное дерево поиска).
- Граф — множество вершин и рёбер.
Выбор структуры определяет эффективность алгоритма: сложность операций вставки, поиска и удаления измеряется в нотации O(n).
¶Структурированные данные в вебе
В контексте интернета под structured data понимают разметку, помогающую поисковым системам понимать содержимое страницы. Наиболее распространённые форматы:
- Schema.org — словарь типов и свойств, созданный в 2011 году компаниями Google, Microsoft, Yahoo и Яндекс.
- JSON-LD — формат встраивания разметки в виде JSON.
- Microdata и RDFa — атрибуты HTML для описания сущностей.
Разметка позволяет выводить в результатах поиска расширенные сниппеты: рейтинги, цены, даты событий, рецепты, отзывы. В России структурированные данные применяются в поиске Яндекса и в системах электронной коммерции.
¶Язык запросов SQL
SQL (Structured Query Language) — декларативный язык, созданный для работы с реляционными базами данных. Название прямо указывает на работу со структурированной информацией. Операторы SELECT, INSERT, UPDATE, DELETE позволяют извлекать и изменять данные, а конструкция JOIN связывает таблицы по ключам. Стандарт SQL был впервые принят ANSI в 1986 году и с тех пор неоднократно расширялся.
¶Применение
Структурированные данные лежат в основе:
- корпоративных СУБД и аналитических хранилищ;
- финансового учёта и банковских транзакций;
- систем электронного документооборота;
- машинного обучения (признаковые таблицы);
- геоинформационных систем;
- поисковых и рекомендательных алгоритмов.
В научной сфере структурирование обеспечивают форматы и стандарты: библиографические (BibTeX, RIS), биологические (FASTA, PDB), астрономические (FITS).
¶Преимущества и ограничения
Преимущества: однозначная интерпретация, высокая скорость обработки, возможность автоматической проверки, удобство интеграции между системами.
Ограничения: жёсткая схема затрудняет хранение разнородной информации; изменение структуры требует миграции данных; значительная часть реального контента (тексты, изображения) остаётся неструктурированной и требует методов извлечения (NLP, компьютерное зрение).
¶Смежные понятия
- Структурное программирование — парадигма, исключающая произвольные переходы (оператор goto).
- Структурная типизация — подход в языках программирования, при котором совместимость типов определяется их строением, а не именем.
- Структурный анализ — методология проектирования информационных систем.
¶Источники
- Кнут Д. Искусство программирования.
- Вирт Н. Алгоритмы и структуры данных.
- Кодд Э. Реляционная модель данных для больших разделяемых банков данных (1970).
- Документация Schema.org.
- Стандарт ISO/IEC 9075 (SQL).
- Материалы W3C по семантической паутине.