Linguagem de Consultas com suporte a Preferências AULA 10 PPG107 - 2012 SISTEMAS DE BANCO DE DADOS...

34
Linguagem de Consultas com suporte a Preferências AULA 10 PPG107 - 2012 SISTEMAS DE BANCO DE DADOS – Pós-graduação em CC - UFU

Transcript of Linguagem de Consultas com suporte a Preferências AULA 10 PPG107 - 2012 SISTEMAS DE BANCO DE DADOS...

Page 1: Linguagem de Consultas com suporte a Preferências AULA 10 PPG107 - 2012 SISTEMAS DE BANCO DE DADOS – Pós-graduação em CC - UFU.

Linguagem de Consultas com suporte a Preferências

AULA 10 PPG107 - 2012

SISTEMAS DE BANCO DE DADOS –Pós-graduação em CC - UFU

Page 2: Linguagem de Consultas com suporte a Preferências AULA 10 PPG107 - 2012 SISTEMAS DE BANCO DE DADOS – Pós-graduação em CC - UFU.

Modelo de Preferência

R(A1,...,An) : esquema relacional Operadores de Preferências locais:

Atuam sobre os valores dos atributos. Permitem obter os melhores valores de acordo com

algum critério. Operadores de Preferências globais

Atuam sobre as tuplas Resultam de uma combinação de operadores locais Permitem obter as melhores tuplas de R(A1,...,An),

satisfazendo de acordo com algum critério.

Page 3: Linguagem de Consultas com suporte a Preferências AULA 10 PPG107 - 2012 SISTEMAS DE BANCO DE DADOS – Pós-graduação em CC - UFU.

Operadores Locais : Aproximação

AROUND <valor alvo> Favorece valores próximos de um valor alvo. Caso o valor alvo existe no banco de dados, este é

retornado. Caso contrário, o mais próximo deste valor é retornado.

BETWEEN [low,up] Favorece valores dentro do intervalo [low,up] Caso valores dentro do intervalo [low, up] existem, tais

valores são retornados. Caso contrário, os valores mais próximos de low ou up

são retornados.

Page 4: Linguagem de Consultas com suporte a Preferências AULA 10 PPG107 - 2012 SISTEMAS DE BANCO DE DADOS – Pós-graduação em CC - UFU.

Exemplo

SELECT * FROM VIAGENS

PREFERRING DURATION AROUND 14

SELECT * FROM VIAGENS

PREFERRING

START-DAY BETWEEN [1/9, 5/9]

Page 5: Linguagem de Consultas com suporte a Preferências AULA 10 PPG107 - 2012 SISTEMAS DE BANCO DE DADOS – Pós-graduação em CC - UFU.

Operadores Locais: Minimização, Maximização LOWEST (atributo)

Valores mínimos são privilegiados HIGHEST(atributo)

Valores máximos são privilegiados Versão SQL (agregados MIN e MAX)

Em PrefSQL é possivel aplicar LOWEST e HIGHEST sobre uma expressão aritmética envolvendo diversos atributos ou mesmo sobre o resultado de uma store procedure.

Page 6: Linguagem de Consultas com suporte a Preferências AULA 10 PPG107 - 2012 SISTEMAS DE BANCO DE DADOS – Pós-graduação em CC - UFU.

Exemplo

SELECT * FROM APART

PREFERRING HIGHEST(Area)

SELECT * FROM APART

PREFERRING LOWEST(Preço/Area)

Page 7: Linguagem de Consultas com suporte a Preferências AULA 10 PPG107 - 2012 SISTEMAS DE BANCO DE DADOS – Pós-graduação em CC - UFU.

Operadores Locais Favoritos / não-desejados

POS(Atributo,Pos-set) x < y se x não está em Pos-set e y ɛ Pos-set

NEG(Atributo,Neg-set) x < y se x ɛ Neg-set e y ε Neg-set

POS/NEG(Atributo,Pos-set,Neg-set) x < y se (x ɛ Neg-set e y ε Neg-set) ou (x ɛ Neg-set e x ɛ Pos-set e y ε Pos-set )

POS/POS(Atributo,Pos1-set,Pos2-set) x < y se (x ɛ Pos1-set e y ɛ Pos2-set) ou (x ɛ Pos1-set e x ɛ Pos2-set e y ɛ Pos1-set) ou

(x ɛ Pos1-set e x ɛ Pos2-set e y ɛ Pos2-set)

Page 8: Linguagem de Consultas com suporte a Preferências AULA 10 PPG107 - 2012 SISTEMAS DE BANCO DE DADOS – Pós-graduação em CC - UFU.

Exemplo

SELECT * FROM HOTELS

PREFERRING

POS/NEG (LOCAL,{centro,lidice},{umuarama})

Prefiro um hotel no centro ou no bairro lidice. Caso

não tenha nenhum disponível, pode ser qualquer um menos no umuarama.

Page 9: Linguagem de Consultas com suporte a Preferências AULA 10 PPG107 - 2012 SISTEMAS DE BANCO DE DADOS – Pós-graduação em CC - UFU.

Composição de Preferências Locais

Composição Pareto = todos os atributos tem igual importância t = (a1,…,an) s=(b1,…,bn) t > s se

Existe i talque ai > bi e Para todo j ≠ i, bj não é melhor do que aj (ou

ambos são indiferentes, ou aj > bj)

Page 10: Linguagem de Consultas com suporte a Preferências AULA 10 PPG107 - 2012 SISTEMAS DE BANCO DE DADOS – Pós-graduação em CC - UFU.

Exemplo

SELECT * FROM HOTELS

PREFERRING

POS/NEG (LOCAL,{centro,lidice},{umuarama})

AND

Preço BETWEEN [110, 150]

Page 11: Linguagem de Consultas com suporte a Preferências AULA 10 PPG107 - 2012 SISTEMAS DE BANCO DE DADOS – Pós-graduação em CC - UFU.

Introduzindo ordem de importância entre os atributos CASCADE

Associa diferentes níveis de importância às preferências locais

Aplica uma preferência após a outra. A ordem em que são apresentadas as

preferências é igual à ordem de importância entre os atributos

Page 12: Linguagem de Consultas com suporte a Preferências AULA 10 PPG107 - 2012 SISTEMAS DE BANCO DE DADOS – Pós-graduação em CC - UFU.

Exemplo

SELECT * FROM HOTELS

PREFERRING

POS/NEG (LOCAL,{centro,lidice},{umuarama})

CASCADE

Preço BETWEEN [110, 150]

CASCADE

Dog-Accepted = ‘sim’

Page 13: Linguagem de Consultas com suporte a Preferências AULA 10 PPG107 - 2012 SISTEMAS DE BANCO DE DADOS – Pós-graduação em CC - UFU.

Combinando composição Pareto com CascadeExemplo: cliente comprando um carro usado.CARRO(MARCA,CATEGORIA,PREÇO,COR,POTENCIA,KM)

(1) Meu carro favorito deve ser da marca Chevrolet. Não admito outra marca de carro. Restrição forte sobre MARCA – não se trata de uma

preferência, mas de uma exigência.

(2) Prefiro que seja uma caminhonete, mas se não tiver, prefiro que não seja van.

Preferência POS/NEG sobre CATEGORIA

Page 14: Linguagem de Consultas com suporte a Preferências AULA 10 PPG107 - 2012 SISTEMAS DE BANCO DE DADOS – Pós-graduação em CC - UFU.

Combinando composição Pareto com Cascade - continuação(3) Igualmente importante, quero gastar em torno de 40

mil reais e o carro deve ser tão potente quanto possível.

Preferência AROUND sobre PREÇO e HIGHEST sobre POTENCIA

(4) Menos importante para mim é a cor, embora se for para escolher, prefiro vermelho.

Preferência POS sobre COR

(5) Se houver muitas opções possiveis, decido pelo que tem menos quilômetros rodados.

Preferência LOWEST sobre KM

Page 15: Linguagem de Consultas com suporte a Preferências AULA 10 PPG107 - 2012 SISTEMAS DE BANCO DE DADOS – Pós-graduação em CC - UFU.

Combinando composição Pareto com Cascade - continuação

SELECT * FROM CARRO

WHERE MARCA = ‘Chevrolet’

PREFERING

POS-NEG(CATEGORIA,{Caminhonete},{Van})

AND PREÇO AROUND 40000

AND HIGHEST(POTENCIA)

CASCADE POS(COR,{Vermelho})

CASCADE LOWEST(KM)

Page 16: Linguagem de Consultas com suporte a Preferências AULA 10 PPG107 - 2012 SISTEMAS DE BANCO DE DADOS – Pós-graduação em CC - UFU.

Funções de Qualidade

Tuplas selecionadas ou rejeitadas pela cláusula WHERE: razão da aceitação ou rejeição é clara – não

satisfaz a condição especificada.

Tuplas selecionadas ou rejeitadas pela cláusula PREFERRING : Razão da aceitação ou rejeição não é clara –

não depende somente da tupla, mas também de seus competidores.

Page 17: Linguagem de Consultas com suporte a Preferências AULA 10 PPG107 - 2012 SISTEMAS DE BANCO DE DADOS – Pós-graduação em CC - UFU.

As Funções de Qualidade

TOP(A) : verdadeiro se o valor para o atributo A é o melhor.

LEVEL(A) = n se o valor do atributo A dista do valor optimal de n unidades. O valor optimal está no nível 1.

DISTANCE(A) : para atributos numéricos.DISTANCE(A) = n se

| valor(A) – valor optimal | = n

Page 18: Linguagem de Consultas com suporte a Preferências AULA 10 PPG107 - 2012 SISTEMAS DE BANCO DE DADOS – Pós-graduação em CC - UFU.

ExemploCarro MARCA COR KM

Alfa Ro Branco 19Honda Verde 19Jaguar Amar. 35Audi Verm. 40

Mercedes Verm 43Toyota Amar. 51

SELECT MARCA, COR, KM, LEVEL(COR), DISTANCE(KM)FROM CARROPREFERRING POS-POS(COR, {branco}, {Amarelo}) AND KM AROUND 40

t1t2t3t4

t5t6

t1 t2

t3t4 t5

t6

t3

Page 19: Linguagem de Consultas com suporte a Preferências AULA 10 PPG107 - 2012 SISTEMAS DE BANCO DE DADOS – Pós-graduação em CC - UFU.

MARCA COR KM L(COR) DIST(KM)

Audi Verm. 40

Jaguar Amar. 35

Alfa Ro Branco

3 0

2 5

19 1 21

Exemplo - continuação

RESULTADO

t4

t3

t1

Page 20: Linguagem de Consultas com suporte a Preferências AULA 10 PPG107 - 2012 SISTEMAS DE BANCO DE DADOS – Pós-graduação em CC - UFU.

Controle de Qualidade

Utilizado para retornar melhores alternativas, quando as preferências não podem ser totalmente satisfeitas.

Utilizada também quando o usuário estabelece um certo grau de qualidade para as respostas.

Page 21: Linguagem de Consultas com suporte a Preferências AULA 10 PPG107 - 2012 SISTEMAS DE BANCO DE DADOS – Pós-graduação em CC - UFU.

Exemplo

Um cliente de uma agência de viagens procura um “pacote” que tenha início por volta do dia 3 de Julho e dure aproximadamente 2 semanas. Mas não aceita variações acima de dois dias para cada critério.

SELECT *

FROM VIAGEM

PREFERRING start_day AROUND ‘3/7/2009’

AND DURATION AROUND 14

BUT ONLY DISTANCE(start_day) <= 2

AND DISTANCE(duration) <= 2

Page 22: Linguagem de Consultas com suporte a Preferências AULA 10 PPG107 - 2012 SISTEMAS DE BANCO DE DADOS – Pós-graduação em CC - UFU.

Bloco básico de PrefSQL

SELECT <Lista atributos, funções de qualidade>

FROM < tabelas>

WHERE <condições>

PREFERRING <condições de preferência>

GROUPING <lista de atributos>

BUT ONLY <condições but_only>

ORDER BY <lista de atributos>

Page 23: Linguagem de Consultas com suporte a Preferências AULA 10 PPG107 - 2012 SISTEMAS DE BANCO DE DADOS – Pós-graduação em CC - UFU.

Semântica de PrefSQL

Executa as operações de junção da cláusula FROM e seleciona as tuplas verificando as condições da cláusula WHERE. Obtém-se assim uma relação R.

Encontra as tuplas optimais com relação às preferências da cláusula PREFERRING.

As tuplas optimais pertencentes à relação R são retornadas caso exista alguma nestas condições.

Caso contrário: considera todas as tuplas de R satisfazendo a condição BUT ONLY e retorna aquelas que não são dominadas.

Page 24: Linguagem de Consultas com suporte a Preferências AULA 10 PPG107 - 2012 SISTEMAS DE BANCO DE DADOS – Pós-graduação em CC - UFU.

Plano de Execução básico

R1 Rn…

WHERE ----: SELEÇÃO

SelectBest ---: SELECIONA TUPLAS NÃO-DOMINADAS

SELECT ------: PROJEÇÃO

FROM ----: OPERADOR DE JUNÇÃO

BEST-: TUPLASOPTIMAIS satisfazendo condição do Where

BUT-ONLY

≠ ø

= ø

Page 25: Linguagem de Consultas com suporte a Preferências AULA 10 PPG107 - 2012 SISTEMAS DE BANCO DE DADOS – Pós-graduação em CC - UFU.

Exemplo

t1 t7

t2

t4

t3t6

t5

Não satisfaz a restrição “hard”da cláusula where

Tuplaideal

t2 e t4 são as melhores satisfazendo as preferências

t2 satisfaz a restrição but-onlyt4 não satisfaz a restrição but-only

Resposta: t2

Banco de dados só contémt2, t4, t5, t7

Page 26: Linguagem de Consultas com suporte a Preferências AULA 10 PPG107 - 2012 SISTEMAS DE BANCO DE DADOS – Pós-graduação em CC - UFU.

Características da versão 1.3

Consultas de PREFSQL podem ser invocadas como sub-consulta do comando INSERT.

Sub-consultas da cláusula WHERE não podem conter a cláusula PREFERRING.

A cláusula ORDER BY não aceita ordenação por valores de uma função de qualidade.

Ordenação por função de qualidade deve ser codificada de forma ad-hoc.

Page 27: Linguagem de Consultas com suporte a Preferências AULA 10 PPG107 - 2012 SISTEMAS DE BANCO DE DADOS – Pós-graduação em CC - UFU.

Implementação de PrefSQL

Implementação iniciou em 1997- grupo alemão da Universidade de Augsburg. Primeira versão comercial em 1999.

Consultas com preferências são traduzidas em consultas SQL.

Um driver JDBC de Preferências se responsabiliza por esta tradução e otimização.

Em seguida o driver JDBC standard de SQL envia a consulta para o SGBD.

O otimizador SQL do SGBD otimiza a consulta mais uma vez.

O plano de execução mais adequado é executado pelo SGBD.

Page 28: Linguagem de Consultas com suporte a Preferências AULA 10 PPG107 - 2012 SISTEMAS DE BANCO DE DADOS – Pós-graduação em CC - UFU.

Esquema Geral

Aplicação (ex. e-comércio) Driver JDBC de Preferências

Otimizador de Preferências

Driver JDBC standard do SQLSQL do SGBD

Page 29: Linguagem de Consultas com suporte a Preferências AULA 10 PPG107 - 2012 SISTEMAS DE BANCO DE DADOS – Pós-graduação em CC - UFU.

Procedimento Geral para encontrar as melhores tuplas

1. Max:= ø

2. Seleciona uma tupla t1 em R

3. Insere t1 em Max se não existe nenhuma tupla t2 em R que é melhor do que t1.

4. Repete passos (2) e (3) até que todas as tuplas foram selecionadas.

5. Retorna Max = tuplas não-dominadas.

Page 30: Linguagem de Consultas com suporte a Preferências AULA 10 PPG107 - 2012 SISTEMAS DE BANCO DE DADOS – Pós-graduação em CC - UFU.

Otimizador de Preferências

Pode invocar algoritmos específicos (bibliotecas) para encontrar as melhores tuplas.

OU Pode invocar um tradutor que transforma a

consulta com preferência em uma consulta SQL normal.

Cabe ao otimizador de preferências analisar qual a melhor política.

Page 31: Linguagem de Consultas com suporte a Preferências AULA 10 PPG107 - 2012 SISTEMAS DE BANCO DE DADOS – Pós-graduação em CC - UFU.

Exemplo

Select * FROM CARROSPREFERRING MARCA = ‘Audi’ ANDDIESEL = ‘sim’

Semântica Pareto: t1 > t2 se

t1(MARCA) = ‘Audi’ E t2(MARCA) ≠ ‘Audi’ E t1(DIESEL) = t2(DIESEL)

t1(MARCA) = ‘Audi’ E t2(MARCA) ≠ ‘Audi’ E t2(DIESEL) = ‘não’

t1(DIESEL) = ‘sim’ E t2(DIESEL) = ‘não’ E t1(MARCA) = t2(MARCA)

t1(DIESEL) = ‘sim’ E t2(DIESEL) = ‘não’ E t2(MARCA) ≠ ‘Audi’

Page 32: Linguagem de Consultas com suporte a Preferências AULA 10 PPG107 - 2012 SISTEMAS DE BANCO DE DADOS – Pós-graduação em CC - UFU.

Tradução em SQL

Create View Aux ASSELECT *, CASE WHEN MARCA = ‘Audi’ THEN 1 ELSE 2 END AS MARCA-

LEVEL, CASE WHEN DIESEL = ‘Sim’ THEN 1 ELSE 2 END AS DIESEL-LEVELFROM CARROS;

AUX MARCA MODELO KM DIESEL MARCA-LEVEL DIESEL-LEVEL 1 1 1 2 2 1 2 2

Page 33: Linguagem de Consultas com suporte a Preferências AULA 10 PPG107 - 2012 SISTEMAS DE BANCO DE DADOS – Pós-graduação em CC - UFU.

Tradução em SQL

INSERT INTO MAX

SELECT MARCA, MODELO, KM, DIESEL FROM AUX A1

WHERE NOT EXISTS

(SELECT * FROM AUX A2

WHERE (A2.MARCA-LEVEL < A1.MARCA-LEVEL AND

A2.DIESEL-LEVEL <= A1.DIESEL-LEVEL)

OR

(A2.DIESEL-LEVEL < A1.DIESEL-LEVEL AND

A2.MARCA-LEVEL <= A1.MARCA-LEVEL)

Page 34: Linguagem de Consultas com suporte a Preferências AULA 10 PPG107 - 2012 SISTEMAS DE BANCO DE DADOS – Pós-graduação em CC - UFU.

Discussão

PrefSQL não é uma extensão de SQL standard. Não tem um poder de expressão maior.

SQL3 é mais expressivo do que SQL standard SQL3 permite consultas recursivas É provado que não é possivel realizar consultas

recursivas somente com os operadores do SQL standard.

Qualquer operador de otimalidade que tem a semântica BMO (Best Matches Only) pode ser expresso com os operadores do SQL standard.