SlideShare una empresa de Scribd logo
1 de 24
Descargar para leer sin conexión
Tema No.3: SQL o NoSQL en Informática Biomédica
Conferencia No.1
¿Qué es NoSQL?
Diferenciación entre Bases de Datos SQL y NoSQL.
Tipos de bases NoSQL.
Abril, 2016
SUMARIO
1. ¿Qué es una base de datos
NoSQL?
2. Diferencias principales entre las
bases de datos SQL y NoSQL.
ACID y BASE.
3. Tipos de Base de Datos NoSQL.
¿Qué es NoSQL?
¿Qué son las bases de datos NoSQL?
Se puede decir que la aparición del término NoSQL aparece con la llegada de la
web 2.0 ya que hasta ese momento sólo subían contenido a la red aquellas
empresas que tenían un portal, pero con la llegada de aplicaciones como
Facebook, Twitter o Youtube, cualquier usuario podía subir contenido,
provocando así un crecimiento exponencial de los datos.
Empiezan a aparecer los primeros problemas de la gestión de toda esa
información almacenada en bases de datos relacionales. En un principio, para
solucionar estos problemas de accesibilidad, las empresas optaron por utilizar un
mayor número de máquinas, pero pronto se dieron cuenta de que esto no
solucionaba el problema, además de ser una solución muy cara.
La otra solución era la creación de sistemas pensados para un uso específico que
con el paso del tiempo han dado lugar a soluciones robustas, apareciendo así el
movimiento NoSQL.
¿Qué es NoSQL?
¿Qué son las bases de datos NoSQL?
Por lo tanto hablar de bases de datos NoSQL es hablar de estructuras que nos
permiten almacenar información en aquellas situaciones en las que las bases de
datos relacionales generan ciertos problemas debido principalmente a
problemas de escalabilidad y rendimiento de las bases de datos relacionales
donde se dan cita miles de usuarios concurrentes y con millones de consultas
diarias.
Las bases de datos NoSQL son sistemas de almacenamiento de información que
no cumplen con el modelo relacional. No utilizan una estructura de datos en
forma de tabla, no utilizan las operaciones JOIN.
Para el almacenamiento hacen uso de otros formatos como clave–valor, mapeo
de columnas o grafos, documentos.
Unidades de información (del byte)
Sistema Internacional
(decimal)
ISO/IEC 80000-13 (binario)
Múltiplo
(símbolo)
SI
Múltiplo
(símbolo)
ISO/IEC
kilobyte (kB) 103 kibibyte (KiB) 210
megabyte (MB) 106 mebibyte (MiB) 220
gigabyte (GB) 109 gibibyte (GiB) 230
terabyte (TB) 1012 tebibyte (TiB) 240
petabyte (PB) 1015 pebibyte (PiB) 250
exabyte (EB) 1018 exbibyte (EiB) 260
zettabyte (ZB) 1021 zebibyte (ZiB) 270
yottabyte (YB) 1024 yobibyte (YiB) 280
•Internet Archive tiene alrededor de 2
petabytes de datos.
•Google procesa sobre 20 petabytes de
datos cada día.
•En diciembre de 2007, YouTube tuvo un
tráfico de 27 petabytes.
•El Gran Colisionador de Hadrones genera
unos 20 petabytes de datos útiles al año.
•Facebook tiene 60 mil millones de
imágenes, lo que supone 1,5 petabytes de
almacenamiento y crece a un ritmo de 220
millones de imágenes por semana.
Ejemplos
Un petabyte es una unidad de almacenamiento de información cuyo símbolo es el PB, y
equivale a 1015 bytes = 1 000 000 000 000 000 de bytes. El prefijo peta viene del griego πέντε,
que significa cinco, pues equivale a 10005 ó 1015. Está basado en el modelo de tera, que viene
del griego ‘monstruo’, pero que es similar (excepto una letra) a tetra-, que viene de la palabra
griega para cuatro y así peta, que viene de penta-, pierde la tercera letra, la n.
1 PB = 1015 byte = 1012 kB = 109 MB = 106 GB = 103 TB
¿Qué es NoSQL?
Bases de DATOS. SQL vs NoSQL
Históricamente, una base de datos relacional focaliza el interés en la fiabilidad de las
transacciones bajo el conocido principio ACID, acrónimo de Atomicity, Consistency,
Isolation and Durability (Atomicidad, Consistencia, Aislamiento y Durabilidad en
español). Bajo esas propiedades se pretende que una transacción sobre una base de
datos siempre se complete o no (atomicidad), que los datos se mantengan en estado
válido en todo momento (consistencia), que sea independiente (aislamiento) y que
sea permanente frente a fallos del sistema (durabilidad).
El principio ACID aporta una robustez que colisiona con el rendimiento y operatividad
a medida que los volúmenes de datos crecen.
Cuando la magnitud y el dinamismo de los datos cobran importancia, el principio
ACID de los modelos relacionales queda en segundo plano frente al rendimiento,
disponibilidad y escalabilidad, las características más propias de las bases de datos
NoSQL. Hoy en día, los modernos sistemas de datos en internet se ajustan más al
también conocido principio BASE, acrónimo de Basic Availability (disponibilidad
como prioridad) Soft state (la consistencia de datos se delega a gestión externa al
motor de la base de datos) Eventually consistency (intentar lograr la convergencia
hacia un estado consistente)
¿Qué es NoSQL?
- Principio ACID, típico de bases de datos relacionales -
- Principio BASE, común en BBDD NoSQL -
¿Qué es NoSQL?
La principal diferencia entre una base datos relacional RDBMS y una
NoSQL estriba en el concepto de la estructura de los datos.
Con un modelo NoSQL la información se almacena de modos más flexibles
que no tienen la restricción de adoptar un formato predefinido, tal y como
ocurre en las bases relacionales (tablas cuya estructura sigue un
esquema).
Gracias a esto, es mucho más sencillo distribuir los datos entre sistemas
sin tener que mantener un complejo mecanismo de migración.
Este diseño beneficia una escalabilidad horizontal simplemente añadiendo
nodos para distribuir la carga, que aventaja la escalabilidad vertical
(incremento de potencia de procesado y memoria) necesaria en bases de
datos relacionales.
Estas razones principalmente, hacen que las bases de datos NoSQL sean
las candidatas a adoptar cuando se trate de manejar grandes volúmenes
de datos de naturaleza muy variada.
Ventajas de los sistemas NoSQL
• Se ejecutan en máquinas con pocos recursos: Estos sistemas, a diferencia
de los sistemas basados en SQL, no requieren de apenas computación, por
lo que se pueden montar en máquinas de un coste más reducido.
• Escalabilidad horizontal: Para mejorar el rendimiento de estos sistemas
simplemente se consigue añadiendo más nodos, con la única operación de
indicar al sistema cuáles son los nodos que están disponibles.
• Pueden manejar gran cantidad de datos: Esto es debido a que utiliza una
estructura distribuida, en muchos casos mediante tablas Hash.
• No genera cuellos de botella: El principal problema de los sistemas SQL es
que necesitan transcribir cada sentencia para poder ser ejecutada, y cada
sentencia compleja requiere además de un nivel de ejecución aún más
complejo, lo que constituye un punto de entrada en común, que ante
muchas peticiones puede ralentizar el sistema.
Algunas de las diferencias más destacables que nos podemos encontrar entre los sistemas
NoSQL y los sistemas SQL están:
• No utilizan SQL como lenguaje de consultas. La mayoría de las bases de datos NoSQL
evitan utilizar este tipo de lenguaje o lo utilizan como un lenguaje de apoyo. Por poner
algunos ejemplos, Cassandra utiliza el lenguaje CQL, MongoDB utiliza JSON o BigTable
hace uso de GQL.
• No utilizan estructuras fijas como tablas para el almacenamiento de los datos. Permiten
hacer uso de otros tipos de modelos de almacenamiento de información como sistemas
de clave–valor, objetos o grafos.
• No suelen permitir operaciones JOIN. Al disponer de un volumen de datos tan
extremadamente grande suele resultar deseable evitar los JOIN. Esto se debe a que,
cuando la operación no es la búsqueda de una clave, la sobrecarga puede llegar a ser
muy costosa. Las soluciones más directas consisten en desnormalizar los datos, o bien
realizar el JOIN mediante software, en la capa de aplicación.
• Arquitectura distribuida. Las bases de datos relacionales suelen estar centralizadas en
una única máquina o bien en una estructura máster–esclavo, sin embargo en los casos
NoSQL la información puede estar compartida en varias máquinas mediante mecanismos
de tablas Hash distribuidas.
Base de datos relacional Base de datos NoSQL
Modelo de datos
El modelo relacional normaliza los datos en estructuras tabulares conocidas
como tablas, que están formadas por filas y columnas. Contienen un
esquema que define estrictamente las tablas, columnas, índices, relaciones
entre las tablas y otros elementos de las bases de datos.
Las bases de datos no relacionales (NoSQL) no suelen contener un
esquema. Se suele utilizar una “clave hash” para recuperar valores,
conjuntos de columnas o documentos JSON o XML semiestructurados, así
como otros documentos que contengan atributos de elementos
relacionados.
Propiedades ACID
Los sistemas de administración de bases de datos relacionales (RDBMS)
tradicionales admiten un conjunto de propiedades definidas por el acrónimo
ACID (por sus siglas en inglés): atomicidad, consistencia, aislamiento y
durabilidad. Atomicidad significa “todo o nada” – una transacción se
ejecuta completamente o no se ejecuta en absoluto. Consistencia quiere
decir que una vez se ha ejecutado una transacción, los datos deben
acoplarse al esquema de la base de datos. El aislamiento requiere que las
transacciones simultáneas se ejecuten por separado. La durabilidad es la
capacidad de recuperarse de un error inesperado del sistema o de un corte
de energía y volver al último estado conocido.
Habitualmente, las bases de datos NoSQL intercambian algunas de las
propiedades ACID de los sistemas de administración de bases de datos
relacionales (RDBSM) tradicionales por un modelo de datos más flexible que
se escala de forma horizontal. Estas características convierten las bases de
datos NoSQL en una elección excelente en las situaciones en las que los
RDBMS detectan desafíos en la arquitectura a la hora de superar una
combinación de cuellos de botella de desempeño, escalabilidad,
complejidad operativa y el aumento de los costos de administración y
soporte.
Desempeño
Normalmente, el desempeño depende del subsistema de disco. Es necesaria
la optimización de consultas, índices y estructura de tabla para lograr el
máximo desempeño.
El desempeño es, por lo general, depende del tamaño del clúster de
hardware subyacente, la latencia de red y la aplicación que efectúa la
llamada.
Escalado
Lo más sencillo es ampliar la escala con un hardware más rápido. Se
requieren inversiones adicionales para que las tablas relacionales abarquen
un sistema distribuido.
Está diseñada para reducir la escala utilizando clústeres distribuidos de
hardware de bajo costo para aumentar el desempeño sin que aumente la
latencia.
API
Solicita almacenar y recuperar datos que están comunicados mediante
consultas que se ajustan a un lenguaje de consulta estructurado (SQL por sus
siglas en inglés). Estas consultas son analizadas y ejecutadas por los sistemas
de administración de bases de datos relacionales (RDBMS).
Las API basadas en objetos permiten a los desarrolladores almacenar y
recuperar fácilmente estructuras de datos en memoria. Las “claves hash”
permiten que las aplicaciones busquen pares de clave-valor, conjuntos de
columnas o documentos semiestructurados que contengan atributos y
objetos de aplicación serializados.
Herramientas
Las bases de datos SQL normalmente ofrecen un amplio conjunto de
herramientas que simplifican el desarrollo de aplicaciones de base de datos.
Las bases de datos NoSQL suelen ofrecer herramientas para administrar los
clústeres y el escalado. Las aplicaciones representan la interfaz primaria de
los datos subyacentes.
Comparación entre base de datos SQL y NoSQL
Tipos y clasificación de bases de datos NoSQL
Existen unos 150 tipos de bases de datos NoSQL con diferente
arquitectura de datos (basado en documento, en clave/valor, en
objetos, en grafos, en columnas, etc) Entre las más conocidas
destacan Cassandra, Hadoop, MongoDB, CouchDB o Redis.
Gigantes como Oracle también disponen de una implementación
NoSQL.
Tipos de bases de datos NoSQL
1.- Bases de datos clave – valor Son el modelo de base de datos NoSQL más popular,
además de ser la más sencilla en cuanto a
funcionalidad. En este tipo de sistema, cada elemento
está identificado por una llave única, lo que permite
la recuperación de la información de forma muy
rápida, información que habitualmente está
almacenada como un objeto binario.
Optimizadas para cargas de trabajo de aplicaciones
que realizan muchas tareas de lectura (como redes
sociales, juegos, uso compartido de archivos
multimedia y portales de preguntas y respuestas) o
para cargas de trabajo con un uso intensivo de
computación (como un motor de recomendaciones).
El almacenamiento en memoria caché mejora el
desempeño de las aplicaciones almacenando los
datos críticos en memoria para un acceso de baja
latencia.
Algunos ejemplos de este tipo son DynamoDB, Riak, Redis. Amazon y Best Buy.
Tipos de bases de datos NoSQL
1.- Bases de datos clave – valor
En esta categoría encontramos:
• DynamoDB: desarrollada por Amazon,
es una opción de almacenaje que
podemos usar desde los Amazon Web
Services. La utilizan el Washington
Post y Scopely.
• Redis: desarrollada en C y de código
abierto, es utilizada por Craiglist y
Stack Overflow (a modo de caché).
De interés: Los almacenes key/value son
extremadamente rápidos pero no permiten
consultas complejas más allá de buscar por su
clave. Por lo que si una aplicación necesita
consultas complejas, este tipo de base de
datos no se ajusta a las necesidades.
Existen implementaciones de estos almacenes
solo en memoria, tales como: memcached,
Oracle Coherence, JBoss Cache y WebSphere
eXtreme Scale. Estas soluciones normalmente
funcionan junto a un RDBMS actuando solo
como un cache complementario.
Además existen otras implementaciones que sí
son persistentes, es decir que realmente
guardan datos en el soporte físico y no sólo en
memoria por lo que se les puede usar sin un
RDBMS. Las más usadas son VMWare Redis,
Amazon SimpleDB, Oracle BerkeleyDB y Tokyo
Cabinet.
Tipos de bases de datos NoSQL
2.- Bases de datos documentales Este tipo almacena la información como un
documento (datos semiestructurados)
generalmente utilizando para ello una
estructura simple como JSON o XML y donde
se utiliza una clave única para cada registro.
Este tipo de implementación permite, además
de realizar búsquedas por clave–valor, realizar
consultas más avanzadas sobre el contenido
del documento.
Son las bases de datos NoSQL más versátiles.
Se pueden utilizar en gran cantidad de
proyectos, incluyendo muchos que
tradicionalmente funcionarían sobre bases de
datos relacionales.
A diferencia de las bases de datos relacionales
tradicionales, el esquema de cada documento
no relacional (NoSQL) puede variar, lo que
ofrece más flexibilidad al organizar y
almacenar datos de aplicaciones y permite
reducir el almacenamiento necesario para los
valores opcionales.
Tipos de bases de datos NoSQL
2.- Bases de datos documentales
Ejemplos:
• MongoDB: probablemente la base de datos NoSQL más
famosa del momento. En octubre del año pasado,
MongoDB conseguía 150 millones de dólares en
financiación, convirtiéndose en una de las startups más
prometedoras. Algunas compañías que actualmente
utilizan MongoDB son Foursquare o eBay.
• CouchDB: es la base de datos orientada a documentos
de Apache. Una de sus interesantes características es
que los datos son accesibles a través de una API Rest.
Este sistema es utilizado por compañías como Credit
Suisse y la BBC.
Tipos de bases de datos NoSQL
3.- Bases de datos en grafo
En este tipo de bases de datos, la información se representa como nodos de un grafo y sus
relaciones con las aristas del mismo, de manera que se puede hacer uso de la teoría de grafos
para recorrerla. Los gráficos pueden basarse en bases de datos relacionales (SQL) y no
relacionales (NoSQL) Para sacar el máximo rendimiento a este tipo de bases de datos, su
estructura debe estar totalmente normalizada, de forma que cada tabla tenga una sola
columna y cada relación dos.
Este tipo de bases de datos ofrece una navegación más eficiente entre relaciones que en un
modelo relacional. Modelo de grafos que se extiende entre múltiples máquinas. Es un modelo
apropiado para datos cuyas relaciones se ajustan a este modelo, como por ejemplo redes de
transporte, mapas, etc.
Tipos de bases de datos NoSQL
3.- Bases de datos en grafo
En esta categoría encontramos:
• Infinite Graph: escrita en Java y C++ por la compañía Objectivity.
Tiene dos modelos de licenciamiento: uno gratuito y otro de pago.
• Neo4j: base de datos de código abierto, escrita en Java por la
compañía Neo Technology. Utilizada por compañías como HP,
Infojobs o Cisco.
Almacenan vértices y
enlaces dirigidos
llamados aristas. Los
gráficos pueden
basarse en bases de
datos relacionales
(SQL) y no relacionales
(NoSQL). Los vértices y
las aristas pueden
tener propiedades
asociadas.
Tipos de bases de datos NoSQL
4.- Bases de datos en columnas
Pensadas para realizar consultas y agregaciones sobre grandes cantidades de datos.
Funcionan de forma parecida a las bases de datos relacionales, pero almacenando
columnas de datos en lugar de registros.
Optimizadas para leer y escribir columnas de datos en lugar de filas.
El almacenamiento basado en columnas para las tablas de bases de datos es un factor
importante en el desempeño de las consultas analíticas, ya que reduce notablemente los
requisitos globales de E/S del disco, así como la cantidad de datos que hay que cargar
desde el mismo.
Tipos de bases de datos NoSQL
4.- Bases de datos en columnas
Ejemplos:
• Cassandra: incluida en esta sección, aunque en realidad sigue un modelo híbrido
entre orientada a columnas y clave-valor. Es utilizada por Facebook y Twitter
(aunque dejaron de usarla para almacenar tweets).
• HBase. Escrita en Java y mantenida por el Projecto Hadoop de Apache, se utiliza
para procesar grandes cantidades de datos. La utilizan Facebook, Twitter o Yahoo.
Retos de seguridad en bases de datos NoSQL
Dada la amplia variedad de bases de datos NoSQL, es necesario prestar atención a las
debilidades genéricas de estos modelos y, en cada caso particular aplicar las medidas
necesarias para su implementación.
Comparando con las bases de datos relacionales podemos resumir los siguientes campos de
seguridad:
Autenticación.
La fortaleza de la autenticación es uno de los campos de batalla donde muchas
implementaciones NoSQL muestran debilidad. Es común encontrar que las bases de datos
NoSQL incorporen credenciales por defecto, o incluso sin autenticación necesaria o
deshabilitada (por ejemplo, Redis).
En muchos casos se basan en entornos de confianza en lugar de autenticación de usuario.
Dependiendo del software siempre será un punto fundamental a chequear.
Integridad de los datos.
Siguiendo una filosofía donde prima la disponibilidad y el rendimiento, se penaliza en la
integridad de los datos. Por ello es necesario utilizar frecuentemente mecanismos
complementarios ajenos al motor de la base de datos para asegurar la integridad.
Retos de seguridad en bases de datos NoSQL
Confidencialidad y cifrado en el almacenamiento.
Por lo general, el almacenamiento de los datos se realiza en texto plano y salvo
escasas excepciones como por ejemplo Cassandra y su tecnología Transparent data
encryption, no se incorporan mecanismos de cifrado integrados.
En la mayoría de los casos sigue siendo necesario delegar el cifrado a procesos en
la capa de aplicación o del propio sistema de ficheros.
Auditoría de datos
La mayoría de bases de datos NoSQL carecen de mecanismos propios y robustos de
auditoría de datos, de gran peso a la hora de detectar posibles ataques mediante la
observación de eventos sobre registros concretos tal y como se hace en bases de
datos relacionales.
Seguridad en las comunicaciones.
El uso de cifrado y protocolo SSL es habitual en bases de datos relaciones, en
cambio en sistemas NoSQL generalmente se encuentra deshabilitado por defecto, es
opcional (por ejemplo Cassandra), o bien es necesaria una configuración específica
en la instalación (como en MongoDB).
En las bases de datos NoSQL, las peticiones y llamadas se ejecutan invocando la
API correspondiente formateada según una convención común, habitualmente
JSON o XML. En este punto, una incorrecta verificación de los parámetros de
entrada puede permitir la ejecución de comandos al evaluarse y tratarse en la
llamada a la API correspondiente. Las posibilidades de inyección y los riesgos, al
utilizarse una API con lenguaje de programación procedimental, son aún mayores
que en el caso de bases de datos relaciones donde se usa el lenguaje SQL
típicamente declarativo y mucho más acotado.
Inyección NoSQL y de código javascript son nuevos vectores que amplían la
superficie de ataques sobre estas bases de datos.
NoSQL está cada vez más presente en las tecnologías actuales de bases de datos
y afronta grandes retos para lidiar con los problemas de seguridad que tarde o
temprano deberá reforzar.
Vulnerabilidades clásicas en base de datos: Aún
más inyección.
CONCLUSIONES
Dada la amplia variedad de bases de datos NoSQL, es necesario prestar atención a las
debilidades genéricas de estos modelos y, en cada caso particular aplicar las medidas
necesarias en cada implementación particular.
Existen diferentes bases de datos NoSQL, cuyas características y formatos de
almacenamiento varían, haciendo que el modelado para cada una de ellas tenga que ser
distinto. A la hora de elegir un sistema NoSQL frente a uno SQL habrá que plantearse
previamente si realmente se necesita, después elegir uno en concreto en base a nuestras
necesidades, olvidarnos de las formas normales y guardar los datos de distinta manera en
función de cómo va a ser el acceso a éstos.
Las bases de datos NoSQL nos permiten almacenar información en aquellas situaciones en
las que las bases de datos relacionales generan ciertos problemas debido principalmente a
problemas de escalabilidad y rendimiento donde se dan cita miles de usuarios concurrentes
y con millones de consultas diarias.
Las bases de datos NoSQL son sistemas de almacenamiento de información que no
cumplen con el modelo relacional. No utilizan una estructura de datos en forma de tabla,
no utilizan las operaciones JOIN.

Más contenido relacionado

La actualidad más candente

Sistema De Gestión De Base De Datos
Sistema De Gestión De Base De DatosSistema De Gestión De Base De Datos
Sistema De Gestión De Base De DatosGuillermo Chirinos
 
Non relational databases-no sql
Non relational databases-no sqlNon relational databases-no sql
Non relational databases-no sqlRam kumar
 
Historia de la tecnologia de base de datos
Historia de la tecnologia de base de datosHistoria de la tecnologia de base de datos
Historia de la tecnologia de base de datosralbarracin
 
Bases de datos deductivas
Bases de datos deductivas Bases de datos deductivas
Bases de datos deductivas natar25
 
NoSQL databases - An introduction
NoSQL databases - An introductionNoSQL databases - An introduction
NoSQL databases - An introductionPooyan Mehrparvar
 
Unidad 3 Modelamiento De Datos Conceptual
Unidad 3 Modelamiento De Datos ConceptualUnidad 3 Modelamiento De Datos Conceptual
Unidad 3 Modelamiento De Datos ConceptualSergio Sanchez
 
Fundamentos de Bases de Datos - Introducción
Fundamentos de Bases de Datos - IntroducciónFundamentos de Bases de Datos - Introducción
Fundamentos de Bases de Datos - IntroducciónManuel Padilla
 
NoSQL bases de datos no relacionales
NoSQL bases de datos no relacionalesNoSQL bases de datos no relacionales
NoSQL bases de datos no relacionalesAndrés Londoño
 
introduction to NOSQL Database
introduction to NOSQL Databaseintroduction to NOSQL Database
introduction to NOSQL Databasenehabsairam
 
HISTORIA DE LAS BASES DE DATOS
HISTORIA DE LAS BASES DE DATOSHISTORIA DE LAS BASES DE DATOS
HISTORIA DE LAS BASES DE DATOSdfgdfgs
 

La actualidad más candente (20)

Sistema De Gestión De Base De Datos
Sistema De Gestión De Base De DatosSistema De Gestión De Base De Datos
Sistema De Gestión De Base De Datos
 
Fundamentos de las bases de datos
Fundamentos de las bases de datosFundamentos de las bases de datos
Fundamentos de las bases de datos
 
Base de datos distribuidas
Base de datos distribuidasBase de datos distribuidas
Base de datos distribuidas
 
Historia base de datos
Historia base de datosHistoria base de datos
Historia base de datos
 
1. Modelo de Datos
1. Modelo de Datos1. Modelo de Datos
1. Modelo de Datos
 
Non relational databases-no sql
Non relational databases-no sqlNon relational databases-no sql
Non relational databases-no sql
 
Nosql databases
Nosql databasesNosql databases
Nosql databases
 
Historia de la tecnologia de base de datos
Historia de la tecnologia de base de datosHistoria de la tecnologia de base de datos
Historia de la tecnologia de base de datos
 
Bases de datos deductivas
Bases de datos deductivas Bases de datos deductivas
Bases de datos deductivas
 
NoSQL databases - An introduction
NoSQL databases - An introductionNoSQL databases - An introduction
NoSQL databases - An introduction
 
Unidad 3 Modelamiento De Datos Conceptual
Unidad 3 Modelamiento De Datos ConceptualUnidad 3 Modelamiento De Datos Conceptual
Unidad 3 Modelamiento De Datos Conceptual
 
CONCEPTOS BÁSICOS DE BASE DE DATOS
CONCEPTOS BÁSICOS DE BASE DE DATOSCONCEPTOS BÁSICOS DE BASE DE DATOS
CONCEPTOS BÁSICOS DE BASE DE DATOS
 
Base de datos
Base de datosBase de datos
Base de datos
 
Fundamentos de Bases de Datos - Introducción
Fundamentos de Bases de Datos - IntroducciónFundamentos de Bases de Datos - Introducción
Fundamentos de Bases de Datos - Introducción
 
Taller de Base de Datos - Unidad 7 Conectividad
Taller de Base de Datos - Unidad 7 ConectividadTaller de Base de Datos - Unidad 7 Conectividad
Taller de Base de Datos - Unidad 7 Conectividad
 
NoSQL bases de datos no relacionales
NoSQL bases de datos no relacionalesNoSQL bases de datos no relacionales
NoSQL bases de datos no relacionales
 
introduction to NOSQL Database
introduction to NOSQL Databaseintroduction to NOSQL Database
introduction to NOSQL Database
 
HISTORIA DE LAS BASES DE DATOS
HISTORIA DE LAS BASES DE DATOSHISTORIA DE LAS BASES DE DATOS
HISTORIA DE LAS BASES DE DATOS
 
Bases de Datos No Relacionales (NoSQL): Cassandra, CouchDB, MongoDB y Neo4j
Bases de Datos No Relacionales (NoSQL): Cassandra, CouchDB, MongoDB y Neo4jBases de Datos No Relacionales (NoSQL): Cassandra, CouchDB, MongoDB y Neo4j
Bases de Datos No Relacionales (NoSQL): Cassandra, CouchDB, MongoDB y Neo4j
 
MongoDB: la BBDD NoSQL más popular del mercado
MongoDB: la BBDD NoSQL más popular del mercadoMongoDB: la BBDD NoSQL más popular del mercado
MongoDB: la BBDD NoSQL más popular del mercado
 

Similar a Sql o NoSql en Informática Médica

Similar a Sql o NoSql en Informática Médica (20)

Act1.7 nosql terminado corregido
Act1.7 nosql terminado corregidoAct1.7 nosql terminado corregido
Act1.7 nosql terminado corregido
 
SGBD NoSQL
SGBD NoSQLSGBD NoSQL
SGBD NoSQL
 
Actividad 1.7: NoSQL
Actividad 1.7: NoSQLActividad 1.7: NoSQL
Actividad 1.7: NoSQL
 
Act1.7 nosql terminado
Act1.7 nosql terminadoAct1.7 nosql terminado
Act1.7 nosql terminado
 
Bases de datos
Bases de datosBases de datos
Bases de datos
 
Principales bases de datos
Principales bases de datosPrincipales bases de datos
Principales bases de datos
 
Base de datos 1.2
Base de datos 1.2Base de datos 1.2
Base de datos 1.2
 
Principales bases de datos existentes
Principales bases de datos existentesPrincipales bases de datos existentes
Principales bases de datos existentes
 
Bases de datos
Bases de datosBases de datos
Bases de datos
 
NoSQL: Introducción a las Bases de Datos no estructuradas
NoSQL: Introducción a las Bases de Datos no estructuradasNoSQL: Introducción a las Bases de Datos no estructuradas
NoSQL: Introducción a las Bases de Datos no estructuradas
 
Bases de datos
Bases de datosBases de datos
Bases de datos
 
NoSql introducción -Innova4j
NoSql introducción -Innova4jNoSql introducción -Innova4j
NoSql introducción -Innova4j
 
Bases de datos
Bases de datosBases de datos
Bases de datos
 
Que una base de datos
Que una base de datosQue una base de datos
Que una base de datos
 
02 base de datos hernandez_luis
02 base de datos hernandez_luis02 base de datos hernandez_luis
02 base de datos hernandez_luis
 
Principales bases de datos existentes
Principales bases de datos existentesPrincipales bases de datos existentes
Principales bases de datos existentes
 
Base de datos
Base de datosBase de datos
Base de datos
 
Bases de datos
Bases de datosBases de datos
Bases de datos
 
BASES DE DATOS
BASES DE DATOSBASES DE DATOS
BASES DE DATOS
 
Base de datos uriel jesus mercado mendez 2 grado grupo c
Base de datos uriel jesus mercado mendez 2 grado grupo cBase de datos uriel jesus mercado mendez 2 grado grupo c
Base de datos uriel jesus mercado mendez 2 grado grupo c
 

Último

Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Alejandrino Halire Ccahuana
 
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLAACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLAJAVIER SOLIS NOYOLA
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxFernando Solis
 
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).pptPINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).pptAlberto Rubio
 
Revista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdfRevista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdfapunteshistoriamarmo
 
origen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioorigen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioELIASAURELIOCHAVEZCA1
 
Infografía EE con pie del 2023 (3)-1.pdf
Infografía EE con pie del 2023 (3)-1.pdfInfografía EE con pie del 2023 (3)-1.pdf
Infografía EE con pie del 2023 (3)-1.pdfAlfaresbilingual
 
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docxPLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docxiemerc2024
 
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIASISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIAFabiolaGarcia751855
 
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptxLA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptxlclcarmen
 
SEPTIMO SEGUNDO PERIODO EMPRENDIMIENTO VS
SEPTIMO SEGUNDO PERIODO EMPRENDIMIENTO VSSEPTIMO SEGUNDO PERIODO EMPRENDIMIENTO VS
SEPTIMO SEGUNDO PERIODO EMPRENDIMIENTO VSYadi Campos
 
Los avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtualesLos avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtualesMarisolMartinez707897
 
Análisis de los Factores Externos de la Organización.
Análisis de los Factores Externos de la Organización.Análisis de los Factores Externos de la Organización.
Análisis de los Factores Externos de la Organización.JonathanCovena1
 
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...Katherine Concepcion Gonzalez
 
Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024IES Vicent Andres Estelles
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESOluismii249
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESOluismii249
 

Último (20)

Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
 
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLAACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
 
Tema 11. Dinámica de la hidrosfera 2024
Tema 11.  Dinámica de la hidrosfera 2024Tema 11.  Dinámica de la hidrosfera 2024
Tema 11. Dinámica de la hidrosfera 2024
 
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).pptPINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
 
Revista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdfRevista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdf
 
origen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioorigen y desarrollo del ensayo literario
origen y desarrollo del ensayo literario
 
Infografía EE con pie del 2023 (3)-1.pdf
Infografía EE con pie del 2023 (3)-1.pdfInfografía EE con pie del 2023 (3)-1.pdf
Infografía EE con pie del 2023 (3)-1.pdf
 
Supuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docxSupuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docx
 
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docxPLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
 
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIASISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
 
Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024
 
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptxLA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
 
SEPTIMO SEGUNDO PERIODO EMPRENDIMIENTO VS
SEPTIMO SEGUNDO PERIODO EMPRENDIMIENTO VSSEPTIMO SEGUNDO PERIODO EMPRENDIMIENTO VS
SEPTIMO SEGUNDO PERIODO EMPRENDIMIENTO VS
 
Los avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtualesLos avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtuales
 
Análisis de los Factores Externos de la Organización.
Análisis de los Factores Externos de la Organización.Análisis de los Factores Externos de la Organización.
Análisis de los Factores Externos de la Organización.
 
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
 
Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
 

Sql o NoSql en Informática Médica

  • 1. Tema No.3: SQL o NoSQL en Informática Biomédica Conferencia No.1 ¿Qué es NoSQL? Diferenciación entre Bases de Datos SQL y NoSQL. Tipos de bases NoSQL. Abril, 2016
  • 2. SUMARIO 1. ¿Qué es una base de datos NoSQL? 2. Diferencias principales entre las bases de datos SQL y NoSQL. ACID y BASE. 3. Tipos de Base de Datos NoSQL.
  • 3. ¿Qué es NoSQL? ¿Qué son las bases de datos NoSQL? Se puede decir que la aparición del término NoSQL aparece con la llegada de la web 2.0 ya que hasta ese momento sólo subían contenido a la red aquellas empresas que tenían un portal, pero con la llegada de aplicaciones como Facebook, Twitter o Youtube, cualquier usuario podía subir contenido, provocando así un crecimiento exponencial de los datos. Empiezan a aparecer los primeros problemas de la gestión de toda esa información almacenada en bases de datos relacionales. En un principio, para solucionar estos problemas de accesibilidad, las empresas optaron por utilizar un mayor número de máquinas, pero pronto se dieron cuenta de que esto no solucionaba el problema, además de ser una solución muy cara. La otra solución era la creación de sistemas pensados para un uso específico que con el paso del tiempo han dado lugar a soluciones robustas, apareciendo así el movimiento NoSQL.
  • 4. ¿Qué es NoSQL? ¿Qué son las bases de datos NoSQL? Por lo tanto hablar de bases de datos NoSQL es hablar de estructuras que nos permiten almacenar información en aquellas situaciones en las que las bases de datos relacionales generan ciertos problemas debido principalmente a problemas de escalabilidad y rendimiento de las bases de datos relacionales donde se dan cita miles de usuarios concurrentes y con millones de consultas diarias. Las bases de datos NoSQL son sistemas de almacenamiento de información que no cumplen con el modelo relacional. No utilizan una estructura de datos en forma de tabla, no utilizan las operaciones JOIN. Para el almacenamiento hacen uso de otros formatos como clave–valor, mapeo de columnas o grafos, documentos.
  • 5. Unidades de información (del byte) Sistema Internacional (decimal) ISO/IEC 80000-13 (binario) Múltiplo (símbolo) SI Múltiplo (símbolo) ISO/IEC kilobyte (kB) 103 kibibyte (KiB) 210 megabyte (MB) 106 mebibyte (MiB) 220 gigabyte (GB) 109 gibibyte (GiB) 230 terabyte (TB) 1012 tebibyte (TiB) 240 petabyte (PB) 1015 pebibyte (PiB) 250 exabyte (EB) 1018 exbibyte (EiB) 260 zettabyte (ZB) 1021 zebibyte (ZiB) 270 yottabyte (YB) 1024 yobibyte (YiB) 280 •Internet Archive tiene alrededor de 2 petabytes de datos. •Google procesa sobre 20 petabytes de datos cada día. •En diciembre de 2007, YouTube tuvo un tráfico de 27 petabytes. •El Gran Colisionador de Hadrones genera unos 20 petabytes de datos útiles al año. •Facebook tiene 60 mil millones de imágenes, lo que supone 1,5 petabytes de almacenamiento y crece a un ritmo de 220 millones de imágenes por semana. Ejemplos Un petabyte es una unidad de almacenamiento de información cuyo símbolo es el PB, y equivale a 1015 bytes = 1 000 000 000 000 000 de bytes. El prefijo peta viene del griego πέντε, que significa cinco, pues equivale a 10005 ó 1015. Está basado en el modelo de tera, que viene del griego ‘monstruo’, pero que es similar (excepto una letra) a tetra-, que viene de la palabra griega para cuatro y así peta, que viene de penta-, pierde la tercera letra, la n. 1 PB = 1015 byte = 1012 kB = 109 MB = 106 GB = 103 TB
  • 6. ¿Qué es NoSQL? Bases de DATOS. SQL vs NoSQL Históricamente, una base de datos relacional focaliza el interés en la fiabilidad de las transacciones bajo el conocido principio ACID, acrónimo de Atomicity, Consistency, Isolation and Durability (Atomicidad, Consistencia, Aislamiento y Durabilidad en español). Bajo esas propiedades se pretende que una transacción sobre una base de datos siempre se complete o no (atomicidad), que los datos se mantengan en estado válido en todo momento (consistencia), que sea independiente (aislamiento) y que sea permanente frente a fallos del sistema (durabilidad). El principio ACID aporta una robustez que colisiona con el rendimiento y operatividad a medida que los volúmenes de datos crecen. Cuando la magnitud y el dinamismo de los datos cobran importancia, el principio ACID de los modelos relacionales queda en segundo plano frente al rendimiento, disponibilidad y escalabilidad, las características más propias de las bases de datos NoSQL. Hoy en día, los modernos sistemas de datos en internet se ajustan más al también conocido principio BASE, acrónimo de Basic Availability (disponibilidad como prioridad) Soft state (la consistencia de datos se delega a gestión externa al motor de la base de datos) Eventually consistency (intentar lograr la convergencia hacia un estado consistente)
  • 7. ¿Qué es NoSQL? - Principio ACID, típico de bases de datos relacionales - - Principio BASE, común en BBDD NoSQL -
  • 8. ¿Qué es NoSQL? La principal diferencia entre una base datos relacional RDBMS y una NoSQL estriba en el concepto de la estructura de los datos. Con un modelo NoSQL la información se almacena de modos más flexibles que no tienen la restricción de adoptar un formato predefinido, tal y como ocurre en las bases relacionales (tablas cuya estructura sigue un esquema). Gracias a esto, es mucho más sencillo distribuir los datos entre sistemas sin tener que mantener un complejo mecanismo de migración. Este diseño beneficia una escalabilidad horizontal simplemente añadiendo nodos para distribuir la carga, que aventaja la escalabilidad vertical (incremento de potencia de procesado y memoria) necesaria en bases de datos relacionales. Estas razones principalmente, hacen que las bases de datos NoSQL sean las candidatas a adoptar cuando se trate de manejar grandes volúmenes de datos de naturaleza muy variada.
  • 9. Ventajas de los sistemas NoSQL • Se ejecutan en máquinas con pocos recursos: Estos sistemas, a diferencia de los sistemas basados en SQL, no requieren de apenas computación, por lo que se pueden montar en máquinas de un coste más reducido. • Escalabilidad horizontal: Para mejorar el rendimiento de estos sistemas simplemente se consigue añadiendo más nodos, con la única operación de indicar al sistema cuáles son los nodos que están disponibles. • Pueden manejar gran cantidad de datos: Esto es debido a que utiliza una estructura distribuida, en muchos casos mediante tablas Hash. • No genera cuellos de botella: El principal problema de los sistemas SQL es que necesitan transcribir cada sentencia para poder ser ejecutada, y cada sentencia compleja requiere además de un nivel de ejecución aún más complejo, lo que constituye un punto de entrada en común, que ante muchas peticiones puede ralentizar el sistema.
  • 10. Algunas de las diferencias más destacables que nos podemos encontrar entre los sistemas NoSQL y los sistemas SQL están: • No utilizan SQL como lenguaje de consultas. La mayoría de las bases de datos NoSQL evitan utilizar este tipo de lenguaje o lo utilizan como un lenguaje de apoyo. Por poner algunos ejemplos, Cassandra utiliza el lenguaje CQL, MongoDB utiliza JSON o BigTable hace uso de GQL. • No utilizan estructuras fijas como tablas para el almacenamiento de los datos. Permiten hacer uso de otros tipos de modelos de almacenamiento de información como sistemas de clave–valor, objetos o grafos. • No suelen permitir operaciones JOIN. Al disponer de un volumen de datos tan extremadamente grande suele resultar deseable evitar los JOIN. Esto se debe a que, cuando la operación no es la búsqueda de una clave, la sobrecarga puede llegar a ser muy costosa. Las soluciones más directas consisten en desnormalizar los datos, o bien realizar el JOIN mediante software, en la capa de aplicación. • Arquitectura distribuida. Las bases de datos relacionales suelen estar centralizadas en una única máquina o bien en una estructura máster–esclavo, sin embargo en los casos NoSQL la información puede estar compartida en varias máquinas mediante mecanismos de tablas Hash distribuidas.
  • 11. Base de datos relacional Base de datos NoSQL Modelo de datos El modelo relacional normaliza los datos en estructuras tabulares conocidas como tablas, que están formadas por filas y columnas. Contienen un esquema que define estrictamente las tablas, columnas, índices, relaciones entre las tablas y otros elementos de las bases de datos. Las bases de datos no relacionales (NoSQL) no suelen contener un esquema. Se suele utilizar una “clave hash” para recuperar valores, conjuntos de columnas o documentos JSON o XML semiestructurados, así como otros documentos que contengan atributos de elementos relacionados. Propiedades ACID Los sistemas de administración de bases de datos relacionales (RDBMS) tradicionales admiten un conjunto de propiedades definidas por el acrónimo ACID (por sus siglas en inglés): atomicidad, consistencia, aislamiento y durabilidad. Atomicidad significa “todo o nada” – una transacción se ejecuta completamente o no se ejecuta en absoluto. Consistencia quiere decir que una vez se ha ejecutado una transacción, los datos deben acoplarse al esquema de la base de datos. El aislamiento requiere que las transacciones simultáneas se ejecuten por separado. La durabilidad es la capacidad de recuperarse de un error inesperado del sistema o de un corte de energía y volver al último estado conocido. Habitualmente, las bases de datos NoSQL intercambian algunas de las propiedades ACID de los sistemas de administración de bases de datos relacionales (RDBSM) tradicionales por un modelo de datos más flexible que se escala de forma horizontal. Estas características convierten las bases de datos NoSQL en una elección excelente en las situaciones en las que los RDBMS detectan desafíos en la arquitectura a la hora de superar una combinación de cuellos de botella de desempeño, escalabilidad, complejidad operativa y el aumento de los costos de administración y soporte. Desempeño Normalmente, el desempeño depende del subsistema de disco. Es necesaria la optimización de consultas, índices y estructura de tabla para lograr el máximo desempeño. El desempeño es, por lo general, depende del tamaño del clúster de hardware subyacente, la latencia de red y la aplicación que efectúa la llamada. Escalado Lo más sencillo es ampliar la escala con un hardware más rápido. Se requieren inversiones adicionales para que las tablas relacionales abarquen un sistema distribuido. Está diseñada para reducir la escala utilizando clústeres distribuidos de hardware de bajo costo para aumentar el desempeño sin que aumente la latencia. API Solicita almacenar y recuperar datos que están comunicados mediante consultas que se ajustan a un lenguaje de consulta estructurado (SQL por sus siglas en inglés). Estas consultas son analizadas y ejecutadas por los sistemas de administración de bases de datos relacionales (RDBMS). Las API basadas en objetos permiten a los desarrolladores almacenar y recuperar fácilmente estructuras de datos en memoria. Las “claves hash” permiten que las aplicaciones busquen pares de clave-valor, conjuntos de columnas o documentos semiestructurados que contengan atributos y objetos de aplicación serializados. Herramientas Las bases de datos SQL normalmente ofrecen un amplio conjunto de herramientas que simplifican el desarrollo de aplicaciones de base de datos. Las bases de datos NoSQL suelen ofrecer herramientas para administrar los clústeres y el escalado. Las aplicaciones representan la interfaz primaria de los datos subyacentes. Comparación entre base de datos SQL y NoSQL
  • 12. Tipos y clasificación de bases de datos NoSQL Existen unos 150 tipos de bases de datos NoSQL con diferente arquitectura de datos (basado en documento, en clave/valor, en objetos, en grafos, en columnas, etc) Entre las más conocidas destacan Cassandra, Hadoop, MongoDB, CouchDB o Redis. Gigantes como Oracle también disponen de una implementación NoSQL.
  • 13. Tipos de bases de datos NoSQL 1.- Bases de datos clave – valor Son el modelo de base de datos NoSQL más popular, además de ser la más sencilla en cuanto a funcionalidad. En este tipo de sistema, cada elemento está identificado por una llave única, lo que permite la recuperación de la información de forma muy rápida, información que habitualmente está almacenada como un objeto binario. Optimizadas para cargas de trabajo de aplicaciones que realizan muchas tareas de lectura (como redes sociales, juegos, uso compartido de archivos multimedia y portales de preguntas y respuestas) o para cargas de trabajo con un uso intensivo de computación (como un motor de recomendaciones). El almacenamiento en memoria caché mejora el desempeño de las aplicaciones almacenando los datos críticos en memoria para un acceso de baja latencia. Algunos ejemplos de este tipo son DynamoDB, Riak, Redis. Amazon y Best Buy.
  • 14. Tipos de bases de datos NoSQL 1.- Bases de datos clave – valor En esta categoría encontramos: • DynamoDB: desarrollada por Amazon, es una opción de almacenaje que podemos usar desde los Amazon Web Services. La utilizan el Washington Post y Scopely. • Redis: desarrollada en C y de código abierto, es utilizada por Craiglist y Stack Overflow (a modo de caché). De interés: Los almacenes key/value son extremadamente rápidos pero no permiten consultas complejas más allá de buscar por su clave. Por lo que si una aplicación necesita consultas complejas, este tipo de base de datos no se ajusta a las necesidades. Existen implementaciones de estos almacenes solo en memoria, tales como: memcached, Oracle Coherence, JBoss Cache y WebSphere eXtreme Scale. Estas soluciones normalmente funcionan junto a un RDBMS actuando solo como un cache complementario. Además existen otras implementaciones que sí son persistentes, es decir que realmente guardan datos en el soporte físico y no sólo en memoria por lo que se les puede usar sin un RDBMS. Las más usadas son VMWare Redis, Amazon SimpleDB, Oracle BerkeleyDB y Tokyo Cabinet.
  • 15. Tipos de bases de datos NoSQL 2.- Bases de datos documentales Este tipo almacena la información como un documento (datos semiestructurados) generalmente utilizando para ello una estructura simple como JSON o XML y donde se utiliza una clave única para cada registro. Este tipo de implementación permite, además de realizar búsquedas por clave–valor, realizar consultas más avanzadas sobre el contenido del documento. Son las bases de datos NoSQL más versátiles. Se pueden utilizar en gran cantidad de proyectos, incluyendo muchos que tradicionalmente funcionarían sobre bases de datos relacionales. A diferencia de las bases de datos relacionales tradicionales, el esquema de cada documento no relacional (NoSQL) puede variar, lo que ofrece más flexibilidad al organizar y almacenar datos de aplicaciones y permite reducir el almacenamiento necesario para los valores opcionales.
  • 16. Tipos de bases de datos NoSQL 2.- Bases de datos documentales Ejemplos: • MongoDB: probablemente la base de datos NoSQL más famosa del momento. En octubre del año pasado, MongoDB conseguía 150 millones de dólares en financiación, convirtiéndose en una de las startups más prometedoras. Algunas compañías que actualmente utilizan MongoDB son Foursquare o eBay. • CouchDB: es la base de datos orientada a documentos de Apache. Una de sus interesantes características es que los datos son accesibles a través de una API Rest. Este sistema es utilizado por compañías como Credit Suisse y la BBC.
  • 17. Tipos de bases de datos NoSQL 3.- Bases de datos en grafo En este tipo de bases de datos, la información se representa como nodos de un grafo y sus relaciones con las aristas del mismo, de manera que se puede hacer uso de la teoría de grafos para recorrerla. Los gráficos pueden basarse en bases de datos relacionales (SQL) y no relacionales (NoSQL) Para sacar el máximo rendimiento a este tipo de bases de datos, su estructura debe estar totalmente normalizada, de forma que cada tabla tenga una sola columna y cada relación dos. Este tipo de bases de datos ofrece una navegación más eficiente entre relaciones que en un modelo relacional. Modelo de grafos que se extiende entre múltiples máquinas. Es un modelo apropiado para datos cuyas relaciones se ajustan a este modelo, como por ejemplo redes de transporte, mapas, etc.
  • 18. Tipos de bases de datos NoSQL 3.- Bases de datos en grafo En esta categoría encontramos: • Infinite Graph: escrita en Java y C++ por la compañía Objectivity. Tiene dos modelos de licenciamiento: uno gratuito y otro de pago. • Neo4j: base de datos de código abierto, escrita en Java por la compañía Neo Technology. Utilizada por compañías como HP, Infojobs o Cisco. Almacenan vértices y enlaces dirigidos llamados aristas. Los gráficos pueden basarse en bases de datos relacionales (SQL) y no relacionales (NoSQL). Los vértices y las aristas pueden tener propiedades asociadas.
  • 19. Tipos de bases de datos NoSQL 4.- Bases de datos en columnas Pensadas para realizar consultas y agregaciones sobre grandes cantidades de datos. Funcionan de forma parecida a las bases de datos relacionales, pero almacenando columnas de datos en lugar de registros. Optimizadas para leer y escribir columnas de datos en lugar de filas. El almacenamiento basado en columnas para las tablas de bases de datos es un factor importante en el desempeño de las consultas analíticas, ya que reduce notablemente los requisitos globales de E/S del disco, así como la cantidad de datos que hay que cargar desde el mismo.
  • 20. Tipos de bases de datos NoSQL 4.- Bases de datos en columnas Ejemplos: • Cassandra: incluida en esta sección, aunque en realidad sigue un modelo híbrido entre orientada a columnas y clave-valor. Es utilizada por Facebook y Twitter (aunque dejaron de usarla para almacenar tweets). • HBase. Escrita en Java y mantenida por el Projecto Hadoop de Apache, se utiliza para procesar grandes cantidades de datos. La utilizan Facebook, Twitter o Yahoo.
  • 21. Retos de seguridad en bases de datos NoSQL Dada la amplia variedad de bases de datos NoSQL, es necesario prestar atención a las debilidades genéricas de estos modelos y, en cada caso particular aplicar las medidas necesarias para su implementación. Comparando con las bases de datos relacionales podemos resumir los siguientes campos de seguridad: Autenticación. La fortaleza de la autenticación es uno de los campos de batalla donde muchas implementaciones NoSQL muestran debilidad. Es común encontrar que las bases de datos NoSQL incorporen credenciales por defecto, o incluso sin autenticación necesaria o deshabilitada (por ejemplo, Redis). En muchos casos se basan en entornos de confianza en lugar de autenticación de usuario. Dependiendo del software siempre será un punto fundamental a chequear. Integridad de los datos. Siguiendo una filosofía donde prima la disponibilidad y el rendimiento, se penaliza en la integridad de los datos. Por ello es necesario utilizar frecuentemente mecanismos complementarios ajenos al motor de la base de datos para asegurar la integridad.
  • 22. Retos de seguridad en bases de datos NoSQL Confidencialidad y cifrado en el almacenamiento. Por lo general, el almacenamiento de los datos se realiza en texto plano y salvo escasas excepciones como por ejemplo Cassandra y su tecnología Transparent data encryption, no se incorporan mecanismos de cifrado integrados. En la mayoría de los casos sigue siendo necesario delegar el cifrado a procesos en la capa de aplicación o del propio sistema de ficheros. Auditoría de datos La mayoría de bases de datos NoSQL carecen de mecanismos propios y robustos de auditoría de datos, de gran peso a la hora de detectar posibles ataques mediante la observación de eventos sobre registros concretos tal y como se hace en bases de datos relacionales. Seguridad en las comunicaciones. El uso de cifrado y protocolo SSL es habitual en bases de datos relaciones, en cambio en sistemas NoSQL generalmente se encuentra deshabilitado por defecto, es opcional (por ejemplo Cassandra), o bien es necesaria una configuración específica en la instalación (como en MongoDB).
  • 23. En las bases de datos NoSQL, las peticiones y llamadas se ejecutan invocando la API correspondiente formateada según una convención común, habitualmente JSON o XML. En este punto, una incorrecta verificación de los parámetros de entrada puede permitir la ejecución de comandos al evaluarse y tratarse en la llamada a la API correspondiente. Las posibilidades de inyección y los riesgos, al utilizarse una API con lenguaje de programación procedimental, son aún mayores que en el caso de bases de datos relaciones donde se usa el lenguaje SQL típicamente declarativo y mucho más acotado. Inyección NoSQL y de código javascript son nuevos vectores que amplían la superficie de ataques sobre estas bases de datos. NoSQL está cada vez más presente en las tecnologías actuales de bases de datos y afronta grandes retos para lidiar con los problemas de seguridad que tarde o temprano deberá reforzar. Vulnerabilidades clásicas en base de datos: Aún más inyección.
  • 24. CONCLUSIONES Dada la amplia variedad de bases de datos NoSQL, es necesario prestar atención a las debilidades genéricas de estos modelos y, en cada caso particular aplicar las medidas necesarias en cada implementación particular. Existen diferentes bases de datos NoSQL, cuyas características y formatos de almacenamiento varían, haciendo que el modelado para cada una de ellas tenga que ser distinto. A la hora de elegir un sistema NoSQL frente a uno SQL habrá que plantearse previamente si realmente se necesita, después elegir uno en concreto en base a nuestras necesidades, olvidarnos de las formas normales y guardar los datos de distinta manera en función de cómo va a ser el acceso a éstos. Las bases de datos NoSQL nos permiten almacenar información en aquellas situaciones en las que las bases de datos relacionales generan ciertos problemas debido principalmente a problemas de escalabilidad y rendimiento donde se dan cita miles de usuarios concurrentes y con millones de consultas diarias. Las bases de datos NoSQL son sistemas de almacenamiento de información que no cumplen con el modelo relacional. No utilizan una estructura de datos en forma de tabla, no utilizan las operaciones JOIN.