fuzzy temporal databases

Download Fuzzy Temporal Databases

If you can't read please download the document

Upload: jose-enrique-pons

Post on 16-Apr-2017

369 views

Category:

Documents


0 download

TRANSCRIPT

Fuzzy Temporal Databases

Tutors: Dr.Olga Pons CapoteDr.Ignacio Blanco Medina

El proyecto de investigacin tutelada trata sobre bases de datos difusas temporales. A continuacin les voy a contar en qu consiste una base de datos difusa temporal as como el desarrollo que hemos realizado durante este ao de investigacin.

Contents

Fuzzy Databases

Temporal Databases

Fuzzy Temporal Databases

Applications

Conclusions and future work.

Primeramente vamos a explicar qu es una base de datos difusa: cules son sus caractersticas. Seguidamente vamos a explicar qu es una base de datos temporal: qu permite modelar y qu problemtica tiene.En el tercer punto, vamos a explicar qu sentido tiene unir los dos apartados anteriores y las caractersticas que tiene una base de datos difusa temporal.Seguidamente vamos a explicar el desarrollo que hemos realizado utilizando un Framework de cdigo abierto: Hibernate.Finalmente comentaremos las conclusiones y el trabajo futuro.

Fuzzy Databases

Fuzzy Databases

Flexible queryingselect every people which are in its thirties.

#IDNameAgeEye ColorHair Color

1Peter24BrownBlonde

2Maria34BlueBlonde

3John52BrownBrown

4Sarah29GreenBrown

Comenzamos con las bases de datos difusas.Una base de datos difusa tiene dos caractersticas principales:Consulta flexible

Representacin difusa / con vaguedad.

En la tabla del ejemplo tenemos una tabla relacional con datos de personas. La consulta flexible consiste en poder consultar en la base de datos personas que se encuentren en sus treinta.

Fuzzy Databases

Flexible queryingselect every people which are in its thirties.

#IDNameAgeEye ColorHair Color

1Peter24BrownBlonde

2Maria34BlueBlonde

3John52BrownBrown

4Sarah29GreenBrown

Como resultado de esa consulta, obtendramos las tuplas sealadas por las flechas.

Fuzzy Databases

Fuzzy DatatypesFuzzy datatypes in an ordered underlying domain.

#IDNameAgeEye ColorHair Color

1PeterBrownBlonde

2Maria'Young'BlueBlonde

3JohnUNKNOWNBrownBrown

4Sarah29GreenBrown

Otra capacidad de las bases de datos difusas es su capacidad de representar la imprecisin.Dicha imprecisin permite especificar los datos en funcin de distribuciones de posibilidad, bien sean trapezoidales como las del ejemplo, intervalos, triangulares, o por ejemplo alguno de los siguientes: Desconocido (UNKNOWN), Inaplicable (UNDEFINED).

En la tabla de ejemplo, correspondiente ahora a una base de datos difusa, podemos ver cmo se pueden representar tanto tipos de datos crisp, como difusos, en este caso una distribucin trapezoidal.

Operadores de comparacin difusa.

Fuzzy Databases

Fuzzy DatatypesFuzzy data types in an underlying non-ordered domain

#IDNameAgeEye ColorHair Color

1Peter24BrownBlonde

2Maria34BlueBlonde

3John52BrownBrown

4Sarah29GreenBrown

En el caso anterior, la edad corresponde con un tipo de datos cuyo dominio subyacente es ordenado, sin embargo, hay muchos tipos de datos que no tienen un dominio ordenado, como por ejemplo: color de ojos y color de pelo.

Fuzzy Databases

Fuzzy DatatypesFuzzy data types in an underlying non-ordered domain

#IDNameAgeEye ColorHair Color

1Peter24BrownBlonde

2Maria34BlueBlonde

3John52BrownBrown

4Sarah29GreenBrown

BrownBlueGreen

Brown10.10.1

Blue10.6

Green1

Fuzzy compatibility degrees:

En estos casos, lo que se define es una tabla de compatibilidad entre los elementos del dominio, como la que definimos en el ejemplo.

El operador difuso que se define para este tipo de datos es el de igualdad difusa, y el resultado de su aplicacin (grado de pertenencia) es exactamente el valor que indica la tabla.

Fuzzy Databases

Fuzzy operators:FEQ: Fuzzy Equals

FGT: Fuzzy Greater than

Necessity operators:NEQ: Necessity Equal...

Temporal Databases

Temporal Databases

Manages the time in the database schema.

#IDNameAgeWorks forStart YearEnd Year

1Peter24John2010-

2Maria34John2001-

3John52-1999-

4Sarah29Maria20052009

If Sarah is hired in 2010, we can't add the tuple

Ahora vamos a ver las caractersticas que tienen las bases de datos temporales.

Su principal caracterstica es que incorporan el tiempo como una caracterstica fundamental en su esquema.

En la tabla de ejemplo, tenemos una relacin de personas junto con la persona para la que trabajan y las fechas de inicio y fin de contrato.

El primer problema que nos encontramos es que el si la clave primaria es el id de empleado, no podemos insertar la tupla que indicamos abajo: Si volvemos a contratar a Sara en 2010, no podemos insertarla.

Temporal Databases

#IDNameAgeWorks forStart YearEnd Year

1Peter24John2010-

2Maria34John2001-

3John52-1999-

4Sarah29Maria20052009

New primary key!

Qu se hace en este caso?

Es necesario definir una nueva clave primaria: En el ejemplo, se utiliza como clave primaria los dos valores de tiempo junto con la antigua clave primaria.

Temporal Databases

#IDNameAgeWorks forStart YearEnd Year

1Peter24John2010-

2Maria34John2001-

3John52-1999-

4Sarah29Maria20052009

4Sarah29Maria2010-

Also a consistence mechanism must be defined..

El uso de una nueva clave primaria no elimina todos los problemas, de hecho, es necesario definir un mecanismo que asegure la consistencia

Temporal Databases

Some spurious values may be inserted

#IDNameAgeWorks forStart YearEnd Year

1Peter24John2010-

2Maria34John2001-

3John52-1999-

4Sarah29Maria20052009

4Sarah29Maria20012007

4Sarah29Maria2010-

Usually, DML sentences (Insert, Update, Delete) are re-defined to ensure consistencePor ejemplo, la siguiente tupla puede ser insertada:Podemos insertar la tupla que indica que Sara est trabajando desde el 2001 hasta el 2007, cuando esto no tiene sentido.

La solucin que adoptan la mayora de sistemas temporales es la redefinicin de las sentencias que afectan al DML: insert, update y delete.

Por ejemplo una sentencia insert, nueva, asegura que se cierra la anterior versin de la tupla.

Una sentencia update est compuesta por una update y una insert, por ejemplo.

Time models

Valid time captures the time-varying nature of the reality model.

Transaction time structures the update activity associated with the object.

#IDName...Start YearEnd Year

1Peter...2010-

2Maria...2001-

3John...1999-

4Sarah...20052009

#IDName...Transaction time

1Peter...01/01/2010

2Maria...01/08/2002

3John...02/08/2002

4Sarah...01/01/2005

Una base de datos temporal puede manejar alguno de los siguientes dos tipos de tiempo:

Tiempo de validez: Pretende capturar la naturaleza variante con respecto al tiempo de la realidad que se modela.

Tiempo de transaccin: Almacena un sello de tiempo asociado con el objeto que estamos almacenando. Estos sistemas suelen permitir nicamente aadir valores (sistemas de monitorizacin de variables, de logueo, etc).

Time models: Bi-temporal

#IDName...Start YearEnd YearTransaction time

1Peter...2010-01/01/2010

2Maria...2001-01/08/2002

3John...1999-02/08/2002

4Sarah...2005200901/01/2005

Both orthogonal times are managedHay modelos que manejan ambos tiempo de tiempo.En la tabla del ejemplo tenemos la tabla con los trabajadores, sus fechas de inicio y fin de contrato as como el tiempo en el que se grabaron dichos valores.

Time granularity

#IDName...Start YearEnd YearTransaction time

1Peter...2010-01/01/2010

2Maria...2001-01/08/2002

3John...1999-02/08/2002

4Sarah...2005200901/01/2005

La granularidad es otro concepto importante en las bases de datos temporales.

En el ejemplo tenemos que el tiempo de validez tiene una granularidad de slo el ao, mientras que el tiempo de transaccin tiene una granularidad de da, mes y ao.

Time Granularity

Overlapping:One granule in the lower granularity is represented by several granules in the upper granularity.

Non-contiguous:Some points in the upper granularityCan't be represented in the lower granularity.

Algunos problemas asociados con la granularidad:

Solapamiento: Cuando diferentes elementos en la granularidad superior representan a elementos que se solapan en la granularidad inferior.

No continuidad: Algunos elementos de la granularidad no tienen representacin en la granularidad inferior.

Oracle workspace manager

Several data versions in the same database

A workspace is a logical group: is a set of changes and allows consistent access

Existen sistemas comerciales que tienen soporte para bases de datos temporales. Uno de ellos es Oracle (a partir de la versin 10) trae un paquete denominado Workspace Manager.

Permite organizar los datos en una jerarqua de espacios. Cada espacio es un espacio lgico que permite realizar cambios as como acceso consistente a dichos datos.

Tambin permite tiempo de transaccin y de validez. En un principio estudiamos este sistema para ver si era factible realizar una implementacin para representar y consultar el tiempo de manera difusa.Pero realmente no es factible ya que se trata de un sistema cerrado y tiene el gran inconveniente que slo funciona en Oracle.

Oracle workspace manager

#IDFrom...Received

1Peter...01/01/1970 00:01:45

2Maria...01/01/1970 00:05:35

............

9.874.531.243Sarah...17/12/201012:34:27

Example:a table containing emails from 1970

Any operation (select, insert, update, delete) is usually slow..

Un ejemplo de uso del workspace manager:

Imaginemos una tabla que contiene emails de un servidor desde 1970. A da de hoy esa tabla tiene 9.874 millones de tuplas. Cualquier operacin con dicha tabla es muy lenta.

Qu permite definir el workspace manager?

Oracle workspace manager

#IDFrom...Received

............

9.874.530.127Maria...10/12/2010 00:05:35

............

9.874.531.243Sarah...17/12/201012:34:27

A new workspace is created.The valid time for this workspace is an interval: [now - 7, now]

Now, any operation is faster than before.

Definimos un espacio cuyo tiempo de validez sea siempre una semana.

Ahora cualquier operacin dentro de este marco es mucho ms rpida que antes. Adems siempre podemos cambiar el tiempo de validez y ver los valores de toda la tabla.

WM proporciona operaciones temporales: antes, despues, superposicion, ...etc.

WM proporciona operaciones para resolver conflictos entre diferentes workspaces: en el caso de insercin o eliminacin de tuplas, propagacin de valores entre workspaces..etc.

Fuzzy Temporal Databases

Fuzzy temporal database

#IDName...Start YearEnd YearTransaction time

1Peter...-01/01/2010

2Maria...2001-01/08/2002

3John...1999-02/08/2002

4Sarah...200501/05/2006

4Sarah...2010-01/01/2010

Una base de datos temporal une los conceptos anteriormente explicados:

Por un lado permite la consulta flexible de los elementos temporales, as como la representacin difusa del tiempo en su esquema.

En nuestro caso, slo utilizamos tiempo de validez.

Fuzzy Validity Period

La representacin que se hace del tiempo es la siguiente:

Tenemos un tiempo de inicio VST y un tiempo de fin VET, ambos se pueden especificar con un determinado grado de incertidumbre. Nuestra representacin une ambos tiempos en una distribucin de posibilidad trapezoidal. La ventaja de esta representacin es que conserva la imprecisin as como que su representacin ocupa menor espacio.El dominio que hemos escogido es el nmero de da juliano, ya que sus propiedades de proporcionalidad nos permiten realizar los clculos del grado de pertenencia.

Applications

Applications

Hibernate Framework

Hibernate OR mapping.

Querying in Hibernate.

Fuzzy Data types in Hibernate

Flexible querying in Hibernate

Fuzzy temporal data types and operators.

Hibernate Framework

MySQL, Oracle, PosgreSQL, O2, HsqlDb, ...,An Open Source Frameworkfor Object-relational mapping

En este apartado vamos a comentar el desarrollo que hemos realizado.

Hibernate es un entorno de cdigo abierto que realiza, entre otras cosas el mapeo objeto relacional (lenguaje Java y .Net)

Una de sus principales caractersticas es la abstraccin que se realiza de la base de datos que se utiliza. Define el concepto de dialecto: el dialecto es la abstraccin de la base de datos concreta que se utiliza; por ejemplo existe el dialecto de MySQL, de Oracle, etc.

Tambin crea el esquema en la bd a partir de las clases.

Hibernate Framework Apps

www.facturae.es

PLAMSI

Mapache Server

Existen numerosas aplicaciones en la actualidad que utilizan hibernate, como por ejemplo:La aplicacin de facturacin electrnica del ministerio, para pymes y autnomos.

El servidor de aplicaciones para la tdt interactiva, mapache.

La aplicacin que utilizan los servicios de teleasistencia para los ancianos (el famoso botn rojo).

Hibernate O-R-Mapping

Person{

Name

SurName

Age

Gender

Login

Password

}

==

=

=

=

=

Rs[0];Rs[1];

Rs[2];

Rs[3];

Rs[N-1];

Rs[N];

Without Hibernate, after a query, the resultset must be fitted field by field in the object

Sin hibernate, el mapeo objeto relacional de un conjunto de resultados a un objeto se haca campo a campo.

Hibernate O-R-Mapping

Person{

Name

SurName

Age

Gender

Login

Password

}

==

=

=

=

=

Rs[0];Rs[1];

Rs[2];

Rs[3];

Rs[N-1];

Rs[N];

Without Hibernate, after a query, the resulset must be fitted field by field in the object

Con Hibernate esto ya no es necesario.

Querying in Hibernate Framework

Query by criteria: A more complex selection method. Selects objects that fulfill a set of criteria.

Query by example: Selects objects similar to a given object.

HQL: Hibernate Query Language: An object oriented query language.

SQL: An SQL sentence.

createCriteria(Person.class).Add(Restrictions.eq(login, jpons));

Person p;p.login = jpons;

Select p from Person pWhere p.login = 'jpons';

Select * from Person p where p.login = 'jpons';

El entorno proporciona tambin un conjunto de funciones para consulta. Ordenadas desde un mayor nivel de abstraccin (orientacin a objetos) hasta un nivel ms bajo (SQL)

Al final todas las modalidades de consulta son traducidas a sentencias en SQL.

Para nuestro trabajo de aadir la consulta flexible a este framework, utilizamos la opcin de modificar el lenguaje HQL para utilizar operadores difusos.

Querying in Hibernate Framework

Query by criteria: A more complex selection method. Selects objects that fulfill a set of criteria.

Query by example: Selects objects similar to a given object.

HQL: Hibernate Query Language: An object oriented query language.

SQL: An SQL sentence.

createCriteria(Person.class).Add(Restrictions.eq(login, jpons));

Person p;p.login = jpons;

Select p from Person pWhere p.login = 'jpons';

Select * from Person p where p.login = 'jpons';

Each query is translated into a SQL sentence

SQL es lo nico que entiende la base de datos que tenemos.

Query translation

HQL sentence: Select p from Personal where p.login like 'lmmn';

SQL sentence: Select * from Personal as p where p.login like 'lmmn';

AST: Abstract Sintax Tree

SelectpfromPersonalwhere

Through the dialect

El proceso de traduccin de una sentencia en HQL a SQL que entiende la base de datos que utilizamos en nuestra aplicacin es el siguiente:

Una vez que se analiza la sentencia, se transforma en un rbol con la sntaxis, que mediante el dialecto, se transforma en una sentencia SQL. El dialecto asegura que esa sentencia SQL est adaptada a la base de datos.

Nuestra extensin para incluir la consulta difusa pasa por modificar este rbol y por incluir una implementacin de los operadores difusos.

Fuzzy datatypes in Hibernate

Allows definition of new fuzzy domains:

Fuzzy Domains in underlying ordered domain.

Fuzzy Domains in underlying non-ordered domain.

Any relational database supported by Hibernate, allows fuzzy data types now !

Para aadir representacin difusa a hibernate aadimos una capa encima que permite definir tanto tipos de datos que tienen un dominio ordenado, como tipos de datos que tienen un dominio no ordenado.

Ventaja: Cualquier base de datos soportada por el sistema tiene ahora capacidad de representacin difusa.

Fuzzy datatypes in Hibernate

Fuzzy DatatypesFuzzy datatypes in an ordered underlying domain.

#IDNameAgeEye ColorHair Color

1PeterBrownBlonde

2Maria34BlueBlonde

3John52BrownBrown

4Sarah29GreenBrown

Esto se puede representar ahora con Hibernate. Un tipo de datos como el del ejemplo se representa en nuestra base de datos como 5 columnas, este framework nos abstrae de esa representacin

Fuzzy Databases in Hibernate

Fuzzy DatatypesFuzzy data types in an underlying non-ordered domain

#IDNameAgeEye ColorHair Color

1Peter24BrownBlonde

2Maria34BlueBlonde

3John52BrownBrown

4Sarah29GreenBrown

BrownBlueGreen

Brown10.10.1

Blue10.6

Green1

Fuzzy compatibility degrees:

Este tipo de datos que tienen un dominio que no es ordenado, tambin se puede representar. En este caso, es necesario definir los valores del dominio.

Fuzzy querying in Hibernate

Two conditions met:

Declarative implementation of Fuzzy operators in SQL.

The AST is modified when a fuzzy operator is applied to a fuzzy type.

Para implementar la capacidad de consulta difusa hemos tenido que modificar el ncleo de hibernate. Primero de todo hemos verificado que se cumplan las dos siguientes condiciones:

Que se pudiera realizar una implementacin de los operadores difusos de una manera declarativa en sql. (Esto lo hemos conseguido utilizando unas estructuras condicionales que tiene el estndar SQL).

Que el rbol con la gramtica que genera Hibernate pudieramos modificarlo.

Declarative implementation

El siguiente grfico muestra una distribucin de posibilidad triangular y la implementacin en SQL del operador de igualdad difusa entre dos distribuciones triangulares. Hay 4 posibles casos:

Que no coincidan en ningn punto.Que sean iguales.Que se solapen por la derecha.Que se solapen por la izquierda.

Para cada posible combinacin y cada uno de los operadores difusos de igualdad, mayor, menor, mucho mayor, mucho menor, y sus respectivos comparadores de necesidad, los hemos implementado de esta manera.

AST modification

p.ageFEQ'young'where

HQL: Select p From Personal where p.age FEQ 'young';

...

In the translation process from AST to SQL, the FEQ node is modified..

Select * From Personal as p where 1 < CASE WHEN (p.age.alfa=alfa2) THEN 0WHEN (p.age.alfa = alfa2) THEN 1WHEN (p.age.beta > beta2) AND (p.age.alfa < alfa2) THEN round( (p.age.alfa beta2) / (p.age.delta delta2),2)ELSE round ( (alfa2 p.age.beta) / (p.age.delta + delta2)

Cuando nos llega una consulta como la del ejemplo en el sistema, se construye el rbol de sntaxis y a la hora de renderizar el arbol como una consulta Sql, se reemplaza el operador de igualdad por el texto que corresponde, de modo que se obtiene algo similar a la consulta de abajo.

Fuzzy Validity Period

La versin temporal difusa en Hibernate consiste en aadir un dominio de tipo ordenado para el tiempo, de modo que se pueda especificar el tiempo inicial y el final, y nuestra distribucin de posibilidad se construye de la manera comentada anteriormente.

En este caso el dominio ordenado subyacente es el nmero de da Juliano que presenta unas propiedades que nos permiten realizar el clculo del grado de pertenencia correctamente.

Fuzzy temporal operators

Contains(P1 ,P2) = NFEQ(P1 ,P2)

Before (P1 ,P2) = FGEQ(P1 ,P2)

After(P1 ,P2) = FLEQ(P1 ,P2)

Overlaps(P1 ,P2) = FEQ(P1 ,P2)

Equals(P1 ,P 2) = min ( P1 NFEQ P2 , P2 NFEQ P1 )

Para finalizar este apartado de implementacin, hemos implementado operadores de comparacin difusos temporales. Estos comparadores son una redefinicin de los operadores de comparacin difusos que ya tenamos implementados.

Publications

IADIS 2011:
An Open source framework for
fuzzy representation and querying
in fuzzy databases.

EUSFLAT 2011: Special session on fuzzy
information retrieval and database systems:

Generalised fuzzy types and querying within
Hibernate Framework.

Conclusions

Fuzzy querying and fuzzy representation is now possible in almost any relational databases.

Fuzzy temporal representation and querying is also possible in relational databases.

Como conclusiones de nuestro trabajo tenemos:

Hemos modificado un framework que nos permite ahora mismo consultar y representar tipos de datos difusos, as como tipos de datos difusos temporales en cualquier base de datos relacional que sea soportada por el sistema.

Consecuencia de la parte difusa tenemos una publicacin en el IADIS de 2011.

Future work

New fuzzy time representation.

Implementation of DML (Data Manipulation Language) sentences for fuzzy temporal: update, insert, delete.

New applications

Entre las lneas de trabajo futuro:

Investigacin de nuevos modelos de representacin temporal difusa. Los prximos 6 meses en Gante.

Definicin de operaciones DML para temporales difusos.

Realizacin de aplicaciones prcticas de nuestro entorno.

Gracias

+ Info:Hibernate: www.hibernate.org

Email:[email protected]

Muokkaa otsikon tekstimuotoa napsauttamalla

Muokkaa jsennyksen tekstimuotoa napsauttamallaToinen jsennystasoKolmas jsennystasoNeljs jsennystasoViides jsennystasoKuudes jsennystasoSeitsems jsennystasoKahdeksas jsennystasoYhdekss jsennystaso