Documentary Base
Introduction
A document database is made up of a set of programs that store, retrieve and manage document data or structured data in some way. This type of databases constitute one of the main subcategories within the so-called NoSQL databases. Unlike relational databases, these databases are designed around an abstract notion of "Document".
The documents
Contenido
El concepto central de una base de datos orientada a documentos es el concepto mismo de Documento. Mientras cada implementación de base de datos orientada a documentos difiere en los detalles, en general todas ellas comparten el principio de que los documentos encapsulan y codifican datos o información siguiendo algún formato estándar. Entre las codificaciones usadas en la actualidad se encuentran XML, YAML y JSON, así como formatos binarios como BSON.
Los documentos dentro de una base de datos orientada a documentos son similar, de algún modo, a registros, tuplas o filas en una base de datos relacional pero menos rígidos. No se les requiere ajustarse a un esquema estándar ni tener todos las mismas secciones, atributos, claves o cosas por el estilo. Por ejemplo un documento puede ser:.
Mientras que otro:.
Estos documentos contienen alguna información similar y otra diferente. Al contrario que una base de datos relacional en la que todos los registros deben tener los mismos atributos -que pueden quedar vacíos- , en un documento no quedan 'campos' vacíos. De este modo es posible añadir nueva información sin necesidad de establecer qué información queda excluida.
Keys
Documents are addressed using a unique key that identifies the document. Generally this key is made up of a simple string. In some cases it may be a URI or a path, which is used to retrieve the document from the database. Generally the database maintains an index of these keys, so recovery is fast.
Recovery
Another defining characteristic of a document-oriented database is that, beyond the simple key-document (or key-value) correspondence used to retrieve a document, the database offers an API or a query language to retrieve documents based on their content. For example, to ask for all documents that have a given value in a field. The feature set of the API or query language, as well as what you get, varies significantly between different implementations.