4
Применение
Интерфейсный формат
между приложением и внешней системой
между клиентской и серверной частями приложения
Внутри базы данных как атомарное значение
только хранение и извлечение
не нарушает 1NF, достаточно обычных средств SQL
Внутри базы данных как неатомарное значение
операции с отдельными частями документа
SQL не достаточно; требуется специальный язык запросов
и набор дополнительных операций
гибкость, когда данные плохо укладываются в реляционную модель
Документы XML или JSON могут применяться как удобный
интерфейсный формат между разными компонентами, независимый от
конкретной платформы или языка программирования. Например, для
взаимодействия с внешними системами, или для обмена данными
между клиентской и серверной частями системы. В последнем случае
интерфейсный формат позволяет клиенту послать сложный запрос,
а серверу выполнить его эффективным образом (в отличие от
традиционного подхода, принятого в ORM, когда сервер базы данных
нагружается большим количеством мелких запросов, не оставляя
возможностей для оптимизации).
Если слабоструктурированные данные хранятся внутри самой базы
данных, то все зависит от того, как эти данные используются. Если
внутри SQL запросов не делается попыток работать с отдельными
частями документов, то такие значения можно считать атомарными
с точки зрения СУБД. Тут достаточно обычных средств SQL.
Конечно, более интересен случай, когда серверу необходимо выделять
часть документа, фильтровать вывод на основе содержания
документов и т. п. Для этого SQL уже не хватает и нужен
специализированный язык доступа к слабоструктурированным данным.
Если СУБД предоставляет такую возможность, это позволяет
комбинировать строгий реляционный подход для данных, имеющих
четкую структуру, и подход в духе NoSQL для данных, которые сложно
представить в табличном виде.