nosql 2000

13
NoSQL 2000 Sistemas de Gestion de Base de Datos

Upload: liliana-flores-trinidad

Post on 21-Oct-2015

37 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: NoSQL  2000

NoSQL 2000Sistemas de Gestion de Base de Datos

Page 2: NoSQL  2000

¿Que significa NoSQL? Término usado en 1998 para una base de datos relacional sin SQL

¿Qué es un Sistema NoSQL?• Es una amplia clase de sistemas de gestión de bases de datos que difieren del modelo

clásico del sistema de gestión de bases de datos relacionales (RDBMS) (introducía una línea no relacional significativamente diferentes de las clásicas) en aspectos importantes, el más destacado que no usan SQL como el principal lenguaje de consultas.

• Muchas de las bases de datos NoSQL usan la llamada consistencia eventual para proporcionar disponibilidad y tolerancia al particionado, con un nivel máximo de consistencia de datos.

>No Relacional<• No siguen el modelo de datos relacional Los datos no se estructuran en

tablas• Siguen diferentes estructuras de datos• Simplicidad en los modelos: clave–valor, grafos, etc.

Page 3: NoSQL  2000

¿Porque que utilizar NoSQL? La motivación para NoSQL se deriva de la dificultad de las BD relacionales

para almacenar y gestionar:

Los datos de la web (especialmente la web 2.0)

Datos semiestructurados y no estructurados.

Datos masivos: data streams, datos científicos, procesos industriales, tráfico de redes, etc.

. Los datos almacenados no requieren estructuras fijas como tablas, normalmente no soportan operaciones JOIN, ni garantizan completamente ACID (atomicidad, coherencia, aislamiento y durabilidad), y habitualmente escalan bien horizontalmente.

Page 4: NoSQL  2000

Arquitectura de un Sistema NoSQL Hay dos sistemas que han sido desplegados y que aportan aislamiento

snapshot para almacenamientos de columna: El sistema Percolator de Google (basado en el sistema BigTable) y el sistema transaccional de Hbase desarrollado por la universidad de Waterloo.

Bastantes sistemas NoSQL emplean una arquitectura distribuida.

Algunos defensores de NoSQL promueven interfaces simples tales como los arrays asociativos o los pares clave-valor. Otros sistemas, tales como las bases de datos nativas en XML, promueven el soporte del estándar Xquery. Los sistemas mas novedosos tales como CloudTPS también soportan unión de queries.

Page 5: NoSQL  2000

Caracteristicas de los Sistemas NoSQL Flexibilidad en los esquemas (Añadir nuevos atributos dinámicamente)

Escalabilidad horizontal sobre equipos estándar

Sistemas masivamente distribuidos Escalar el rendimiento de las operaciones sobre equipos distribuidos Sharding (particionado horizontal por clave y distribución)

Alto rendimiento:

Actualizaciones intensivas de los datos en entornos distribuidos Uso eficiente de índices distribuidos Almacenamiento orientado a memoria RAM

Eliminación de algunas características ACID

Sencillez de los Call Level Interface (CLI)

Page 6: NoSQL  2000

Clasificacion

Clave–valor:

Regular stores: Redis, Tokyo, BerkeleyDB, ... In memory: JBoss cache, Velocity, ... Eventually Consistent stores: Dynomite, SubRecord,, Cassandra, de Apache The Apache Cassandra, BigTable, de Google, Dynamo, de Amazon, MongoDB, Project Voldemort, de LinkedIn, Riak.

Orientadas a columnas:

Google BigTable, HBase, Cassandra, HyperTable, LevelDB.

Orientadas a documentos:

CouchDB, MongoDB, Apache JackRabbit, ThruDB, de Apache, de 10gen, RavenDB, de Hibernating Rhinos,BaseX, djondb, eXist, SimpleDB, IBM Lotus Domino

De grafos:

Neo4j, VertexDB, Infogrid, Sones, Filament, Allegrograph, HyperGraphDB, DEX,, OrientDB, InfiniteGraph, Sones GraphDB.

Page 7: NoSQL  2000

Propiedades en un sistema distribuido:

Consistencia: Todos los nodos tienen siempre la misma versión de los datos.

Disponibilidad (availability): Todos los nodos tienen siempre constancia de sus lecturas/escrituras.

Tolerancia a fallos (partition tolerance): El sistema sigue funcionando aunque haya fallos en algunos nodos.

Teorema CAPUn sistema distribuido solo puede garantizar simultáneamente dos de las propiedades anteriores.

Page 8: NoSQL  2000
Page 9: NoSQL  2000

Base frente ACID ACID:

Atomicidad: o se ejecutan todas o se anulan todas.

Consistencia: las transacciones preservan la consistencia.

Aislamiento: las transacciones se ejecutan como si estuvieran aisladas.

Durabilidad: las transacciones confirmadas son persistentes en la base de datos.

BASE:

Disponibilidad básica (basically available): garantiza disponibilidad, en los términos de CAP.

Estado suave (soft state): el estado del sistema puede cambiar con el tiempo, incluso sin entradas de datos.

Consistencia eventual (eventual consistency): será consistente en el tiempo, mientras no reciba datos de entrada en ese tiempo

Page 10: NoSQL  2000

Se pierde:

Transacciones y ACID Independencia de datos SQL estándar Índices secundarios (a veces)

Se gana:

Tratamiento de grandes cantidades de datos distribuidos Almacenamiento orientado a la memoria principal Simplicidad en el diseño, en los procesos, en la administración,

Posibilidad de afrontar datos en tiempo real.

Estos sistemas responden a las necesidades de escalabilidad horizontal que tienen cada vez más empresas.

Pueden manejar enormes cantidades de datos.

No generan cuellos de botella.

Escalamiento sencillo.

Diferentes DBs NoSQL para diferentes proyecto.

Se ejecutan en clusters de máquinas baratas.

NoSQL frente a Relacional

Page 11: NoSQL  2000

¿Quienes usan NoSQL?

Page 12: NoSQL  2000

Escenario actual Se acabaron los tiempos del planteamiento único

El modelo relacional no resulta apropiado para todos los segmentos del mercadoLos mercados verticales requieren cambios en los modelos de datos y en los lenguajes de consultaLas bases de datos relacionales requieren una revisión (New SQL)La situación recuerda al periodo 1970–1985

Reflexiones1. La web lo cambió todo2. Las necesidades de mayor rendimiento siempre estarán presentes3. El modelo relacional es apropiado para muchas aplicaciones pero no para

todas4. La base instalada de productos relacionales (Old SQL) es enorme5. New SQL puede determinar la evolución de los productos relacionales6. NoSQL es una opción real hoy por hoy en determinados entornos7. NoSQL tenderá a crecer en los próximos años