Introdução Marcus Vinícius Carneiro Teixeira Tópicos Abordados • Criando um Banco de Dados • Definindo um Schema XML • Carregando um Objeto XML • Recuperando Objetos XML Criando um Banco de Dados Tamino Manager Criando um Banco de Dados Bancos de dados criados no Tamino Criar novo banco Definindo Algumas Características O Tamino permite ao usuário definir características operacionais do banco para melhor gerenciamento de sua estrutura. Mensagens Mensagens são emitidas indicando a situação do processo realizado. Podem ser: informações, avisos, erros ou erros fatais. Inicializando o Banco de Dados Iniciar banco Definindo um Schema XML Schema Editor Tamino Schema Editor Permite criar esquemas XML de acordo com as especificações do Tamino. Propriedades lógicas Schema Propriedades físicas Definindo um Doctype Doctype define o elemento raiz das instâncias XML Exemplo de Schema XML Definindo o Schema no Tamino Conexão com o banco para a definição do XML Schema criado Carregando um Objeto XML Interactive Interface Carregando um Objeto XML Necessário definir o endereço (URL) do banco e a coleção onde será armazenada a instância XML. Documento gerado como resposta O Tamino XML Server sempre gera respostas em forma de documentos XML bem formados. Recuperando Objetos XML Interactive Interface Usando XQuery (Tamino) Define-se o endereço do banco e a coleção destinada à consulta. Expressão de consulta XQuery Construtores Possibilitam criar novos elementos para compor o XML recebido como resposta Query <banco-dados> Disciplina com {1 + 3} turmas </banco-dados> XQuery Expressões Semelhante a expressões SQL (SELECT, FROM, WHERE...) Query for $b in input()/bib/book return $b/title Resultado <title>TCP/IP Illustrated</title> <title>Programming in the Unix</title> <title>Data on the Web</title> <title>Technology for Digital TV</title> input() representa a coleção selecionada XQuery Filtros Restringe o resultado através da cláusula where Query for $b in input()/bib/book where $b/@year > 1994 return <book> { $b/@year } { $b/title } </book> Resultado <book year=“2000”> <title>Data on the Web</title> </book> <book year=“1999”> <title>Technology for Digital TV </title> </book> XQuery Filtros Restringe o resultado através da cláusula where Query for $b in input() where $b//book[@year=‘2000’] return $b//book Resultado <book year=“2000”> <title>Data on the Web</title> <author> ... </author> ... </book> XQuery Ordenação Ordena o resultado da consulta Query for $b in input()/bib/book sort by (title) let $y := $b/@year where $y > 1991 return $b/title Resultado <title>Data on the Web</title> <title>Programming in the Unix</title> <title>TCP/IP Illustrated</title> <title>Technology for Digital TV</title> XQuery Junções Permite fazer junções entre documentos de diferentes doctypes e coleções Query for $b in input()/bib/book, $a in input()/reviews/entry where $b/title = $a/title return <book> { $b/author } { $b/title } { $a/review } </book> Resultado <book> <author> <last>Stevens</last> <first>W.</first> </author> <title>TCP/IP Illustrated</title> <review>One of the best books on TCP/IP </review> </book> XQuery Busca baseada em texto Funções como: tf:containsText, tf:containsNearText e tf:containsAdjacentText Query declare namespace tf = “http://namespaces.softwareag.com/tamino/TaminoFunction” for $a in input()/bib/book where tf:containsText( $a/title, “UNIX” ) return $a/title Resultado <title>Programming in the Unix</title> XQuery Atualizando documentos Possibilita inserir, trocar, renomear ou deletar nodos Query update delete input()/bib/book[editor/last=“Gerbarg”] Resultado Todos os livros editados por Darcy Gerbard serão excluídos XQuery Query update insert <book year=“2002”> <title>Designing XML databases</title> <author> <last>Graves</last><first>Mark</first> </author> </book> into input()/bib Resultado Um novo elemento book é inserido como filho do elemento bib.