Download Bases de Datos No SQL - ABD-UCV

Document related concepts

NoSQL wikipedia , lookup

CouchDB wikipedia , lookup

Modelo de base de datos wikipedia , lookup

Base de datos documental wikipedia , lookup

Apache Cassandra wikipedia , lookup

Transcript
Universidad Central de Venezuela
Facultad de Ciencias
Escuela de Computación
Administración de Bases de Datos
Cesar Hernández
Rafael Machado
Sandra Jiménez
Agenda
 Sistema
Relacional y SQL
 ¿Qué es NoSQL? . Origen
 Características de NoSQL
 Tipos de Base de Datos NoSQL
 Arquitectura y Funcionamiento
 Usuarios y Aplicaciones
 Ventajas y Desventajas
2
Sistema Relacional

El modelo relacional para la gestión de una base de datos
es un modelo de datos basado en la lógica de predicados y
en la teoría de conjuntos. Es el modelo más utilizado en la
actualidad para modelar problemas reales y administrar
datos dinámicamente.

Tras ser postuladas sus bases en 1970 por Edgar Frank
Codd, de los laboratorios IBM en San José (California), no
tardó en consolidarse como un nuevo paradigma en los
modelos de base de datos.
33
Caracteristicas del Sistema Relacional
 Codd
perseguía una serie de objetivos:
 Independencia
física.
 Independencia
lógica.
 Flexibilidad.
 Uniformidad.
 Sencillez.
4
4
Conceptos Básicos del Sistema
Relacional
 Tablas
 Atributos
Nombre
Año
Temporadas
Episodios
The Big Bang Theory
 Esquemas
2007
6
73
 Tuplas
HOUSE M.D.
2006
6
132
How I Met Your Mother
2005
8
112
 Dominios
5
5
SQL - Structured Query Languange

Los orígenes del SQL están ligados a los de las bases de
datos relacionales.

Los laboratorios de IBM definen el lenguaje SEQUEL
(Structured English QUEry Language).

Oracle introcuce SQL en 1979 en un programa comercial.

SQL es un lenguaje declarativo de “alto nivel” de acceso a
bases de datos que explota la flexibilidad y potencia de
los sistemas relacionales permitiendo gran variedad de
operaciones en éstos.
6
6
NoSQL

NoSQL (a veces llamado "no sólo SQL") 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)
en aspectos importantes, el más destacado que
no usan SQL (Structured Query Language) como el
principal lenguaje de consultas.
77
Origen del NoSQL

El término NOSQL fue acuñado a principios de 2009 por un
empleado de Rackspace, Eric Evans, cuando Johan
Oskarsson de Last.fm quiso organizar un evento para
discutir bases de datos distribuidas de código abierto.

El nombre intenta describir la emergencia de un número
creciente de bases de datos no relacionales y distribuidas
que no suelen proveer garantias ACID.

El término hace referencia a la manera de llamar a las
bases de datos relacionales clásicas como MySQL, MS SQL,
PostgreSQL, etc.
8
8
Características de No SQL

Consistencia Eventual.

Estructura distribuida.

Ausencia de esquema en los registros de datos.

Escalabilidad horizontal sencilla.

Alta velocidad de respuesta a peticiones.
99
Tipos de BD NoSQL
Clave Valor
Documentos
Familia de
Columnas
Orientada a
Grafos
10
10
BD orientada a grafos
La información es representada en nodos
 Ya está normalizada
 No hay que definir un número determinado de atributos
 Recorrido
 ¿Cuándo usarlas?
 Algunas BD
 Neo4j
 HyperGraph-DB
 RDF

11
11
BD orientada a grafos

Ejemplo:
12
BD de familia de columnas

Bigtable
 ¿Por
qué se creó?
 Estructura
 Tablas:
“tablets”
 Servidores
master
 Chunkservers

Hypertable
 Utiliza
lenguaje HQL
 Estructura
13
13
BD de familia de columnas
14
14
BD clave-valor


Se tiene una clave única y un valor que
contiene toda la información asociada a la
clave
La información esta condensada en una súper
lista en la que podemos tener índices
 Búsquedas
 Permite
variar la estructura de la
información que se almacena
15
15
BD clave-valor

Ejemplo:
Claves
John Smith
Valores
000
001
001
75475
:
Lisa Smith
001
001
001
:
Sam Doe
001
001
001
754575
345435
16
16
BD orientada a documentos



Soportan modelos de datos más complejos que el
anterior tipo clave – documento
No almacenan datos en tablas con campos
uniformes para cada fila o registro
Cada documento es almacenado de forma que
tenga ciertas características, cualquier número o
tipo de campos pueden ser añadidos a un
documento
17
17
Arquitectura de NoSQL
Consistencia
S
B
D
R
Disponibilidad
Tolerancia de
Partición
18
18
Arquitectura de NoSQL

Generalmente arquitectura distribuida

BASE
o
o
o
Internet

Basically Available
Soft-State
Eventual Consistency
Características:
o
o
o
Escalabilidad horizontal
Tolerancia a fallas
Redundancia
19
19
Usuarios y Aplicaciones
20
20
Cassandra

Es un sistema de almacenamiento distribuido escrito en
Java de código abierto, descentralizado, escalable,
altamente disponible, tolerante a fallos, eventualmente
consistente, y orientado a columnas.

Es mantenido por la fundación Apache.

Se originó en Facebook en el 2007 para solventar los
problemas de búsqueda interna de datos que tenía la
compañía, la cual tiene que tratar con grandes volúmenes
de datos.
21
21
Características de Cassandra

Distribuido y Descentralizado

Escalabilidad flexible

Alta disponibilidad y tolerancia a fallos

Orientación a columnas

Libre esquema

Sin lenguaje de consulta

Sin integridad referencial
22
22
Modelo de datos de Cassandra
 Clúster
Espacio
Clave
Familias
de columnas
Columnas
Supercolumnas
23
23
¿Quienes usan Cassandra?
24
24
Modelado de datos relacional vs
un modelado de datos de Cassandra
25
25
CouchDB

Base de datos documental sin esquema,
consultable al estilo MapReduce, accesible por
REST y con una funcionalidad de replicación
integrada.

Se trata de una base de datos NoSQL que emplea
JSON para almacenar los datos, JavaScript como
lenguaje de consulta por medio de MapReduce y
HTTP como API.
26
26
Características de CouchDB

Plataforma de bases de datos simplificada sin esquema

Centrada en documentos

No sigue el modelo relacional

Facilita la distribución

Alta escalabilidad

Tolerancia a fallos

Replicación bidireccional

Preparada para funcionar offline

Orientada a Internet
27
27
CouchDb – Ejemplo de JSON

JSON, acrónimo de JavaScript Object Notation, es un formato ligero para el
intercambio de datos.
<menu id="file" value="File">
<popup>
<menuitem value="New"
onclick="CreateNewDoc()" />
<menuitem value="Open"
onclick="OpenDoc()" />
<menuitem value="Close"
onclick="CloseDoc()" />
</popup>
</menu>
XML
{"menu": {
"id": "file",
"value": "File",
"popup": {
"menuitem": [
{"value": "New", "onclick":
“CreateNewDoc()"},
{"value": "Open", "onclick":
"OpenDoc()"},
{"value": "Close", "onclick":
"CloseDoc()"}
]
}
}
JSON
}
28
28
Características de CouchDB

Plataforma de bases de datos simplificada sin esquema. No sigue el
modelo relacional

Centrada en documentos

Facilita la distribución

Alta escalabilidad

Tolerancia a fallos

Replicación bidireccional

Preparada para funcionar offline

Orientada a Internet
29
29
Ejemplo de documento en CouchDB
30
30
Ejemplo de Map en CouchDB
31
31
Ejemplo de Reduce en Couch DB
32
32
Ventajas






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.
Alta velocidad de respuesta.
Diferentes DBs NoSQL para diferentes proyectos.
Se ejecutan en clusters de máquinas baratas.
33
33
Desventajas

El código abierto puede significar una "mancha" en
el soporte para las empresas.

No están lo suficientemente maduros para algunas
empresas. de experiencia.

Limitaciones de Inteligencia de Negocios.

Problemas de compatibilidad.
34
34