Publicando Dados Relacionais e O-R como XML

Slides:



Advertisements
Apresentações semelhantes
Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Ferramenta de Desenvolvimento Material II-Bimestre Conceitos de lógica.
Advertisements

I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados.
Tipos de Sites Web gerados pelo VS2005
Criar uma Aplicação Web em ASP.NET v Tipos de Sites Web gerados pelo VS2005 File-system Web sites Ficheiros armazenados num directório local É utilizado.
BD em.NET: Passo a passo conexão com SQL Server 1º Semestre 2010 > PUCPR > BSI Bruno C. de Paula.
Prof. Alessandro J. de Souza
Administrando projetos com MS Project – Unidade IX
Marfin sobre o Documentador;. Marfin sobre o Documentador;
Sistema Gerenciador de Banco de Dados SGBD
Java Server Pages (JSPs)
1 Complexidade de Algoritmos Complexidade de pior caso Complexidade de melhor caso de uso bem menos freqüente em algumas situações específicas Complexidade.
1 MODELAGEM COM A UML (UNIFIED MODELING LANGUAGE) BREVE HISTÓRICO CARACTERÍSTICAS CONCEITOS DE PROGRAMAÇÃO ORIENTADA A OBJETOS MODELAGEM DE ANÁLISE E DE.
1 Objetos Relacionados a um banco de dados. 2 Introdução Visual Basic dispõe de um conjunto de objetos, que através de suas propriedades e métodos, nos.
UML NO PROJETO LÓGICO DE BANCO DE DADOS: 1ª PARTE
April 05 Prof. Ismael H. F. Santos - 1 Módulo VI – J ava Standard Template Library (JSTL) Prof. Ismael H F Santos.
April 05 Prof. Ismael H. F. Santos - 1 Módulo II XML Processing: XSLT, SAX e DOM Prof. Ismael H F Santos.
Estudo de Caso 1: UNIX e LINUX
Material III-Bimestre Wagner Santos C. de Jesus
Auditoria de Segurança da Informação
Star Schema Benchmark SSB
Aula 6 Subprogramas Universidade do Vale do Rio dos Sinos
1 Aula 7 ImplementandoSubprogramas Universidade do Vale do Rio dos Sinos
O que é XML XML, eXtensible Markup Language ou Linguagem de Marcação Extensível é o método padrão de identificação e descrição de dados na Web. É largamente.
Banco de Dados Objetos Relacionais
Introdução a JDBC Eduardo Martins Guerra Instituto Tecnológico de Aeronáutica Curso de Pós-Graduação em Engenharia de Software Programação Distribuída.
Listas Encadeadas.
Classes e objetos Arrays e Sobrecarga
Classes e objetos P. O. O. Prof. Grace.
B ANCO DE D ADOS E JDBC Profa. Msc. Cintia Carvalho Oliveira Mestre em Ciência da Computação – UFU Bacharel em Ciência da Computação - UFJF 1.
Administração de Sistemas de Informação Banco de Dados
Instalação e Configuração
Desenvolvimento de Projetos e Aplicações Web
Python Persistência de Dados
Impressão de etiquetas
Aplicativos Web Com Orientação a Objetos
PÁginas Dinâmicas Programação Web.
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.
Introdução ao Desenvolvimento Web
Capítulo 2 Java Servlets.
1 António Arnaut Duarte. 2 Sumário: primeiros passos;primeiros passos formatar fundo;formatar fundo configurar apresentação;configurar apresentação animação.
GAPH Integração de Hardware do Usuário ao CoreConnect Leandro Heleno Möller e Leonel Pablo Tedesco Prototipação Rápida e Computação.
Vânia Maria Ponte Vidal
Web Services Uninorte Semana de Tecnologia da Informação
Inserir crédito para cliente
Configuração do Ambiente de Desenvolvimento
Conceitos de J2EE para a WEB
Projeto de Banco de Dados
Compras - Pedido de Compra
1 2 Observa ilustração. Cria um texto. Observa ilustração.
Redes Neuronais/Neurais/ Conexionistas Introdução
Banco de Dados Parte 04 Ceça. Ceça Moraes 2 Conteúdo  Os três níveis da arquitetura  Mapeamentos  Arquitetura cliente-servidor.
Rio Verde - Goiás - Brasil
FORMATANDO O TRABALHO NO WORD 2007
Nome alunos 1 Título UC. Título – slide 2 Conteúdo Conteúdo 2.
A abordagem de banco de dados para gerenciamento de dados
Configuração do Ambiente de programação
Comandos SQL.
Ceça Moraes – Introdução à Programação SI1
Aplicações Web com Orientação a Objetos
Planilha Eletrônica - Excel
GINÁSTICA LABORAL UM NOVO CAMINHO.
Contagem Sequencial do Estoque
Programação para Web Unidade 06 – Java Beans e BDs Prof.: Henrique Santos.
Projeto de Sistemas de Informação Prof. Schneider Oracle Object-Relational.
Desenvolvimento WEB II Aula 3 – Conexão com o Banco de Dados
Acessando banco de dados com JAVA.  Linguagem independente de plataforma; ◦ “Write once, run anywhere” ◦ JVM  Java Virtual Machine  Mecanismo que permite.
Acesso a Banco de Dados com o JDBC Prof. M.Sc. Ronnison Reges Vidal.
Persistência de dados e padrão DAO Padrões de Projeto Orientado a Objetos Profa. Danielle Martin/Mauricio Universidade de Mogi das Cruzes.
Rhizome. Roteiro Definição Metas Características Arquitetura Tecnologias envolvidas Referências.
Transcrição da apresentação:

Publicando Dados Relacionais e O-R como XML Vânia Vidal vvidal@lia.ufc.br

Introdução XML tornou-se um padrão para troca e integração de dados na WEB. A maioria dos dados corporativos estão armazenados em banco de dados relacionais. Isto cria a necessidade de publicar dados armazenados em bases convencionais, no formato XML. Vendedores de sistemas de BD Objeto-Relacional estão estendendo seus produtos para suportar o armazenamento e recuperação de dados XML

Enfoques para armazenar documentos XML em BDOR Usa visões XML como uma camada intermediária entre a aplicação e o banco de dados. Apropriado para documentos “data-centric” (dados estruturados). Armazena XML nativo em uma coluna de tabela relacional Apropriado para documentos “document-centric” (dados sem estrutura bem definida)

Aula de hoje Como criar visões XML de BDOR Oracle através do XSQL Pages Publishing Framework

O que é XSQL Pages ? XSQL Pages Publishing Framework é uma plataforma extensível que possibilita a publicação de visões XML de dados objeto-relacionais Combina o poder de SQL, XML e XSLT para publicar conteúdo Web dinâmico baseado nos dados armazenados num BD Gera XML a partir de consultas SQL Usando XSLT é possível transformar o documento XML gerado no formato desejado

O que é XSQL Pages? Também pode ser usado para carregar dados de um documento XML no BD Inserção, atualização e remoção Possibilidade de utilização com outros SGBDs que não o Oracle Padrão JDBC Multi-plataforma Java

Visão Geral de XSQL Passo1: A página XSQL é requisitada... http://...... Passo2: O documento XML é montado a partir do resultado de uma ou mais consultas SQL. Gera documento XML no formato canônico Passo3: Retorna o documento montado Opcionalmente transforma o documento XML montado num formato desejado usando XSLT HTML WML XML com formato arbitrário

Visão Geral do XSQL Pages Framework

Exemplo Publicar os dados da Tabela Livros usando o XSQL Pages Framework Tabela Livros

Exemplo XSQL Page que retorna o isbn e o titulo de todos os livros <?xml version=“1.0”?> <xsql:query connection=“bd” xmlns:xsql=“urn:oracle-xsql”> Select isbn, titulo From Livros </xsql:query> exemplo.xsql

Resultado no Formato Canônico

Exemplo Usando XSLT é possível transformar o resultado num formato desejado <?xml version=“1.0”?> <?xml-stylesheet type=“text/xsl” href=“livrohtml.xsl”?> <xsql:query connection=“bd” xmlns:xsql=“urn:oracle-xsql”> Select isbn, titulo From Livros </xsql:query> exemplo2.xsql

Exemplo <HTML xmlns:xsl=“http://www.w3c.org/1999/XSL/Transform” xsl:version=“1.0”> <BODY><TABLE BORDER=“1”> <xsl:for-each select=“ROWSET/ROW”> <TR> <TD><xsl:value-of select=“ISBN”/></TD> <TD><xsl:value-of select=“TITULO”/></TD> </TR> </xsl:for-each></TABLE> </BODY> </HTML> livrohtml.xsl

XSQL Pages - Características Uma XSQL Page é um documento XML (.xsql) que contém Elementos estáticos Elementos de ação Consultas SQL embutidas <?xml version=“1.0”?> <xsql:query connection=“bd” xmlns:xsql=“urn:oracle-xsql”> Select col1, col2 , col3 From Tabela </xsql:query>

XSQL Pages - Características Arquivos .xsql devem iniciar com <?xml version=“1.0”?> O elemento raiz deve conter os seguintes atributos: connection : nome de uma conexão pré-definida no arquivo de configuração do Processador XSQL xmls:xsql=“urn:oracle-xsql” : declaração do namespace xsql

Processador XSQL O processador XSQL interpreta, faz o caching e processa o conteúdo de páginas XSQL do servidor Pooling de conexões para BDs Caching de páginas “.xsql” Caching e pooling de folhas de estilo “.xsl”

Processador XSQL O processador XSQL pode ser acionado de 4 formas: A partir da linha de comando XSQL Command Line Utility Através da Web XSQL Servlet instalado no web server de uso Como parte de uma aplicação JSP Utilizando <jsp:include> para inclusão de um template “.xsql” Através de programação Utilizando o objeto XSQLRequest (API Java)

Processador XSQL Arquitetura

Passos do Processador XSQL Recebe uma requisição para processar uma XSQL Page Monta um documento XML usando o resultado de uma ou mais consultas SQL. XML com formato canônico Retorna o documento montado Opcionalmente transforma o documento XML montado num formato desejado usando XSLT HTML WML XML com formato arbitrário

Configuração Básica do XSQL Os pacotes necessários oraclexsql.jar  XSQL page processor xmlparserv2.jar  XML Parser for Java v2 xsu12.jar  Oracle XML SQL utility classes12.zip  Oracle JDBC driver O servlet oracle.xml.xsql.XSQLServlet  servlet interface Associar extensão “.XSQL” ao servlet Interface de programação oracle.xml.xsql.XSQLRequest  interface de programação

Configuração Básica O arquivo XSQLConfig.xml Adicionar esse arquivo <connectiondefs> <connection name="demo"> <username>scott</username> <password>tiger</password> <dburl>jdbc:oracle:thin:@localhost:1521:testDB</dburl> <driver>oracle.jdbc.driver.OracleDriver</driver> <autocommit>true</autocommit> </connection> <connection name="lite"> <username>system</username> <password>manager</password> <dburl>jdbc:Polite:POlite</dburl> <driver>oracle.lite.poljdbc.POLJDBCDriver</driver> </connectiondefs> Adicionar esse arquivo ao CLASSPATH Exemplo de configuração de XSQLConfig.xml

Mapeamento Canônico O resultado da consulta é delimitado pelo elemento raiz <ROWSET> .... </ROWSET>. Cada tupla do resultado é colocada em <ROW NUM=“xx“> .... </ROW>. , onde o atributo NUM é um identificador da tupla Valores de Atributos (relacional) são mapeados em <Name> valor_do_atributo </Name>, onde Name é o nome do atributo (coluna)

Mapeamento Canônico Exemplo : Select nome,idade From Pessoas <?xml version=“1.0”?> <ROWSET> <ROW NUM=“1”> <NOME>Lineu Lima</NOME> <IDADE>24</IDADE> </ROW> </ROWSET>

Mapeamento Canônico Mapeamento de atributos cujo tipo é um TAD: Exemplo: Select Nome, Endereco From Pessoas <?xml version=“1.0”?> <ROWSET> <ROW NUM=“1”> <NOME>Lineu Lima</NOME> <ENDERECO> <RUA>St. Dumont </RUA> <NUM>6997</NUM> </ENDERECO> </ROW></ROWSET>

Mapeamento Canônico Mapeamento de atributos do tipo coleção (Varray or Nested Table: Exemplo: Select nome, fones From Pessoas <?xml version=“1.0”?> <ROWSET> <ROW NUM=“1”> <NOME>Lineu Lima</NOME> <FONES> <FONES_ITEM>2346349</FONES_ITEM> <FONES_ITEM>88057324</FONES_ITEM> </FONES> </ROW></ROWSET>

Usando o operador CURSOR para “rowsets” aninhadas O operador CURSOR permite selecionar uma “rowset” aninhada como uma coluna numa consulta SQL O operador CAST-MULTISET possui a mesma função, mas só é utilizado quando o tipo do “rowset” é previamente definido no banco de dados

Usando o operador CURSOR para “rowsets” aninhadas Select Nome , CAST(MULTISET (Select ddd,num From Telefones t Where t.pessoa=p.codigo) as fones_ty ) as Fones From Pessoas p

Usando o operador CURSOR para “rowsets” aninhadas Select Nome , Cursor (Select ddd,num From Telefones t Where t.pessoa=p.codigo) as Fones From Pessoas p

Usando o operador CURSOR para “rowsets” aninhadas Alias obrigatório Select Nome ,Cursor (Select ddd,num From Telefones t Where t.pessoa=p.codigo) as Fones From Pessoas p <?xml version=“1.0”?> <ROWSET> <ROW NUM=“1”> <NOME>Lineu Lima</NOME> <FONES> <FONES_ROW NUM=“1”> <DDD>85</DDD><NUM>2346349</NUM> </FONES_ROW> <FONES_ROW NUM=“2”>...</FONES_ROW> </FONES> </ROW></ROWSET>

XSQL Pages com Parâmetros Possibilita flexibilidade e resposta diferentes de acordo com parâmetros de entrada para a página XSQL Incluir sinal ? em qualquer local onde for legal o uso de variáveis de ligação no SQL Toda vez que for acionada a página, os valores de parâmetro são ligados às variáveis de ligação. A ligação é feita de forma posicional. Utilizar o atributo bind-params=“par1 par2 ...”

XSQL Pages com Parâmetros Criar página XSQL para obter o nome e fone de uma pessoa dado o seu CPF. Tabela Pessoas

XSQL Pages com Parâmetros XSQL Page que retorna o nome e fones de uma pessoa cujo CPF é passado como parâmetro. <?xml version="1.0"?> <xsql:query connection="teste“ bind-params=“cpf” xmlns:xsql="urn:oracle-xsql"> SELECT nome, fones FROM pessoas WHERE cpf = ? </xsql:query>

XSQL Pages com Parâmetros

XSQL Pages com Parâmetros Substituição léxica Substituição léxica de parâmetros utiliza a seguinte sintaxe: {@ParameterName} Ex.:teste2.xsql <?xml version="1.0"?> <xsql:query connection="teste“ cpf=“79221068315” xmlns:xsql="urn:oracle-xsql"> SELECT * FROM pessoas WHERE cpf = ‘{@cpf} ‘ </xsql:query> Valor default

Ação <xsql:query> Executa declarações SELECT do SQL Inclui o resultado XML canônico em uma página Requer conexão com o BD alvo Atributo connection="connname"

Ação <xsql:query> <?xml version=“1.0”?> <PESSOAS connection="teste“ xmlns:xsql="urn:oracle-xsql"> <xsql:query rowset-element=“” row-element=“PESSOA”> SELECT cpf,nome FROM pessoas </xsql:query> </PESSOAS> pessoas.xsql

Ação <xsql:query> Se a consulta SQL não retorna tuplas, o documento XML retornado será: <?xml version=“1.0”?> <ROWSET/>

Mapeamento Canônico Inverso O Documento XML que gera uma atualização no Banco de Dados deve seguir o formato canônico apresentado anteriormente Possui algumas restrições Atributos XML são ignorados Possui um único objeto alvo Tabela Relacional Tabela de Objeto Visões Elementos de ROW não necessitam aparecer na mesma ordem das colunas do objeto alvo

Mapeamento Canônico Inverso Dado o XML Canônico para atualizar o estado do banco de dados, o processador XSQL procede da seguinte forma : Recupera os metadados da tabela ou visão alvo para gerar o comando de atualização apropriado Extrai os dados do documento XML atribuindo-os às colunas/condições apropriadas Executa a operação de atualização Retorna um documento XML contendo o “STATUS” da execução da atualização

Exemplo – Tabela Pessoas

Exemplo – Inserir Pessoa

Mapeamento Canônico Inverso Operações de DELETE ou UPDATE podem afetar mais que uma linha num objeto do banco de dados Essas operações precisam de um lista de colunas chave para XSQL poder construir uma cláusula WHERE no UPDATE/DELETE para identificar que objetos modificar/remover

Exemplo – Modifica Pessoa Modificar o nome da pessoa de CPF 98765432109 para Vania Vidal condição

Exemplo – Modifica Pessoa Modificar os telefones da pessoa de CPF 98765432109 condição

Exemplo – Remove Pessoa Remover a pessoa de nome Vania Vidal e CPF 98765432109

Mapeamento Canônico Inverso Limitações Não possibilita atualizações em Nested Table Só permite condições que envolvem comparações de igualdade em operações UPDATE e DELETE Somente um único objeto pode ser atualizado

Principais Ações - Atualização <xsql:dml> Executa qualquer operação DML ou DDL <xsql:insert-request>,<xsql:insert-param> Insere dados numa tabela ou visão a partir de um documento XML Canônico <xsql:update-request> Atualiza dados numa tabela ou visão a partir de um documento XML Canônico <xsql:delete-request> Remove dados numa tabela ou visão a partir de um documento XML Canônico

PERGUNTAS ?