Soporte BDTR (Base Datos Tiempo Real) Relacional

En la última release de Sofia2 se ha completado el soporte para despliegue de la Base de datos de Tiempo Real sobre una Base de datos relacional.

Sofia2 se ha certificado sobre Oracle Database, aunque el acceso se realiza a través de driver JDBC, pudiendo utilizarse de este modo cualquier base de datos relacional que disponga de este driver (Oracle, MySQL, PostgreSQL, SQLServer…).

Utilizando una base de datos relacional como BDTR de Sofia2, la información de las ontologías serán mapeadas a tablas relacionales. No obstante, se mantiene el formato JSON como esquema de las ontologías.

La elección del tipo de base de datos (relaciónal o documental) de una instalación Sofia2 se realiza mediante configuración, necesitando informarse únicamente el DAO que implementala lógica de acceso al gestor de datos, y los parámetros de conexión de conexión:

En una instalación de Sofia2 con BDTR de tipo relacional, la creación de ontologías se realiza desde un wizard en el que se introducen los campos (columnas), tipo y dependencias entre ontologías y desde el que se generará el esquema JSON de la ontología.

 

Si la bbdd soporta el tipo JSON como es el caso de Oracle se podrá seleccionar este tipo de dato.

El modulo gestor de BDTR de Sofia2 es quien se encarga de realizar las transformaciones entre el modelo JSON utilizado por las Apps Sofia2 (KPs) y el modelo relacional de la Base de datos. De modo que el envío y recepción de la información es transparente para las Apps. Podemos ver esto desde el Crud de ontologías de la consola de administración, generando e insertando una instancia JSON sobre la ontología creada anteriormente:

Con un cliente SQL podemos comprobar que se ha insertado dicha instancia correctamente en la tabla de la ontologia:

Para la inserción y consulta de datos, será el módulo gestor de BDTR de Sofia2 quien haga la traducción de las instancias entre el modelo de datos relacional (registros con campos) y los documentos JSON empleados en Sofia2, de forma transparente a las Apps Sofia2 (KP), que continúan intercambiando información con la plataforma en forma de instancias de ontología en formato JSON embebidas en el protocolo SSAP.

Asimismo, utilizando una BDTR relacional, el lenguaje NATIVO de acceso a los datos de la plataforma, que pueden utilizar las Apps Sofia2, es el lenguaje SQL soportado por el SGBD subyacente, soportándose sentencias de tipo INSERT, UPDATE, DELETE y QUERY.

Por ejemplo, la siguiente sentencia INSERT de tipo Nativa, sería válida y surtiría el mismo efecto que enviar una instancia de ontología en formato JSON:

Otra de las ventajas del lenguaje nativo del SGBD relacional es la posibilidad de realizar JOIN entre ontologías:

 

A su vez, utilizando una BDTR relacional, es posible establecer campos de referencia desde una ontología hacia otras, de manera que puedan quedar relacionadas aquellas instancias de ontología donde el campo referenciador y el referenciado tienen el mismo valor.

Este es útil ya que se ha añadido al lenguaje SQL-Like, la cláusula “EXPAND”, mediante la que es posible construir consultas SELECT donde un campo referenciador se puede expandir en uno o varios campos de la ontología referenciada, donde ambos campos (referenciador y referenciado) tengan el mismo valor.

La relación de dependencia se realiza durante la creación de una ontología, estableciendo relaciones de referencia entre campos:

 

Por ejemplo, mediante la siguiente sentencia expandimos en las instancias JSON que representan a un empleado, algunos datos de su departamento, que están en la ontología Departamento:

 

Soporte BDTR (Base Datos Tiempo Real) Relacional

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s