B2-T3 SGBD relacionales orientadas a objetos y NoSQL: características y componentes. Flashcards
¿Qué es el sharding?
Es el proceso por el cual se fragmenta una base de datos, en una o varias una partición horizontal de datos en una base de datos o motor de búsqueda. Cada fragmento se mantiene en una instancia de servidor de base de datos separada para distribuir la carga.
Algunos datos dentro de una base de datos permanecen presentes en todos los fragmentos, pero otros aparecen solo en un único fragmento.
¿Cuales son los principios de BASE?
-Basically Available: El sistema debe garantizar cierto nivel de disponibilidad
-Soft state: se prioriza la propagación de datos. Delegando el control de inconsistencias a elementos externos.
-Eventually consistent: Este principio establece que con el tiempo el sistema convergerá a un estado coherente.
¿Que dice el Teorema CAP o conjetura de Weber?
Principio fundamental en el diseño de sistemas distribuidos.
Es imposible para un sistema de cómputo distribuido garantizar simultáneamente: la consistencia (Consistency), disponibilidad (Availability) y la tolerancia al particionado (Partition Tolerance).
Consistencia
Todos los nodos ven la misma información
Disponibilidad
Toda petición tiene que recibir una respuesta
Tolerancia al particionado
El sistema debe seguir funcionando aunque haya fallos de comunicaciones.
¿Qué gestores cumplen a la vez las condiciones de Consistencia y Disponibilidad?
Sistemas de BBDD relacionales (RDBMS)
¿Qué gestores cumplen a la vez las condiciones de Disponibilidad y Tolerancia al particionado?
-Riak
-Cassandra
-couchDB
-SimpleDB
-Dynamo
-Voldemort
¿Qué gestores cumplen a la vez las condiciones de Consistencia y Tolerancia al particionado ?
-HBase -MongoDB (topología Maestro/esclavo)
-Redis
-BigTable
BBDD de tipo Clave-Valor
Almacenan datos como pares de clave-valor. Son útiles para aplicaciones que necesitan rápidas búsquedas de claves.
Amazon SimpleDB
Base de Datos distribuida escrita en Erlang. por Amazon.com. Se utiliza como servicio web junto con Amazon Elastic Compute Cloud (EC2) y Amazon S3 y forma parte de Amazon Web Services.
BD de clave-valor.
Listado BBDD de tipo Clave-Valor
-Redis
-Riak
-Voldemort
-ArangoDB()
-Memcached
-DynamoDB
-SimpleDB
Amazon DynamoDB
Servicio de base de datos noSQL ofrecido por Amazon como parte de Amazon Web Services.
Ofrece un almacén de datos clave-valor rápido y persistente con soporte integrado para replicación, escalado automático, cifrado en reposo y copia de seguridad bajo demanda, entre otras características.
BD de clave valor y orientada a documentos.
Memcached
BD de clave-valor. Sistema distribuido de propósito general para caché basado en memoria. Muy usado en la actualidad por múltiples sitios web.
Es empleado para el almacenamiento en caché de datos u objetos en la memoria RAM, reduciendo así las necesidades de acceso a un origen de datos externo.
Su funcionamiento se basa en una tabla hash distribuida a lo largo de varios equipos.
ArangoDB
ArangoDB es un sistema de base de datos multimodelo desarrollado por ArangoDB Inc. Admite tres modelos de datos (gráficos, documentos JSON, clave/valor)
Usa AQL (ArangoDB Query Language) similar a SQL, y proporciona GraphQL.
Permite transacciones ACID, pero solo si los datos no están fragmentados.
Foxx framework para implementar Microservicios.
Utiliza RocksDB como motor de almacenamiento.
Redis (Remote Dictionary Server)
Redis es un motor de base de datos en memoria, basado en el almacenamiento en tablas de hashes (clave/valor) pero que opcionalmente puede ser usada como una base de datos durable o persistente.
Modelo de licencias dual: RSALv2 y SSPLv1
Usuarios notables: Twitter, Airbnb, Tinder, Yahoo, Adobe, Hulu Amazon y OpenAI.
Riak
Es un almacén de datos de valores clave NoSQL distribuido que ofrece alta disponibilidad, tolerancia a fallos, simplicidad operativa y escalabilidad.
Opera bajo la Apache License 2.0
Soporta oficialmente Ruby, Java, Erlang and Python.
Usuarios notables: AT&T y GitHub
BBDD de tipo Columnares
Almacenan datos en columnas en lugar de filas
Listado de BBDD de tipo Columnares
-Cassandra
-HBase
-ScyllaDB
-HyperTable
-BigTable
Hypertable
Fue un proyecto de software de código abierto para implementar un sistema de gestión de bases de datos inspirado en publicaciones sobre el diseño de Google ‘s Bigtable.
BigTable
Es un servicio de base de datos NoSQL de valores clave y columnas anchas totalmente administrado para grandes cargas de trabajo analíticas y operativas como parte del portafolio de Google Cloud.
Es distribuido, de alta eficiencia y propietario. Está construido sobre GFS (Google File System), Chubby Lock Service, y algunos otros servicios y programas de Google.