Está en la página 1de 35

IMPLEMENTACIN DE UNA BASE DE DATOS DIFUSA

Pra. Dra Anglica Urrutia S. La Paz Bolivia

Esquema General de FSQL


BD Base de Datos FMB Fuzzy DIC Clsico

Catlogo del sistema

SGBD Sistema Gestor de Bases de Datos Relacionales

Servidor FSQL

Interfaz o cliente visual

FSQLF Form Difuso

Cliente FSQL

SGBDR (Sistema Gestor de Bases de Datos Relacionales): Todas las operaciones que se deseen hacer en forma difusa, se traducirn a peticiones a1 SGBDR anfitri6n (en general en SQL).

BD (Base de Datos): Almacena, en formato relacional toda la informacin que sea de inters, igual que cualquier otra base de datos. La nica diferencia es que la base de datos permitir el almacenamiento de informacin difusa en sus tablas.

FMB ( Base de Metaconocimiento Difuso): El "diccionario" o "catlogo del sistema" de un SGBDR representa aquella parte del sistema que almacena informacin sobre los datos recogidos en 1a base de datos, dentro de este catlogo est incluido la FMB, que extiende esta parte del sistema a fin de que pueda recoger aquella informacin necesaria relacionada con la naturaleza "imprecisa" de los datos a procesar. Su organizacin y la informaci6n que almacena se ver mas adelante.

SERVIDOR FSQL: Su objetivo es captar las sentencias en lenguaje FSQL y traducirlas a un lenguaje que entienda el SGBDR, el lenguaje SQL. Para efectuar esta traduccin utilizar la informaci6n almacenada en la FMB.

CLIENTE FSQL: Es un programa que hace de interfaz entre el hombre (u otro programa) y el Servidor FSQL. Se utilizar como Cliente un programa FSQL creado en [GAL1999].

Usando Oracle y FSQL Levantar la base de datos: Inicio/programa/OracleOrahome81/database administration/start database. 2. Conectar FQ (Click FQ). 3. F6 Conectarse a Oracle username sys password sys

4. Consultas Escribir consulta Abrir consulta (escritorio) F8 ejecuta consulta FSQL F9 ejecuta consulta clsica F12 se desconecta de Oracle La base de datos de debe bajar (stop database)

Requisitos de instalacin y funcionamiento


- FQ es un programa para Windows 95/98/NT.
- FQ requiere tener instalado el SGBD Oracle (versin 8.1.5) - FQ requiere tener instalados los Oracle Objects (objetos distribuidos por Oracle). - Los requisitos Hardware son mnimos, por lo que estn supeditados a los requisitos de Oracle. - Para usar FSQL (SQL Difuso) requiere el Servidor FSQL, que es un conjunto de paquetes PL/SQL que permiten efectuar consultas en FSQL (programadas).

Algunas caractersticas de FQ:


- FQ es un sencillo programa Cliente FSQL (Fuzzy SQL) o SQL, para el SGBD Oracle 8. - FQ permite efectuar consultas clsicas o difusas a una Base de Datos Difusa o Crisp (clsica) Oracle. El modelo de Base de Datos Relacional Difusa (BDRD) utilizado es el modelo GREFRED/FIRST (ver referencias).

Algunas caractersticas de FQ:


- FQ permite utilizar el lenguaje FSQL (Fuzzy SQL) que es una extensin del lenguaje SQL, que permite expresar consultas difusas o flexibles (con atributos difusos, condiciones difusas, umbrales de cumplimiento, grados de cumplimiento de cada tupla...). - FQ tambin admite consultas en SQL estndar. - FQ incorpora mens para insertar en nuestra consulta elementos como: Operadores lgicos, operadores de conjuntos, comparadores...

Algunas caractersticas de FQ:


- FQ permite mostrar fcilmente las etiquetas lingsticas definidas para un atributo (columna) concreto. - FQ permite mostrar fcilmente los atributos difusos Tipo 3 compatibles entre s, i.e., que pueden ser comparados. - Las consultas en FQ sern expresadas en modo texto y en lenguaje SQL o FSQL (Fuzzy SQL, SQL Difuso). - FQ solicita login/password para conectarse al SGBD.

Algunas caractersticas de FQ:


- FQ dispone de un icono que nos permite saber rpidamente si estamos o no conectados al SGBD. Adems, al situar el cursor del ratn sobre l nos dir el usuario que est conectado y el nombre de la Base de Datos. FQ permite usar el portapapeles (Cortar, Copiar y Pegar). - FQ permite limitar el nmero de tuplas a recuperar a un nmero mximo.

Algunas caractersticas de FQ:


- FQ tiene dos formas de recuperar las tuplas:
+ Visualizando las tuplas conforme las recupera (ms lento). + Recuperar todas y visualizarlas al final (ms rpido).

- Mientras FQ recupera las tuplas muestra una barra de progreso, el nmero de tupla que est recuperando y el total a recuperar. - FQ permite cancelar una consulta cuando ya est lanzada, de forma que deje de recuperar las tuplas restantes. - FQ permite consultar informacin general de la conexin, del usuario y del Servidor FSQL: roles, privilegios, nmero de sesin, usuario/uid, versin del RDBMS Oracle,

Algunas caractersticas de FQ:


- FQ tiene un potente buscador de archivos incorporado (F3). - FQ permite salvar consultas en ficheros de texto. La extensin por defecto es '.FQL'. - FQ permite imprimir una consulta SQL/FSQL con el tipo de letra y tamaos empleados. - FQ permite imprimir la tabla resultante de una consulta y guardarla en diversos formatos:

Requisitos para efectuar consultas difusas en FSQL:


- FQ, para consultas difusas en FSQL, requiere tener instalado las tablas de la Base de Metaconocimiento Difuso (FMB): FIRST. Incluso si vamos a consultar con FSQL una base de datos clsica (en ese caso lo mejor es usar SQL). - FQ requiere tener instalado el Servidor FSQL, para poder efectuar consultas FSQL. El Servidor FSQL es un conjunto de tablas y procedimientos almacenados (programados en PL/SQL) que nos permite acceder a la Base de Datos con el lenguaje de consulta difuso FSQL.

Licencia:
- FQ es un programa gratuito para investigadores, particulares y empresas, siempre que sea utilizado sin nimo de lucro. - Queda totalmente prohibida la venta total o parcial de este producto.

FUZZY_COL_LIST (FCL) OBJ# COL# F_TYPE LEN COM

FUZZY_APPROX_MUCH (FAM) OBJ# COL# MARGEN MUCH

OBJ#1

COL#1

OBJ#2

COL#2 FUZZY_COMPATIBLE_COL (FCC)

FUZZY_OBJECT_LIST (FOL) OBJ# COL# FUZZY_ID FUZZY_NAME FUZZY_TYPE

FUZZY_LABEL_DEF (FLD) OBJ# COL# FUZZY_ID ALFA BETA GAMMA DELTA

FUZZY_NEARNESS_DEF (FND) OBJ# COL# FUZZY_ID1 FUZZY_ID2 DEGREE

FUZZY_QUALIFIERS_DEF (FQD) OBJ# COL# FUZZY_ID1 QUALIFIER

Esquema de la Base de metaconoci miento difuso que contempla una FIRST como una extensin del catlogo

LLenando FIRST
CON LAS SIGUIENTES SENTENCIAS UD. BORRA (DROP) Y CREA (CREATE) LA TABLA (JUGADORES = PLAYERS)

ATRIBUTOS: - PLAYER (JUGADOR) - TEAM (EQUIPO) - HEIGHT (ALTURA) - HEIGHTT (TIPO DE DATO) - HEIGHT1 - HEIGHT2 - HEIGHT3 - HEIGHT4 (VALORES QUE FORMARAN EL VALOR DIFUSO) - QUALITY (CALIDAD) - QUALITYT (TIPO DE DATO) - QUALITY1 - QUALITY2 - QUALITY3 QUALITY4 (VALORESQUE FORMAN EL VALOR DIFUSO)

exec dbms_output.put_line('>>>> Borrando y Creando tabla PLAYERS...'); DROP TABLE PLAYERS; CREATE TABLE PLAYERS( PLAYER VARCHAR2(60) NOT NULL, TEAM VARCHAR2(30) NOT NULL, HEIGHTT NUMBER(1) NOT NULL, HEIGHT1 NUMBER(3), HEIGHT2 NUMBER(3), HEIGHT3 NUMBER(3), HEIGHT4 NUMBER(3), QUALITYT NUMBER(1) NOT NULL, QUALITY1 NUMBER(3), QUALITY2 NUMBER(3), QUALITY3 NUMBER(3), QUALITY4 NUMBER(3));

Representacin de Calidad y Altura


ALTURA
Bajo
1

Normal

Alto

Muy Alto

0.5

0 175 180 185 195 200 210 ...

CALIDAD
Malo Regular Bueno Muy Bueno

0.8

0 5 10 20 30 45

SENTENCIA DEFINE OBJETOS PARA LA TABLA


INSERT into FOL values(t_PLAYERS,c_PHEIGHT,0,BAJO',0);
0=NUMERO DE ORDEN BAJO'=NOMBRE DE ETIQUETA

INSERT into FOL values(t_PLAYERS,c_PHEIGHT,1,'NORMAL',0); INSERT into FOL values(t_PLAYERS,c_PHEIGHT,2,ALTO',0); ETC...

DEFINE DE ESTA MANERA LAS ETIQUETAS


INSERT into FLD values(t_PLAYERS,c_PHEIGHT,0,0,0,175,180);
0=NUMERO DE ORDEN=SERIA RANGO PARA LA ETIQUETA BAJO

0 = 0 = 175 180

PRIMER VALOR DE LA ETIQUETA SEGUNDO VALOR DE LA ETIQUETA = TERCER VALOR DE LA ETIQUETA = CUARTO VALOR DE LA ETIQUETA

INSERT into FLD values(t_PLAYERS,c_PHEIGHT,1,175,180,1 85,195);


1=NUMERO DE ORDEN=SERIA RANGO PARA LA ETIQUETA NORMAL

175 180 185 195

= = = =

PRIMER VALOR DE LA ETIQUETA SEGUNDO VALOR DE LA ETIQUETA TERCER VALOR DE LA ETIQUETA CUARTO VALOR DE LA ETIQUETA

ASI SUCESIVAMENTE...

INSERTAR VALORES EN LA TABLA PLAYERS


INSERT into PLAYERS values ('P1' ,'Crdoba',4,0,NULL,NULL,NULL,NULL,4,3,N ULL,NULL,NULL, NULL);
'P1' = PLAYER (JUGADOR) 'Crdoba' = TEAM (EQUIPO) 4 = TIPO DE DATOS (LABEL, N ETIQUETAS) 0 = NUMERO DE ORDEN DE ETIQUETA (LUEGO EL VALOR DE P1 EN HEIGHT (ALTURA) ES BAJO (PEQUEO) NULL = PRIMER VALOR DE ETIQUETA NULL = SEGUNDO VALOR DE ETIQUETA NULL = TERCER VALOR DE ETIQUETA NULL = CUARTO VALOR DE ETIQUETA

LOS VALORES NULL SE LLENAN CUANDO LA ETIQUETA O VALOR DEL ATRIBUTO NO SE ENCUENTRA DEFINIDA, ES DECIR, SUPONGAMOS QUE UN PLAYER (JUGADOR) SU ALTURA ESTA ENTRE BAJO (PEQUEO) Y NORMAL, SIENDO [120,178,185,192]. NO CORRESPONDIENDO A NINGUNA ETIQUETA DE FORMA EXACTA, ESTE VALOR SE INSERTARIA DE LA SIGUIENTE MANERA:

INSERT into PLAYERS values ('P1' ,'Crdoba',7,120,58,7,192,4,0,NULL,NULL,NULL);


7 = TIPO DE DATOS (TRAPECIO, VER ABAJO) 120 = PRIMER VALOR DE TRAPECIO 58 = SEGUNDO VALOR DE TRAPECIO ES LA DIFERENCIA ENTRE EL PRIMER Y SEGUNDO VALOR (A 120 LE SUMA 58 DANDO EL SEGUNDO VALOR=178) -7 = TERCER VALOR DE TRAPECIO ES IGUAL A LA DIFERENCIA DEL CUARTO CON EL TERCERO(A 192 LE RESTO EL TERCER VALOR 185 QUEDANDO 7) 192 = CUARTO VALOR DE TRAPECIO

SEGUN LA CREACION DE LA TABLA LOS VALORES RESTANTES CORRESPONDEN A LA CALIDAD DEL JUGADOR SE HACE DE LA MISMA FORMA, SI USTED DESEA CREAR UNA TABLA DISTINTA CON NUEVOS VALORES DEBE HACER UN ARCHIVO QUE CONTENGA LA CREACION,DEFINICION Y VALORES DE LA TABLA, VER ARCHIVO BASKETin.sql BASE DE DATOS CREADA POR GALINDO.
RECUERDE QUE LA PUEDE ABRIR PARA LEER CON EL WORDPAD.

Funciones para el manejo de valores/atributos difusos a travs de SQL.


-- Atributos tipo 2 Atributos tipo 3 -- F_TYPE=0 --> UNKNOWN UNKNOWN -=1 --> UNDEFINED UNDEFINED -=2 --> NULL NULL -=3 --> CRISP (o tipo 1) SIMPLE -=4 --> LABEL DIST.P. -=5 --> INTERVALO -=6 --> APROX -=7 --> TRAPECIO

Consultas a la Tabla Jugadores


Relacin jugadores Num. Jugador Equipo Altura (trapecio: muy bajo, bajo...) Calidad (trapecio,excelente ...) Altura y Calidad son difusos o imprecisos Consulta: Seleccione los datos de los jugasores que son altos y que tienen una calidad menor que buena

Consultas a la Tabla Jugadores


SELECT jugadores.% CDEG(*) FROM jugadores WHERE Altura FEQ $Alto THOLD 0.5

FEQ== P. Igual

Consultas a la Tabla Jugadores


SELECT jugadores.%, CDEG(*) FROM jugadores WHERE Calidad FLT $Bueno THOLD 0.25

FLT== P. menor

Consultas a la Tabla Jugadores


SELECT jugadores.%, cdeg(*) FROM jugadores WHERE Altura FEQ $Alto THOLD 0.5 AND Calidad FLT $Bueno THOLD 0.25;

También podría gustarte