Producción de Objetos Símbolicos
En esta sección se muestran ejemplos de cómo producir objetos
simbólicos de la forma:
Ejemplo 1:
Construcción de un
concepto
Utilizando la tabla medical (se puede descargar desde la pestaña download en este sitio) de servicios médicos por pacientes, se va construir un concepto con las categorías de sexo y edad del paciente.
Código 1. Creación de un concepto
select
Stable('medical','sexo,edad');
select * from
stable;
Para el código anterior se utiliza la función transformadora
“stable”, dicha función recibe como primer parámetro el nombre
de la tabla de origen de datos (relacional) y como segundo
parámetro los conceptos separados por comas “,”.
La función stable crea una tabla con el mismo nombre, la cual se
puede apreciar en la tabla 1, construcción de un concepto.
Tabla 1 – Construcción de un concepto
Ejemplo 2: Construcción de una variable simbólica de tipo
intervalo
Supongamos que un investigador está interesado en ver mediante
un intervalo los pesos de sus pacientes, agrupados por sexo y
edad. Se define de esta forma el objeto simbólico:
Código 2. Creación de un intervalo simbólico
SELECT create_symbolic_object('medical',
'gender,age','SINT(PESO),SINT(PULSO)');
--
SELECT * FROM
stable;
La ejecución del código anterior genera una nueva relación,
donde la segunda columna es de tipo objeto intervalo simbólico
para el peso de esa categoría, mientras la tercera columna representa un objeto
simbólico intervalo para el pulso de dicha categoría.
Tabla 2. Construcción de intervalos
Ejemplo 3:
Construcción de una aserción
Para este ejemplo, se va aplicar una aserción en todos aquellos
registros tales que su edad sea mayor a 93 años.
Se obtiene de esta forma el siguiente objeto simbólico:
La implementación de esta aserción, se logra mediante la
siguiente consulta SQL:
Código 3. Creación de una aserción
select create_symbolic_object('medical', 'gender,age',
'sint(age)', 'age >= 93');
--
select * from stable;
Como resultado de la ejecución del código anterior, Postgres
genera la siguiente tabla de nuevos datos.
Tabla 3 – Creación de una aserción
Ejemplo 4: Uso de operadores aritméticos para intervalos
Algunas veces es necesario poder realizar operaciones
aritméticas sobre los intervalos como si fueran números reales.
Para este ejemplo se va crear un nuevo objeto simbólico intervalo,
creado a partir de la suma de dos intervalos[1],
formalmente:
Código 4. Operaciones aritméticas sobre intervalos
SELECT
CONCEPT, SINT(PESO)+SINT(PULSO) FROM STABLE;
El resultado de ejecutar el código 4, genera una nueva relación
en donde la segunda columna es el resultado de suma el intervalo
de peso más el intervalo de pulso.
La lista completa de funciones aritméticas que soporta le
extensión simbólica para los intervalos se detalla en la tabla
8.
Tabla 4. Suma de intervalos
Ejemplo 5: Uso de operadores relacionales para intervalos
De la misma forma que es útil poder sumar intervalos, es
igualmente útil poder comparar intervalos en términos de su
relación de orden[2].
Por ejemplo, un investigador necesita determinar si los
intervalos de la presión sistólica son mayor o igual que los
intervalos de la presión diastólica.
Esa pregunta la puede responder utilizando el código 5.
Código 5. Operaciones relacionales sobre intervalos
select
concept, sint(psistolica), sint(pdiastolica),
sint(psistolica)>sint(pdiastolica)
from stable;
Dicha consulta genera la siguiente tabla:
Tabla 5. Operaciones
relacionales
En donde la cuarta columna de la tabla representa una
t (true, verdadero) como resultado de la operación de
comparar en primer intervalo contra el segundo intervalo de la
consulta.
Ejemplo 6: Uso de operadores conjuntistas para intervalos
En otras ocasiones, es necesario poder determinar datos como unión de dos intervalos[3], motivo por el cual a la extensión se le dotó de capacidades de resolver operaciones conjuntistas.
Código 5. Operaciones de conjuntos sobre intervalos
select concept,
unionSint(
sint(psistolica),
sint(pdiastolica))
from stable group by concept;
El resultado de ejecutar este operador es una tabla como se ve a
continuación:
Tabla 6. Operador de unión sobre intervalos
Ejemplo 6:
Construcción de una
tabla simbólica
Una vez el investigador tenga la consulta SQL que necesita para
proceder, la misma puede ser guardada como una tabla simbólica
en la base de datos.
Código 7. Guardar una tabla simbólica
create table
TablaEstudios as
select concept, sint(psistolica) col1, sint(pdiastolica)col2
from stable group by concept;
El código anterior crea una estructura de tabla, con tres columnas (concepto, intervalo de presión sistólica e intervalo de presión diastólica), la misma puede ser invocada posteriormente mediante un select * from TablaEstudios.
[1] Se define la suma de intervalos para , como
[2]
Se define para los intervalos
la
relación de orden
[3] Se define la
unión de intervalos como
para
intervalos de la forma