Este documento discute cuatro alternativas principales para distribuir datos en una base de datos distribuida: centralizada, replicada, fragmentada e híbrida. Explica que la fragmentación de datos puede realizarse de forma horizontal, vertical u horizontal y mixta. También describe reglas que una fragmentación debe seguir como ser completa, reconstruible y que los fragmentos deben ser disjuntos.
Se describe la capacidad de las bases de datos NoSQL y se enfoca en CouchDB una base de datos no relacional de tipo documental cuyo motor de programación está basado en JavaScript y estructura establecida en JSON. Además se da un estudio de las principales características de esta base de datos tales como tolerancia a particiones, y disponibilidad.
Posteriormente se da uso al Teorema CAP para conocer en qué caso es conveniente el uso de CouchDB y así hacer que la elección de CouchDB sea la más apropiada para algún proyecto en particular.
Finalmente se muestra un ejemplo Map Reduce
Semana 4 control de versiones planificacion y gestionGiovani Ramirez
Es un sistema que registra los cambios realizados sobre un archivo o conjunto de archivos a lo largo del tiempo de tal manera que sea posible recuperar versiones especificas más adelante.
Se describe la capacidad de las bases de datos NoSQL y se enfoca en CouchDB una base de datos no relacional de tipo documental cuyo motor de programación está basado en JavaScript y estructura establecida en JSON. Además se da un estudio de las principales características de esta base de datos tales como tolerancia a particiones, y disponibilidad.
Posteriormente se da uso al Teorema CAP para conocer en qué caso es conveniente el uso de CouchDB y así hacer que la elección de CouchDB sea la más apropiada para algún proyecto en particular.
Finalmente se muestra un ejemplo Map Reduce
Semana 4 control de versiones planificacion y gestionGiovani Ramirez
Es un sistema que registra los cambios realizados sobre un archivo o conjunto de archivos a lo largo del tiempo de tal manera que sea posible recuperar versiones especificas más adelante.
Introducción a las bases de datos NoSQL
Concepto y campos relacionados
Principales características
Arquitectura de las bases de datos NoSQL
Taxonomía de soluciones NoSQL
Empresas que usan bases de datos NoSQL
MongoDB: una BBDD NoSQL orientada a Documentos
Introducción: características y arquitectura
Instalación sobre diferentes sistemas operativos
Utilidades de mongoDB: mongo, mongostat, mongotop, etc.
Características principales:
Consultas Ad hoc
Indexación
Replicación
Balanceo de carga
Almacenamiento de archivos
Agregación
Programación en MongoDB
Ejecución de JavaScript del lado del servidor
Programación de MongoDB desde Java y Python
Desarrollo de una aplicación avanzada con MongoDB
Conclusiones
Otras alternativas destacables: CouchDB
Aplicabilidad a mi empresa
Similar a Distribución y fragmentación de datos (20)
1. Distribución y
Fragmentación de Datos
José Alfredo Mendoza Heredia
Maricruz ´Chávez Chávez Morelia, Michoacán a 24 de febrero de 2014
2. ¿Distribuir?
Para esto existen cuatro alternativas
principales:
Centralizada
Replicada
Fragmentada
Híbrida.
Una de las decisiones más
importantes que el diseñador de
bases de datos distribuidas debe
tomar es el posicionamiento de la
data en el sistema y el esquema bajo
el cuál lo desea hacer.
3. Centralizada
• Es muy similar al modelo de Cliente/Servidor en el sentido que la BDD está
centralizada en un lugar y los usuarios están distribuidos.
• Este modelo solo brinda la ventaja de tener el procesamiento distribuido ya
que en sentido de disponibilidad y fiabilidad de los datos no se gana nada.
4. Replicadas
• El esquema de BDD de replicación consiste en que cada nodo debe tener su copia
completa de la base de datos.
• Es fácil ver que este esquema tiene un alto costo en el almacenamiento de la
información.
• Debido a que la actualización de los datos debe ser realizada en todas las copias,
también tiene un alto costo de escritura, pero todo esto vale la pena si:
Tenemos un sistema en el que se va a escribir pocas veces y leer muchas.
Dónde la disponibilidad y fiabilidad de los datos sea de máxima importancia.
5. Granularidad
• Al referirnos a lo que es bloqueo en bases de datos en realidad utilizamos lo
que se conoce como granularidad del bloqueo.
• La granularidad se refiere a que tan fino se quiere que sea un bloqueo. Por
ejemplo:
• ¿Desea bloquear la tabla completa (un bloqueo de granularidad gruesa)
• Solo desea bloquear una fila especifica (un bloqueo de granularidad fina)?.
6. Particionadas
• Este modelo consiste en que solo hay una copia de cada elemento, pero la
información está distribuida a través de los nodos.
• En cada nodo se aloja uno o más fragmentos disjuntos de la base de datos.
• Como los fragmentos no se replican esto disminuye:
• El costo de almacenamiento.
Pero:
• Sacrifica la disponibilidad.
• Fiabilidad de los datos.
7. La fragmentación se puede realizar también de tres formas:
•Horizontal: Los fragmentos son subconjuntos de una tabla
(análogo a un restringir).
•Vertical: Los fragmentos son subconjuntos de los atributos con
sus valores (análogo a un proyectar).
•Mixto: Se almacenan fragmentos producto de restringir y
proyectar una tabla.
8. ¿Ventajas o
Desventajas?
• Una ventaja significativa de este esquema
es que las consultas (SQL) también se
fragmentan por lo que su procesamiento
es en paralelo y más eficiente
• Pero se sacrifica con casos especiales
como usar JUNTAR o PRODUCTO, en
general casos que involucren varios
fragmentos de la BDD.
Una ventaja importante de
mencionar es la siguiente:
9. Para que una fragmentación sea correcta
esta debe cumplir con las siguientes
reglas:
Debe ser Completa
Debe ser Reconstruible
Los fragmentos deben ser Disjuntos
10. Debe ser Completa
Si una relación R se fragmenta en R1,R2, ... , Rn, cada elemento de la data de R
debe estar en algún Ri.
11. Debe ser Reconstruible
Debe ser posible definir una operación relacional que a partir de los fragmentos
obtenga la relación.
12. Los fragmentos deben ser Disjuntos
Si la fragmentación es horizontal entonces si un elemento e está en Ri este
elemento no puede estar en ningún Rk (para k distinto a i).
En el caso de fragmentación vertical es necesario que se repitan las llaves
primarias y esta condición solo se debe cumplir para el conjunto de atributos
que no son llave primaria.
13. Híbrido
• Este esquema simplemente representa la combinación del esquema de
partición y replicación.
• Se particiona la relación y a la vez los fragmentos están selectivamente
replicados a través del sistema de BDD.
14. ¿Existen Criterios?
• Localidad de los datos.
• Fiabilidad de los datos.
• Disponibilidad de los datos.
• Capacidades y costos de almacenamiento.
• Distribución de la carga de
procesamiento.
• Costo de comunicación.
• Uso del sistema.
Existen un conjunto de criterios
para escoger la distribución :
15. • El éxito depende mucho de una buena distribución de los datos.
• Es importante considerar todos los criterios de distribución desde etapas de
diseño.
• La fragmentación brinda ventajas pero al mismo tiempo una cantidad
considerable de desventajas.
• Es importante que i la fragmentación es horizontal entonces si un elemento e
está en Ri este elemento no puede estar en ningún Rk