Você está na página 1de 28

Banco de Dados de Restries,

Multimdia e GIS
Jairo Coutinho (jco)
CIn-UFPE

Programao por restries:


definio e origens
Paradigma criado para problemas de busca difcil
incorpora tcnicas de matemtica, inteligncia artificial e
pesquisa operacional
permite rpido desenvolvimento de programas, economia
de manuteno e eficincia
pioneiro: Sketchpad system (1963, Sutherland),
linguagem por restries para interaes grficas
modelagem declarativa e garantia de satisfao eficiente

Algoritmo = Lgica + Controle


Restries para programao multidirecional
Programao em Lgica por restrio

Programao por restries:


definio e origens

Problemas de satisfao de restries (CSP)


investigados em busca e IA desde muito tempo
jogos (ex, n-rainhas) e problemas benchmark (ex, colorao de
mapa)
resoluo de tais problemas recentemente incorporadas a
linguagens de programao

Buscas inteligentes e flexveis


permitir que o usurio final possa controlar a busca
combinando tcnicas genricas de busca cega
com heursticas para problemas especficos

Programao por restries:


exemplo, colorao de mapa
Simulao passo a passo...
A= green
B = green (falha c/ A)
B=red
C=green (falha c/ A)
C= red
D=green
E= green (falha c/ A)
E= red (falha c/ B)
E= blue
F=green (falha c/ D)
F=red (falha c/ C)
F = blue (falha c/ E)
F backtracking
E backtracking
D=red
E=green (falha c/ A)
E= red (falha c/ B)
E= blue
F=green

variveis: A,B,C,D,E,F
domnio: Da=Db...=Df={green,red,blue}
restries:
A B; A C; A E; B E; B
F; C E; C F; D F; E
F

C
E
F

Programao por restries:


aplicaes prticas
alocao de recursos, agendamento
planejamento financeiro, manuteno, localizao,
gerenciamento de investimento.
projeto e implementao de interface grfica (ex,
Object Technology International).
escalonamento baseado em restries, com aplicao na
indstria pesada (ex, NASA, foras armadas)
projeto e integrao de circuitos digitais, e controle
tempo real.
banco de dados e comrcio eletrnico

Programao por restries:


paradigmas, linguagens e sistemas

Paradigmas:

Imperativo x Restries
Funcional
Lgico
OO

3 paradigmas bsicos: imperativo, funcional, lgico


OO e Restries so meta-paradigmas que podem ser
implementados como camada acima de cada dos bsicos
Constraint Logic Programming (CLP):

CLP(R), Prolog III, ECLiPSe, LIFE

Constraint Functional Programming:


Oz

Constraint Imperative Programming:


2LP(C++), CHIP(C++)

Programao por restries:


domnios e operadores

Domnios Finitos (FD)


Domnios: , , strings, f(a, ...,b) com a,... b constantes simblicas
Operadores: +, -, *. /, <, >, <=, => etc..

Conjuntos
Domnios: (), (), ..., ({f(a, ...,b) / a, ..., b , }
Operadores: inter, union, set-diff, etc

Intervalos
Domnios: [ ] Implementa variveis que variam sobre Inteiros e
Reais. Baseados resolvedores aritmticos.

Reais (RIA - Real Number Interval Arithmetic)


Capaz de resolver problemas sobre os reais.
Funes Reais j implementados

Programao em lgica com restries (CLP)

clausulas de Horn proposicionais:

C P1 ... PN

estender equaes entre termos


da PL
com inequaes e outras
restries

em lgica de predicados,
necessidade de tratar das
variveis
p(a) q(b,Z), r(Z)
p(X)

Unificao: dois termos podem


ser unificados se h valores na
consulta que faam os termos
iguais.

P(X) X = a, Y = b, q(Y,Z), r(Z)

Idia da CLP:

ex, P(X) X > 1, Y = b, q(Y,Z), r(Z)

Programao em lgica com restries


CLP admite somente clausulas de Horn
Programas CLP podem ser explicitamente escritos,
exceto que no lugar de equaes existem restries mais

gerais

CLP(X) com sua semntica define domnio de restries


Resolvedor necessrio para garantir a corretude e
completude para o algoritmo CLP(X)

Exemplo de CLP:
dieta em ECLIPSE

Programa

dieta(A,M,D) :- I>0, J>0, K>0, I+J+K


10, entrada(A,I), principal(M,J),
sobremesa(D,K).
principal(M,I) :- carne(M,I).
principal(M,I) :- peixe(M,I).
entrada(rabanete,1).
entrada(massa,6).
carne(fil,5)
carne(porco,7)
peixe(solha,2)
peixe(atum,4)
sobremesa(fruta,2)
sobremesa(sorvete,6)

Resoluo

@dieta(X,Y,Z)
X=A, Y=M, Z=D , I+J+K 10 ,I>0,
J>0, K>0 @ entrada(A,I),
principal(M,J), sobremesa(D,K)
X=rabanete, Y=M, Z=D , 1+J+K 10
, J>0, K>0 @ principal(M,J),
sobremesa(D,K)
X=rabanete, Y=M, Z=D , 1+J+K 10
, J>0, K>0 @ carne(M,J),
sobremesa(D,K)
X=rabanete, Y=fil, Z=D, 1+5+K 10
K>0 @ sobremesa(D,K)
X=rabanete, Y=fil, Z=fruta@

BD de restries: motivao e agenda


Programao por restrio

Alta declaratividade com equaes e


inequaes entre variveis lgicas
Deduo em lgica da 1a ordem
Completude computacional
Resoluo de restries eficiente
em domnios predefinidos
Codificao direta e bem
fundamentada das restries de
integridade
Fornece modelos de dados relacional
e dedutivo como casos particulares

Banco de dados

Persistncia
Otimizao de acesso a memria
segundaria
Acesso concorrente
Recuperao
Linguagem de manipulao

Vises e dados derivados


Restries de integridades
Manipulao dinmica de esquema
Utilitrios administrativos

BD de resties

Tupla generalizada: viso dos BD relacionais


no paradigma de programao por restries
Idia de BD de restries: ver uma tupla como conjunto
de restries sobre um dado domnio de restries
Tupla generalizada = tupla anotada com restries entre
valores dos seus elementos: pj(X1, ... , Xk) | C
Ex, tupla pessoa simples:

Em relacional: (Bruce,Willis,GroupLeader,01/05/90)
Como restries: {(FN,LN,Pos,Date)| FN=Bruce LN=Willis
Pos=GroupLeader Date=01/05/90}

Generalizada com inequao: {(FN,LN,Pos,Date)| FN=Bruce


LN=Willis Pos=GroupLeader
01/01/95 Date Date 01/05/90}

Numero finito de tuplas generalizadas podem


representar infinidade de tuplas relacionais

Agentes, armazm e
resolvedores de restries

Armazm:
aplica informao parcial sobre uma varivel, expressa como uma
restrio da mesma
um modelo que trate das restries primitivas de um domnio
aproximao da uma soluo intermediria da consulta corrente

Resolvedor (computao global centralizada):


verifica automaticamente a consistncia de cada nova primitiva
passada com as existentes no armazm

Agentes (computao local distribuda):

daemons tratando de um conjunto dado variveis


disparados por alterao da faixa de uma dessas no armazm
propagada efeito dessa alterao nas suas outras variveis
manda novas faixas para a armazm e suspende-se
o estado corrente da computao distribudo entre armazm e
agentes

Exemplo de resoluo de restries por meio


de agentes, armazm e resolvedores
Quatro agentes trabalhando no problema:
3 X, X 1, X Y, Y X
A1 aplica 3 X, A2 aplica X 1, A3 aplica X Y, A4 aplica Y X

A1
=3

A2
X=1

A3

A4

Y=3 Y=2
X=2 =2
Y=2 Y=3
X

Step
1
2
3
4

Arquiteturas de BD de restries

Acoplamento fraco:
idia: armazenar restries persistentemente num BD relacional
+ reaproveita servios de BD como indexao e otimizao de
acesso a memria secundria e de gerenciamento de transaes
+ desenvolvimento rpido
- overhead de converso de restrio para relao
- ineficincia e perda de significado

Acoplamento forte:

+
+

idia: tornar restries persistentes


sem perda de significado, nem overhead de converso
reimplementao no novo paradigma de todos os servios de BD
desenvolvimento custoso
conceitualmente bem fundamentada
escalabilidade, extensibilidade, etc.

BD de restries: sistemas implementados

ECLIPSE/MegaLog
ECLiPSe: linguagem de programao em lgica por restries
implementando CLP(R), CLP(FD), CLP(Intervalos), CLP(Conjuntos),
CLP(Estruturais)
Megalog pode armazenar variveis de restrio e suporta
indexao multidimensional
Falta uma linguagem de consulta de restries integrada,
indexao e otimizao

DISCO
implementadas: intervalos ordenados de inteiros e conjuntos
ordenados
linguagem de consulta baseada na lgica e no-procedimental
usurios pode representar entradas na base usando restries
incorpora vrios mtodos de otimizao

BD de restries sistemas implementados

C3

modelo de dados e linguagem de consulta: LiriC


baseada no paradigma de OO
incorpora restries para a descrio de informaes espaotemporal em BD de restries
trata cada objeto de restrio separadamente
expressividade e eficincia

BD de restries:
limitaes do estado da arte
Tcnicas de otimizao ainda no madura para grande
massas de dados
Abordagem de restries puras ainda no fornecem
todas os servios de BD (segurana, transaes etc.)
Pouca integrao com sintaxe e formalismos de massa
Paradigma de programao por restries pouco
divulgado e ensinado
Falta de um padro
Porm:

conceitualmente muito elegante, expressivo, verstil e otimizvel


e ento promissor
j usada para BD temporais, espaciais, multimdia e distribudas
heterogneas

BD multimdia: definio e questes

Novos tipos de dados:


imagens, grficos, texto, udio, discurso, vdeo, mdia gerada

Dificuldades de tratar desses separadamente:


no suportados como built-in por linguagens de programao de
propsito gerais ou por linguagens de consulta de BD

produo, manipulao e apresentao requer dispositivos e


ferramentas especiais

tamanho (de MB a TB no mnimo)


estrutura e semntica interna complexa

novas linguagens de consultas expressivas


consultas aproximativas (reconhecimento de padro)

dependncia do tempo (ex, udio)

Inter-relacionamento entre:
informaes representadas por diferentes mdias (ex, legenda de
uma imagem, imagem de texto escaneado)
sincronizao de dados em vrias mdias temporais (ex,
animaes, vdeo)

BD multimdia: definio e questes

Armazenamento de informaes

referncias externas
campos longos
uso de funes externas
sistemas extensveis e orientados a objetos

Modelagem dos dados multimdia


diferentes tcnicas de compresso (udio e vdeo)

Recuperao de informao
trechos especficos, composio de novas mdias
metaconhecimento

Arquitetura
protocolo de transporte

BD espaciais e GIS: definio e questes


Armazenamento compacto de grande massas de dados
espaciais (representaes baseadas em pontos no viveis
para muitas aplicaes)
Raciocnio geomtrico sofisticado e eficiente

ex, interseo, opacidade, navegao, alocao de espao., etc.

Ontologia espacial
Indexao multidimensional dos objetos geomtricos
Linguagem de consulta especializada

BD espaciais e GIS: abordagens

Abordagens principais:
BDOO: retngulos, polgonos e objetos espaciais mais complexos
so naturalmente representados
BD de restries
representao conjunto de pontos e polgonos de modo natural.
permite a avaliao de predicados consulta espacial como
interseo e distncia.
Otimizao de tcnicas de indexao multidimencional

BD espao temporal: definio e questes

Ausncia de uma padro


proliferao de diferentes:

modelos lgicos e fsicos de dados


linguagens de consulta

variedade das necessidades das aplicaes dificulta padronizao


necessidade de interoperabilidade

BD de restries
muitos modelos espaciais, temporais e espao temporais so
casos particulares do modelo abstrato das tuplas generalizadas
Linguagens de restries excelente candidata como lngua franca
para interoperabilidade entre diferentes bancos espaciais,
temporais e espao-temporal

Integrao de dados e
interoperabilidade em BD distribudos

BD de restries generaliza:

BD relacionais
BD dedutivas
BD espaciais
BD temporais

Fornece servios e capacidade de modelagem ortogonal


s fornecidas pelos BDOO
BDOO de restries excelente candidato para tornar-se
padro universal de interoperabilidade entre aplicaes
avanadas
Porm, no sub-estima SQL:2999 ! :)

Exemplo interoperabilidade via restries:


BD Temporal

Relao dos pesquisadores


Nom e

Com pany

F ro m

To

A n d e rs o n

A T& T

1980

1993

B ro w n

IB M

1985

1996

C la rk

Lotus

1990

1991

Representando como tupla generalizada


reseacher(name,comp,t) :- name=Anderson, comp = AT&T,
1980t, t 1993
reseacher(name,comp,t) :- name=Brown, comp = IBM,
1985t, t 1996
reseacher(name,comp,t) :- name=Clark, comp = AT&T,
1990t, t 1991

Exemplo interoperabilidade via restries:


BD Espacial
11
10
9
8
7
6
5
4
3
2
1

Representao em tupla
generalizada

r1

l1
p2

object(p1,x,y) :- x=10, y=4


object(l1,x,y) :- 5x, x9, y = -x+15

p1

t1

object(l1,x,y) :- x=9, 3y, y6


1

10

11

12

ID

x'

y'

x ''

y ''

p1

10

10

10

l1

10

l1

t1

r1

11

11.5

11

r1

11.5

11

11.5

p2

p2

p2

object(t1,x,y) :- 2x, x6, 3y, y7,


y -x+9
object(r1,x,y) :- 1x, x11.5, 2y11
object(p2,x,y) :- x3, y5, yx-1,
yx+5, y -x+13

Exemplo interoperabilidade via restries:


BD Espao-Temporal
Representao em tupla
generalizada

1994-1996

11
10
9
8
7
6
5
4
3
2
1

r1

1995-1996

l1

p2
1991-1996

t1

p1

1975-1990

1980-1986

10

11

12

ID

x'

y'

x ''

y ''

F ro m

To

p1

10

10

10

1980

1986

l1

10

1995

1996

l1

1995

1996

t1

1975

1990

r1

11

1 1 .5

11

1994

1996

r1

1 1 .5

11

1 1 .5

1994

1996

p2

1991

1996

p2

1991

1996

p2

1991

1996

object(p1,x,y) :- x=10, y=4,


1980t, t1996
object(l1,x,y) :- 5x, x9, y = -x+15,
1995t, t1996
object(l1,x,y) :- x=9, 3y, y6,
1995t, t1996
object(t1,x,y) :- 2x, x6, 3y, y7,
y -x+9, 1975t, t1990
object(r1,x,y) :- 1x, x11.5, 2y11,
1994t, t1996
object(p2,x,y) :- x3, y5, yx-1,
yx+5, y -x+13,
1991t, t1996

BD de restries: concluso
Estende BD relacionais e dedutivas
Permite implementar elegantemente BD espaciais,
temporais, multimdia e interoperabilidade em BD
distribudas heterogneas
Resolve impedance-mismatch (j que programao por
restries computacionalmente completa)
Reaproveita de tcnicas de IA (busca heurstica),
pesquisa operacional e matemtica para conseguir
eficincia
Vasto leque de aplicaes prticas e industriais
Apenas na fase inicial em termos de:

Implementao de SGBD
Divulgao e ensino do formalismo
Padronizao

Você também pode gostar