Base de Datos Documentales

¿Que son?

¿Trabajan bajo el marco de la definición de un
"Documento como se almacena la información con
algún formato estándar.

Cada documento, es muy similar a un registro en
una base de datos relacional.

Ideal para desarrollo ágil.

Los formatos más utilizados por los motores más
populares son: JSON y BSON

Bases de datos documentales

MongoDB

*2008

*GNU
AGPL
v3.0

CouchDB

*2005

Apache
License
2.0

Raven DB

*2010

*GNU
AGPL
v3.0

ESTRUCTURA DE UN OBJETO JSON

LOS DATOS ESTÁN
ESTRUCTURADOS
EN PARES KEY-VALUE.

LOS DOCUMENTOS
CONSISTEN EN PARES DE NOMBRE– VALOR SEPARADOS POR COMAS.

LOS DOCUMENTOS
EMPIEZAN CON { Y
TERMINAN CON }.

LOS NOMBRES
(KEY) SON
CADENAS “ID”,
“NUM_CONTROL”.

LOS VALORES
PUEDEN SER:
STRING, BOOLEAN,
ARRAY, OBJECT,
NULL, NUMBERS.

LOS VALORES
ARRAY SON MOSTRADOS CON[
].

LOS VALORES DE
OBJETOS SON
MOSTRADOS CON
{ }

Documentos "ROW"

El corazón de MongoDB son los
documentos.

Un documento es un set
ordenado de key (llave) con un
value (valor) asociado.

Una Key es un string UTF-8 con
las siguientes excepciones:

No debe contener el carácter \0
(null).

SIGUIENTE

Mongo DB es:

Type-sensitive

SIGUIENTE

No deben existir key (llaves)
duplicadas.

Case-sensitive

Los caracteres . y $ deben ser
empleados con cuidado, ya que
tienen otras funciones. Deben ser
considerados como “reservados”

COLLECTIONS
(COLECCIONES)
– “TABLE”

Son un grupo de
documentos.

Los documentos en la misma
colección no tienen porque
tener la misma estructura.

Una ventaja de las document
DB, es que proveen una
gran flexibilidad en la
estructura de los datos.

El nombre de colección
puede formarse de acuerdo
a:

El nombre de colección
puede formarse de acuerdo a:

No debe contener el
carácter \0 (null).

No se debe emplear el
prefijo system.

No se debe emplear el
carácter reservado $

DATABASE

MongoDB agrupa las colecciones en databases.

Para nombrar a las databases podemos
emplear cualquier string UTF-8 con las
siguientes restricciones:

La cadena vacía no es valida “”
No debe contener el carácter /, \, ., ", *, <, >, :, |, ?, $, (espacio), o \0 (null)
Es case - sensitive
Esta limitada a un máximo de 64 kb

TIPO DE DATOS

• Null: {"x" : null}

Boolean: {"x" : true}

Number:• floating point (shell default 64-bit): {"x" : 3.14}
• Integers NumberInt 4-byte {"x" : NumberInt("3")}
• Integers NumberLong 8-byte: {"x" : NumberLong("3")}

String (UTF-8 caracter): {"x" : "foobar"}

Date: (se guarda como milisegundos desde epoch (Enero 1, 1970 media
noche)): {"x" : new Date()}

Regular expression: emplea la sintaxis de JavaScript {"x" : /foobar/i}

Array: {"x" : ["a", "b", "c"]}

Documentos embebidos: {"x" : {"foo" : "bar"}}

Object id: 12-byte{"x" : ObjectId()}

• Binary data: es una cadena de bytes.

Code: Código JavaScript {"x" : function() { /* ... */ }}

OBJECT _ID

Cualquier documento
almacenado en MongoDB
deberá de contener un key
_id.

ObjectId esta diseñado para
trabajar en una base de datos
distribuida.

El _id puede ser cualquier
tipo de dato, pero por
defecto es un ObjectID

ObjectID emplea 12 bytes de
almacenamiento, es un string
que representa un numero
hexadecimal de 24 dígitos.

ARCHIVOS DE
MONGODB

Mongod: the core database server

Mongo: The database shell

Mongos: The auto-sharding process

Mongoexport: The export utility

Mongoimport: The import utilit

ALGUNOS
COMANDOS...

db; .- nos devuelve la db que estamos
usando

show dbs; .- nos muestra las bases de
datos

use [nombre_db]; .- cambiamos de db

show collections; .- muestra las
colecciones

CREAR
USUARIOS

Crear un usuario Admin

use admin;

db.createUser({user: "AdminUser",
pwd: "password",
roles:["userAdminAnyDatabase"]})

db.auth("AdminUser", "password")V

Topic principal

Subtopic

Subtopic

Subtopic

Subtopic

Subtopic