No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Curso Práctico de SQL

Curso Práctico de SQL

Israel Vázquez Morales

Israel Vázquez Morales

Bases de datos distribuidas

24/29
Recursos

Aportes 22

Preguntas 1

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Resumen:
Las bases de datos distribuidas: es una colección de múltiples bases de datos separadas físicamente que se comunican mediante una red informática.

VENTAJAS:

-desarrollo modular.
-incrementa la confiabilidad.
-mejora el rendimiento.
-mayor disponibilidad.
-rapidez de respuesta.

DESVENTAJAS:

-Manejo de seguridad.
-complejidad de procesamiento.
-Integridad de datos más compleja.
-Costo.

TIPOS:

Homogéneas: mismo tipo de BD, manejador y sistema operativo. (aunque esté distribuida).
Heterogénea: puede que varíen alguna de los anteriores características.
-OS
-Sistema de bases de datos.
-Modelo de datos.

ARQUITECTURAS:
-** cliente- servidor**: donde hay una BD principal y tiene varias BD que sirven como clientes o como esclavas que tratarán de obtener datos de la principal, a la que normalmente se hacen las escrituras.

  • Par a par (peer 2 peer): donde todos los puntos en la red de bd son iguales y se hablan como iguales sin tener que responder a una sola entidad.
  • multi manejador de bases de datos.

ESTRATEGIA DE DISEÑO:

  • top down: es cuando planeas muy bien la BD y la vas configurando de arriba hacia abajo de acuerdo a tus necesidades.
  • bottom up: ya existe esa BD y tratas de construir encima.

ALMACENAMIENTO DISTRIBUIDO:

-Fragmentación: qué datos van en dónde.

fragmentación horizontal: (sharding) partir la tabla que estás utilizando en diferentes pedazos horizontales.

fragmentación vertical: cuando parto por columnas.

fragmentación mixta: cuando tienes algunas columnas y algunos datos en un lugar y algunas columnas y algunas tuplas en otro lugar.

-Replicación: tienes los mismos datos en todas ala BBDD no importa donde estén.

-replicación completa: cuando toda al BD está en varias versiones a lo largo del globo, toda la información está igualita en todas las instancias de BD.
-replicación parcial: cuando algunos datos están replicados y compartidos en varias zonas geográficas
-sin replicación: no estás replicando nada de los datos, cada uno está completamente separa y no tienen que estarse hablando para sincronizar datos entre ellas.

DISTRIBUCIÓN DE DATOS:

-Distribución: cómo va a pasar la data entre una BD y otra. Tiene que ver mucho con networking, tiempos, latencia, etc. Pueden ser:

Centralizada: cuando la distribuyes des un punto central a todas las demás
Particionada: está partida en cada una de las diversas zonas geográficas y se comparten información entre ellas.
Replicada: tener la misma información en todas y entre ellas se hablan para siempre tener la misma versión.

Blockchain es un tipo de Bases de Datos distribuida peer-to-peer

Bases de datos distribuidas
Son bases de datos ubicadas físicamente separadas pero se encuentran conectadas a través de una red informática.

Ventajas

  • Desarrollo modular: se pueden destinar a diferentes usos o usuarios, por ejemplo usuarios por país
  • Incrementa la confiabilidad
  • Mejora el rendimiento, al ser un subset de datos
  • Mayor disponibilidad

Desventajas

  • Manejo de seguridad: la infraestructura se multiplica, es más cara, lleva más mantenimiento
  • Complejidad de procesamiento: cuando preciso más datos de los que tengo en mi módulo o subset
  • Integridad de datos más compleja
  • Costos incrementados en general

Homogéneas vs Heterogéneas
De acuerdo a si utilizan o no los siguientes en la misma medida independientemente del módulo

  • OS (Windows, Linux)
  • Sistema de base de datos (PostgreSQL, Oracle)
  • Modelos de datos

Arquitecturas

  • Cliente - Servidor
  • Peer 2 Peer
  • Multi manejador de base de datos

Estrategias de diseño

  • Top down: planeada estratégicamente, instancias, jerarquías, desde las necesidades
  • Bottom up: cuando ya existen servidores corriendo y no conviene empezar de cero

Almacenamiento distribuido

  • Fragmentación: cuando unos datos están en un lado y otros en otro
  • Replicación: los datos están replicados en más de una locación
  • Distribución: es importante pensar en netwroks, latencia, etc.

Fragmentación

  • Horizontal: los datos de un país en un país, del otro país en otro lugar, etc.
  • Vertical: ciertos campos o columnas en una base de datos y otros campos en otra
  • Mixta

Replicación

  • Parcial: algunos datos están replicados
  • Completa: todos los datos están en todas las bases
  • Sin replicación

Distribución de datos

  • Centralizada
  • Particionada
  • Replicada

Esta clase tiene mucho que ver con Arquitectura de software.

Una Base de Datos Distribuida es una colección de datos que pertenecen lógicamente a un solo sistema, pero se encuentra físicamente distribuido en varios computadores o servidores de datos en una red de computadoras. Un sistema de bases de datos distribuidas se compone de un conjunto de sitios lógicos, conectados entre sí, mediante algún tipo de red de comunicaciones, en el cual:

  • Cada sitio lógico puede tener un sistema de base de datos.

  • Los sitios han sido diseñados para trabajar en conjunto, con el fin de que un usuario de cualquier posición geográfica pueda obtener acceso a los datos desde cualquier punto de la red tal como si todos los datos estuvieran almacenados en la posición propia del usuario. Entonces, la llamada “Base de Datos Distribuida” es en realidad una especie de “objeto virtual”, cuyos componentes se almacenan físicamente en varias “bases de datos reales” ubicadas en diferentes sitios. En esencia es la unión lógica de esas diferentes bases de datos.

En otras palabras, cada sitio tiene sus propias “bases de datos reales" locales, sus propios usuarios locales, sus propios SGBD y programas para la administración de transacciones y su propio administrador de comunicación de datos. Así pues, el sistema de bases de datos distribuidas puede considerarse como una especie de sociedad entre los diferentes SGBD individuales locales.

Los microservicios que son una solucuon muy actual en algunos de sus casos comparten bases de datos o usan distribuidas

24. Bases de datos distribuidas

¿Qué es?

Es una colección de múltiples bases de datos separadas físicamente

Ventajas

  • Desarrollo modular.
  • Incrementa la confiabilidad.
  • Mejora el rendimiento.
  • Mayor disponibilidad.
  • Rapidez de respuesta.

Desventajas

  • Manejo de seguridad.
  • Complejidad de procesamiento.
  • Integridad de datos más compleja.
  • Costo.

Homogéneas y hetereogéneas

  • OS
  • Sistema de base de datos
  • Modelos de datos

Arquitecturas

  • Cliente - servidor.
  • Peer 2 Peer
  • Multi manejador de base de datos

Estrategias de diseño

  • Top down
  • Bottom up

Almacenamiento distribuido

  • Fragmentación
  • Replicación
  • Distribución

Fragmentación

  • Horizontal
  • Vertical
  • Mixta

Replicación

  • Completa
  • Parcial
  • Sin replicación

Distribución de los datos

  • Centrada
  • Particionada
  • Replicada
  • Los proyectos basados en Blockchain tienen una Arquitectura P2P, todo esta distribuido y no esta centralizada en una Entidad, todos los nodos se comunican entre ellos, y los archivos están fragmentados en muchas partes y se distribuyen en una red usando la potencia computacional de los dispositivos de otras personas.
  • Y las distribución de Datos esta particionada y encriptada ya que las demás personas no pueden ver como tal mi información a menos que yo quiera compartirla porque solo tienen una pequeña parte aleatoria de ellos.
XXIV. BASES DE DATOS DISTRIBUIDAS

• Es una colección de múltiples bases de datos separadas físicamente que se comunican mediante una red informática.
• Ventajas:
	○ Desarrollo modular: Al estar a la distancia se pueden destinar a distintos usos o usuarios
	○ Incrementa la confiabilidad
	○ Mejora el rendimiento
	○ Mayor disponibilidad
	○ Rapidez de respuesta
• Desventajas:
	○ Manejo de seguridad
	○ Complejidad de procesamiento
	○ Integridad de datos más compleja
	○ Costo
• Homogéneas y heterogéneas
	○ OS
	○ Sistema de base
	○ Modelos de datos
• Arquitecturas
	○ Cliente-servidor
	○ Peer 2 Peer
	○ Multi manejador de base de datos
• Estrategias de diseño
	○ Top down
	○ Bottom up
• Almacenamiento distribuido
	○ Fragmentación
		§ Horizontal
		§ Vertical
		§ Mixta
	○ Replicación
		§ Completa
		§ Parcial
		§ Sin replicación
	○ Distribución de los datos
		§ Centralizada
		§ Particionada
		§ Replicada

Las bases de datos distribuidas son sistemas de gestión de bases de datos en los que los datos están distribuidos entre múltiples nodos o servidores, ya sea geográficamente o dentro de una red. Este enfoque tiene como objetivo mejorar la escalabilidad, la disponibilidad y la tolerancia a fallos.

Distribución de Datos:

  • Fragmentación:
    Dividir una tabla en fragmentos más pequeños. Puede ser horizontal (filas) o vertical (columnas).
    Repliegue: Copiar fragmentos de datos en varios nodos.

Transparencia de Distribución:

  • Transparencia de ubicación:
    Los usuarios no necesitan conocer la ubicación física de los datos.
    Transparencia de fragmentación: Los usuarios no necesitan conocer cómo se han fragmentado los datos.

Transacciones Distribuidas:

  • Atomicidad:
    Garantiza que todas las operaciones de una transacción se realicen con éxito o ninguna.
  • Consistencia:
    Mantiene la coherencia de la base de datos antes y después de una transacción.
  • Aislamiento:
    Garantiza que una transacción no afecte a otras que se estén ejecutando simultáneamente.
  • Durabilidad:
    Asegura que los cambios de una transacción persistan incluso después de un fallo del sistema.

Control de Concurrencia:

  • Bloqueo:
    Evitar que varios usuarios actualicen los mismos datos simultáneamente.
    Concurrencia Optimista: Permitir que múltiples transacciones actualicen datos y resolver conflictos al final de la transacción.

Recuperación y Tolerancia a Fallos:

  • Backup y recuperación:
    Estrategias para respaldar datos y recuperarse de fallos.
    Tolerancia a fallos: Mantener la disponibilidad y funcionalidad incluso en caso de fallos.

Consistencia y Replicación:

  • Consistencia eventual:
    Permite que los nodos diverjan temporalmente y luego se vuelvan a sincronizar.
    Réplica síncrona y asíncrona: Sincronización inmediata o diferida de datos entre nodos.

Planificación y Optimización de Consultas:

  • Optimización distribuida:
    Planificación de consultas considerando la distribución de datos.

Seguridad y Privacidad:

  • Seguridad distribuida:
    Gestión de la seguridad en entornos distribuidos.
  • Privacidad:
    Garantizar la privacidad de los datos, especialmente en transferencias entre nodos.

Protocolos de Comunicación:

  • Protocolos de comunicación distribuida:
    Métodos para la comunicación entre nodos, como RPC (Remote Procedure Call) o mensajes.

Escalabilidad Horizontal:

  • Añadir nodos:
    Añadir servidores para aumentar la capacidad de almacenamiento y procesamiento.

Encontré este significado: Las bases de datos distribuidas o Distributed Database Management System (DDBMS) se caracterizan por almacenar la información en varias computadoras conectadas entre sí, a las cuáles el usuarios puede acceder desde cualquier sitio como si se tratara de una red local.

soy yo o esta mas serio de lo normal

Intentando simplificar el concepto de bases de datos distribuidas llegue a la conclusión de que es lo mismo que nosotros hicimos en este curso pero conectado a una red y sincronizando esta data según sea necesario (o no)
Por ejemplo, Pepe, en Colombia, hizo un informe que intenta justificar los altos precios en las colegiaturas de algunos alumnos. Hoy, aca en Argentina, Jose nos cuenta que la colegiatura de sus alumnos disminuyeron su precio gracias a un subsidio del estado. Entonces yo le aviso a Pepe que actualizamos la data y el puede hacer su informe de vuelta sin ningun problema.

Características a tener en cuenta
Entre las características de una base de datos distribuida se pueden citar las siguientes:

Está formada por varias computadoras, a las cuales se les denomina nodos.
Los nodos se comunican entre sí mediante una red de comunicaciones.
Cada uno de los ordenadores que forman parte de la red tiene autonomía local.
Generalmente, la red de computadoras no depende de ningún sitio central.
Tiene un funcionamiento independiente de su localización.
Se realizan continuas transacciones de información entre nodos.
La base de datos funciona independientemente del equipo, sistema operativo o re

Se refiere a una base que está repartida en pequeñas partes en diferentes servidores cuya ubicación geográfica no es la misma pero que están unidos mediante una red informática (internet). De entre las ventajas que tiene están: * Desarrollo modular: Se puede destinar diferentes partes para diferentes usos, tener repartido los datos de Colombia solo en Colombia, los datos de México solo en México, esto ayuda a que las consultas sean más rápidas, si se hace consultas en México solo se trabaja con sus datos y no con todos donde tardaría más. * Mejora tanto la confiabilidad y el rendimiento: Al tener un proxi o un servidor más cerca de nosotros mejora el rendimiento de la base de datos (en el tiempo de respuesta ante consultas). Desventajas: * La seguridad es más complicada, al tener repartida la base por distintas partes geográficas, es necesario proteger cada parte de forma puntual, no es igual a que si se tiene toda la base de datos junta y se la protege solo una vez. * Complejidad en las operaciones y procesamiento: Ocurre cuando se quiere traer datos de distintos puntos geográficos, la consulta se puede volver muy compleja (creo que es similar al dblink, para cada conjunto de datos toca especificar de donde se los va a extraer), así como su procesamiento. Existen bases de datos distribuidas homogéneas y heterogéneas, las primeras se caracterizan porque en todos los puntos geográficos se trabaja con los mismos motores y mismas versiones, por el contrario las heterogéneas, cada punto geográfico trabaja con motores diferentes, por ejemplo puede que en 2 puntos se utilice SQL, pero en uno utiliza MySQL, en otro SQL Serve, en otro Oracle, en otro PostgreSQL, y así, al ser distintos motores la nomenclatura en el lenguaje de programación varía, pero sigue existiendo la relación entre la base de datos. Se diferencias por estas 3 cosas donde en la homogénea son iguales, pero en la heterogénea son diferentes: OS, Sistema de Base de Datos, Modelos de Datos. Pueden tener diferente arquitectura o jerarquía: * Cliente - Servidor: Donde solo existe una parte de la base de datos principal, y el resto son esclavos los cuales extraen los datos de la base principal en la que normalmente solo se hacen escrituras. * Peer 2 peer: De persona a persona, aquí todas las partes actúan por igual, todos tienen el mismo nivel de autorización y control sobre la base de datos. * Multimanejador de base de datos: Esto es cuando la base de datos está conectada con distintos motores de gestión. Estrategia de diseño: * Top Down: Es cuando se está creando recién la distribución de la base de datos, y se empieza desde la parte de arriba como uno quiere que esta tome forma * Botton Up: Es lo contrario es usada cuando ya se tiene base de datos existentes y funcionando y toca construir de estas para arriba. Almacenamiento distribuido: Al estar la base de datos repartida, se debe considerar como se guardan los datos: * Fragmentada: Diferentes partes de la base de datos guardada en los diferentes puntos geográficos. * Horizontal: Cuando se reparte la tabla por filas, es decir por el ‘valor’ que tiene una columna, por ejemplo, una columna llamada País, todos los que son de Ecuador, van a Ecuador, todos los de México a México, y así. Conocida también como Sharding. * Vertical: Cuando se reparte la tabla por columnas, por ejemplo, los nombres e información personal hacia un lado y el resto de información a otro lado (ejemplo no tan bueno, de que sirve separar el nombre de clientes del resto de su información, pero esa es la idea). * Mixta: Cuando se reparte la información tanto vertical como horizontalmente. * Replicación: Que en todos los puntos geográficos se tenga toda la información de la base de datos. * Completa: Cuando toda la base de datos esta igualita en todos los puntos geográficos. * Parcial: Cuando solo una parte de la base de datos es compartida y es igual en los distintos puntos geográficos. * Sin Replicación: Nada es compartido, cada punto geográfico tiene sus propios datos y no comparte nada con el resto. * Distribución: Se tiene que tomar en cuenta cómo van a migrar los datos de un punto a otro, tiene que ver con el networking, tiempos, latencia, etc. * Centralizada: Cuando desde un punto se reparte la información (Cliente - servidor) * Particionada: Cuando la información ya se encuentra en diferentes partes y todos aporta y se comunican entre sí. * Replicada: Todas tiene la misma información y entre todas se hablan para siempre tener la misma versión.
**ACERCA DE LAS BASE DE DATOS HOMOGENEAS Y HETEROGENEAS o cualquier otro tipo de BD como MongoDB... L**as bases de datos homogéneas y heterogéneas se pueden empaquetar en Docker y trabajarlas como una sola. Para ello, se pueden utilizar dos enfoques: **Enfoque 1:** Empaquetar cada base de datos en un contenedor Docker independiente. * **Enfoque 2:** Empaquetar todas las bases de datos en un único contenedor Docker.

Genial…!

Muy bueno el cardio , pero desde aquí vuelve el X1.75 xddd

Base de datos distribuidas


Es una colección de base de datos, una misma de datos que esta partida en diversas tipos de datos que no se encuentran físicamente en el mismo sitio, pero se encuentra conectados por una red informatica(internet).

Ventajas

  • Desarrollo modular → Podemos dividir la información, para simplificar los tipos de respuestas
  • Incrementa la confiabilidad.
  • Mejora el rendimiento
  • Mayor disponibilidad
  • Rapidez de respuesta.

Desventajas

  • Manejo de seguirad → Tenemos que fortificar la seguridad por cada ubicación.
  • Complejidad del procesamiento → Si solo quiero consultar datos de una ubicación todo bien, pero si quiero traer datos de otra ubicación, se puede volver compleja la operación.
  • Incrementa el costo → Mantenimiento y tener sitios dedicados por todo el mundo

Tipos

Homogeneas Tienen el mismo sistema operativo, sistema de base de datos

Hererogeneas Diversos sistemas operativos o bases de datos

Arquitectura

Cliente - servidor Una base de datos principal y otra que trabajan como servidores

Par a par → Todas las bases de datos se habla por iguales

Multi manejador de base de datos → Varios manejadores de base de datos conectados

Estrategia de diseño

Top down → Plandeada desde arriba hacia abajo

Bottom up → Algo que ya existe así que tenemos que construir sobre ella las estrucutas

Almacenamiento distribuido

  • Fragmentación → que datos van en donde

    • Horizontal → Partir la tabla en diversos partes horizontales
    • Verticalmente → Partir por columnas
    • Mixtas → Clumnas y tuplas
  • Replicación → Como va pasar la dos entre cada parte

    • Completa → todo en cada ubicación
    • Sin replicación → Cada quien está separada
  • Distribución

    • Centralizada
    • Particionada
    • Replicada

Bases de datos distribuidas

Las bases de datos distribuidas son aquellas que están divididas en múltiples servidores y que se pueden utilizar de manera conjunta para almacenar y gestionar grandes cantidades de datos. Una base de datos distribuida se diseña para mejorar el rendimiento, la escalabilidad y la disponibilidad de la base de datos al distribuir la carga de trabajo entre varios servidores.

Una base de datos distribuida se puede configurar de varias maneras, pero una de las más comunes es la replicación de bases de datos. En esta configuración, se crea una copia de la base de datos en cada servidor y se sincronizan entre sí para mantener una copia idéntica de los datos en cada servidor. Esto permite que la base de datos siga funcionando incluso si un servidor falla, ya que hay otras copias de los datos disponibles.

Otra forma de configurar una base de datos distribuida es mediante el uso de un esquema de particionamiento de datos. En este esquema, se divide la base de datos en fragmentos o particiones y cada partición se almacena en un servidor diferente. Esto permite que la base de datos maneje grandes cantidades de datos de manera más eficiente, ya que cada servidor solo tiene que procesar una parte de los datos en lugar de toda la base de datos.

Ventajas
● Desarrollo modular.
● Incrementa la confiabilidad.
● Mejora el rendimiento.
● Mayor disponibilidad.
● Rapidez de respuesta.

Desventajas
● Manejo de seguridad.
● Complejidad de procesamiento.
● Integridad de datos más compleja.
● Costo.

Tenemos diferentes tipos Homogéneas que son la base de datos(BD) que tenemos con el mismo tipo de BD manejador y sistema operativo, por ejemplo si tengo la BD de México y otra en Colombia pero tienen la misma versión el sistema operativo, trabajan las dos en PostgreSQL y el modelado de datos es igual, se considera homogénea. Y heterogéneas son las que tienen diferentes sistema operativo, o diferente tipo de BD y aun así tiene cierta conexión.

● OS
● Sistema de base de datos
● Modelos de datos

Arquitecturas
● Cliente - servidor.

● Par a par (Peer 2 Peer). Donde todos los puntos en la red de BD distribuidas son iguales, y se hablan igual, se organizan entre ellas y se hablan de to a to, sin tener que responder a una sola entidad que sea coordinadora de las demás.

● Multi manejador de base de datos. Son el tipo de datos heterogéneas.

Estrategias de diseño
Cuando se está pensando en una BD distribuida se puede hacer:

● Top down. Quiere decir que cuando se planea muy bien y empiezo a solicitar hasta arriba un coordinador, que sea un servidor de “tal tipo”, y para abajo quiero tener tres instancias de PostgreSQL y quiero otra instancia de MongoBD y que se conecte a través de “tal cosa”. Entonces se va configurando de arriba hacia abajo, de acuerdo a las necesidades.

● Bottom up. A veces de debe de hacer un BD ya distribuida, y no es conveniente empezar de cero, y cambiar datos o hacer migraciones; si no más bien, unir esas dos BD y eso se le considera Bottom up.

Almacenamiento distribuido
Esto tiene que ver, que por estar guardando las BD de manera distribuida, físicamente tiene algunas implicaciones; algunas de ellas son:

● Fragmentación de datos, que datos van en qué lugar.
● Replicación, donde se tiene todos los datos en la misma BD para todos.
● Distribución, como va a pasar la data entre una BD y otra BD, tiempos latencias etc.

Fragmentación
Se puede considerar:

● Horizontal. Es lo que normalmente consideramos como “Sharding”, y tiene que ver con partir la tabla que se está utilizando en diferentes partes horizontales.

● Vertical. Es cuando manejas algo columnar. Quiere decir que quiero manejar algún row a un lado de la BD, pero todo lo demás me sirve tener en una parte distinta, cuando partes por columnas, a esto se le considera una fragmentación vertical.

● Mixta. Cuando se tiene algunas columnas y algunos datos en algún lugar, y algunas columnas o tuplas en otro lugar.

Replicación
● Completa. Es cuando toda la BD está en varias versiones a lo largo del globo, toda la información está igual.

● Parcial. Es cuando algunos datos están compartidos y replicados en varias zonas geográficas.

● Sin replicación. Simplemente no estoy replicando los datos.

Distribución de los datos

● Centralizada
● Particionada
● Replicada

Las bases de datos distribuidas o Distributed Database Management System (DDBMS) se caracterizan por almacenar la información en varias computadoras conectadas entre sí, a las cuáles el usuarios puede acceder desde cualquier sitio como si se tratara de una red local.