B2-T3 SGBD relacionales orientadas a objetos y NoSQL: características y componentes. Flashcards

1
Q

¿Qué es el sharding?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

¿Cuales son los principios de BASE?

A

-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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

¿Que dice el Teorema CAP o conjetura de Weber?

A

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).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Consistencia

A

Todos los nodos ven la misma información

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Disponibilidad

A

Toda petición tiene que recibir una respuesta

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Tolerancia al particionado

A

El sistema debe seguir funcionando aunque haya fallos de comunicaciones.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

¿Qué gestores cumplen a la vez las condiciones de Consistencia y Disponibilidad?

A

Sistemas de BBDD relacionales (RDBMS)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

¿Qué gestores cumplen a la vez las condiciones de Disponibilidad y Tolerancia al particionado?

A

-Riak
-Cassandra
-couchDB
-SimpleDB
-Dynamo
-Voldemort

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

¿Qué gestores cumplen a la vez las condiciones de Consistencia y Tolerancia al particionado ?

A

-HBase -MongoDB (topología Maestro/esclavo)
-Redis
-BigTable

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

BBDD de tipo Clave-Valor

A

Almacenan datos como pares de clave-valor. Son útiles para aplicaciones que necesitan rápidas búsquedas de claves.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Amazon SimpleDB

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Listado BBDD de tipo Clave-Valor

A

-Redis
-Riak
-Voldemort
-ArangoDB()
-Memcached
-DynamoDB
-SimpleDB

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Amazon DynamoDB

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Memcached

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

ArangoDB

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Redis (Remote Dictionary Server)

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Riak

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

BBDD de tipo Columnares

A

Almacenan datos en columnas en lugar de filas

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Listado de BBDD de tipo Columnares

A

-Cassandra
-HBase
-ScyllaDB
-HyperTable
-BigTable

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Hypertable

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

BigTable

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

Apache HBase

A

Es un sistema gestor de base de datos distribuida no relacional de código abierto modelada a partir de Google BigTable y escrita en Java. Su desarrollo forma parte del proyecto Hadoop de la Fundación de Software Apache y se ejecuta sobre HDFS (el sistema de archivos distribuidos de Hadoop).

23
Q

Apache Cassandra (Creada por Facebook y usado por Twiter)

A

Se trata de un software NoSQL distribuido y basado en un modelo de almacenamiento híbrido entre key-value y «tabular», de código abierto que está escrito en Java. Permite grandes volúmenes de datos en forma distribuida.
Su objetivo principal es la escalabilidad lineal y la disponibilidad. Cuenta con un diseño híbrido que combina un almacén tabular y un almacén de claves y valores. Está diseñado para almacenar datos para aplicaciones que requieren un rendimiento rápido de lectura y escritura.

24
Q

Cassandra Query Language (CQL).

A

CQL es una API flexible similar a SQL que permite a los desarrolladores ejecutar declaraciones de lenguaje de definición de datos (DDL) y lenguaje de manipulación de datos (DML).

25
Q

BBDD de tipo Documentos

A

Almacenan datos en forma de documentos (generalmente JSON o BSON). Son flexibles y permiten modelos de datos complejos

26
Q

MongoDB

A

Base de datos orientado a documentos, multiplataforma y disponible en código fuente. Clasificado como un producto de base de datos NoSQL, MongoDB utiliza documentos similares a JSON con esquemas opcionales (BSON).
Licenciado bajo la Server Side Public License (SSPL), source-available.
Tiene la capacidad de realizar consultas utilizando JavaScript, haciendo que estas sean enviadas directamente a la base de datos para ser ejecutadas.
Implementa el sharding eficientemente.

27
Q

Comandos de MongoDB

A

mongo - Shell interactivo para leer, insertar, actualizar o visulaizar datos
mongostat - resumen una lista de estadísticas de una instancia
mongotop - da seguimiento a la cantidad de tiempo que dura una lectura o escritura de datos en una instancia
mongosniff - provee un sniffing en la base de datos haciendo un sniffing en el tráfico de la red que va desde y hacia MongoDB.
mongoimport​/mongoexport - facilita la importación exportación de contenido desde JSON, CSV o TSV y otros formatos.
mongodump​/mongorestore - creación de una imagen binaria del contenido de la base de datos (copias de seguridad)

28
Q

Listado de BBDD de tipo Documentos

A

-MongoDB
-CouchDB
-OrientDB
-TerraStore
-ArangoDB
-DynamoDB

29
Q

Apache CouchDB

A

Gestor de bases de datos de código abierto, cuyo foco está puesto en la facilidad de su uso y en ser “una base de datos que asume la web de manera completa”.
Emplea JSON para almacenar los datos, JavaScript como lenguaje de consulta por medio de MapReduce y HTTP como API.
Facilidad con la que permite hacer replicaciones.
Implementa una forma de control de concurrencia multiversión (Multiversion Concurrency Control) a fin de evitar la necesidad de bloquear el archivo de base de datos durante las escrituras.

30
Q

TerraStore

A

Base de datos documental. Los datos son accecibles mediante HTTP

31
Q

OrientDB

A

Sistema de gestión de bases de datos NoSQL de código abierto escrito en Java. BD multimodelo, que admite modelos de grafos, documentos y objetos, las relaciones se gestionan como en las bases de datos de grafos con conexiones directas entre registros.

32
Q

BBDD de tipo Grafos

A

Almacenan datos como nodos y relaciones. Son útiles para representar redes y conexiones entre datos.

33
Q

Listado de BBDD de tipo Grafos

A

-Neo4j
-OrientDB
-ArangoDB
-Amazon Neptune
-FlockDB
-InfiniteGraph
-HyperGraphDB
-AllegroGraph

34
Q

Neo4j

A

Motor de persistencia embebido, basado en disco, implementado en Java, completamente transaccional, que almacena datos estructurados en grafos en lugar de en tablas.
Licencia dual: AGPLv3 / comercial.
Es accesible desde software escrito en otros lenguajes utilizando el lenguaje de consulta Cypher a través de un endpoint HTTP transaccional o mediante el protocolo binario “Bolt”.

35
Q

Protocolo Bolt (Bolt)

A

Protocolo de red orientado a la conexión que se utiliza para la comunicación cliente-servidor en aplicaciones de bases de datos. Opera a través de una conexión TCP o WebSocket.

36
Q

Amazon Neptune

A

BD de grafos. Se utiliza como un servicio web y forma parte de Amazon Web Services (AWS). Admite RDF de W3C, y sus respectivos lenguajes de consulta Apache TinkerPop’s Gremlin, openCypher y SPARQL.

37
Q

ODMG (Object Data Management Group)

A

Se usa tanto para definir el grupo de personas y empresas encargadas de desarrollar el modelo de objetos para persistencia, así como para la definición de dicho estándar.

Este modelo especifica los elementos que se definirán, y en qué manera se hará, para la consecución de persistencia en las bases de datos orientadas a objetos que soporten el estándar.

Consta de un lenguaje de definición de objetos, ODL, que especifica los elementos de este modelo

38
Q

Conceptos clave del modelo de objetos soportados por las BDOO

A

Encapsulación: Oculta información al resto de objetos para impedir conflictos o un acceso incorrecto.

Herencia: Jerarquía de clases a partir de la que los objetos heredan comportamientos.

Polimorfismo: Propiedad de una operación que permite aplicarse a objetos de distinta tipología.

39
Q

Características mandatorias de la BDOO

A

Debe soportar objetos complejos.
Identidad del objeto.
Encapsulamiento.
Tipos o clases.
Concurrencia.
Recuperación en caso de fallos.
Completación computacional.
Persistencia de datos y manejador de almacenamiento secundario
Facilidad de query
Tipos de datos extensible

40
Q

Características opcionales BDOO

A

Herencia múltiple: Tipos o clases deben ser capaces de heredar de sus supertipos o superclases los atributos y los métodos.
Diseño de transacciones o versiones.
Chequeo de tipos e inferencia de distribución.

41
Q

Características abiertas

A

Son los puntos donde existen distintas opciones
El paradigma de la programación.
La representación del sistema y su uniformidad.

42
Q

Otros BBDD de tipo Orientas a Objetos

A

Realm.io
InterSystems Caché.
Intersystems IRIS.
Giga spaces.
ObjectBox.

43
Q

GemStone/S

A

BD orientada Objetos. Es un software propietario, sus características permiten una alta disponibilidad en línea en cualquier momento. Utiliza como lenguaje central de consulta a Smalltalk.

44
Q

Wakanda

A

BD orientada a objetos. Es una de las más recientes. Esta construida bajo licencia opensource. Es especial para desarrollo web y móvil con aplicaciones en JavaScript.

Esta soportada en Linux, Microsoft Windows y MacOs. Permite la vinculación de diversos módulos o aplicaciones de trabajo que le permiten al desarrollador tener el control necesario sobre su código.

45
Q

Objectivity/DB

A

Base de datos de objetos, producida por Objectivity, Inc.
Permite a las aplicaciones almacenar los objetos estándar de C, C, Java o Python persistentemente, sin mapearlos.
Soporta lenguajes populares orientados a objetos, así como SQL /ODBC y XML. Es compatible con las plataformas Linux, Macintosh, UNIX y Windows, facilitando la interoperabilidad a través de diferentes idiomas y entornos de hardware.

46
Q

Versant

A

Es un sistema gestor de base de datos orientada a objetos (SGBDOO) desarrollado por Versant Corporation.

47
Q

ObjectStore

A

Orientada a objetos, está diseñada para manejar datos creados por aplicaciones que utilizan técnicas de programación orientada a objetos, evitando la sobrecarga de mapeo objeto-relacional requerida cuando se utilizan datos orientados a objetos con una base de datos relacional. Fue innovadora en el uso del lenguaje C++ para hacer transparente el acceso a la base de datos(sobrecarga del operador new()).

48
Q

Zope Object Database (ZODB)

A

Es una base de datos orientada a objetos para almacenar de forma transparente y persistente objetos en el lenguaje de programación Python. Se incluye como parte de Zope, un Servidor de aplicaciones Web, pero también puede ser utilizado independientemente de Zope.

49
Q

ObjectDB

A

Base de datos orientada a objetos para Java. Se puede utilizar en modo cliente-servidor y en modo incrustado (en proceso).
No proporciona su propia API propietaria. Por lo tanto, el trabajo con ObjectDB requiere JPA o JDO incluidas en Java, no de ORM. Soporta los lenguajes de consulta. JDO Query Language (JDOQL), que se basa en la sintaxis de Java, y JPA Query Language (JPQL), que se basa en la sintaxis de SQL.

50
Q

ZooDB

A

Es un ODBMS de código abierto de Java puro que admite la API JDO 3.0.

51
Q

DB4O (DataBase 4 (for) Objects)

A

Novedoso motor de base de datos orientada a objetos desarrollado por la compañia db4objects, Inc.
Las claves innovadoras de este producto es su alto rendimiento (sobre todo en modo embebido) y el modelo de desarrollo que proporciona a las aplicaciones para su capa de acceso a datos, el cual propugna un abandono completo del paradigma relacional de las bases de datos tradicionales.

52
Q

BBDD de tipo XML

A

Constituye un sistema software que da persistencia a datos almacenados en formato XML. Estos datos pueden ser interrogados, exportados y serializados. Las bases de datos XML están generalmente asociadas con las bases de datos documentales.

53
Q

Listado de BBDD de tipo XML

A

-BaseX
-eXist
-Sedna
-Quizx
-Berkeley DBXML
-Apache X Indice

54
Q
A