Está en la página 1de 19

BASES DE DATOS NO SQL

(ORIENTADAS A DOCUMENTOS)

R E A L I Z A D A P O R : J O H A N D AV I D R A M I R E Z Y
BYRON OSORIO MARRUGO
DEFINICIÓN

• Una base de datos orientada a documentos es un almacén que nos permite guardar grandes
cantidades de información de forma organizada para que luego la podamos encontrar y utilizar
fácilmente. Esta información se guarda en archivos y es administrada por un gestor de bases de
datos, que son los encargados de la gestión de documentos optimizando el almacenamiento y
facilitando su recuperación ya sean estructurados o semi-estructurados, estas bases de datos no
almacenan tabla con campos uniformes para cada fila o registro es decir no tiene un esquema
estricto
B D O R I E N TA D A A
DOCUMENTOS
Utiliza una estructura simple como
JSON o XML utilizando una clave
única para cada registro.

Realiza consultas más avanzadas


sobre el contenido del documento.
ESTRUCTURA XML B D O R I E N TA D A A
DOCUMENTOS
Utiliza una estructura simple como
JSON o XML utilizando una clave
única para cada registro.

Realiza consultas más avanzadas


sobre el contenido del documento.
ESTRUCTURA JSON B D O R I E N TA D A A
DOCUMENTOS
Utiliza una estructura simple como
JSON o XML utilizando una clave
única para cada registro.

Realiza consultas más avanzadas


sobre el contenido del documento.
BASE DE DATOS NO
SQL
¿QUÉ ES MONGODB?

CARACTERÍSTICAS

Mongo DB viene de la palabra en ingles “humongous” que significa


enorme, es un sistema de BD No SQL orientado a documentos • Los datos son guardados en
desarrollado bajo el concepto de código abierto. documentos almacenados en
Es una base de datos ágil que permite a los esquemas cambiar formatos JSON y BSON
rápidamente cuando las aplicaciones evolucionan, proporcionado
siempre la funcionalidad que los desarrolladores esperan de las bases de • Al ser NOSQL se crean
datos tradicionales, tales como índice secundarios, un lenguaje “colecciones” en vez de tablas.
completo de búsqueda y consistencia estricta
• No sigue Esquemas como las BD
Relacionales
Persona

{
Nombre: "Pedro",
Apellidos: "Martínez Campo",
Edad: 22,
Aficiones: ["fútbol","tenis","ciclismo"],
Amigos: [
{
Nombre:"María",
Edad:22
¿ES POSIBLE
}, ALMACENAR LOS
{
Nombre:"Luis", D AT O S 2 E N L A
Edad:28 COLECCIÓN PERSONA?
}
]
}

Datos 2
{
Nombre: "Luis",
Estudios: "Administración y Dirección de Empresas",
Amigos:12
}
¿CÓMO FUNCIONA?

MongoDB está escrito en C++, aunque las consultas se


hacen pasando objetos JSON como parámetro.

db.Clientes.find({Nombre:"Pedro"}); Compatible con Lenguajes de programación


como Python, C#,JAVA,Node.js,PHP,
Ruby,C,C++,Perl o Scala
¿DÓNDE SE PUEDE
UTILIZAR MONGO DB?

• Cualquier aplicación que necesite almacenar datos


MongoDB se puede utilizar en muchos de
semi estructurados
los proyectos que desarrollamos en la
• Desarrollos WEB,
actualidad!!!!
• Útil en entornos que requieran Escalabilidad.
¿DÓNDE NO SE DEBE
UTILIZAR MONGO DB?

• Nuestra app puede simular Transacciones Mongo DB no tiene esta


En MongoDB No Existen Transacciones
capacidad.

• Mongo solo garantiza operaciones atómicas a nivel de documento


En General, si nuestros datos pueden ser
• No Existen JOINS, para consultar datos relacionados en dos o mas estructurados en tablas y necesitamos las
colecciones, tenemos que hacer mas de una consulta, relaciones, los sistemas tradicionales son una
mejor opción.
• Consultas de informes complejos,
¿QUÉ ES COUCHDB?

CARACTERÍSTICAS
CouchDB es una base de datos No SQL de código abierto basada en
estándares comunes para facilitar la accesibilidad y compatibilidad
web con una diversidad de dispositivos.
• Almacenamiento de documentos
Apache CouchDB es una base de datos No SQL que almacena • Semántica ACID
documentos JSON y tiene una potente API REST. Está programada en • Vistas e índices Map/Reduce
Erlang y es un proyecto Apache desde 2008. Usa JavaScript para la • Arquitectura distribuida con
operativa interna. replicación
• Interfaz REST
• Consistencia Eventual
• Hecha para operar offline
¿CÓMO FUNCIONA?

Couchdb almacena sus datos en documentos JSON(campo:valor), los valores Los datos se estructuran en vistas creadas
de los campos pueden ser datos simples como enteros, fechas o cadenas de
caracteres , hasta arrays, gracias a esto CouchDB no necesita esquema.
vía JavaScript: CouchDB se encarga de
asignar índices que se actualizan. Para
utilizar las funciones CRUD (Create, Read,
Update, Delete) utiliza REST:Todos los
elementos de la base de datos tiene una URI
que queda accesible vía HTTP para utilizar
las funciones : GET (Read)POST
(Create)PUT (Update)DELETE (Delete)
Utilizando las llamadas CURL.
¿DÓNDE SE PUEDE
UTILIZAR COUCHDB?

• CouchDB se presta para aplicaciones con un fondo de datos acumulativo


con cambios ocasionales, sobre el que se ejecutan consultas predefinidas y
donde el manejo de versiones resulta importante (CRM, sistemas CMS, por
ejemplo). La replicación máster-máster es una característica especialmente
interesante que facilita las instalaciones en múltiples sitio

Las capacidades de replicación y


sincronización de CouchDB hacen de ella
un recurso ideal para ser usado en
dispositivos móviles, donde la conectividad
de red no está garantizada pero la aplicación
debe seguir funcionando en modo offline.
¿ V E N TA J A S D E C O U C H D B ?

• Una de sus características más peculiares es la facilidad con la que permite


hacer replicaciones.

• CouchDB es altamente disponible y tolerante a la partición , pero también es


consistente. CouchDB tiene un motor de almacenamiento tolerante a fallos
que pone la seguridad de sus datos en primer lugar.

• -Cada base de datos es una colección de documentos independientes.-

• Cada documento mantiene sus propios datos y su esquema auto contenido.


¿ D E S V E N TA J A S D E C O U C H D B ?

• Problemas de compatibilidad. A diferencia de las bases de datos relacionales,


que comparten ciertos estándares, las bases de datos No SQL tienen pocas
normas en común. Cada base de datos No SQL tiene su propia API, las
interfaces de consultas son únicas y tienen peculiaridades. Esta falta de
normas significa que es imposible cambiar simplemente de un proveedor a
otro, por si no quedara satisfecho con el servicio

• Problemas de compatibilidad. A diferencia de las bases de datos


relacionales, que comparten ciertos estándares, las bases de datos No SQL
tienen pocas normas en común. Cada base de datos No SQL tiene su propia
API, las interfaces de consultas son únicas y tienen peculiaridades. Esta falta
de normas significa que es imposible cambiar simplemente de un proveedor a
otro, por si no quedara satisfecho con el servicio.
SISTEMAS DE GESTIÓN DE BASE DE DATOS
RELACIONALES VS. BASES DE DATOS DOCUMENTALES
NO SQL
• Desarrollo de software ágil
• El desarrollo de software ágil es un proceso basado en principios que siguen procesos
adaptativos y evolutivos. Por lo tanto, es esencial que todas las plataformas que participan
en el proceso de software sean sensibles a los cambios de aplicación requeridos. Las bases
de datos documentales NoSQL están diseñadas específicamente para esto.
• Los documentos JSON se almacenan en una colección. En el momento de la creación de la
colección no hay necesidad de definir los atributos. Por lo tanto, si hubiera una necesidad de
cambiar el esquema simplemente se agregan nuevos documentos JSON siguiendo el nuevo
esquema, sin afectar a los datos existentes.
SISTEMAS DE GESTIÓN DE BASE DE DATOS
RELACIONALES VS. BASES DE DATOS DOCUMENTALES
NO SQL
• Ciclos de implementación más rápidos
• Las bases de datos documentales también eliminan la necesidad de equipos de modelado de bases de datos específicos ya que
el esquema de datos es generado directamente por la aplicación. Por lo tanto, las bases de datos documentales promueven
modelos de datos orientados a aplicaciones.

• Estructuras de datos ricas


• En las bases de datos relacionales se crean relaciones entre tablas diferentes y después se realizan consultas JOIN varias veces
para obtener la misma información una y otra vez. Sería más rápido agrupar estos fragmentos de datos ya que se accede a ellos de
forma repetida. Los documentos JSON permiten incrustar documentos relacionados que facilitan la búsqueda de datos en una sola
llamada. Por lo tanto, almacenar datos en formato JSON es realmente una forma natural de almacenar información a
diferencia de la estructura plana de datos de filas y columnas. Además, romper las relaciones fijas entre tablas, permite que
las bases de datos documentales NoSQL distribuyan fácilmente datos entre múltiples máquinas, lo cual reparte la carga de lectura
y escritura.
GRACIAS POR LA
ATENCIÓN
PRESTADA

También podría gustarte