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