Una Consulta sobre las operaciones de conjunto

From: Rodolfo Vegas <vegasster(at)gmail(dot)com>
To: pgsql-es-ayuda(at)postgresql(dot)org, Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
Subject: Una Consulta sobre las operaciones de conjunto
Date: 2009-03-11 18:56:41
Message-ID: 3e6a6f890903111156y7ae8a5d9meb791710a4601116@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Hola, como estan? yo de nuevo. Les voy a aclarar el inconveniente que estoy
presentando en estos momentos, uds saben que estoy implementando la lógica
difusa, especificamente las operaciones conjuntistas:
INTERSECT/UNION/EXCEPT; la modalidad que se va a manejar para diferenciar
operaciones de conjuntos relacionales a las difusas es que al final de la
expresion se le colocara una *f* por ejemplo sql1 *intersectf* sql2, lo
primero que hay que hacer es que el postgre reconozca esas nuevas
espresiones y ya esta hecho modificando el keywords.c y el gram.y, ahora al
convocar el intesectf por ejemplo le asigno el mismo plan que se le asigna
si se va a realizar el intersect relacional, ya eso esta hecho modificando
en el optimazer el prepunion.c tanto para el intersect como la union y el
except, ahora y lo más complicado es introducirle el grado de membresía a la
tabla que genera esas operaciones, ya el postgre que yo manejo esta
implementado que si un select tiene un predicado difuso la tabla que genera
la muestra por pantalla con un atributo mas que es el grado de membresía
calculado (por cada select) lo que yo necesito es que la tabla que resulta
al aplicarle la UNION/INTERSECT/EXCEPT agregarle el grado de membresía, les
explico por ejemplo por cada select anidado en la operación de conjunto cada
tupla tiene su grado de membresía, la tabla resultante tiene que tener la
tuplas comunes en todos los select con el menor grado de membresía, y eso es
lo que no hayo como hacerlo porque la tabla resultante, tengo que determinar
cada tupla, despues de saber que tupla buscarla en las tablas que genera el
select y buscar cual es el menor grado de membresía pero seria ineficiente
hacer esa busqueda porque imaginese si hay varios select anidados son muchas
tablas a la cual tengo que buscar por cada tupla el grado de membresía, al
tener eso tengo ya tendría resuelto y podre haber culminado gran parte del
trabajo, muchas Gracias!!!!!

Ilustración

Tabla 1

Nombre | Grado de Membresía
Rodolfo Vegas 0.8
Aury Rodriguez 0.7
*Judith Gómez 0.6*

Tabla 2

Nombre | Grado de Membresía
*Rodolfo Vegas 0.4 *
Carolina Rodriguez 0.8
Judith Gómez 0.9
Carolina Gomez 0.5

Tabla 1 *intersectf* Tabla 2

Tabla Resultante
Nombre | Gr. Memb
Rodolfo Vegas 0.4
Judith Gómez 0.6

Ven, primero tendría que saber cual es el resultado de la intersección,
luego buscar esas tuplas en las tablas que genera cada select o sea Tabla 1
y Tabla 2, extraer el grado de membresía y determinar cual es el menor, eso
es lo que no se en donde hacerlo, ya las tablas 1 y la tabla 2 tienen el
grado de membresía, lo que necesito es lo que les explique anteriormente,
cualquier ayuda por favor no duden en proporcionarmelo.

--
Saludos,
Atentamente,
Lic. Rodolfo José Vegas Gómez.
Valencia - Venezuela

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Jaime Casanova 2009-03-11 19:13:29 Re: Probelma creando tablespace en otro disco
Previous Message Jaime Casanova 2009-03-11 18:55:30 Re: psqlODBC y PGBouncer