Download Bases de Datos No SQL - ABD-UCV
Document related concepts
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