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.