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¸c˜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 FROMNovas 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 WHEREJun¸c˜oes por similaridade
⇒
cl´ausula FROMNovas 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 FROMEspecificar 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 FROMNovas 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ˆenciaT1.atr1 NEAR T2.atr2 STOP AFTER k
⇒
jun¸c˜ao pelos k-vizinhos mais pr´oximosT1.atr1 NEAR ANY T2.atr2 STOP AFTER k
⇒
jun¸c˜ao dos k-pares de vizinhos mais pr´oximosEspecificar 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ˆenciaT1.atr1 NEAR T2.atr2 STOP AFTER k
⇒
jun¸c˜ao pelos k-vizinhos mais pr´oximosT1.atr1 NEAR ANY T2.atr2 STOP AFTER k
⇒
jun¸c˜ao dos k-pares de vizinhos mais pr´oximosEspecificar 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
⇒
Clusterrela¸c˜ao que associa cada objeto do conjunto de dados ao objeto central de seu agrupamento
⇒
ClusteringPara 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
⇒
Clusterrela¸c˜ao que associa cada objeto do conjunto de dados ao objeto central de seu agrupamento
⇒
ClusteringExemplos:
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>;