Учебники

CouchDB — Введение

Система управления базами данных обеспечивает механизм хранения и поиска данных. Существует три основных типа систем управления базами данных, а именно RDBMS (системы управления реляционными базами данных), OLAP (онлайн-системы аналитической обработки) и NoSQL.

RDBMS

RDBMS расшифровывается как система управления реляционными базами данных. СУБД является основой для SQL и для всех современных систем баз данных, таких как MS SQL Server, IBM DB2, Oracle, MySQL и Microsoft Access.

Система управления реляционными базами данных (RDBMS) — это система управления базами данных (СУБД), основанная на реляционной модели, представленной EF Codd.

Данные в РСУБД хранятся в объектах базы данных, называемых таблицами . Таблица представляет собой набор связанных записей данных и состоит из столбцов и строк. Он хранит только структурированные данные.

OLAP

Онлайновый сервер аналитической обработки (OLAP) основан на многомерной модели данных. Это позволяет менеджерам и аналитикам получать информацию, используя быстрый, согласованный и интерактивный доступ к информации.

Базы данных NoSQL

База данных NoSQL (иногда называемая не только SQL) — это база данных, которая предоставляет механизм для хранения и извлечения данных, отличных от табличных отношений, используемых в реляционных базах данных. Эти базы данных не содержат схем, поддерживают простую репликацию, имеют простой API, в конечном итоге непротиворечивы и могут обрабатывать огромные объемы данных (большие данные).

Основная цель базы данных NoSQL состоит в следующем:

  • Простота дизайна,
  • Горизонтальное масштабирование и
  • Более тонкий контроль над доступностью.

В базах данных NoSQL используются разные структуры данных по сравнению с реляционными базами данных. Это делает некоторые операции быстрее в NoSQL. Пригодность данной базы данных NoSQL зависит от проблемы, которую она должна решить. Эти базы данных хранят как структурированные данные, так и неструктурированные данные, такие как аудиофайлы, видеофайлы, документы и т. Д. Эти базы данных NoSQL подразделяются на три типа, и они поясняются ниже.

Хранилище ключей-значений — эти базы данных предназначены для хранения данных в парах ключ-значение, и в этих базах данных не будет никакой схемы. В этих базах данных каждое значение данных состоит из индексированного ключа и значения для этого ключа.

Примеры — BerkeleyDB, Cassandra, DynamoDB, Riak.

Хранилище столбцов — в этих базах данных данные хранятся в ячейках, сгруппированных в столбцы данных, и эти столбцы далее группируются в семейства столбцов. Эти семейства столбцов могут содержать любое количество столбцов.

Примеры — BigTable, HBase и HyperTable.

Хранилище документов — это базы данных, разработанные на основе основной идеи хранилищ ключей и значений, в которых «документы» содержат более сложные данные. Здесь каждому документу назначается уникальный ключ, который используется для извлечения документа. Они предназначены для хранения, извлечения и управления ориентированной на документы информацией, также известной как полуструктурированные данные.

Примеры — CouchDB и MongoDB.

Что такое CouchDB?

CouchDB — это база данных с открытым исходным кодом, разработанная программным фондом Apache. Основное внимание уделяется простоте использования, охватывая Интернет. Это база данных хранилища документов NoSQL.

Он использует JSON для хранения данных (документов), java-скрипт в качестве языка запросов для преобразования документов, http-протокол для api для доступа к документам, запрашивает индексы с помощью веб-браузера. Это мультимастерное приложение, выпущенное в 2005 году, и оно стало проектом apache в 2008 году.

Почему CouchDB?

  • CouchDB имеет API REST на основе HTTP, который помогает легко взаимодействовать с базой данных. А простую структуру ресурсов и методов HTTP (GET, PUT, DELETE) легко понять и использовать.

  • Поскольку мы храним данные в гибкой, основанной на документе структуре, нет необходимости беспокоиться о структуре данных.

  • Пользователям предоставляется мощное сопоставление данных, которое позволяет запрашивать, комбинировать и фильтровать информацию.

  • CouchDB обеспечивает простую в использовании репликацию, с помощью которой вы можете копировать, обмениваться и синхронизировать данные между базами данных и компьютерами.

CouchDB имеет API REST на основе HTTP, который помогает легко взаимодействовать с базой данных. А простую структуру ресурсов и методов HTTP (GET, PUT, DELETE) легко понять и использовать.

Поскольку мы храним данные в гибкой, основанной на документе структуре, нет необходимости беспокоиться о структуре данных.

Пользователям предоставляется мощное сопоставление данных, которое позволяет запрашивать, комбинировать и фильтровать информацию.

CouchDB обеспечивает простую в использовании репликацию, с помощью которой вы можете копировать, обмениваться и синхронизировать данные между базами данных и компьютерами.

Модель данных

  • База данных является самой внешней структурой данных / контейнером в CouchDB.

  • Каждая база данных представляет собой набор независимых документов.

  • Каждый документ поддерживает свои собственные данные и автономную схему.

  • Метаданные документа содержат информацию о редакции, что позволяет объединить различия, возникшие при отключении баз данных.

  • CouchDB реализует управление несколькими версиями параллелизма, чтобы избежать необходимости блокировать поле базы данных во время записи.

База данных является самой внешней структурой данных / контейнером в CouchDB.

Каждая база данных представляет собой набор независимых документов.

Каждый документ поддерживает свои собственные данные и автономную схему.

Метаданные документа содержат информацию о редакции, что позволяет объединить различия, возникшие при отключении баз данных.

CouchDB реализует управление несколькими версиями параллелизма, чтобы избежать необходимости блокировать поле базы данных во время записи.

Особенности CouchDB: уменьшить содержание

Хранение документов

CouchDB — это база данных NoSQL для хранения документов. Он предоставляет возможность хранения документов с уникальными именами, а также предоставляет API RESTful HTTP API для чтения и обновления (добавления, редактирования, удаления) документов базы данных.

В CouchDB документы являются основной единицей данных, и они также включают метаданные. Поля документа имеют уникальные имена и содержат значения различных типов (текст, число, логическое значение, списки и т. Д.), А также нет установленного ограничения на размер текста или количество элементов.

Обновления документа (добавление, редактирование, удаление) следуют за атомарностью, то есть они будут сохранены полностью или не сохранены вообще. В базе данных не будет частично сохраненных или отредактированных документов.

Структура документа Json

{
   "field" : "value",
   "field" : "value",
   "field" : "value",
}

ACID Свойства

CouchDB содержит свойства ACID как одну из своих функций.

Согласованность. Когда данные в CouchDB были зафиксированы, эти данные не будут изменены или перезаписаны. Таким образом, CouchDB гарантирует, что файл базы данных всегда будет в согласованном состоянии.

Чтения CouchDB используют модель управления версиями с несколькими версиями (MVCC), из-за которой клиент будет видеть непротиворечивый снимок базы данных от начала до конца операции чтения.

Всякий раз, когда документ обновляется, CouchDB сбрасывает данные на диск, и обновленный заголовок базы данных записывается в виде двух последовательных и идентичных кусков, образуя первые 4 КБ файла, а затем синхронно сбрасывается на диск. Частичные обновления во время сброса будут сброшены.

Если сбой произошел при фиксации заголовка, сохранится копия предыдущих идентичных заголовков, обеспечивающая согласованность всех ранее зафиксированных данных. За исключением области заголовка, проверки целостности или исправления после сбоя или сбоя питания никогда не требуются.

уплотнение

Всякий раз, когда пространство в файле базы данных теряется выше определенной степени, все активные данные будут копироваться (клонироваться) в новый файл. Когда процесс копирования полностью завершен, старый файл будет удален. Все это делается процессом уплотнения. База данных остается в оперативном режиме во время уплотнения, и все обновления и чтения могут успешно завершаться.

Просмотры

Данные в CouchDB хранятся в полуструктурированных документах, которые гибки с отдельными неявными структурами, но это простая модель документа для хранения и совместного использования данных. Если мы хотим видеть наши данные разными способами, нам нужен способ фильтрации, организации и составления отчетов о данных, которые не были разложены на таблицы.

Чтобы решить эту проблему, CouchDB предоставляет модель представления. Представления — это метод агрегации и составления отчетов по документам в базе данных, которые создаются по требованию для агрегирования, объединения и составления отчетов по документам базы данных. Поскольку представления создаются динамически и не влияют на базовый документ, у вас может быть столько разных представлений представления, сколько вам нужно.

история

  • CouchDB был написан на языке программирования Erlang.
  • Он был запущен Дэмиеном Кацем в 2005 году.
  • CouchDB стал проектом Apache в 2008 году.

Текущая версия CouchDB — 1.61.