fuzzy temporal databases
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