book - DC

Propaganda
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.
Download