Las bases de datos activas (BDA) son extensiones de las bases de datos (BD), las cuales, además de tener un comportamiento pasivo (modificar ú obtener información solicitada por el usuario), reaccionan ante la presencia de uno o más eventos en la BD. El comportamiento activo de una BD puede modelarse con las reglas evento-condición-acción (reglas ECA). La mayoría de las BDA comerciales utilizan el esquema de reglas ECA y cada una de ellas proporciona al usuario una sintaxis de definición de reglas.
· El evento (o eventos) que dispara la regla. Estos eventos pueden ser operaciones de consulta o actualización que se aplican explícitamente sobre la base de datos. También pueden ser eventos temporales (por ejemplo, que sea una determinada hora del día) u otro tipo de eventos externos (definidos por el usuario).
· La condición que determina si la acción de la regla se debe ejecutar. Una vez que ocurre el evento disparador, se puede evaluar una condición (es opcional). Si no se especifica condición, la acción se ejecutará cuando suceda el evento. Si se especifica condición, la acción se ejecutará sólo si la condición se eval´ua a verdadero.
· La acción a realizar puede ser una transacción sobre la base de datos o un programa externo que se ejecutará automáticamente.
· Los eventos son sentencias SQL de manejo de datos (INSERT, DELETE, UPDATE).
· La condición (que es opcional) es un predicado booleano expresado en SQL.
· La acción es un secuencia de sentencias SQL, que pueden estar inmersas en un lenguaje de programación integrado en el producto que se esté utilizando (por ejemplo, PL/SQL en Oracle).
Sin embargo, el administrador de la BDA no puede llevar a cabo una simulación del comportamiento de la base de reglas ECA antes de su implementación en la BDA.Existen herramientas, tales como las redes de Petri, con las cuales puede llevarse acabo la representación de reglas ECA. Una base de reglas ECA es considerada como un sistema basado en eventos y es posible representarla con una red de Petri extendida, así como los eventos que las disparan.
En el modelo ECA una regla tiene tres componentes: (Gomez Lopez, M. C.,2021)
Casi todos los sistemas relacionales incorporan reglas activas simples denominadas disparadores (triggers), que están basados en el modelo ECA:
1.4.1 Base de datos orientada a objetos
Una Base de Datos Orientada a Objetos es una base de datos donde las entidades son las clases, los elementos de datos son objetos y las relaciones se mantienen por medio inclusión lógica.
Teniendo en cuenta este concepto, las base de datos orientada a objetos están diseñadas para el manejo de datos de un sistema que ha sido modelada, diseñada e implementada como un conjunto de objetos relacionados entre sí. (Gomez Lopez, M. C.,2021)
Una Base de Datos Espacial
permite describir los objetos espaciales que la forman a través de tres
características básicas: atributos, localización/ y topología.
Los atributos representan características de los objetos que nos permiten saber
qué es lo que son. La localización, representada por la geometría del objeto y
su ubicación espacial de acuerdo a un sistema de referencia, permite saber
dónde está el objeto y qué espacio ocupa. Por último, la topología definida por
medio de las relaciones conceptuales y espaciales entre los objetos, permite
mejorar la interpretación semántica del contexto y establecer ciertas
jerarquías de elementos a través de sus relaciones.
Por otro lado, desde el punto
de vista tecnológico, una Infraestructura de Datos Espaciales debe incluir
datos y atributos geográficos, metadatos, métodos de búsqueda, de visualización
y mecanismos para proporcionar acceso a los datos espaciales. (Gomez Lopez, M.
C.,2021)
Computación GPU
Hace mucho tiempo, las
tarjetas de video se construían para dibujar escenas elaboradas para los juegos
de niños, pero ahora las llamadas unidades de procesamiento de gráficos están
haciendo mucho procesamiento no gráfico. La búsqueda a través de datos es solo
una de las mejores operaciones no gráficas que deben abordar. Y ¿por qué no?
Abrirse paso entre las interminables pilas de datos buscando una pareja, es una
operación inherentemente paralela hecha de muchos trabajos rudimentarios
(probando la igualdad) repetidos millones de veces. Por lo tanto, es bastante
sencillo pasar el trabajo a los miles de procesadores en el GPU.
Las mayores victorias no están
en responder cada consulta (que obviamente son mucho más rápidas), sino en el
trabajo de preparación, porque hay poca necesidad de pre procesamiento. Muchas
bases de datos ahorran tiempo manteniendo un índice, que es efectivamente un
resultado precalculado de cada búsqueda posible. Si este índice es destruido o
dañado, reconstruirlo puede tardar horas, días o incluso meses. Sin embargo, si
los datos pueden caber dentro de la memoria del GPU, por lo general podrá
seguir sin el índice. Si los datos están cambiando rápidamente y la mayor parte
del índice no se utiliza nunca, saltarse el pre procesamiento puede ser muy
eficaz.
Revise MapD,Kineta, Brytlyt y
otros para ver si es que sus datos y búsquedas pueden ser acelerados.
Memoria no volátil (NVRAM)
Los programadores novatos hace
cincuenta años la tenían fácil. No tenían que hacer malabares con los datos
entre la RAM y el disco con protocolos elaborados para asegurar la
consistencia. Eso se debe a que la memoria en ese entonces tenía núcleo de
hierro, y no se borraba cuando se apagaba la energía. Esos buenos tiempos
podrían regresar pronto, porque los fabricantes de chips están discutiendo para
reemplazar la RAM con NVRAM o memoria no volátil.
Este es un gran cambio de
juego para los programadores de bases de datos, porque uno de sus mayores
desafíos (e incluso su mayor razón para vivir) está desapareciendo. Algunos
sugieren que las bases de datos pueden ser mucho más rápidas, porque la semántica
de las transacciones puede ser más sencilla. Otros tienen la idea de construir
el registro de recuperación después de que los datos sean escritos en los
medios, no antes.
Nadie sabe qué pasará. ¿La
gente seguirá una base de datos, aunque no necesiten un registro permanente o
la búsqueda y la indexación los hará volver? Todos los algoritmos y
arquitecturas tienen que ser repensadas. Sabremos la mejor manera de usar NVRAM
en una década aproximadamente.
Amplíe SQL
Cuando el movimiento de NoSQL
comenzó, una de las principales características era la capacidad de dispersar
el almacenamiento de sus datos a través de múltiples nodos. Las bases de datos
NoSQL como Cassandra y MongoDB hicieron parecer que conseguir todas las lindas
características del almacenamiento de gran escala significaba abandonar el
cómodo mundo de SQL.
En la realidad no necesita
haber una compensación. Aunque los primeros experimentos de bases de datos de
gran escala eran fáciles de crear porque dejaban atrás todo el bagaje de SQL,
no hay razón por la cual éste no pueda funcionar bien en múltiples máquinas
operando a gran escala. De hecho, empresas como Oracle han venido haciéndolo
por años.
Las nuevas bases de datos a
gran escala le permiten usar todo su conocimiento y conveniencia de SQL con un
conjunto de datos distribuidos en un gran clúster. CockroachDB, por ejemplo,
ofrece un motor de consulta SQL estándar que tiene acceso a los datos
replicados en múltiples nodos, todos con garantías de ACID. Sí, pagará por
algunos de estos apoyos para la coherencia de los datos, pero tal vez menos de
lo que esperaba.
Si la coherencia garantizada
es importante para su trabajo, empiece revisando CockroachDB, Google Cloud
Spanner, Clustrix, Azure SQL, y NuoDB.
Bases de datos geoespaciales
Las bases de datos tradicionales
están hechas para conjuntos de datos unidimensionales, no las dos coordenadas
dimensionales de la geografía. Puede falsificarlo y usar una base de datos
estándar para realizar tareas básicas con coordenadas geográficas. Si pega la
latitud y longitud en columnas separadas, no es difícil buscar las filas que
caen dentro de un cuadro definido por un rango de latitudes y longitudes. Sin
embargo, una vez que quiera ir más allá, las consultas SQL estándar no serán
efectivas.
Las bases de datos
geoespaciales añaden algunas funciones adicionales que hacen que la búsqueda,
clasificación e intersección sean mucho más fáciles en el espacio
bidimensional. Los índices espaciales, por ejemplo, usualmente funcionan
añadiendo una cuadrícula encima del espacio de coordenadas para hacer que sea
mucho más rápido buscar las filas adyacentes en mundos bidimensionales y
tridimensionales.
Estos índices hacen posible
escribir consultas con operaciones como “contener”, “superponer”, e incluso
“tocar” con conjuntos definidos por polígonos. Todo esto hace que el
razonamiento sobre el mundo real sea mucho más eficiente.
Revise Neo4j Spatial, GeoMesa,
MapD, y PostGIS en busca de algunos buenos lugares para comenzar.
Bases de datos gráficas
Las tablas son un buen
repositorio para muchas estructuras de datos, pero no hacen un muy buen trabajo
al momento de modelar una gran estructura de datos emergentes que ha impulsado
los últimos diez años de evolución de la Internet: la red. A medida que el
llamado “gráfico social” explota, estamos llenando nuestra computadora con más
y más nodos con enlaces entre ellos, y las conexiones entre estos son a menudo
más importantes que los datos en ellos. De hecho, almacenar y recuperar un
enlace entre un par de nodos es fácil de hacer en una base de datos relacional
clásica, pero las consultas más complicadas se hacen imposibles. ¿Bob está a
dos o tres pasos de Chris en la red de amistad? ¿Mary está saliendo con el ex
de una de sus amigas?
Las bases de datos gráficas
hacen que consultas como estas sean más fáciles de ejecutar. No hay una
búsqueda sin fin de tablas porque la consulta sabe cómo buscar en el barrio
especificado por los enlaces. Herramientas como Neo4J, OrientDB, y
DataStax son solo algunas de las pocas opciones que pueden ser contadas
con los dedos de las manos y de los pies. Estas tienen sus propios lenguajes de
consulta también.
Bases de datos en la nube
Uno de los principales cambios
radica en la forma en la que compramos el software de base de datos. En el
pasado, comprábamos nuestras propias máquinas y firmábamos acuerdos de licencia
para ejecutar el software en ellas. Ahora las empresas de nube están ofreciendo
servicios que almacenan blobs de datos en algún lugar que no podemos
ni ver ni tocar. Lo único que nos dicen es que los datos van a estar ahí para
cuando los queramos.
Las ventajas son evidentes. No
hay necesidad de mantener el servidor que la sostiene ni de preocuparse por la
concesión de licencias, la configuración o instalación de parches. Otro se
ocupa de todo ese quebradero de cabeza. La solución es más barata también
-especialmente si no tiene una tonelada de datos que almacenar. Los servicios
generalmente cobran por byte.
Sin embargo, los peligros, si
es que hay alguno, están en las sombras. ¿Alguien más tiene acceso a los datos?
¿El servidor está protegido de las sobretensiones eléctricas, las tormentas o
las inundaciones? ¿Los datos tienen una copia de seguridad en una ubicación
externa confiable? Necesita confiar totalmente en el proveedor de nube.
Los principales proveedores de
servicios en la nube, tales como Google, Microsoft, y Amazon ofrecen una larga
lista de servicios de bases de datos. Actualmente, Oracle, MongoDB, y DataStax
también hacen que sus bases de datos estén disponibles en la nube.
Inteligencia Artificial (AI)
Algunos dicen que la
inteligencia artificial es solo un término para la última generación de
investigación que está saliendo de los laboratorios y yendo a producción. Si es
así, hay una serie de nuevos productos y soluciones adornados con palabras de
moda, tales como “aprendizaje automático”, “redes neuronales” o “aprendizaje
profundo”. Pueden no parecer una base de datos, pero las llena de datos y les
hace preguntas. ¿Por qué no? La buena noticia de las soluciones de inteligencia
artificial es que no tiene que saber lo que está buscando. Puede simplemente
agitar su mano y pedir algo nebuloso como la “más interesante” o “más cercana”.
No hay necesidad de la clave correcta, el número de referencia infernal que los
del servicio al cliente siempre le piden que escriba.
La mala noticia es que no
sabrá si obtuvo la respuesta correcta, debido a que no especificó con precisión
la pregunta. ¿Esa publicación en el blog es realmente la más interesante? El
más grande secreto del éxito de Google es que no hay una respuesta correcta
absoluta. Si está en el estadio, nadie se puede quejar.
La lista de las herramientas
de aprendizaje automático es demasiado larga. Siempre puede preguntarle a su
motor de búsqueda favorito por la AI “más interesante”, o consultar nuestros
artículos sobre el tema.
Blockchain
La palabra blockchain puede
estar enredada con unas complicadas economía y política de Bitcoin, pero debajo
de toda esa charla sobre el dinero, hay un almacén de datos distribuidos
sumamente estable y práctico. Todos tienen la oportunidad de actualizar los
datos y todos llegan a compartir la respuesta. La gran emoción es el hecho de
que todos compartan las mismas respuestas. Es perfecto para los negocios que
son frenemies.
Algunos desarrolladores llevan
esto aún más lejos y hablan sobre los “contratos inteligentes”, que es otra
manera de decir que los bits en la base de datos son lo suficientemente
confiables como para que la gente base las cuestiones legales, tales como la
propiedad, sobre ellos. Eso no lo puede hacer con una base de datos regular,
que puede ser modificada por cualquiera con privilegios administrativos.
Sin embargo, hay puntos débiles. Cada usuario debe mantener una clave de cifrado, porque todas las transacciones deben ser firmadas de manera digital. Si la pierde o se la olvida, los datos en esas filas serán congelados para siempre; y si le roban la clave, no se sabe. El blockchain no es perfecto, pero es mucho más confiable que el modelo estándar.
No hay comentarios.:
Publicar un comentario