Документоориентированная БД NoSQL | OTUS

Курсы

Программирование
iOS Developer. Basic
-23%
Python Developer. Professional
-13%
Golang Developer. Professional
-17%
Python Developer. Basic
-16%
iOS Developer. Professional
-13%
C# ASP.NET Core разработчик
-18%
Unity Game Developer. Professional
-11%
React.js Developer
-12%
Android Developer. Professional
-7%
Software Architect
-12%
C++ Developer. Professional
-8%
Разработчик C#
-8%
Backend-разработчик на PHP
-8%
Архитектура и шаблоны проектирования
-12%
Программист С Разработчик на Spring Framework MS SQL Server Developer AWS для разработчиков Cloud Solution Architecture Разработчик голосовых ассистентов и чат-ботов Vue.js разработчик VOIP инженер Нереляционные базы данных Супер - интенсив по паттернам проектирования Супер-практикум по использованию и настройке GIT IoT-разработчик Advanced Fullstack JavaScript developer Супер-интенсив Azure
Инфраструктура
Мониторинг и логирование: Zabbix, Prometheus, ELK
-17%
DevOps практики и инструменты
-18%
Архитектор сетей
-21%
Инфраструктурная платформа на основе Kubernetes
-22%
Супер-интенсив «IaC Ansible»
-16%
Супер-интенсив по управлению миграциями (DBVC)
-16%
Administrator Linux. Professional
-5%
Administrator Linux.Basic
-10%
Супер-интенсив «ELK»
-10%
Базы данных Сетевой инженер AWS для разработчиков Cloud Solution Architecture Разработчик голосовых ассистентов и чат-ботов Внедрение и работа в DevSecOps Супер-практикум по работе с протоколом BGP Супер - интенсив по паттернам проектирования Супер - интенсив по Kubernetes Супер-интенсив «СУБД в высоконагруженных системах»
Специализации Курсы в разработке Подготовительные курсы
+7 499 938-92-02

Документоориентированная БД NoSQL

Продолжаем разговор о типах СУБД NoSQL. В этот раз поговорим о документоориентированных нереляционных базах данных.

Данные, которые представлены парами ключ-значение, могут сжиматься в виде хранилища документов. Реализация похожа на хранилище «ключ-значение», но разница в том, что в документоориентированной БД хранимые значения (документы) характеризуются определённой структурой и кодировкой данных (XML, JSON, BSON).

В примере ниже мы рассмотрим данные в виде «документа», отображающего названия конкретных магазинов. Здесь важно отметить, что хотя все 3 примера и содержат местоположение, отображают они его по-разному:

{officeName: "3Pillar Noida", 
   {Street: "B-25", City: "Noida",
   State: "UP", Pincode: "201301"}
}
{officeName: "3Pillar Timisoara",
   {Boulevard: "Coriolan Brediceanu No. 10",
   Block: "B, Ist Floor",
   City: "Timisoara", Pincode: "300011"}
}
{officeName: "3Pillar Cluj",
   {Latitude: "40.748328",
   Longitude: "-73.985560"}
}

Ключевое различие между документированным хранилищем и хранилищем «ключ-значение» заключается в том, что первое включает метаданные, которые связаны с хранимым содержимым. Это, в свою очередь, позволяет делать запросы на основе содержимого. Допустим, в вышеописанном примере мы можем попытаться найти все документы, где «City» равно «Noida», что вернёт нам все документы, которые связаны с магазинами в данном городе.

Примером документоориентированной СУБД является Apache CouchDB. CouchDB применяет для хранения данных JSON, а в качестве языка запросов — JavaScript с использованием MapReduce и HTTP для API. При этом данные и отношения не хранятся в таблицах так, как это принято в традиционных реляционных БД, а, по большему счёту, являются набором независимых документов.

Также стоит упомянуть, что такие БД работают без схемы. Это упрощает задачу по добавлению полей в JSON-документы без надобности сначала заявлять об изменениях.

На сегодняшний день наиболее популярными документоориентированными СУБД являются Couchbase и MongoDB.

Источник — «EXPLORING THE DIFFERENT TYPES OF NOSQL DATABASES».

Не пропустите новые полезные статьи!

Спасибо за подписку!

Мы отправили вам письмо для подтверждения вашего email.
С уважением, OTUS!

Автор
0 комментариев
Для комментирования необходимо авторизоваться