SlideShare une entreprise Scribd logo
1  sur  44
Advanced technology simplifies your world
Introducción a NoSQL
Laboratorio Innovación
19/03/2014
@lasneyx
es.linkedin.com/in/miguelmartinforero
Miguel Martín-Forero – COO en @Cycle_IT
Algo sobre mí
Introducción a NoSQL
• ¿Qué es NoSQL?
• Taxonomía
• Características
• Uso básico
• Vendedores
• Penetración en mercado
• Pros & Contras
¿Qué es NoSQL?
Proporciona un mecanismo para el
almacenamiento y obtención de info que se
modela en un formato distinto a las relaciones
tabulares propias de las bases de datos
relacionales1
1 Wikipedia: NoSQL
“
”
“NoSQL realmente es NoREL, es decir, Base de Datos No-
Relacional”
¿Qué es NoSQL?
Las bases de datos NoSQL están encontrando su lugar en el big data
y en las aplicaciones web que necesitan tiempo real
Real Time
Web
Applications
Beneficios NoSQL
• Preparadas para grandes volúmenes de información estructurada, semi-
estructurada o sin estructurar.
• Facilitan iteración rápida: metodologías ágiles y despliegue continuo.
• Coherente con la programación orientada a objetos.
• Arquitectura eficiente y escalable en lugar de una arquitectura cara y
monolítica. Y opensource!
Taxonomía
Es difícil clasificar este tipo de bases de datos dada
su heterogeneidad. No obstante está ampliamente
aceptada una clasificación basada en el modelo de
datos; lo que comúnmente se conoce como
Taxonomía.
Taxonomía: cuatro categorías principales
DocumentoColumna Clave-valor Grafo
Columna
Es un objeto del nivel más bajo en un
keyspace o más fácil, es una tupla
compuesta por tres elementos:
Nombre único: Referencia la columna
Valor: Contenido de la columna
Timestamp: Determina validez
Un keyspace es un objeto que almacena todas las familias de
columnas de un diseño; es como un esquema.
Columna: ejemplo
UserProfile = {
Cassandra = {emailAddress:”casandra@apache.org” , age:”20”}
TerryCho = {emailAddress:”terry.cho@apache.org” , gender:”male”}
Cath = {emailAddress:”cath@apache.org” , age:”20” , gender:”female” , address:”Seoul”}
}
Familia Columna
Claves de fila
Columna
Columna: Pros y contras
• Más eficiente consultar la información
• Es costoso reconstruir “filas completas” al estar distribuida la info
en numerosos nodos.
• La ordenación y consultas tienen sus particularidades: las
columnas se ordenan tras ser insertadas y se ordena por atributo.
• Hay que “pensar” cómo insertar la información.
• La forma de acceder queda del lado del programador.
Columna: Vendedores
Cassandra
• Última versión estable 2.0.6
• Licencia Apache
• Para cuando “necesitas escalabilidad y alta disponibilidad
sin castigar el rendimiento”.
• Utilizada en Netflix, eBay, Twitter, Reddit y otros.
• “Probada, tolerante a
fallos, rendimiento, descentralizada, durabilidad, control, fl
exible”
Apache Hbase (Hadoop)
• Última versión estable 0.94
• Licencia Apache
• Para cuando “necesitas acceso de escritura aleatorio en
tiempo real para acceder a tu Big Data: tablas enormes
con miles de millones de files con millones de columnas”
• “Escalabilidad lineal y modular, consistente en lecturas y
escrituras, failover automático, Java API”.
Columna: Trends
Documento (info semi-estructurada)
El documento encapsula la información en
algún formato o codificación estándar:
XML, YAML, JSON o BSON e incluso formatos
binarios como PDF, Microsoft Office
documents, etc.
“
”
Los documentos son similares a las tablas de las bases de datos
relacionales, pero mucho menos rígidos: no existe ningún esquema.
Documento: ejemplos
Al igual que con la categoría Columna ambos registros contienen
valores similares, pero no tienen por qué compartir los mismos campos:
no existen campos vacíos.
{
FirstName: "Jonathan",
Address: "15 Wanamassa Point Road",
Children: [
{Name: "Michael", Age: 10},
{Name: "Jennifer", Age: 8},
{Name: "Samantha", Age: 5},
{Name: "Elena", Age: 2}
]
}
{
FirstName: "Bob",
Address: "5 Oak St.",
Hobby: "sailing"
}
Documento: conceptos
• Keys: los documentos se acceden mediante una clave única
(cadena, URI o ruta).
• Obtención: la base de datos ofrece una API o lenguaje de consulta
que permite obtener el contenido de los documentos.
• Organización: en función de la implementación/vendedor existen
diferentes formas de organización:
colecciones, etiquetas, metadata, directorios, etc.
Documento: Pros y contras
• Todas las de NoSQL
• No hay joins: código feo, múltiples queries, pérdida flexibilidad,
posible duplicidad de info.
• Uso de memoria al tener que almacenar los nombres de las
claves con cada documento.
• Posibles problemas de concurrencia: las operaciones de escritura
tienen preferencia sobre las lecturas.
Vendedores
MongoDB
• Última versión estable 2.4.9
• Licencia GNU AGPL v3.0 y Comercial MongoDB, Inc.
• Almacenamiento BSON.
• Usada por muchos como eBay, SAP, sourceforge, etc.
• Soporte completo a índices para cualquier atributo.
• Replicación y alta disponibilidad.
• Map/Reduce: agregación flexible y procesamiento de información.
• GridFS para almacenar ficheros de cualquier tamaño.
Apache CouchDB
• Última versión estable 1.5.0
• Licencia Apache
• Base de datos que “utiliza JSON para los documentos, JavaScript para
consultas MapReduce y HTTP como API de acceso”
• Perfecta para aplicaciones web modernas y aplicaciones móviles.
MarkLogic
• Última versión estable 7
• Privada: “Enterprise NoSQL”
• Utilizada por grandes como Warner Bros., Dow
Jones, Citigroup, Boeing, etc.
Documento: Trends
Key-value
Este tipo de motores de bases de datos almacenan
información en «diccionarios». Podemos imaginar una
BD clave–valor como una colección de vectores
asociativos (al estilo de los tipos Object en ECMAScript,
por ejemplo)
“
”
La asociación entre la clave y el valor se conoce a menudo como
binding; palabra que también suele usarse para nombrar al proceso de
creación de una nueva asociación.
Key-value: operaciones
• Add: añade un nuevo valor.
• Reassign: reemplaza el valor de algún par que ya existe en la colección.
• Remove: elimina una tupla de la colección eliminando el binding a partir de la
clave.
• Lookup: devuelve el valor a partir de una clave determinada.
Key-value: ejemplo
{
"Great Expectations": "John",
"Pride and Prejudice": "Alice",
"Wuthering Heights": "Alice"
}
Key-value: Pros y contras
• Las habituales de NoSQL
• No existe forma de indicar que una columna es obligatoria: NOT
NULL.
• No hay forma de establecer tipos de datos para validar entradas.
• No hay forma para indicar si los nombres de las claves son correctos.
• No hay forma de indicar FK.
Vendedores
Amazon DynamoDB
• Solución Cloud
• Licencia comercial
• Utilizada en
washingtonpost.com, AdRoll, scopely, WeatherBug.
• Existe versión open-source del proyecto llamado Project
Voldemort utilizada en LinkedIn para solucionar algunos
problemas de almacenamiento con alta escalabilidad.
Redis
• Última versión estable 2.8.7
• Licencia BSD
• Almacena información de forma estructurada ya que las
claves pueden contener: strings, hashes, lists, sets y
sorted sets.
• Usada por stackoverflow, flickr, digg, Blizzard
Entertainment, etc.
Riak
• Última versión estable 1.4.8
• Licencia Apache
• Sus fuertes son: disponibilidad, tolerancia a
fallos, simplicidad operacional y escalabilidad.
Key-value: Trends
Grafo
La info se representa como nodos de un grafo y sus
relaciones con las aristas del mismo, de manera que
se pueda usar teoría de grafos para recorrer la base
de datos ya que esta puede describir atributos de los
nodos (entidades) y las aristas (relaciones).
“
”Estas bases de datos están absolutamente normalizadas ya que necesitan que
cada tabla contenga una única columna y cada relación tan solo dos; así
cualquier cambio en la estructura tiene sólo efecto local.
Grafo: conceptos
• Nodo: representa entidades como personas, negocios, etc.
• Propiedad: información relevante relacionada con los nodos.
• Aristas: son las líneas que conectan nodos entre sí o nodos y
propiedades. Representan relaciones: la info importante se
almacena en aristas.
Grafo: Ejemplo
Grafo: Pros y contras
• Son habitualmente más rápidas para conjuntos de datos asociativos.
• Mapean fácilmente en aplicaciones orientadas a objetos.
• Escalan de forma más natural hacia conjuntos de datos ya que no
suelen requerir operaciones costosas basadas en joins.
• Las habituales de NoSQL.
• Las bases de datos relacionales son habitualmente más rápidas
cuando realizan la misma operación en grandes volúmenes de info.
Grafo: vendedores
Neo4j
• Última versión estable 2.0.1
• Licencia GPLv3 / AGPLv3 y Comercial
• “Alta escalabilidad, robusta (completamente ACID)”
• “Usada en aplicaciones críticas por miles de
startups, empresas y gobiernos alrededor del
mundo”
OrientDB
• Última versión estable 1.6.3
• Licencia Apache
• Soporte transacciones ACID: recupera info
pendiente ante problemas.
• Soporta lenguaje SQL con extensiones para
gestionar relaciones sin SQL join, gestionar árboles
y grafos.
• Preparada para la web: soporte nativo HTTP,
protocolo RESTful y JSON.
Grafo: Trends
Trends global
Enlaces externos
General
[1] http://nosql-database.org/
[2] NoSQL Explained: http://www.mongodb.com/learn/nosql
[3] Comparación varias: http://kkovacs.eu/cassandra-vs-mongodb-vs-couchdb-vs-redis
[4] NoSQL: http://en.wikipedia.org/wiki/Nosql
Columna
[1] Column (data store): http://en.wikipedia.org/wiki/Column_(data_store)
[2] ColumnFamily: http://en.wikipedia.org/wiki/ColumnFamily
[2] Keyspace (data store): http://en.wikipedia.org/wiki/Keyspace_(data_model)
[3] CAP theorem: http://en.wikipedia.org/wiki/CAP_theorem
[4] ACID: http://en.wikipedia.org/wiki/ACID
[5] Cassandra: http://cassandra.apache.org/
[6] Cassandra data model: http://rubyscale.com/blog/2010/09/13/understanding-the-cassandra-data-
model-from-a-sql-perspective/
[7]: Hbase: https://hbase.apache.org/
[8]: Accumulo: https://accumulo.apache.org/
Enlaces externos
Documento
[1] Document (data store): http://en.wikipedia.org/wiki/Document-oriented_database
[2] MongoDB: http://www.mongodb.org/
[3] Pros & cons MongoDB: http://halls-of-valhalla.org/beta/articles/the-pros-and-cons-of-mongodb,45/
[4] Who uses mongoDB: http://www.mongodb.org/about/production-deployments/
http://www.mongodb.org/about/applications/
[5] MarkLogic: http://www.marklogic.com/
Key value
[1] Key-value: http://en.wikipedia.org/wiki/Key-value_store
[2] Amazon DynamoDB: http://aws.amazon.com/es/dynamodb/
[3] Project Voldemort: http://www.project-voldemort.com/voldemort/
[4] Redis: http://redis.io/
[5] Riak: http://basho.com/riak/
Grafo
[1] Graph: http://en.wikipedia.org/wiki/Graph_database
[2] Neo4j: http://www.neo4j.org/
[3] Clientes usando Neo4j: http://www.neotechnology.com/customers/
[4] OrientDB: http://www.orientechnologies.com/orientdb/

Contenu connexe

Tendances

Seminario Web MongoDB-Paradigma: Cree aplicaciones más escalables utilizando ...
Seminario Web MongoDB-Paradigma: Cree aplicaciones más escalables utilizando ...Seminario Web MongoDB-Paradigma: Cree aplicaciones más escalables utilizando ...
Seminario Web MongoDB-Paradigma: Cree aplicaciones más escalables utilizando ...MongoDB
 
NOSQL Databases types and Uses
NOSQL Databases types and UsesNOSQL Databases types and Uses
NOSQL Databases types and UsesSuvradeep Rudra
 
[Pgday.Seoul 2017] 6. GIN vs GiST 인덱스 이야기 - 박진우
[Pgday.Seoul 2017] 6. GIN vs GiST 인덱스 이야기 - 박진우[Pgday.Seoul 2017] 6. GIN vs GiST 인덱스 이야기 - 박진우
[Pgday.Seoul 2017] 6. GIN vs GiST 인덱스 이야기 - 박진우PgDay.Seoul
 
An Introduction To NoSQL & MongoDB
An Introduction To NoSQL & MongoDBAn Introduction To NoSQL & MongoDB
An Introduction To NoSQL & MongoDBLee Theobald
 
JanusGraph DataBase Concepts
JanusGraph DataBase ConceptsJanusGraph DataBase Concepts
JanusGraph DataBase ConceptsSanil Bagzai
 
Bases de Datos NoSQL
Bases de Datos NoSQLBases de Datos NoSQL
Bases de Datos NoSQLIsabel Gómez
 
Historia de las Bases de Datos
Historia de las Bases de DatosHistoria de las Bases de Datos
Historia de las Bases de Datosda4
 
Introduction to NoSQL Databases
Introduction to NoSQL DatabasesIntroduction to NoSQL Databases
Introduction to NoSQL DatabasesDerek Stainer
 
1. introduction to no sql
1. introduction to no sql1. introduction to no sql
1. introduction to no sqlAnuja Gunale
 
Data Warehouse Concepts | Data Warehouse Tutorial | Data Warehousing | Edureka
Data Warehouse Concepts | Data Warehouse Tutorial | Data Warehousing | EdurekaData Warehouse Concepts | Data Warehouse Tutorial | Data Warehousing | Edureka
Data Warehouse Concepts | Data Warehouse Tutorial | Data Warehousing | EdurekaEdureka!
 
Relational databases vs Non-relational databases
Relational databases vs Non-relational databasesRelational databases vs Non-relational databases
Relational databases vs Non-relational databasesJames Serra
 

Tendances (20)

Mongo DB Presentation
Mongo DB PresentationMongo DB Presentation
Mongo DB Presentation
 
MongoDB
MongoDBMongoDB
MongoDB
 
Seminario Web MongoDB-Paradigma: Cree aplicaciones más escalables utilizando ...
Seminario Web MongoDB-Paradigma: Cree aplicaciones más escalables utilizando ...Seminario Web MongoDB-Paradigma: Cree aplicaciones más escalables utilizando ...
Seminario Web MongoDB-Paradigma: Cree aplicaciones más escalables utilizando ...
 
NoSQL databases
NoSQL databasesNoSQL databases
NoSQL databases
 
Intro to HBase
Intro to HBaseIntro to HBase
Intro to HBase
 
NOSQL Databases types and Uses
NOSQL Databases types and UsesNOSQL Databases types and Uses
NOSQL Databases types and Uses
 
NoSql
NoSqlNoSql
NoSql
 
[Pgday.Seoul 2017] 6. GIN vs GiST 인덱스 이야기 - 박진우
[Pgday.Seoul 2017] 6. GIN vs GiST 인덱스 이야기 - 박진우[Pgday.Seoul 2017] 6. GIN vs GiST 인덱스 이야기 - 박진우
[Pgday.Seoul 2017] 6. GIN vs GiST 인덱스 이야기 - 박진우
 
An Introduction To NoSQL & MongoDB
An Introduction To NoSQL & MongoDBAn Introduction To NoSQL & MongoDB
An Introduction To NoSQL & MongoDB
 
JanusGraph DataBase Concepts
JanusGraph DataBase ConceptsJanusGraph DataBase Concepts
JanusGraph DataBase Concepts
 
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
 
Apache Hadoop 3
Apache Hadoop 3Apache Hadoop 3
Apache Hadoop 3
 
Introduction to NoSQL
Introduction to NoSQLIntroduction to NoSQL
Introduction to NoSQL
 
Bases de Datos NoSQL
Bases de Datos NoSQLBases de Datos NoSQL
Bases de Datos NoSQL
 
Mongo db intro.pptx
Mongo db intro.pptxMongo db intro.pptx
Mongo db intro.pptx
 
Historia de las Bases de Datos
Historia de las Bases de DatosHistoria de las Bases de Datos
Historia de las Bases de Datos
 
Introduction to NoSQL Databases
Introduction to NoSQL DatabasesIntroduction to NoSQL Databases
Introduction to NoSQL Databases
 
1. introduction to no sql
1. introduction to no sql1. introduction to no sql
1. introduction to no sql
 
Data Warehouse Concepts | Data Warehouse Tutorial | Data Warehousing | Edureka
Data Warehouse Concepts | Data Warehouse Tutorial | Data Warehousing | EdurekaData Warehouse Concepts | Data Warehouse Tutorial | Data Warehousing | Edureka
Data Warehouse Concepts | Data Warehouse Tutorial | Data Warehousing | Edureka
 
Relational databases vs Non-relational databases
Relational databases vs Non-relational databasesRelational databases vs Non-relational databases
Relational databases vs Non-relational databases
 

En vedette

Introducción al mundo NoSQL
Introducción al mundo NoSQLIntroducción al mundo NoSQL
Introducción al mundo NoSQLCésar Rodas
 
Un acercamiento a las bases de datos NoSQL
Un acercamiento a las bases de datos NoSQLUn acercamiento a las bases de datos NoSQL
Un acercamiento a las bases de datos NoSQLJavier Guillot Jiménez
 
Big Data y Minería de datos
Big Data y Minería de datos Big Data y Minería de datos
Big Data y Minería de datos Luis Joyanes
 
Bases De Datos En Excel
Bases De Datos En ExcelBases De Datos En Excel
Bases De Datos En Excelangela1140
 
Diferencias entre base de datos relacional y no relacional
Diferencias entre base de datos relacional y no relacionalDiferencias entre base de datos relacional y no relacional
Diferencias entre base de datos relacional y no relacionalUPCI
 
Data Modeling for Big Data
Data Modeling for Big DataData Modeling for Big Data
Data Modeling for Big DataDATAVERSITY
 

En vedette (10)

Bd no sql conceptos basicos
Bd no sql conceptos basicosBd no sql conceptos basicos
Bd no sql conceptos basicos
 
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
 
Bd nosql tecnicas III
Bd nosql tecnicas IIIBd nosql tecnicas III
Bd nosql tecnicas III
 
Introducción al mundo NoSQL
Introducción al mundo NoSQLIntroducción al mundo NoSQL
Introducción al mundo NoSQL
 
Un acercamiento a las bases de datos NoSQL
Un acercamiento a las bases de datos NoSQLUn acercamiento a las bases de datos NoSQL
Un acercamiento a las bases de datos NoSQL
 
Big Data y Minería de datos
Big Data y Minería de datos Big Data y Minería de datos
Big Data y Minería de datos
 
Bases De Datos En Excel
Bases De Datos En ExcelBases De Datos En Excel
Bases De Datos En Excel
 
Diferencias entre base de datos relacional y no relacional
Diferencias entre base de datos relacional y no relacionalDiferencias entre base de datos relacional y no relacional
Diferencias entre base de datos relacional y no relacional
 
Bases De Datos "Conceptos Basicos"
Bases De Datos "Conceptos Basicos"Bases De Datos "Conceptos Basicos"
Bases De Datos "Conceptos Basicos"
 
Data Modeling for Big Data
Data Modeling for Big DataData Modeling for Big Data
Data Modeling for Big Data
 

Similaire à Introducción a NoSQL

Introducción mongodb y desarrollo
Introducción mongodb y desarrolloIntroducción mongodb y desarrollo
Introducción mongodb y desarrolloJuan Ladetto
 
Desarrollo de Almacenes de Datos con Sistemas Gestores de Bases de Datos NOSQL
Desarrollo de Almacenes de Datos con Sistemas Gestores de Bases de Datos NOSQLDesarrollo de Almacenes de Datos con Sistemas Gestores de Bases de Datos NOSQL
Desarrollo de Almacenes de Datos con Sistemas Gestores de Bases de Datos NOSQLRoanny Lamas
 
Big data y las apis (big data spain)
Big data y las apis (big data spain)Big data y las apis (big data spain)
Big data y las apis (big data spain)CloudAppi
 
Apache Cassandra
Apache CassandraApache Cassandra
Apache CassandraLuis Ojeda
 
El mundo Big Data y las APIs
El mundo Big Data y las APIsEl mundo Big Data y las APIs
El mundo Big Data y las APIsBig Data Spain
 

Similaire à Introducción a NoSQL (20)

Act4 bd teo
Act4 bd teoAct4 bd teo
Act4 bd teo
 
04 presentacion acosta_claudio
04 presentacion acosta_claudio04 presentacion acosta_claudio
04 presentacion acosta_claudio
 
Base de datos
Base de datosBase de datos
Base de datos
 
Base de Datos
Base de DatosBase de Datos
Base de Datos
 
Introducción mongodb y desarrollo
Introducción mongodb y desarrolloIntroducción mongodb y desarrollo
Introducción mongodb y desarrollo
 
Desayuno de arquitectos: Big data en azure
Desayuno de arquitectos: Big data en azureDesayuno de arquitectos: Big data en azure
Desayuno de arquitectos: Big data en azure
 
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
 
Base de datos
Base de datosBase de datos
Base de datos
 
Principales bases de datos
Principales bases de datosPrincipales bases de datos
Principales bases de datos
 
Bases de datos
Bases de datosBases de datos
Bases de datos
 
Presentacion
PresentacionPresentacion
Presentacion
 
NoSQL: la siguiente generación de Base de Datos
NoSQL: la siguiente generación de Base de DatosNoSQL: la siguiente generación de Base de Datos
NoSQL: la siguiente generación de Base de Datos
 
Base de datos
Base de datosBase de datos
Base de datos
 
BASES DE DATOS
BASES DE DATOSBASES DE DATOS
BASES DE DATOS
 
Desarrollo de Almacenes de Datos con Sistemas Gestores de Bases de Datos NOSQL
Desarrollo de Almacenes de Datos con Sistemas Gestores de Bases de Datos NOSQLDesarrollo de Almacenes de Datos con Sistemas Gestores de Bases de Datos NOSQL
Desarrollo de Almacenes de Datos con Sistemas Gestores de Bases de Datos NOSQL
 
Bases de datos
Bases de datosBases de datos
Bases de datos
 
Big data y las apis (big data spain)
Big data y las apis (big data spain)Big data y las apis (big data spain)
Big data y las apis (big data spain)
 
Apache Cassandra
Apache CassandraApache Cassandra
Apache Cassandra
 
Principales bases de datos
Principales bases de datosPrincipales bases de datos
Principales bases de datos
 
El mundo Big Data y las APIs
El mundo Big Data y las APIsEl mundo Big Data y las APIs
El mundo Big Data y las APIs
 

Dernier

Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxtjcesar1
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfFernandoOblitasVivan
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúCEFERINO DELGADO FLORES
 
Nomisam: Base de Datos para Gestión de Nómina
Nomisam: Base de Datos para Gestión de NóminaNomisam: Base de Datos para Gestión de Nómina
Nomisam: Base de Datos para Gestión de Nóminacuellosameidy
 
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guiaORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guiaYeimys Ch
 
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptxHugoGutierrez99
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosAlbanyMartinez7
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1ivanapaterninar
 
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxPLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxhasbleidit
 
Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)JuanStevenTrujilloCh
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfedepmariaperez
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersIván López Martín
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfjeondanny1997
 
Viguetas Pretensadas en concreto armado
Viguetas Pretensadas  en concreto armadoViguetas Pretensadas  en concreto armado
Viguetas Pretensadas en concreto armadob7fwtwtfxf
 
PROYECCIÓN DE VISTAS planos de vistas y mas
PROYECCIÓN DE VISTAS planos de vistas y masPROYECCIÓN DE VISTAS planos de vistas y mas
PROYECCIÓN DE VISTAS planos de vistas y maslida630411
 
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024u20211198540
 
Clasificación de Conjuntos de Datos Desequilibrados.pptx
Clasificación de Conjuntos de Datos Desequilibrados.pptxClasificación de Conjuntos de Datos Desequilibrados.pptx
Clasificación de Conjuntos de Datos Desequilibrados.pptxCarolina Bujaico
 
La electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfLa electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfcristianrb0324
 
Trabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointTrabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointValerioIvanDePazLoja
 

Dernier (20)

Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdf
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
 
Nomisam: Base de Datos para Gestión de Nómina
Nomisam: Base de Datos para Gestión de NóminaNomisam: Base de Datos para Gestión de Nómina
Nomisam: Base de Datos para Gestión de Nómina
 
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guiaORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
 
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos Juridicos
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1
 
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxPLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
 
Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)
 
El camino a convertirse en Microsoft MVP
El camino a convertirse en Microsoft MVPEl camino a convertirse en Microsoft MVP
El camino a convertirse en Microsoft MVP
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdf
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 Testcontainers
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
 
Viguetas Pretensadas en concreto armado
Viguetas Pretensadas  en concreto armadoViguetas Pretensadas  en concreto armado
Viguetas Pretensadas en concreto armado
 
PROYECCIÓN DE VISTAS planos de vistas y mas
PROYECCIÓN DE VISTAS planos de vistas y masPROYECCIÓN DE VISTAS planos de vistas y mas
PROYECCIÓN DE VISTAS planos de vistas y mas
 
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
 
Clasificación de Conjuntos de Datos Desequilibrados.pptx
Clasificación de Conjuntos de Datos Desequilibrados.pptxClasificación de Conjuntos de Datos Desequilibrados.pptx
Clasificación de Conjuntos de Datos Desequilibrados.pptx
 
La electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfLa electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdf
 
Trabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointTrabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power Point
 

Introducción a NoSQL

  • 1. Advanced technology simplifies your world Introducción a NoSQL Laboratorio Innovación 19/03/2014
  • 3. Introducción a NoSQL • ¿Qué es NoSQL? • Taxonomía • Características • Uso básico • Vendedores • Penetración en mercado • Pros & Contras
  • 4. ¿Qué es NoSQL? Proporciona un mecanismo para el almacenamiento y obtención de info que se modela en un formato distinto a las relaciones tabulares propias de las bases de datos relacionales1 1 Wikipedia: NoSQL “ ” “NoSQL realmente es NoREL, es decir, Base de Datos No- Relacional”
  • 5. ¿Qué es NoSQL? Las bases de datos NoSQL están encontrando su lugar en el big data y en las aplicaciones web que necesitan tiempo real Real Time Web Applications
  • 6. Beneficios NoSQL • Preparadas para grandes volúmenes de información estructurada, semi- estructurada o sin estructurar. • Facilitan iteración rápida: metodologías ágiles y despliegue continuo. • Coherente con la programación orientada a objetos. • Arquitectura eficiente y escalable en lugar de una arquitectura cara y monolítica. Y opensource!
  • 7. Taxonomía Es difícil clasificar este tipo de bases de datos dada su heterogeneidad. No obstante está ampliamente aceptada una clasificación basada en el modelo de datos; lo que comúnmente se conoce como Taxonomía.
  • 8. Taxonomía: cuatro categorías principales DocumentoColumna Clave-valor Grafo
  • 9. Columna Es un objeto del nivel más bajo en un keyspace o más fácil, es una tupla compuesta por tres elementos: Nombre único: Referencia la columna Valor: Contenido de la columna Timestamp: Determina validez Un keyspace es un objeto que almacena todas las familias de columnas de un diseño; es como un esquema.
  • 10. Columna: ejemplo UserProfile = { Cassandra = {emailAddress:”casandra@apache.org” , age:”20”} TerryCho = {emailAddress:”terry.cho@apache.org” , gender:”male”} Cath = {emailAddress:”cath@apache.org” , age:”20” , gender:”female” , address:”Seoul”} } Familia Columna Claves de fila Columna
  • 11. Columna: Pros y contras • Más eficiente consultar la información • Es costoso reconstruir “filas completas” al estar distribuida la info en numerosos nodos. • La ordenación y consultas tienen sus particularidades: las columnas se ordenan tras ser insertadas y se ordena por atributo. • Hay que “pensar” cómo insertar la información. • La forma de acceder queda del lado del programador.
  • 13. Cassandra • Última versión estable 2.0.6 • Licencia Apache • Para cuando “necesitas escalabilidad y alta disponibilidad sin castigar el rendimiento”. • Utilizada en Netflix, eBay, Twitter, Reddit y otros. • “Probada, tolerante a fallos, rendimiento, descentralizada, durabilidad, control, fl exible”
  • 14. Apache Hbase (Hadoop) • Última versión estable 0.94 • Licencia Apache • Para cuando “necesitas acceso de escritura aleatorio en tiempo real para acceder a tu Big Data: tablas enormes con miles de millones de files con millones de columnas” • “Escalabilidad lineal y modular, consistente en lecturas y escrituras, failover automático, Java API”.
  • 16. Documento (info semi-estructurada) El documento encapsula la información en algún formato o codificación estándar: XML, YAML, JSON o BSON e incluso formatos binarios como PDF, Microsoft Office documents, etc. “ ” Los documentos son similares a las tablas de las bases de datos relacionales, pero mucho menos rígidos: no existe ningún esquema.
  • 17. Documento: ejemplos Al igual que con la categoría Columna ambos registros contienen valores similares, pero no tienen por qué compartir los mismos campos: no existen campos vacíos. { FirstName: "Jonathan", Address: "15 Wanamassa Point Road", Children: [ {Name: "Michael", Age: 10}, {Name: "Jennifer", Age: 8}, {Name: "Samantha", Age: 5}, {Name: "Elena", Age: 2} ] } { FirstName: "Bob", Address: "5 Oak St.", Hobby: "sailing" }
  • 18. Documento: conceptos • Keys: los documentos se acceden mediante una clave única (cadena, URI o ruta). • Obtención: la base de datos ofrece una API o lenguaje de consulta que permite obtener el contenido de los documentos. • Organización: en función de la implementación/vendedor existen diferentes formas de organización: colecciones, etiquetas, metadata, directorios, etc.
  • 19. Documento: Pros y contras • Todas las de NoSQL • No hay joins: código feo, múltiples queries, pérdida flexibilidad, posible duplicidad de info. • Uso de memoria al tener que almacenar los nombres de las claves con cada documento. • Posibles problemas de concurrencia: las operaciones de escritura tienen preferencia sobre las lecturas.
  • 21. MongoDB • Última versión estable 2.4.9 • Licencia GNU AGPL v3.0 y Comercial MongoDB, Inc. • Almacenamiento BSON. • Usada por muchos como eBay, SAP, sourceforge, etc. • Soporte completo a índices para cualquier atributo. • Replicación y alta disponibilidad. • Map/Reduce: agregación flexible y procesamiento de información. • GridFS para almacenar ficheros de cualquier tamaño.
  • 22. Apache CouchDB • Última versión estable 1.5.0 • Licencia Apache • Base de datos que “utiliza JSON para los documentos, JavaScript para consultas MapReduce y HTTP como API de acceso” • Perfecta para aplicaciones web modernas y aplicaciones móviles.
  • 23. MarkLogic • Última versión estable 7 • Privada: “Enterprise NoSQL” • Utilizada por grandes como Warner Bros., Dow Jones, Citigroup, Boeing, etc.
  • 25. Key-value Este tipo de motores de bases de datos almacenan información en «diccionarios». Podemos imaginar una BD clave–valor como una colección de vectores asociativos (al estilo de los tipos Object en ECMAScript, por ejemplo) “ ” La asociación entre la clave y el valor se conoce a menudo como binding; palabra que también suele usarse para nombrar al proceso de creación de una nueva asociación.
  • 26. Key-value: operaciones • Add: añade un nuevo valor. • Reassign: reemplaza el valor de algún par que ya existe en la colección. • Remove: elimina una tupla de la colección eliminando el binding a partir de la clave. • Lookup: devuelve el valor a partir de una clave determinada.
  • 27. Key-value: ejemplo { "Great Expectations": "John", "Pride and Prejudice": "Alice", "Wuthering Heights": "Alice" }
  • 28. Key-value: Pros y contras • Las habituales de NoSQL • No existe forma de indicar que una columna es obligatoria: NOT NULL. • No hay forma de establecer tipos de datos para validar entradas. • No hay forma para indicar si los nombres de las claves son correctos. • No hay forma de indicar FK.
  • 30. Amazon DynamoDB • Solución Cloud • Licencia comercial • Utilizada en washingtonpost.com, AdRoll, scopely, WeatherBug. • Existe versión open-source del proyecto llamado Project Voldemort utilizada en LinkedIn para solucionar algunos problemas de almacenamiento con alta escalabilidad.
  • 31. Redis • Última versión estable 2.8.7 • Licencia BSD • Almacena información de forma estructurada ya que las claves pueden contener: strings, hashes, lists, sets y sorted sets. • Usada por stackoverflow, flickr, digg, Blizzard Entertainment, etc.
  • 32. Riak • Última versión estable 1.4.8 • Licencia Apache • Sus fuertes son: disponibilidad, tolerancia a fallos, simplicidad operacional y escalabilidad.
  • 34. Grafo La info se representa como nodos de un grafo y sus relaciones con las aristas del mismo, de manera que se pueda usar teoría de grafos para recorrer la base de datos ya que esta puede describir atributos de los nodos (entidades) y las aristas (relaciones). “ ”Estas bases de datos están absolutamente normalizadas ya que necesitan que cada tabla contenga una única columna y cada relación tan solo dos; así cualquier cambio en la estructura tiene sólo efecto local.
  • 35. Grafo: conceptos • Nodo: representa entidades como personas, negocios, etc. • Propiedad: información relevante relacionada con los nodos. • Aristas: son las líneas que conectan nodos entre sí o nodos y propiedades. Representan relaciones: la info importante se almacena en aristas.
  • 37. Grafo: Pros y contras • Son habitualmente más rápidas para conjuntos de datos asociativos. • Mapean fácilmente en aplicaciones orientadas a objetos. • Escalan de forma más natural hacia conjuntos de datos ya que no suelen requerir operaciones costosas basadas en joins. • Las habituales de NoSQL. • Las bases de datos relacionales son habitualmente más rápidas cuando realizan la misma operación en grandes volúmenes de info.
  • 39. Neo4j • Última versión estable 2.0.1 • Licencia GPLv3 / AGPLv3 y Comercial • “Alta escalabilidad, robusta (completamente ACID)” • “Usada en aplicaciones críticas por miles de startups, empresas y gobiernos alrededor del mundo”
  • 40. OrientDB • Última versión estable 1.6.3 • Licencia Apache • Soporte transacciones ACID: recupera info pendiente ante problemas. • Soporta lenguaje SQL con extensiones para gestionar relaciones sin SQL join, gestionar árboles y grafos. • Preparada para la web: soporte nativo HTTP, protocolo RESTful y JSON.
  • 43. Enlaces externos General [1] http://nosql-database.org/ [2] NoSQL Explained: http://www.mongodb.com/learn/nosql [3] Comparación varias: http://kkovacs.eu/cassandra-vs-mongodb-vs-couchdb-vs-redis [4] NoSQL: http://en.wikipedia.org/wiki/Nosql Columna [1] Column (data store): http://en.wikipedia.org/wiki/Column_(data_store) [2] ColumnFamily: http://en.wikipedia.org/wiki/ColumnFamily [2] Keyspace (data store): http://en.wikipedia.org/wiki/Keyspace_(data_model) [3] CAP theorem: http://en.wikipedia.org/wiki/CAP_theorem [4] ACID: http://en.wikipedia.org/wiki/ACID [5] Cassandra: http://cassandra.apache.org/ [6] Cassandra data model: http://rubyscale.com/blog/2010/09/13/understanding-the-cassandra-data- model-from-a-sql-perspective/ [7]: Hbase: https://hbase.apache.org/ [8]: Accumulo: https://accumulo.apache.org/
  • 44. Enlaces externos Documento [1] Document (data store): http://en.wikipedia.org/wiki/Document-oriented_database [2] MongoDB: http://www.mongodb.org/ [3] Pros & cons MongoDB: http://halls-of-valhalla.org/beta/articles/the-pros-and-cons-of-mongodb,45/ [4] Who uses mongoDB: http://www.mongodb.org/about/production-deployments/ http://www.mongodb.org/about/applications/ [5] MarkLogic: http://www.marklogic.com/ Key value [1] Key-value: http://en.wikipedia.org/wiki/Key-value_store [2] Amazon DynamoDB: http://aws.amazon.com/es/dynamodb/ [3] Project Voldemort: http://www.project-voldemort.com/voldemort/ [4] Redis: http://redis.io/ [5] Riak: http://basho.com/riak/ Grafo [1] Graph: http://en.wikipedia.org/wiki/Graph_database [2] Neo4j: http://www.neo4j.org/ [3] Clientes usando Neo4j: http://www.neotechnology.com/customers/ [4] OrientDB: http://www.orientechnologies.com/orientdb/

Notes de l'éditeur

  1. El timestamp permite diferenciar contenido válido de valores obsoletos; según el teorema CAP (para un sistema distribuido es imposible proporcionar al mismo tiempo garantías para consistencia, disponibilidad y tolerancia a la partición.Está relacionado con ACID: Atomicidad, Consistencia, Aislamiento y Durabilidad, que es el conjunto de propiedades que garantizan que las transacciones en una base de datos se procesan con fiabilidad.
  2. ¿Por qué más eficiente?Por ej, en lugar de crear una tabla con toda la información que representa a una persona (UID, nombre, apellidos, fecha nacimiento, género, etc) esta info se distribuye creando familias de columnas por ej: “UID, nombre, apellidos” “fecha nacimiento, género”, etc. Por lo que si quieres buscar sólo por mujeres nacidas entre 1980 y 1990 basta con acceder sólo a la segunda familia de columnas, si el resto de la info es irrelevante para ti.
  3. Netflix: Usada en varios productos y su corehttp://techblog.netflix.com/search/label/CassandraeBay: http://www.datastax.com/resources/casestudies/ebayTwitter: https://blog.twitter.com/2010/cassandra-twitter-todayReddit: http://www.redditblog.com/search/label/Cassandra