Banco de Dados de Restrições, Multimídia e GIS

Slides:



Advertisements
Apresentações semelhantes
Introdução à Programação: uma Abordagem Funcional PD I – Engenharia Elétrica Prof.ª Claudia Boeres 2008/2.
Advertisements

Amintas engenharia.
Sistemas distribuídos Metas de Projeto Prof. Diovani Milhorim
Curso: Banco de Dados I Análise de Sistemas PUC Campinas
Evolução dos SGBD’s (2ª Parte).
Lógica Matemática e Computacional 7 – Introdução à Programação Lógica
Introdução à Programação uma Abordagem Funcional Programação I Prof.ª Claudia Boeres CT VII - Sala 32 Departamento de Informática Centro.
Resumo 1.1) Introdução 1.2) Abordagem Convencional de Arquivos
Paradigmas de Programação
SISTEMAS DE INFORMAÇÃO
Engenharia de Software
SAD - SISTEMA DE APOIO À DECISÃO Prof. Wagner Andrade
Maurício Edgar Stivanello
MULTIMÍDIA Mídia, Multimídia e Sistema Multimídia (Slide - 2)
Banco de Dados Dedutivo
Introdução aos Sistemas Gerenciadores de Banco de Dados
Professora: Aline Vasconcelos
Agentes Baseados em Conhecimento
Bancos de Dados com Objetos
PLANEJADORES PRÁTICOS Jacques Robin DI-UFPE Planejamento de Ordem Parcial (POP) com linguagem STRIPS * mais expressivo que resolução de problema * porque.
Jacques Robin, DI-UFPE Prolog: comparação com outras linguagens de programação e de representação do conhecimento Jacques Robin, DI-UFPE.
Programação em lógica e lógica
FACENS – Engenharia da Computação Inteligência Artificial
Conceitos Básicos Dado: fato do mundo real que está registrado e possui um significado implícito no contexto de um domínio de aplicação Exemplos: endereço,
Material III-Bimestre Wagner Santos C. de Jesus
Prof. Alexander Roberto Valdameri
Prof. Alexander Roberto Valdameri
Inteligência Artificial
Administração de Sistemas de Informação Banco de Dados
Universidade do Vale do Rio dos Sinos
CONCEITOS Modelo de Dados
Middleware e Sistemas Distribuídos
Arquitetura e Linguagens
A área de banco de dados Cristina Paludo Santos –
I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados.
I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados.
Tecnologias de Linguagens para Banco de Dados
1 Introdução aos Agentes Inteligentes Flávia Barros.
Sistemas Distribuídos
Laboratório de Programação I Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Modelos de Dados para Bancos de Dados Móveis
Projeto de Banco de Dados
Marcílio C. P. de Souto DIMAp/UFRN
Exercícios SGBD - CESPE
Tópicos Avançados em Inteligência Artificial
Contexto da disciplina
CSP-Z Disciplina: Especificação de Sistemas Distribuídos Mestrado em Ciências da Computação Aleciano Jr. Leonilson Barbosa
Banco de Dados Aplicado ao Desenvolvimento de Software
INTRODUÇÃO À PROGRAMAÇÃO EM LÓGICA Profa. Joseluce de Farias Cunha
Campus de Caraguatatuba Aula 2: Introdução a Tecnologia de BD
Introdução a Banco de Dados Aula 04
Sistemas Especialistas
Requisitos de Software
Programação Lógica com Prolog
Integração de Ferramentas CASE
Mestrado em Engenharia de Computação área de concentração Geomática
Desenvolvimento de Software Dirigido a Modelos
Banco de Dados e Internet
Projeto de Banco de Dados
Professor: Leandro Chernicharo.  Uma coleção de dados relacionados;  Dados  Fatos conhecidos que podem ser gravados e têm um significado implícito.
INTELIGÊNCIA ARTIFICIAL Grupo: Amora Figueiredo Érika Diniz
UCSal – Bacharelado em Informática Banco de Dados Profa. Semíramis Assis
S I S T E M A S M U L T I M Í D I A Prof. Welington Fraga Rizo.
Banco de Dados Distribuídos Sílvia Cristina de Matos Soares
Sistemas Multimídia Distribuídos
Comunicação Multimídia. Sub-sistema de Aplicação Computação colaborativa = CSCW Dimensões de colaboração –tempo trabalho cooperativo assíncrono trabalho.
Copyright © 2011 Ramez Elmasri and Shamkant Navathe slide 1 Tópicos  Introdução  Um exemplo  Características da abordagem de banco de dados  Vantagens.
Modelagem de dados XML Yago Zacarias Gomes Coutinho Ribeiro
Bruna Cavallero Martins Universidade Católica de Pelotas.
Modelagem de Banco de Dados: Conceitos
Transcrição da apresentação:

Banco de Dados de Restrições, Multimídia e GIS Jairo Coutinho (jco) CIn-UFPE

Programação por restrições: definição e origens Paradigma criado para problemas de busca difícil incorpora técnicas de matemática, inteligência artificial e pesquisa operacional permite rápido desenvolvimento de programas, economia de manutenção e eficiência pioneiro: Sketchpad system (1963, Sutherland), linguagem por restrições para interações gráficas modelagem declarativa e garantia de satisfação eficiente Algoritmo = Lógica + Controle Restrições para programação multidirecional Programação em Lógica por restrição

Programação por restrições: definição e origens Problemas de satisfação de restrições (CSP) investigados em busca e IA desde muito tempo jogos (ex, n-rainhas) e problemas benchmark (ex, coloração de mapa) resolução de tais problemas recentemente incorporadas a linguagens de programação Buscas inteligentes e flexíveis permitir que o usuário final possa controlar a busca combinando técnicas genéricas de busca cega com heurísticas para problemas específicos

Programação por restrições: exemplo, coloração de mapa Simulação 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) F=green variáveis: A,B,C,D,E,F domínio: Da=Db...=Df={green,red,blue} restrições: A  B; A  C; A  E; B  E; B  F; C  E; C  F; D  F; E  F A B C D E F B A C E F D

Programação por restrições: aplicações práticas alocação de recursos, agendamento planejamento financeiro, manutenção, localização, gerenciamento de investimento. projeto e implementação de interface gráfica (ex, Object Technology International). escalonamento baseado em restrições, com aplicação na indústria pesada (ex, NASA, forças armadas) projeto e integração de circuitos digitais, e controle tempo real. banco de dados e comércio eletrônico

Programação por restrições: paradigmas, linguagens e sistemas Imperativo x Restrições Funcional Lógico OO 3 paradigmas básicos: imperativo, funcional, lógico OO e Restrições são meta-paradigmas que podem ser implementados como camada acima de cada dos básicos Constraint Logic Programming (CLP): CLP(R), Prolog III, ECLiPSe, LIFE Constraint Functional Programming: Oz Constraint Imperative Programming: 2LP(C++), CHIP(C++)

Programação por restrições: domínios e operadores Domínios Finitos (FD) Domínios: , , strings, f(a, ...,b) com a,... b constantes simbólicas Operadores: +, -, *. /, <, >, <=, => etc.. Conjuntos Domínios: (), (), ..., ({f(a, ...,b) / a, ..., b  , } Operadores: inter, union, set-diff, etc Intervalos Domínios: [ ] Implementa variáveis que variam sobre Inteiros e Reais. Baseados resolvedores aritméticos. Reais (RIA - Real Number Interval Arithmetic) Capaz de resolver problemas sobre os reais. Funções Reais já implementados

Programação em lógica com restrições (CLP) clausulas de Horn proposicionais: C  P1  ...  PN em lógica de predicados, necessidade de tratar das variáveis p(a)  q(b,Z), r(Z)  p(X) Unificação: dois termos podem ser unificados se há valores na consulta que façam os termos iguais. P(X)  X = a, Y = b, q(Y,Z), r(Z) Idéia da CLP: estender equações entre termos da PL com inequações e outras restrições ex, P(X)  X > 1, Y = b, q(Y,Z), r(Z)

Programação em lógica com restrições CLP admite somente clausulas de Horn Programas CLP podem ser explicitamente escritos, exceto que no lugar de equações existem restrições mais gerais CLP(X) com sua semântica define domínio de restrições Resolvedor é necessário 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) Resolução @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 restrições: motivação e agenda Programação por restrição Alta declaratividade com equações e inequações entre variáveis lógicas Dedução em lógica da 1a ordem Completude computacional Resolução de restrições eficiente em domínios predefinidos Codificação direta e bem fundamentada das restrições de integridade Fornece modelos de dados relacional e dedutivo como casos particulares Banco de dados Persistência Otimização de acesso a memória segundaria Acesso concorrente Recuperação Linguagem de manipulação Visões e dados derivados Restrições de integridades Manipulação dinâmica de esquema Utilitários administrativos BD de restições

Tupla generalizada: visão dos BD relacionais no paradigma de programação por restrições Idéia de BD de restrições: ver uma tupla como conjunto de restrições sobre um dado domínio de restrições Tupla generalizada = tupla anotada com restrições entre valores dos seus elementos: pj(X1, ... , Xk) | C Ex, tupla pessoa simples: Em relacional: (‘Bruce’,’Willis’,’GroupLeader’,01/05/90) Como restrições: {(FN,LN,Pos,Date)| FN=‘Bruce’  LN=‘Willis’  Pos=‘GroupLeader’  Date=01/05/90} Generalizada com inequação: {(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, armazém e resolvedores de restrições aplica informação parcial sobre uma variável, expressa como uma restrição da mesma um modelo que trate das restrições primitivas de um domínio aproximação da uma solução intermediária da consulta corrente Resolvedor (computação global centralizada): verifica automaticamente a consistência de cada nova primitiva passada com as existentes no armazém Agentes (computação local distribuída): daemons tratando de um conjunto dado variáveis disparados por alteração da faixa de uma dessas no armazém propagada efeito dessa alteração nas suas outras variáveis manda novas faixas para a armazém e suspende-se o estado corrente da computação distribuído entre armazém e agentes

Exemplo de resolução de restrições por meio de agentes, armazém 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 Step A1 A2 A3 A4 1 =3 X=1 2 =3 Y=2 3 X=2 =2 4 =2 Y=3 X Y

Arquiteturas de BD de restrições Acoplamento fraco: idéia: armazenar restrições persistentemente num BD relacional reaproveita serviços de BD como indexação e otimização de acesso a memória secundária e de gerenciamento de transações desenvolvimento rápido overhead de conversão de restrição para relação ineficiência e perda de significado Acoplamento forte: idéia: tornar restrições persistentes sem perda de significado, nem overhead de conversão reimplementação no novo paradigma de todos os serviços de BD desenvolvimento custoso conceitualmente bem fundamentada  escalabilidade, extensibilidade, etc.

BD de restrições: sistemas implementados ECLIPSE/MegaLog ECLiPSe: linguagem de programação em lógica por restrições implementando CLP(R), CLP(FD), CLP(Intervalos), CLP(Conjuntos), CLP(Estruturais) Megalog pode armazenar variáveis de restrição e suporta indexação multidimensional Falta uma linguagem de consulta de restrições integrada, indexação e otimização DISCO implementadas: intervalos ordenados de inteiros e conjuntos ordenados linguagem de consulta baseada na lógica e não-procedimental usuários pode representar entradas na base usando restrições incorpora vários métodos de otimização

BD de restrições sistemas implementados C3 modelo de dados e linguagem de consulta: LiriC baseada no paradigma de OO incorpora restrições para a descrição de informações espaço-temporal em BD de restrições trata cada objeto de restrição separadamente expressividade e eficiência

BD de restrições: limitações do estado da arte Técnicas de otimização ainda não madura para grande massas de dados Abordagem de restrições puras ainda não fornecem todas os serviços de BD (segurança, transações etc.) Pouca integração com sintaxe e formalismos de massa Paradigma de programação por restrições pouco divulgado e ensinado Falta de um padrão Porém: conceitualmente muito elegante, expressivo, versátil e otimizável e então promissor já usada para BD temporais, espaciais, multimídia e distribuídas heterogêneas

BD multimídia: definição e questões Novos tipos de dados: imagens, gráficos, texto, áudio, discurso, vídeo, mídia gerada Dificuldades de tratar desses separadamente: não suportados como built-in por linguagens de programação de propósito gerais ou por linguagens de consulta de BD produção, manipulação e apresentação requer dispositivos e ferramentas especiais tamanho (de MB a TB no mínimo) estrutura e semântica interna complexa novas linguagens de consultas expressivas consultas aproximativas (reconhecimento de padrão) dependência do tempo (ex, áudio) Inter-relacionamento entre: informações representadas por diferentes mídias (ex, legenda de uma imagem, imagem de texto escaneado) sincronização de dados em várias mídias temporais (ex, animações, vídeo)

BD multimídia: definição e questões Armazenamento de informações referências externas campos longos uso de funções externas sistemas extensíveis e orientados a objetos Modelagem dos dados multimídia diferentes técnicas de compressão (áudio e vídeo) Recuperação de informação trechos específicos, composição de novas mídias metaconhecimento Arquitetura protocolo de transporte

BD espaciais e GIS: definição e questões Armazenamento compacto de grande massas de dados espaciais (representações baseadas em pontos não viáveis para muitas aplicações) Raciocínio geométrico sofisticado e eficiente ex, interseção, opacidade, navegação, alocação de espaço., etc. Ontologia espacial Indexação multidimensional dos objetos geométricos Linguagem de consulta especializada

BD espaciais e GIS: abordagens Abordagens principais: BDOO: retângulos, polígonos e objetos espaciais mais complexos são naturalmente representados BD de restrições representação conjunto de pontos e polígonos de modo natural. permite a avaliação de predicados consulta espacial como interseção e distância. Otimização de técnicas de indexação multidimencional

BD espaço temporal: definição e questões Ausência de uma padrão proliferação de diferentes: modelos lógicos e físicos de dados linguagens de consulta variedade das necessidades das aplicações dificulta padronização necessidade de interoperabilidade BD de restrições muitos modelos espaciais, temporais e espaço temporais são casos particulares do modelo abstrato das tuplas generalizadas Linguagens de restrições excelente candidata como língua franca para interoperabilidade entre diferentes bancos espaciais, temporais e espaço-temporal

Integração de dados e interoperabilidade em BD distribuídos BD de restrições generaliza: BD relacionais BD dedutivas BD espaciais BD temporais Fornece serviços e capacidade de modelagem ortogonal às fornecidas pelos BDOO BDOO de restrições excelente candidato para tornar-se padrão universal de interoperabilidade entre aplicações avançadas Porém, não sub-estima SQL:2999 ! :)

Exemplo interoperabilidade via restrições: BD Temporal Relação dos pesquisadores Representando como tupla generalizada reseacher(name,comp,t) :- name=“Anderson”, comp = “AT&T”, 1980t, t 1993 reseacher(name,comp,t) :- name=“Brown”, comp = “IBM”, 1985t, t 1996 reseacher(name,comp,t) :- name=“Clark”, comp = “AT&T”, 1990t, t 1991

Exemplo interoperabilidade via restrições: BD Espacial Representação em tupla generalizada object(p1,x,y) :- x=10, y=4 object(l1,x,y) :- 5x, x9, y = -x+15 object(l1,x,y) :- x=9, 3y, y6 object(t1,x,y) :- 2x, x6, 3y, y7, y  -x+9 object(r1,x,y) :- 1x, x11.5, 2y11 object(p2,x,y) :- x3, y5, yx-1, yx+5, y  -x+13 r1 l1 p2 11 10 9 8 7 6 5 4 3 2 1 p1 t1 1 2 3 4 5 6 7 8 9 10 11 12

Exemplo interoperabilidade via restrições: BD Espaço-Temporal Representação em tupla generalizada object(p1,x,y) :- x=10, y=4, 1980t, t1996 object(l1,x,y) :- 5x, x9, y = -x+15, 1995t, t1996 object(l1,x,y) :- x=9, 3y, y6, object(t1,x,y) :- 2x, x6, 3y, y7, y  -x+9, 1975t, t1990 object(r1,x,y) :- 1x, x11.5, 2y11, 1994t, t1996 object(p2,x,y) :- x3, y5, yx-1, yx+5, y  -x+13, 1991t, t1996 1994-1996 r1 1995-1996 l1 p2 1991-1996 11 10 9 8 7 6 5 4 3 2 1 t1 1975-1990 p1 1980-1986 1 2 3 4 5 6 7 8 9 10 11 12

BD de restrições: conclusão Estende BD relacionais e dedutivas Permite implementar elegantemente BD espaciais, temporais, multimídia e interoperabilidade em BD distribuídas heterogêneas Resolve impedance-mismatch (já que programação por restrições é computacionalmente completa) Reaproveita de técnicas de IA (busca heurística), pesquisa operacional e matemática para conseguir eficiência Vasto leque de aplicações práticas e industriais Apenas na fase inicial em termos de: Implementação de SGBD Divulgação e ensino do formalismo Padronização