• Nenhum resultado encontrado

Suportando Consultas por Similaridade em SQL

No documento apresentacaoUFABC (páginas 88-121)

Dom´ınios de dados complexos

Os dom´ınios de objetos complexos podem ser separados em:

Tipo de objeto: composto por uma cole¸c˜ao de atributos tradicionais Forma de compara¸c˜ao: os valores armazenados nos atributos tradicionais s˜ao utilizados para calcular a distˆancia entre cada par de objetos complexos

MONOLITHIC

Tipo de objeto: armazenado como um ´unico objeto bin´ario BLOB (atributo indivis´ıvel)

Forma de compara¸c˜ao: ´e necess´ario aplicar algoritmos de extra¸c˜ao de caracter´ısticas sobre eles

Suportando Consultas por Similaridade em SQL

Dom´ınios de dados complexos

Os dom´ınios de objetos complexos podem ser separados em: PARTICULATE

Tipo de objeto: composto por uma cole¸c˜ao de atributos tradicionais Forma de compara¸c˜ao: os valores armazenados nos atributos tradicionais s˜ao utilizados para calcular a distˆancia entre cada par de objetos complexos

Tipo de objeto: armazenado como um ´unico objeto bin´ario BLOB (atributo indivis´ıvel)

Forma de compara¸c˜ao: ´e necess´ario aplicar algoritmos de extra¸c˜ao de caracter´ısticas sobre eles

Dom´ınios de dados complexos

Os dom´ınios de objetos complexos podem ser separados em: PARTICULATE

Tipo de objeto: composto por uma cole¸c˜ao de atributos tradicionais Forma de compara¸c˜ao: os valores armazenados nos atributos tradicionais s˜ao utilizados para calcular a distˆancia entre cada par de objetos complexos

MONOLITHIC

Tipo de objeto: armazenado como um ´unico objeto bin´ario BLOB (atributo indivis´ıvel)

Forma de compara¸c˜ao: ´e necess´ario aplicar algoritmos de extra¸c˜ao de caracter´ısticas sobre eles

Tipos de dados complexos

Para realizar consultas por similaridade em dom´ınios complexos ´

E necess´ario definir cada dom´ınio onde a similaridade ser´a medida como um novo tipo de dados

Novos tipos de dados

PARTICULATE PARTICULATE MONOLITHIC STILLIMAGE AUDIO PARTICULATE PARTICULATE MONOLITHIC STILLIMAGE AUDIO

Passos para a realiza¸c˜ao de consultas por similaridade em SQL DDL

1 Definir medidas de similaridade (M´etricas)

2 Especificar tipos de dados complexos na defini¸ao de tabelas 3 Associar atributos complexos com medidas de similaridade 4 Definir ´ındices (opcional)

DML

5 Popular/atualizar a base de dados 6 Especificar consultas

Suportando Consultas por Similaridade em SQL

Definir medidas de similaridade – M´etricas

Novos comandos

CREATE METRIC ALTER METRIC DROP METRIC

CREATE METRIC Euclidiana2D USING LP2 FOR PARTICULATE

(Latitude FLOAT, Longitude FLOAT);

CREATE METRIC Histograma USING LP1 FOR STILLIMAGE

Definir medidas de similaridade – M´etricas Novos comandos CREATE METRIC ALTER METRIC DROP METRIC Exemplos:

CREATE METRIC Euclidiana2D USING LP2 FOR PARTICULATE

(Latitude FLOAT, Longitude FLOAT);

CREATE METRIC Histograma USING LP1 FOR STILLIMAGE

Suportando Consultas por Similaridade em SQL

Especificar tipos de dados complexos na defini¸c˜ao de tabelas – Exemplos

PARTICULATE

CREATE TABLE CidadeBR ( Nome CHAR(30) PRIMARY KEY,

Lat FLOAT,

Longit FLOAT,

Coordenada PARTICULATE, ...);

MONOLITHIC

CREATE TABLE Paisagem ( Id INTEGER PRIMARY KEY, Local CHAR(20),

Fotografo CHAR(30),

Foto STILLIMAGE,

... );

São Carlos-SP -22.02 47.89 1203

Id Local Fotografo Foto

Cristo Redentor -

RJ

Humberto 196

Nome Lat Longit Coordenada

São Carlos-SP -22.02 47.89 1203

Id Local Fotografo Foto

Cristo Redentor -

RJ

Humberto 196

Suportando Consultas por Similaridade em SQL

Especificar tipos de dados complexos na defini¸c˜ao de tabelas – Exemplos

PARTICULATE

CREATE TABLE CidadeBR ( Nome CHAR(30) PRIMARY KEY,

Lat FLOAT,

Longit FLOAT,

Coordenada PARTICULATE, ...);

MONOLITHIC

CREATE TABLE Paisagem ( Id INTEGER PRIMARY KEY, Local CHAR(20),

Fotografo CHAR(30),

Foto STILLIMAGE,

... );

São Carlos-SP -22.02 47.89 1203

Id Local Fotografo Foto

Cristo Redentor -

RJ

Humberto 196

Nome Lat Longit Coordenada

São Carlos-SP -22.02 47.89 1203

Id Local Fotografo Foto

Cristo Redentor -

RJ

Humberto 196

Especificar tipos de dados complexos na defini¸c˜ao de tabelas – Exemplos

PARTICULATE

CREATE TABLE CidadeBR ( Nome CHAR(30) PRIMARY KEY,

Lat FLOAT,

Longit FLOAT,

Coordenada PARTICULATE, ...);

MONOLITHIC

CREATE TABLE Paisagem ( Id INTEGER PRIMARY KEY, Local CHAR(20),

Fotografo CHAR(30),

Foto STILLIMAGE,

Nome Lat Longit Coordenada

São Carlos-SP -22.02 47.89 1203

Id Local Fotografo Foto

Cristo Redentor -

RJ

Humberto 196

Nome Lat Longit Coordenada

São Carlos-SP -22.02 47.89 1203

Id Local Fotografo Foto

Cristo Redentor -

RJ

Humberto 196

Associar atributos complexos com medidas de similaridade

A defini¸c˜ao de como comparar pares de dados de tipos complexos ´e expressa como uma restri¸c˜ao no comando CREATE TABLE:

Restri¸c˜ao de coluna Restri¸c˜ao de tabela

Associar atributos complexos com medidas de similaridade – Exemplo

PARTICULATE:

CREATE METRIC Euclidiana2D USING LP2

FOR PARTICULATE (Latitude FLOAT,

Longitude FLOAT); CREATE TABLE CidadeBR (

Nome CHAR(30) PRIMARY KEY,

Lat FLOAT,

Longit FLOAT,

Coordenada PARTICULATE,

METRIC (Coordenada) REFERENCES (Lat AS Latitude,

Longit AS Longitude)

USING (Euclidiana2D),

Associar atributos complexos com medidas de similaridade – Exemplo

MONOLITHIC:

CREATE METRIC Histograma USING LP1

FOR STILLIMAGE (HistogramaEXT (HistogramaC AS Histo));

CREATE METRIC Textura USING LP1

FOR STILLIMAGE (TexturaEXT (TexturaC AS Text));

CREATE TABLE Paisagem ( Id INTEGER PRIMARY KEY, Local CHAR(20),

Fotografo CHAR(30),

Foto STILLIMAGE METRIC USING (Histograma DEFAULT, Textura),

Suportando Consultas por Similaridade em SQL

Definir ´ındices (opcional)

Consultas por similaridade podem ser realizadas mais rapidamente se forem criados ´ındices sobre os atributos complexos

M´etodos de acesso m´etrico (MAM)

PARTICULATE:

CREATE INDEX Geografia ON CidadeBR (Coordenada)

REFERENCES (Lat AS Latitute, Longit AS Longitude)

USING Euclidiana2D;

MONOLITHIC:

CREATE INDEX FotoPaisagem ON Paisagem (Foto)

Definir ´ındices (opcional)

Consultas por similaridade podem ser realizadas mais rapidamente se forem criados ´ındices sobre os atributos complexos

M´etodos de acesso m´etrico (MAM)

Exemplos:

PARTICULATE:

CREATE INDEX Geografia ON CidadeBR (Coordenada)

REFERENCES (Lat AS Latitute, Longit AS Longitude)

USING Euclidiana2D;

MONOLITHIC:

CREATE INDEX FotoPaisagem ON Paisagem (Foto)

Popular/atualizar a base de dados

Para a sintaxe do comando INSERT n˜ao foi necess´ario nenhuma altera¸c˜ao

A sintaxe dos comandos UPDATE e DELETE necessitam de novas constru¸c˜oes para expressar predicados por similaridade

Suportando Consultas por Similaridade em SQL

Especificar consultas

Comando SELECT

Novas constru¸c˜oes para predicados por similaridade

cl´ausula WHERE Jun¸c˜oes por similaridade

cl´ausula FROM

Novas constru¸c˜oes para suportar a an´alise de agrupamento por similaridade

Suportando Consultas por Similaridade em SQL

Especificar consultas

Comando SELECT

Novas constru¸c˜oes para predicados por similaridade

Sele¸c˜oes e jun¸c˜oes por similaridade

cl´ausula WHERE

Jun¸c˜oes por similaridade

cl´ausula FROM

Novas constru¸c˜oes para suportar a an´alise de agrupamento por similaridade

Suportando Consultas por Similaridade em SQL

Especificar consultas

Comando SELECT

Novas constru¸c˜oes para predicados por similaridade

Sele¸c˜oes e jun¸c˜oes por similaridade

cl´ausula WHERE Jun¸c˜oes por similaridade

cl´ausula FROM

Especificar consultas

Comando SELECT

Novas constru¸c˜oes para predicados por similaridade

Sele¸c˜oes e jun¸c˜oes por similaridade

cl´ausula WHERE Jun¸c˜oes por similaridade

cl´ausula FROM

Novas constru¸c˜oes para suportar a an´alise de agrupamento por similaridade

Especificar consultas

Comando SELECT

Sintaxe b´asica para expressar sele¸c˜oes por similaridade: <atributo> NEAR <valor>

[STOP AFTER <k >] [RANGE <ξ>]

Especificar consultas

Exemplos de sele¸c˜oes por similaridade: PARTICULATE:

SELECT * FROM CidadeBR

WHERE Coordenada NEAR (-22.02 AS Latitude,

47.89 AS Longitude) RANGE 2; SELECT Nome FROM CidadeBR

WHERE Coordenada NEAR (SELECT Lat AS Latitude,

Longit AS Longitude

FROM CidadeBR

WHERE Nome = ‘S~ao Carlos-SP’)

Especificar consultas

Exemplos de sele¸c˜oes por similaridade: MONOLITHIC:

SELECT * FROM Paisagem

WHERE Foto NEAR ‘c:\img09.jpg’ STOP AFTER 5;

SELECT * FROM Paisagem

WHERE Foto NEAR (SELECT Foto FROM Paisagem

Suportando Consultas por Similaridade em SQL

Especificar consultas

Sintaxe b´asica para expressar jun¸c˜oes por similaridade na cl´ausula WHERE:

<tabela1>‘.’<atributo1> NEAR [ANY] <tabela2>‘.’<atributo2>

[STOP AFTER <k >] [RANGE <ξ>]

T1.atr1NEAR T2.atr2RANGE ξ

jun¸c˜ao por abrangˆencia

T1.atr1 NEAR T2.atr2 STOP AFTER k

jun¸c˜ao pelos k-vizinhos mais pr´oximos

T1.atr1 NEAR ANY T2.atr2 STOP AFTER k

jun¸c˜ao dos k-pares de vizinhos mais pr´oximos

Especificar consultas

Sintaxe b´asica para expressar jun¸c˜oes por similaridade na cl´ausula WHERE:

<tabela1>‘.’<atributo1> NEAR [ANY] <tabela2>‘.’<atributo2>

[STOP AFTER <k >] [RANGE <ξ>]

Tipos de constru¸c˜oes:

T1.atr1NEAR T2.atr2RANGE ξ

jun¸c˜ao por abrangˆencia

T1.atr1 NEAR T2.atr2 STOP AFTER k

jun¸c˜ao pelos k-vizinhos mais pr´oximos

T1.atr1 NEAR ANY T2.atr2 STOP AFTER k

jun¸c˜ao dos k-pares de vizinhos mais pr´oximos

Especificar consultas

Exemplo de jun¸c˜ao por similaridade:

São Paulo Rio de Janeiro Vitória Belo Horizonte ξ ξ ξ ξ 11 . 0 = ξ CidadeBR CapitalSERq<d(),ξ> L 2

Especificar consultas

Exemplo de jun¸c˜ao por similaridade:

São Paulo Rio de Janeiro Vitória Belo Horizonte ξ ξ ξ ξ 11 . 0 = ξ CidadeBR CapitalSERq<d(),ξ> L 2 SELECT *

FROM CapitalSE, CidadeBR WHERE CapitalSE.Coordenada NEAR

CidadeBR.Coordenada RANGE 0.11;

Especificar consultas

Sintaxe para expressar jun¸c˜oes por similaridade na cl´ausula FROM:

<tabela1> {RANGE|NEAREST|CLOSEST} JOIN <tabela2>

ON <nome atr complexo1> {NEAR|FAR}

<nome atr complexo2>

Especificar consultas

Sintaxe para expressar jun¸c˜oes por similaridade na cl´ausula FROM:

<tabela1> {RANGE|NEAREST|CLOSEST} JOIN <tabela2>

ON <nome atr complexo1> {NEAR|FAR}

<nome atr complexo2>

Suportando Consultas por Similaridade em SQL

Especificar consultas

Sintaxe para expressar opera¸c˜oes de agrupamento por similaridade: Como resultado do processo de detec¸c˜ao de agrupamentos

rela¸c˜ao de agrupamentos encontrados

Cluster

rela¸c˜ao que associa cada objeto do conjunto de dados ao objeto central de seu agrupamento

Clustering

Para mostrar os agrupamentos de cada instˆancia do atributoFoto da tabelaPaisagemresultantes do processoPam FP

SELECT * FROM Clustering(Pam FP);

Para mostrar todos os agrupamentos de um atributoFoto resultantes do processoPam FP

Especificar consultas

Sintaxe para expressar opera¸c˜oes de agrupamento por similaridade: Como resultado do processo de detec¸c˜ao de agrupamentos

rela¸c˜ao de agrupamentos encontrados

Cluster

rela¸c˜ao que associa cada objeto do conjunto de dados ao objeto central de seu agrupamento

Clustering

Exemplos:

Para mostrar os agrupamentos de cada instˆancia do atributoFoto da tabelaPaisagemresultantes do processoPam FP

SELECT * FROM Clustering(Pam FP);

Para mostrar todos os agrupamentos de um atributoFoto resultantes do processoPam FP

Suportando Consultas por Similaridade em SQL

Especificar consultas

Para parametrizar as opera¸c˜oes de agrupamento por similaridade ´e preciso definir:

1 A m´etrica que deve ser utilizada 2 O n´umero de agrupamentos k

3 Qual algoritmo de detec¸c˜ao de agrupamentos utilizar

SET CLUSTERING <nome processo> METHOD <nome m´etodo>, METRIC <nome m´etrica>, K <valor inteiro> ON <nome tabela>.<nome atributo>;

Especificar consultas

Para parametrizar as opera¸c˜oes de agrupamento por similaridade ´e preciso definir:

1 A m´etrica que deve ser utilizada 2 O n´umero de agrupamentos k

3 Qual algoritmo de detec¸c˜ao de agrupamentos utilizar

Sintaxe:

SET CLUSTERING <nome processo> METHOD <nome m´etodo>, METRIC <nome m´etrica>, K <valor inteiro> ON <nome tabela>.<nome atributo>;

Suportando Consultas por Similaridade em SQL

No documento apresentacaoUFABC (páginas 88-121)

Documentos relacionados