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