• Nenhum resultado encontrado

Representa¸c˜ao Alg´ebrica de Consultas por Similaridade

dade

As consultas por abrangˆencia, aos vizinhos mais pr´oximos e por similaridade agregada tˆem o comportamento semelhante ao da sele¸c˜ao relacional. Isto ´e, essas consultas retornam os elementos do conjunto de entrada, que podem ser tuplas de uma rela¸c˜ao, que satisfazem um determinado crit´erio de similaridade, que pode ser denotado por um predicado de sele¸c˜ao. Estas opera¸c˜oes s˜ao classificadas como sele¸c˜oes por similaridade. De maneira semelhante, as jun¸c˜oes por similaridade s˜ao varia¸c˜oes da opera¸c˜ao de jun¸c˜ao relacional, onde o predicado de jun¸c˜ao ´e um predicado baseado em similaridade.

Esta se¸c˜ao apresenta as defini¸c˜oes das consultas por similaridade seguindo as defini¸c˜oes do modelo relacional, enriquecido com operadores por similaridade. A nota¸c˜ao utilizada nesta tese ´e derivada dos trabalhos de Barioni et al. (2011) e Ferreira et al. (2009).

3.2.1

Sele¸c˜oes por Similaridade

As express˜oes a seguir consideram uma rela¸c˜ao contendo m tuplas R = {t1, . . . , tm},

descrita por um esquema relacional com n atributos R = (S1, . . . , Sn). Cada atributo

Sj, 1 ≤ k ≤ n, pertence a um dom´ınio de dados Si, que pode ser um dom´ınio simples

(n´umeros, datas, textos curtos) ou complexo. Observe que dois atributos distintos S1 e

S2 podem compartilhar o mesmo dom´ınio, isto ´e, pode ocorrer que S1 = S2.

A opera¸c˜ao de sele¸c˜ao relacional, aplicada sobre uma rela¸c˜ao R, produz uma nova rela¸c˜ao R′, que ´e um subconjunto das tuplas de R. Esta opera¸c˜ao ´e denotada como σ

C(R),

onde C ´e uma express˜ao condicional cujos os operandos s˜ao constantes ou atributos da rela¸c˜ao R (Garcia-Molina et al., 2009).

As sele¸c˜oes por similaridade s˜ao denotadas por dois operadores, ˆσ e ¨σ, utilizados, respectivamente, para representar consultas por similaridade por abrangˆencia (consulta por abrangˆencia, consulta pontual e consulta por abrangˆencia reversa) e por vizinhan¸ca (consulta aos k-vizinhos mais pr´oximos e consulta aos k-vizinhos mais distantes). A express˜ao condicional aceita por estes operadores tem a forma hSj θ Qi, onde Sj ´e um

atributo da rela¸c˜ao de entrada, cujo dom´ınio ´e S, θ ´e um operador por similaridade e Q ⊆ S ´e o conjunto de elementos de consulta. Se Q ´e um conjunto unit´ario, contendo apenas um elemento sq, pode ser denotado na express˜ao condicional como {sq} ou, simplesmente, sq.

Os operadores por similaridade utilizados na express˜ao condicional dos operadores ˆσ e ¨σ recebem como parˆametros a fun¸c˜ao de distˆancia utilizada δ e o limiar de consulta (ξ para consultas por abrangˆencia e k para as consultas aos vizinhos mais pr´oximos/distantes).

Um consulta por abrangˆencia ´e representada utilizando o operador por similaridade Rq, conforme segue:

ˆ

σSjRq[δ,ξ] sq(R)

e produz uma rela¸c˜ao R′ que cont´em as tuplas t

i ∈ R, 1 ≤ i ≤ m, tais que δ(ti.Sj, sq) ≤ ξ,

onde ti.Sj ´e o valor do atributo Sj na tupla ti, sq ´e o elemento de consulta e ξ o limiar de

dissimilaridade.

Uma consulta pontual ´e essencialmente uma consulta por abrangˆencia com ξ = 0, e, portanto, tamb´em utiliza o operador por similaridade Rq, sendo representada como:

ˆ

σSjRq[δ,0] sq(R)

retornando as tuplas ti ∈ R tais que δ(ti.Sj, sq) = 0. Observe que a rela¸c˜ao resultante de

uma consulta pontual pode conter mais de uma tupla, caso o atributo Sj n˜ao seja uma

As consultas por abrangˆencia reversa tamb´em s˜ao representadas usando o ope- rador ˆσ, mas usando o operador de similaridade Rq−1:

ˆ

σSjRq−1[δ,ξ] s

q(R)

gerando uma rela¸c˜ao R′ que cont´em as tuplas t

i ∈ R, 1 ≤ i ≤ m, tais que δ(ti.Sj, sq) > ξ.

Observe que o operador ˆσ ´e um operador conveniente para expressar consultas por similaridade baseadas em abrangˆencia, por´em n˜ao aumenta o poder de expressividade da ´algebra, uma vez que estas consultas podem ser expressas alternativamente usando o operador de sele¸c˜ao relacional. As express˜oes a seguir respondem, utilizando o operador de sele¸c˜ao relacional: (i) a uma consulta por abrangˆencia, (ii) a uma consulta pontual e (iii) a uma consulta por abrangˆencia reversa:

i) σδ(Sj,sq)≤ξ(R) ii) σδ(Sj,sq)=0(R) iii) σδ(Sj,sq)>ξ(R)

onde a express˜ao condicional ´e baseada no resultado da fun¸c˜ao de distˆancia, computada tupla a tupla.

Consultas aos vizinhos mais pr´oximos ou mais distantes s˜ao representados utilizando o operador de sele¸c˜ao por similaridade ¨σ. Uma consulta aos k-vizinhos mais pr´oximos utiliza o operador por similaridade kNN, conforme segue:

¨

σSjkNN[δ,k] sq(R)

onde k ´e o n´umero de vizinhos a serem retornados.

As consultas ao vizinho mais pr´oximo s˜ao representadas da mesma forma, mas sempre com k = 1.

Uma consulta aos k-vizinhos mais distantes tamb´em ´e representada utilizando a sele¸c˜ao por similaridade ¨σ, mas utilizando o operador por similaridade kFN:

¨

σSjkFN[δ,k] sq(R)

retornando at´e k vizinhos mais distantes do elemento de consulta sq, considerando a

fun¸c˜ao de distˆancia δ.

Ferreira et al. (2009) demonstraram que as sele¸c˜oes por abrangˆencia tˆem propriedades equivalentes `as da sele¸c˜ao tradicional, podendo ser movimentadas no plano de consultas seguindo as mesmas estrat´egias. Por outro lado, as sele¸c˜oes aos k-vizinhos mais pr´oximos n˜ao s˜ao comutativas nem entre si e nem com qualquer outra opera¸c˜ao relacional. Em (Ferreira et al., 2011) os autores identificaram um conjunto de propriedades alg´ebricas v´alidas para as k-NNq, baseadas na inclus˜ao de conjuntos. Essas propriedades permitem postergar a aplica¸c˜ao do operador kNN no plano de execu¸c˜ao da consulta, visando reduzir

o tempo total de execu¸c˜ao. Entretanto, muitas aplica¸c˜oes demandam executar consultas que aplicam filtros anteriores `a k-NNq. Nestas situa¸c˜oes, as regras baseadas na inclus˜ao de conjuntos tˆem aplicabilidade reduzida.

3.2.2

Sele¸c˜oes por Similaridade Agregada

As consultas por similaridade agregada tamb´em s˜ao representadas utilizando os operado- res de sele¸c˜ao por similaridade ˆσ e ¨σ.

Uma consulta por abrangˆencia agregada utiliza uma generaliza¸c˜ao do operador por similaridade Rq na express˜ao condicional do operador ˆσ, que acrescenta um parˆametro que indica a fun¸c˜ao agregadora de distˆancias a ser considerada, conforme segue:

ˆ

σSjRq[δ,∆,ξ] Q(R)

onde δ ´e uma fun¸c˜ao de distˆancia, ∆ ´e uma fun¸c˜ao agregadora de distˆancias δ, Q, |Q| ≥ 1, ´e o conjunto de elementos de consulta e ξ ´e o limiar de dissimilaridade.

As consultas aos k-vizinhos mais pr´oximos agregados s˜ao representadas uti- lizando o operador de sele¸c˜ao ¨σ e a generaliza¸c˜ao do operador por similaridade kNN incluindo a fun¸c˜ao agregadora de distˆancias:

¨

σSjkNN[δ,∆,k] Q(R)

onde k ≥ 1 ´e o n´umero de vizinhos desejado.

3.2.3

Jun¸c˜oes por Similaridade

Dadas duas rela¸c˜oes de entrada R1 e R2, a jun¸c˜ao theta (θ-join) destas tabelas ´e o pa-

reamento de tuplas que satisfazem uma condi¸c˜ao C envolvendo atributos das rela¸c˜oes de entrada (Garcia-Molina et al., 2009). Esta opera¸c˜ao ´e representada como:

R1 ⋊⋉C R2

produzindo uma rela¸c˜ao resultante R′ ⊆ (R × S) de forma que a condi¸c˜ao C ´e satisfeita para toda tupla t′ ∈ R.

Uma jun¸c˜ao por similaridade ´e uma jun¸c˜ao cuja condi¸c˜ao C ´e baseada em um operador por similaridade. Seja R1 uma rela¸c˜ao descrita por um esquema relacional

R1 = (Sa, . . . , Sb), R2 uma rela¸c˜ao descrita por um esquema relacional R2 = (Sc, . . . , Sd), a ≤ b < c ≤ d, Si um atributo de R1 e Sj um atributo de R2, a ≤ i ≤ b e c ≤ j ≤ d, e δ

A jun¸c˜ao por abrangˆencia (⋊⋉Rq) utiliza o operador por similaridade Rq na condi¸c˜ao de jun¸c˜ao, com a forma:

R1 ⋊⋉SiRq[δ,ξ] Sj R2

onde ξ ´e o limiar de dissimilaridade fornecido. Esta opera¸c˜ao produz uma rela¸c˜ao cujas tuplas s˜ao a concatena¸c˜ao das tuplas tm ∈ R1 e tn ∈ R2 tais que δ(tm.Si, tn.Sj) ≤ ξ.

Uma jun¸c˜ao pelos k-vizinhos mais pr´oximos (⋊⋉kNN) utiliza o operador por simi- laridade kNN na condi¸c˜ao de jun¸c˜ao, sendo representada como:

R1 ⋊⋉SikNN[δ,k] Sj R2

onde k ´e o n´umero de vizinhos. Esta opera¸c˜ao concatena cada tupla tm ∈ R1

com as tuplas tn ∈ R2 que contˆem os k-vizinhos mais pr´oximos de tm.Si. Ob-

serve que a jun¸c˜ao pelos k-vizinhos mais pr´oximos n˜ao ´e comutativa. Ou seja,

R1 ⋊⋉SikNN[δ,k] Sj R2 6= R2 ⋊⋉SjkNN[δ,k] Si R1.

A jun¸c˜ao dos k-pares de vizinhos mais pr´oximos (⋊⋉kCN) ´e representada fazendo uso do operador por similaridade kCN, como segue:

R1 ⋊⋉SikCN[δ,k] Sj R2

retornando uma rela¸c˜ao R′ contendo k tuplas, formadas pela concatena¸c˜ao das tuplas

tm ∈ R1 e tn ∈ R2 que geram os menores de distˆancia δ(tm.Si, tn.Sj). Observe que uma

mesma tupla de R1 pode ser concatenada com mais de uma tupla de R2, e vice-versa.