Consulta a dados XML. Vanessa de Paula Braganholo.

Tamanho: px
Começar a partir da página:

Download "Consulta a dados XML. Vanessa de Paula Braganholo."

Transcrição

1 Consulta a dados XML Vanessa de Paula Braganholo braganholo@dcc.ufrj.br

2 Linguagem de Consulta para XML 1996 padronização do XML Cada vez mais dados disponíveis neste formato Precisam ser consultados! Várias propostas surgiram na academia

3 Linguagens de Consulta para XML Diferentes abordagens : Orientadas para BD (XML-QL, Lorel, Yetl) Sintaxe semelhante a consultas de BD relacionais Orientadas para documentos (XQL) Paradigma Funcional Se baseiam em expressões de caminhos Eficientes na realização de consultas em profundidade Mistas (QUILT, XQuery) Material de Maria Luiza Machado Campos

4 Padronização? W3C define grupo de estudos para propor uma linguagem de consulta padrão Define requisitos para esta nova linguagem

5 Requisitos de Linguagens para XML Expressividade Necessidade de linguagem de consulta não-procedimental Validação Consultas devem dar suporte a namespaces Composição O resultado de uma consulta deve poder ser utilizado dentro de uma outra consulta Material de Maria Luiza Machado Campos

6 Requisitos de Linguagens para XML Deve usar sintaxe XML!!! Basear-se na sintaxe usada por outros padrões XML: XPointer, XSL, etc. Suporte à consulta aos dados e aos metadados Necessidade de uma GUI para consultas Material de Maria Luiza Machado Campos

7 Facilidades esperadas Suporte para operações de consultas padrão. Em uma perspectiva de BD: Seleção: Escolher um documento ou elemento de documento baseado em conteúdo, estrutura ou atributos. Extração: Extrair elementos específicos de um documento. Redução: Remover sub-elementos selecionados de um elemento Restruturação: Construir um novo conjunto de instâncias de elementos. Ordenação, recuperação em ranking e remoção de duplicatas. Combinação: Combinar dois ou mais elementos em um. Material de Maria Luiza Machado Campos

8 Facilidades esperadas Suporte às operações de inserção, atualização e remoção Alguns também pleiteiam gerenciamento de transações Suporte à consultas full-text, wildcards, etc. Habilidade de consultar múltiplos documentos. Material de Maria Luiza Machado Campos

9 Facilidades esperadas Segurança Autorização para operações de inserção, atualização e remoção. Talvez seja importante armazenar informações sobre a atualização: hora, dia, autor. Utilização Se um esquema está disponível, deve ser possível utilizálo para verificar correção da consulta. Inferência ou Mediação Semântica Material de Maria Luiza Machado Campos

10 Linguagens de Consulta XML - Evolução Material de Maria Luiza Machado Campos

11 XQL (XML Query Language) Extensão natural da sintaxe do XSL Compacta, fácil de expressar e ler Simples para casos usuais Embutível em programas, scripts, URLs Os resultados das consultas não retornam documentos com estruturas diferentes do original Não permite a consulta de várias fontes Material de Maria Luiza Machado Campos

12 XQL Processamento de consultas sobre documentos XML Utiliza a idéia de contexto Delimitado pelas expressões de caminhos Conjunto de nós (DOM) Resultado preserva ordem, hierarquia e identidade dos objetos XML-QL permite skolem (auto-numeração) Suporta função de agregação Não suporta inserção, exclusão, atualização, etc Material de Maria Luiza Machado Campos

13 XQL: Sintaxe Imita a sintaxe de navegação da URI Notação / : contexto raiz./ : contexto corrente // : descendente recursivo a partir da raiz.//: descendente recursivo a partir do nó : atributo * : qualquer elemento Material de Maria Luiza Machado Campos

14 Exemplo <?xml version='1.0'?> <!-- This file represents a fragment of a book store inventory database --> <bookstore specialty='novel'> <book style='autobiography'> <title>seven Years in Trenton</title> <author> <first-name>joe</first-name> <last-name>bob</last-name> <award>trenton Literary Review Honorable Mention</award> </author> <price>12</price> </book> <my:book style='leather' price='29.50' xmlns:my=' <my:title>who's Who in Trenton</my:title> <my:author>robert Bob</my:author> </my:book> </bookstore> Material de Maria Luiza Machado Campos

15 XQL: Exemplos (1)./author author /bookstore author/first-name author/* Material de Maria Luiza Machado Campos

16 XQL: Exemplos (2) author[first-name][2] book[excerpt]/author[degree] book[excerpt][title] book[excerpt $and$ title] author[name = ] author[name $eq$ ] author[. = Bob ] author[text() = Bob ] author[first-name!text() = Bob ] degree[index() $lt$ 3] degree[index() < 3] Material de Maria Luiza Machado Campos

17 XQL: Exemplos (3) author[publications!count() > 10] books[pub_date < date( )] books[pub_date < bookstore/(book magazine) //comment()[1] ancestor(book/author) author[0, 2 $to$ 4, -1] Material de Maria Luiza Machado Campos

18 Tamino - Interface Interativa Primeiro SGBD XML nativo Suportava XQL como linguagem de consulta Material de Maria Luiza Machado Campos

19 XQuery

20 XQuery W3C XML Query Language Linguagem declarativa similar a SQL Derivada diretamente do Quilt e XPath Mas aproveita características de muitas outras: XQL: sintaxe baseada em expressões de caminho, adequadas para hierarquias SQL: cláusulas baseadas em palavras reservadas tipo (SELECT-FROM- WHERE) OQL: noção de uma linguagem funcional, composta de expressões que podem ser encadeadas Status: Recomendação em Janeiro de 2007 Material de Maria Luiza Machado Campos

21 XQuery - FLWR Usa uma sintaxe for let where.. return for SQL from where SQL where return SQL select let (sem equivalência SQL) para variáveis temporárias, principalmente para execução de agregações FOR/LET associam valores às variáveis WHERE filtra o resultado vindo das cláusulas FOR/LET RETURN gera a saída da consulta Material de Maria Luiza Machado Campos

22 Expressões Condicionais Análogo ao IF-THEN-ELSE das linguagens de programação Caso o valor do teste seja verdadeiro, o valor da primeira expressão de resultado é retornado; Caso contrário, o resultado da segunda expressão é retornado. Diferencial importante da XQuery Material de Maria Luiza Machado Campos

23 XQuery Capaz de consultar documentos XML simples ou coleções de documentos XML; As consultas podem resultar na transformação dos resultados ou na criação de um novo documento XML; XQuery x XPath XPath não produz resultados de consultas em uma estrutura diferente da existente no documento Não permite realizar junções entre dados XML XQuery x XSLT XSLT é mais adequado à tranformação e XQuery à pesquisa Material de Maria Luiza Machado Campos

24 Onde XQuery pode ser usada? Ferramentas GUI Linhas de comando Programas escritos em Java, C++, e outras linguagens que necessitam extrair dados de documentos XML XQuery (XML) SQL (Banco de Dados) Material de Maria Luiza Machado Campos

25 Exemplo JXQI - Java XQuery API // import public class ExecutaXQuery { public static void main(string[] args) throws Exception { XQueryContext ctx = new XQueryContext(); Reader strm = new FileReader(args[0]); PreparedXQuery xq = ctx.preparexquery(strm); XQueryResultSet rset = xq.executequery(false); while (rset.next()) { XMLNode node = rset.getnode(); // node.print } } } Material de Maria Luiza Machado Campos

26 XQuery - Estrutura Uma consulta XQuery pode ser dividida em três partes: Declarações de Schema * Definição de funções * Expressões de consulta * Opcional Material de Maria Luiza Machado Campos

27 XQuery Estrutura Exemplo # Parte 1: Namespace e Declarações de Schema namespace xsd = # Parte 2: Definição de funções define function factorial (xsd:integer $n) returns xsd:integer { if ($n eq 0) then 1 else $n * factorial($n - 1) } # Parte 3: Expressões de consulta <Results> <Description>Factorial of 10</Description> <Value>{factorial(10)}</Value> </Results> Material de Maria Luiza Machado Campos

28 XQuery - Exemplos

29 Expressões FLWR Consultar os livros publicados em 1992 Expressão de caminho 1992 ] FLWR FOR $b in doc( bib.xml )/bib/book WHERE $b/@year = 1992 RETURN $b Material de Maria Luiza Machado Campos

30 Exemplo 1 <pedido numero="1000"> <cliente> <razao_social>abc</razao_social> <cgc> / </cgc> <endereco> <logradouro>rua das Flores,75 </logradouro> <cidade>porto Alegre</cidade> <estado>rs</estado> </endereco> </cliente> <itens_pedido> <item> <produto>caneta azul</produto> <quantidade>100</quantidade> <preco_unit>2</preco_unit> </item> <item> <produto>papel</produto> <quantidade>100</quantidade> <preco_unit>8</preco_unit> </item> </itens_pedido> </pedido>

31 Exemplo 1 consulta XQuery <resultado> {for $c in doc( pedido.xml")/pedido/cliente where $c/cgc = " / " return $c/razao_social } </resultado> Construtor de elemento o elemento <resultado> será jogado para a saída

32 Exemplo 1 consulta XQuery <resultado> {for $c in doc( pedido.xml")/pedido/cliente where $c/cgc = " / " return $c/razao_social } </resultado> Comando for vem entre chaves chaves separam saída de expressões de consulta

33 Exemplo 1 consulta XQuery <resultado> {for $c in doc( pedido.xml")/pedido/cliente where $c/cgc = " / " return $c/razao_social } </resultado> Função doc lê o documento pedido.xml

34 Exemplo 1 consulta XQuery <resultado> {for $c in doc( pedido.xml")/pedido/cliente where $c/cgc = " / " return $c/razao_social } </resultado> Variável $c é ligada ao resultado da expressão de caminho /pedido/cliente

35 Exemplo 1 consulta XQuery <resultado> {for $c in doc( pedido.xml")/pedido/cliente where $c/cgc = " / " return $c/razao_social } </resultado> $c <pedido numero="1000"> <cliente> <razao_social>abc</razao_social> <cgc> / </cgc> <endereco> <logradouro>rua das Flores,75 </logradouro> <cidade>porto Alegre</cidade> <estado>rs</estado> </endereco> </cliente> <itens_pedido> <item> <produto>caneta azul</produto> <quantidade>100</quantidade> <preco_unit>2</preco_unit> </item> <item> <produto>papel</produto> <quantidade>100</quantidade> <preco_unit>8</preco_unit> </item> </itens_pedido> </pedido> pedido.xml

36 Exemplo 1 consulta XQuery <resultado> {for $c in doc( pedido.xml")/pedido/cliente where $c/cgc = " / " return $c/razao_social } </resultado> O for é como um for de linguagem de programação. Para cada cliente que ele encontrar, vai retornar o bloco especificado em return

37 Exemplo 1 consulta XQuery <resultado> {for $c in doc( pedido.xml")/pedido/cliente where $c/cgc = " / " return $c/razao_social } </resultado> O return deve ter uma expressão apenas (que pode ser complexa)

38 Exemplo 1 consulta XQuery <resultado> {for $c in doc( pedido.xml")/pedido/cliente where $c/cgc = " / " return $c/razao_social } </resultado> $c/razao_social constrói no resultado um elemento razao_social" e seu conteúdo

39 Exemplo 1 consulta XQuery <resultado> {for $c in doc( pedido.xml")/pedido/cliente where $c/cgc = " / " return $c/razao_social } </resultado> <resultado> <razao_social>abc</razao_social> </resultado>

40 Exemplo 2 <resultado> {for $c in doc( pedido.xml")/pedido/cliente where $c/cgc = " / " return <nome>{$c/razao_social/text()}</nome> } </resultado> Mesmo exemplo, mas agora construímos uma tag <nome> no resultado, e o valor da tag <nome> é o conteúdo textual da tag <razao_social>

41 Exemplo 2 <resultado> {for $c in doc( pedido.xml")/pedido/cliente where $c/cgc = " / " return <nome>{$c/razao_social/text()}</nome> } </resultado> <resultado> <nome>abc</nome> </resultado>

42 Exemplo 3 <itens> {for $i in doc( pedido.xml")/pedido/itens_pedido/item } return $i/produto </itens> <pedido numero="1000"> <cliente> <razao_social>abc</razao_social> <cgc> / </cgc> <endereco> <logradouro>rua das Flores,75 </logradouro> <cidade>porto Alegre</cidade> <estado>rs</estado> </endereco> </cliente> <itens_pedido> <item> <produto>caneta azul</produto> $i <quantidade>100</quantidade> <preco_unit>2</preco_unit> </item> <item> <produto>papel</produto> <quantidade>100</quantidade> <preco_unit>8</preco_unit> </item> </itens_pedido> </pedido>

43 Exemplo 3 <itens> <itens> <produto>caneta azul</produto> {for $i in doc( pedido.xml")/pedido/itens_pedido/item } return $i/produto </itens> <pedido numero="1000"> <cliente> <razao_social>abc</razao_social> <cgc> / </cgc> <endereco> <logradouro>rua das Flores,75 </logradouro> <cidade>porto Alegre</cidade> <estado>rs</estado> </endereco> </cliente> <itens_pedido> <item> <produto>caneta azul</produto> $i <quantidade>100</quantidade> <preco_unit>2</preco_unit> </item> <item> <produto>papel</produto> <quantidade>100</quantidade> <preco_unit>8</preco_unit> </item> </itens_pedido> </pedido>

44 Exemplo 3 <itens> <itens> <produto>caneta azul</produto> <produto>papel</produto> {for $i in doc( pedido.xml")/pedido/itens_pedido/item } return $i/produto </itens> <pedido numero="1000"> <cliente> <razao_social>abc</razao_social> <cgc> / </cgc> <endereco> <logradouro>rua das Flores,75 </logradouro> <cidade>porto Alegre</cidade> <estado>rs</estado> </endereco> </cliente> <itens_pedido> <item> <produto>caneta azul</produto> <quantidade>100</quantidade> <preco_unit>2</preco_unit> </item> <item> <produto>papel</produto> $i <quantidade>100</quantidade> <preco_unit>8</preco_unit> </item> </itens_pedido> </pedido>

45 Exemplo 3 <itens> {for $i in doc( pedido.xml")/pedido/itens_pedido/item } return $i/produto </itens> <itens> <produto>caneta azul</produto> <produto>papel</produto> </itens> <pedido numero="1000"> <cliente> <razao_social>abc</razao_social> <cgc> / </cgc> <endereco> <logradouro>rua das Flores,75 </logradouro> <cidade>porto Alegre</cidade> <estado>rs</estado> </endereco> </cliente> <itens_pedido> <item> <produto>caneta azul</produto> <quantidade>100</quantidade> <preco_unit>2</preco_unit> </item> <item> <produto>papel</produto> <quantidade>100</quantidade> <preco_unit>8</preco_unit> </item> </itens_pedido> </pedido>

46 Expressões de Quantificação Expressão SOME Se algum elemento de uma coleção satisfaz determinada condição Quantificador existencial Expressão EVERY Se todos os elementos da coleção satisfazem esta condição Quantificador universal Material de Maria Luiza Machado Campos

47 <bib> <book> <author> <first>john</first> <last>stevens</last> </author> <author> <first>mary</first> <last>jane</last> </author> <title>abc</title> </book> <book> <author> <first>john</first> <last>stevens</last> </author> <author> <first>charles</first> <last>stevens</last> </author> <title>xxx</title> </book> </bib> DOC XML

48 Expressões de Quantificação Listar os títulos dos livros que satisfaçam a condição de o último nome de ALGUM dos autores ser igual a Stevens FOR $b IN doc("bib.xml")/bib/book WHERE SOME $a in $b/author/last SATISFIES $a = "Stevens" RETURN $b/title Material de Maria Luiza Machado Campos

49 <bib> <book> <author> <first>john</first> <last>stevens</last> </author> <author> <first>mary</first> <last>jane</last> </author> <title>abc</title> </book> <book> <author> <first>john</first> <last>stevens</last> </author> <author> <first>charles</first> <last>stevens</last> </author> <title>xxx</title> </book> </bib> FOR $b IN doc("bib.xml")/bib/book WHERE SOME $a in $b/author/last SATISFIES $a = "Stevens" RETURN $b/title

50 Expressões de Quantificação Listar os títulos dos livros que satisfaçam a condição de o último nome de TODOS os autores ser igual a Stevens FOR $b IN document("bib.xml")/bib/book WHERE EVERY $a in $b/author/last SATISFIES $a = "Stevens" RETURN $b/title Material de Maria Luiza Machado Campos

51 <bib> <book> <author> <first>john</first> <last>stevens</last> </author> <author> <first>mary</first> <last>jane</last> </author> <title>abc</title> </book> <book> <author> <first>john</first> <last>stevens</last> </author> <author> <first>charles</first> <last>stevens</last> </author> <title>xxx</title> </book> </bib> FOR $b IN document("bib.xml")/bib/book WHERE EVERY $a in $b/author/last SATISFIES $a = "Stevens" RETURN $b/title

52 XQuery O resultado de uma consulta XQuery pode não ser um documento XML! Exemplo: um resultado que não tem uma raiz

53 Exemplo 4 for $i in doc( pedido.xml")/pedido/itens_pedido/item doc("bib.xml")/bib/livro return return $l/titulo $i/produto <produto>caneta azul</produto>, <produto>papel</produto>

54 Exemplo 5 for $i in doc( pedido.xml")/pedido/itens_pedido/item return $i Fragmento 1 Fragmento 2 <item> <produto>caneta azul</produto> <quantidade>100</quantidade> <preco_unit>2</preco_unit> </item>, <item> <produto>papel</produto> <quantidade>100</quantidade> <preco_unit>8</preco_unit> </item>

55 Exemplo 6 Para retornar mais de um elemento, sem raiz envolvendo cada retorno, usar parênteses for $i in doc( pedido.xml")/pedido/itens_pedido/item return ($i/produto, $i/quantidade) O parênteses é necessário para que $i/quatidade esteja dentro do escopo do for, caso contrário, o processador dirá que $i não foi declarada

56 Vamos brincar de consultar XML? Vamos brincar de consultar XML? Vamos usar um DEMO online para executar consultas Xquery Abram o site e escolham o link Relational As consultas serão feitas sobre os arquivos users.xml, items.xml e bids.xml Tais arquivos estão ligados às variáveis $users, $items e $bids, respectivamente Ao escrever a consulta, substitua doc( users users.xml ) ), por $users (e assim sucessivamente) Para ver o conteúdo destes arquivos, acesse

57 Exercício 1 Selecionar itemno e description dos itens onde offered_by = U01. Salve num arquivo chamado exercicio1.xq

58 Exercício 2 Monte uma consulta que traga todos os usuários, com name e rating, onde o rating= B". As tags devem aparecer no resultado em português. Salve num arquivo chamado exercicio2.xq <result> <usuario> <nome>tom Jones</nome><nota>B</nota> </usuario> <usuario> <nome>jack Sprat</nome><nota>B</nota> </usuario> <usuario> <nome>rip Van Winkle</nome><nota>B</nota> </usuario> </result>

59 Exercício 3 Selecionar todos os bids cujo itemno= Retorne o resultado no seguinte formato: <result> <bid><user><userid>u02</userid></user><bid>35</bid></bid> <bid><user><userid>u04</userid></user><bid>40</bid></bid> <bid><user><userid>u02</userid></user><bid>45</bid></bid> <bid><user><userid>u04</userid></user><bid>50</bid></bid> <bid><user><userid>u02</userid></user><bid>55</bid></bid> </result>

60 Exercício 4 Monte uma consulta que retorna todos os items (com sua estrutura completa) que tem reserve_price=25 e foram oferecidos por U02.

61 Junção Exemplo 7 <itens> {for $i in doc( pedido.xml")/pedido/itens_pedido/item, $c in doc( pedido.xml")/pedido/cliente return <desc> {$i/produto} {$c/razao_social} </desc> } </itens> <pedido numero="1000"> <cliente> <razao_social>abc</razao_social> <cgc> / </cgc> <endereco> <logradouro>rua das Flores,75 </logradouro> <cidade>porto Alegre</cidade> <estado>rs</estado> </endereco> </cliente> <itens_pedido> <item> <produto>caneta azul</produto> <quantidade>100</quantidade> <preco_unit>2</preco_unit> </item> <item> <produto>papel</produto> <quantidade>100</quantidade> <preco_unit>8</preco_unit> </item> </itens_pedido> </pedido>

62 Junção Exemplo 7 <itens> {for $i in doc( pedido.xml")/pedido/itens_pedido/item, $c in doc( pedido.xml")/pedido/cliente return <desc> {$i/produto} {$c/razao_social} </desc> } </itens> <itens> <desc> <produto>caneta azul</produto> <razao_social>abc</razao_social> </desc> <desc> <produto>papel</produto> <razao_social>abc</razao_social> </desc> </itens> <pedido numero="1000"> <cliente> <razao_social>abc</razao_social> <cgc> / </cgc> <endereco> <logradouro>rua das Flores,75 </logradouro> <cidade>porto Alegre</cidade> <estado>rs</estado> </endereco> </cliente> <itens_pedido> <item> <produto>caneta azul</produto> <quantidade>100</quantidade> <preco_unit>2</preco_unit> </item> <item> <produto>papel</produto> <quantidade>100</quantidade> <preco_unit>8</preco_unit> </item> </itens_pedido> </pedido>

63 Junção Exemplo 8 <itens> {for $i1 in doc( pedido.xml")/pedido/itens_pedido/item, $i2 in doc( pedido.xml")/pedido/itens_pedido/item return <desc> {$i1/produto} {$i2/quantidade} </desc> } </itens> <pedido numero="1000"> <cliente> <razao_social>abc</razao_social> <cgc> / </cgc> <endereco> <logradouro>rua das Flores,75 </logradouro> <cidade>porto Alegre</cidade> <estado>rs</estado> </endereco> </cliente> <itens_pedido> <item> <produto>caneta azul</produto> <quantidade>100</quantidade> <preco_unit>2</preco_unit> </item> <item> <produto>papel</produto> <quantidade>100</quantidade> <preco_unit>8</preco_unit> </item> </itens_pedido> </pedido>

64 Junção Exemplo 8 <itens> {for $i1 in doc( pedido.xml")/pedido/itens_pedido/item, $i2 in doc( pedido.xml")/pedido/itens_pedido/item return <desc> {$i1/produto} {$i2/preco_unit} </desc> } </itens> <pedido numero="1000"> <cliente> <razao_social>abc</razao_social> <cgc> / </cgc> <endereco> <logradouro>rua das Flores,75 </logradouro> <itens> <cidade>porto Alegre</cidade> <estado>rs</estado> </endereco> </cliente> <itens_pedido> <item> </item> <item> </item> </itens_pedido> </pedido> <desc> <produto>caneta azul</produto> <preco_unit>2</preco_unit> </desc> <desc> <produto>caneta azul</produto> <produto>caneta azul</produto> <preco_unit>8</preco_unit> <quantidade>100</quantidade> </desc> <preco_unit>2</preco_unit> <desc> <produto>papel</produto> <preco_unit>2</preco_unit> <produto>papel</produto> </desc> <quantidade>100</quantidade> <desc> <preco_unit>8</preco_unit> <produto>papel</produto> <preco_unit>8</preco_unit> </desc> </itens>

65 Exercício 6 Faça a junção de items e bids por itemno Retorne no resultado: Userid Description itemno <bids> <bid> <userid>u02</userid> <description>red Bicycle</description> <itemno>1001</itemno> </bid> <bid> <userid>u04</userid> <description>red Bicycle</description> <itemno>1001</itemno> </bid> <bid> <userid>u02</userid> <description>red Bicycle</description> <itemno>1001</itemno> </bid>... </bids>

66 Diferença entre FOR e LET: FOR LET liga variáveis nodo iteração FOR $x in expr -- liga $x a cada valor na lista expr Exemplo FOR $i IN //item (Resulta em muitas associações, cada uma delas associa a variável $i a um item do pedido) liga variáveis coleção um valor LET $x := expr -- liga $x à lista expr inteira Exemplo LET $b := //item (Resulta em uma única associação onde a variável $i passa a possuir uma sequência com todos os itens do pedido) Material de Maria Luiza Machado Campos

67 Expressão LET Exemplo 9 let $I := doc( pedido.xml")/pedido/itens_pedido/item return $i <item> <produto>caneta azul</produto> <quantidade>100</quantidade> <preco_unit>2</preco_unit> </item>, <item> <produto>papel</produto> <quantidade>100</quantidade> <preco_unit>8</preco_unit> </item>

68 Expressão LET Exemplo 9 let $I := doc( pedido.xml")/pedido/itens_pedido/item return $i <item> <produto>caneta azul</produto> <quantidade>100</quantidade> <preco_unit>2</preco_unit> </item>, <item> <produto>papel</produto> <quantidade>100</quantidade> <preco_unit>8</preco_unit> </item> Este exemplo retornou o mesmo que o exemplo 5, que usava for

69 FOR versus LET FOR liga variáveis nodo iteração FOR $x $xin INdoc( pedido.xml")//item RETURN <result> $x $x </result> Retorna: <result> <item>...</item></result> <result> <item>...</item></result> <result> <item>...</item></result>... LET liga variáveis coleção um valor LET $x $x := := doc( pedido.xml")//item RETURN <result> $x $x </result> Retorna: <result> <item>...</ item> <item>...</ item> <item>...</ item>... </result> Material de Maria Luiza Machado Campos

70 LET x FOR Exemplo 10 let $i := doc( pedido.xml")//item return <pedidos> {$i} </pedidos> for $l in doc( pedido.xml")//item return <pedidos> {$i} </pedidos>

71 LET x FOR Exemplo 10 let $i := doc( pedido.xml")//item return <pedidos> {$i} </pedidos> <pedidos> <item> <produto>caneta azul</produto> <quantidade>100</quantidade> <preco_unit>2</preco_unit> </item> <item> <produto>papel</produto> <quantidade>100</quantidade> <preco_unit>8</preco_unit> </item> </pedidos> for $l in doc( pedido.xml")//item return <pedidos> {$i} </pedidos> <pedidos> <item> <produto>caneta azul</produto> <quantidade>100</quantidade> <preco_unit>2</preco_unit> </item> </pedidos>, <pedidos> <item> <produto>papel</produto> <quantidade>100</quantidade> <preco_unit>8</preco_unit> </item> </pedidos>

72 LET É usado principalmente para fornecer entrada para operadores de agregação max min sum count avg

73 COUNT Exemplo 11 <itens> {for $i in doc( pedido.xml")//item return {$i/produto} } {let $t := doc( pedido.xml")//item return <total_itens>{count($t)}</total_itens> } </itens> <itens> <produto>caneta azul</produto> <produto>papel</produto> <total_itens>2</total_itens> </itens>

74 Exercício 7 (a) Faça uma consulta que retorne a média de bids de todos os usuários (usar o documento bids) (b) Faça uma consulta que retorne a média de bids de cada usuário (dica: usar um for para pegar cada usuário e depois um let) Para pegar só os usuários diferentes: for $u in distinct-values($bids/bids/bid_tuple/userid)

75 Exercício 7 (cont.) (c) Faça uma consulta que retorna a descrição do item com reserve_price mais caro (d) Faça uma consulta que retorna a descrição dos itens que possuem um bid maior que seu reserve_price (e) Faça uma consulta que retorna o número de bids de cada item

76 Ordenação em XQuery <publisher_list> {FOR $p IN distinct-values(doc("bib.xml")//publisher) ORDER BY $p/name RETURN <publisher> <name> $p/text() </name> {FOR $b IN doc("bib.xml")//book[publisher = $p] ORDER BY $b/price DESCENDING RETURN <book> {$b/title} {$b/price} </book> </publisher> </publisher_list> Material de Maria Luiza Machado Campos

77 Consulta a vários documentos? Funções de entrada de dados: doc collection Para consulta a vários documentos, usar collection Coleção tem que estar definida Exemplo: exist suporta coleções

78 exist

79 Alguns Aplicativos XML Spy (interface gráfica) Galax (Open Source) FatDog XQEngine Microsoft XQuery Demo Qexo - GNU Kawa QuiP Software AG developer.softwareag.com/tamino/quip Material de Maria Luiza Machado Campos

80 Outras Linguagens de consulta Lorel (Lightweight Object REpository Language) YATL Xtract XMLQuery XML Query Engine XML-GL Quilt XML-QL Material de Maria Luiza Machado Campos

81 XQUpdate

82 Linguagem para atualização XQuery ainda não suporta atualizações Proposta está sendo desenvolvida (W3C Working Draft de 11 de Julho de 2006) Evolução da idéia publicada em 2001, num dos congressos mais importantes da área de Banco de Dados (SIGMOD): I. Tatarinov, Z. Ives, A. Halevy, and D. Weld. Updating XML. Maio de 2001

83 Funcionalidades: Deletar nodos Inserir nodos em uma determinada posição Substituir um nodo Modificar o valor de um nodo Substituir um nodo Modificar propriedades do nodo (valor, tipo, conteúdo, etc.) Mover nodos Permitir atualizações condicionais Permitir iterar sobre nodos para atualizá-los Permitir validação (esquema) Permitir que operações sejam compostas (o resultado de uma atualização é entrada de outra) Permitir atualizações parametrizadas

84 Sintaxe Como a linguagem ainda está sendo definida, veremos apenas alguns exemplos para mostrar a idéia da proposta Não vale a pena focar na sintaxe, já que ela provavelmente ainda vai mudar muito até a sua padronização

85 Exemplos Inserir um elemento year depois do publisher do primeiro book insert <year>2005</year> after fn:doc("bib.xml")/books/book[1]/publisher

86 Exemplos Excluir o último autor do primeiro livro delete {fn:doc("bib.xml")/books/book[1]/author[last()]}

87 Exemplos Aumentar o preço do primeiro livro em 10% replace value of {fn:doc("bib.xml")/books/book[1]/price} with fn:doc("bib.xml")/books/book[1]/price * 1.1

88 Exemplos Renomear o primeiro elemento author do primeiro book para principal-author rename {fn:doc("bib.xml")/books/book[1]/author[1]} to "principal-author"

89 Exemplos Retornar uma seqüência contendo todos os elementos employee que possuem Java como skill, excluindo o sub-elemento salary for $e in //employee[skill = "Java"] return transform copy $je := $e do delete {$je/salary} return $je

90 Extensões para a XQuery Cláusula FLWR agora tem um do (neste caso, o que vem depois TEM QUE SER uma expressão de atualização) FLWORExpr ::= (ForClause LetClause)+ WhereClause? OrderByClause? ("return" "do") ExprSingle

Consulta a dados XML - XQuery. Vanessa Braganholo

Consulta a dados XML - XQuery. Vanessa Braganholo Consulta a dados XML - XQuery Vanessa Braganholo Linguagem de Consulta para XML 1996 padronização do XML Cada vez mais dados disponíveis neste formato Precisam ser consultados! Várias propostas surgiram

Leia mais

Gerência de Dados da Web

Gerência de Dados da Web Sumário Gerência de Dados da Web - DCC922 - Linguagens de Consulta para Dados XML: XPath e Xquery Alberto H. F. Laender 2014 XPath Modelo de dados Expressões simples e atalhos Funções Expressões complexas

Leia mais

Gerência de Dados da Web

Gerência de Dados da Web Sumário Gerência de Dados da Web - DCC922 - Linguagens de Consulta para Dados XML: XPath e Xquery Alberto H. F. Laender 2015 XPath Modelo de dados Expressões simples e atalhos Funções Expressões complexas

Leia mais

XQuery Update. Gestão e Tratamento da Informação DEI IST

XQuery Update. Gestão e Tratamento da Informação DEI IST XQuery Update Gestão e Tratamento da Informação DEI IST (baseado nos slides de Ioana Manolescu, acessíveis em: http://www-rocq.inria.fr/~abitebou/master-ssd/slxqupdate.pdf) Agenda Aspectos básicos Porquê

Leia mais

XSL - extemsible Stylesheet Language. Prof. Antonio Almeida de Barros Jr.

XSL - extemsible Stylesheet Language. Prof. Antonio Almeida de Barros Jr. XSL - extemsible Stylesheet Language Prof. Antonio Almeida de Barros Jr. Agenda Conceitos XSLT - XSL Transformations Iteração e Classificação Processamento Condicional Copiando Nodos Variáveis Estude de

Leia mais

Armazenamento Nativo. Vanessa Braganholo. Vanessa Braganholo

Armazenamento Nativo. Vanessa Braganholo. Vanessa Braganholo Armazenamento Nativo Vanessa Braganholo Vanessa Braganholo Como armazenar? 1. Sistema de arquivos 2. Banco de Dados Relacional/Objeto Relacional/etc. com suporte a XML (habilitado a XML ou híbrido) 3.

Leia mais

ANÁLISE E PROJETO DE BANCO DE DADOS

ANÁLISE E PROJETO DE BANCO DE DADOS ANÁLISE E PROJETO DE BANCO DE DADOS SQL FELIPE G. TORRES SQL A linguagem SQL (Struct Query Language) é utilizada como padrão em bancos de dados relacionais. Seu desenvolvimento foi originalmente no início

Leia mais

INE BDNC. Bancos de Dados XML

INE BDNC. Bancos de Dados XML INE 661300 - BDNC Bancos de Dados XML Formas de Gerência de Dados XML SGBDRs estendidos com suporte à XML adequados a dados XML fortemente estruturados ( documentos orientados a registros )

Leia mais

Rápida revisão do Modelo Relacional

Rápida revisão do Modelo Relacional Rápida revisão do Modelo Relacional Conceito de relação Tuplas e atributos Rápida revisão do Modelo Relacional Regras de integridade Entidade: Deve existir uma chave primária com valor único e não-nulo.

Leia mais

Formas de Gerência de Dados XML

Formas de Gerência de Dados XML Bancos de Dados XML Formas de Gerência de Dados XML SGBDRs estendidos com suporte à XML adequados a dados XML fortemente estruturados ( documentos orientados a registros ) beira-mar104apto

Leia mais

XML. Prof. Júlio Machado

XML. Prof. Júlio Machado XML Prof. Júlio Machado julio.machado@pucrs.br INTRODUÇÃO O que é XML? É a sigla de Extensible Markup Language Linguagem de especificação para descrever dados Padrão aberto e largamente usado Definido

Leia mais

GERÊNCIA DE DADOS SEMI ESTRUTURADOS - XQUERY. Prof. Angelo Augusto Frozza

GERÊNCIA DE DADOS SEMI ESTRUTURADOS - XQUERY. Prof. Angelo Augusto Frozza GERÊNCIA DE DADOS SEMI ESTRUTURADOS - XQUERY Prof. Angelo Augusto Frozza XQUERY (XML QUERY LANGUAGE) XQuery é para XML o que o SQL é para Banco de Dados. XQUERY (XML QUERY LANGUAGE) XQuery é uma linguagem

Leia mais

Introdução. descrever os tipos de interfaces e linguagens oferecidas por um SGBD. mostrar o ambiente de programas dos SGBD s

Introdução. descrever os tipos de interfaces e linguagens oferecidas por um SGBD. mostrar o ambiente de programas dos SGBD s Introdução Contribuição do Capítulo 2: discutir modelos de dados definir conceitos de esquemas e instâncias descrever os tipos de interfaces e linguagens oferecidas por um SGBD mostrar o ambiente de programas

Leia mais

Oracle Database 10g: Fundamentos de SQL e PL/SQL

Oracle Database 10g: Fundamentos de SQL e PL/SQL Oracle University Contact Us: 0-800-167225 Oracle Database 10g: Fundamentos de SQL e PL/SQL Duration: 5 Dias O que é que gostaria de aprender Conheça os fundamentos de SQL e PL/SQL usando o SQL Developer

Leia mais

Um Tradutor de Esquemas Relacionais em XML para Esquemas SQL

Um Tradutor de Esquemas Relacionais em XML para Esquemas SQL UNIVERSIDADE FEDERAL DE SANTA CATARINA CENTRO TECNOLÓGICO DEPARTAMENTO DE INFORMÁTICA E ESTATÍSTICA SISTEMAS DE INFORMAÇÃO Resumo do Trabalho de Conclusão de Curso Entitulado Um Tradutor de Esquemas Relacionais

Leia mais

Introdução XML. Vanessa Braganholo

Introdução XML. Vanessa Braganholo Introdução XML Vanessa Braganholo {vanessa@ic.uff.br} Curso baseado em mini-cursos apresentados no SBBD. Autores: Carlos Heuser, Carina Dorneles e Vanessa Braganholo O que é XML? } XML = extensible Markup

Leia mais

XQuery (2ª parte) DEI IST. (baseado nos slides de Ioana Manolescu, acessíveis em: http://www-rocq.inria.fr/~abitebou/master-ssd/slxquery.

XQuery (2ª parte) DEI IST. (baseado nos slides de Ioana Manolescu, acessíveis em: http://www-rocq.inria.fr/~abitebou/master-ssd/slxquery. XQuery (2ª parte) DEI IST (baseado nos slides de Ioana Manolescu, acessíveis em: http://www-rocq.inria.fr/~abitebou/master-ssd/slxquery.pdf) Agenda Formulação de interrogações Expressões FLOWR Sumário

Leia mais

Sumário. Gerência de Dados da Web - DCC922 - Linguagens de Consulta. Características Desejáveis de uma LC/DSE. Linguagens de Consulta

Sumário. Gerência de Dados da Web - DCC922 - Linguagens de Consulta. Características Desejáveis de uma LC/DSE. Linguagens de Consulta Sumário Gerência de Dados da Web - DCC922 - Linguagens de Consulta Alberto H. F. Laender Linguagens de Consulta para Dados da Web Caracterização geral Características desejáveis de uma LC/DSE Algumas Linguagens

Leia mais

UTFPR - Universidade Tecnológica Federal do Paraná. Processamento e otimização de consultas

UTFPR - Universidade Tecnológica Federal do Paraná. Processamento e otimização de consultas UTFPR - Universidade Tecnológica Federal do Paraná Processamento e otimização de consultas Leyza Baldo Dorini 04/Nov/2009 Programação da aula Introdução: processamento e otimização de consultas Etapas:

Leia mais

As Instruções DML. As Instruções de manipulação de dados(dml) em SQL são representados por: Modificam o estado do banco de dados:

As Instruções DML. As Instruções de manipulação de dados(dml) em SQL são representados por: Modificam o estado do banco de dados: As Instruções DML As Instruções de manipulação de dados(dml) em SQL são representados por: Modificam o estado do banco de dados: o INSERT - permite a inclusão de novos registros (linhas) nas tabelas o

Leia mais

Introdução e motivação SGBD XML Nativo Consultas em SGBDs XML Prática. Bancos de dados XML. Conceitos e linguagens de consulta

Introdução e motivação SGBD XML Nativo Consultas em SGBDs XML Prática. Bancos de dados XML. Conceitos e linguagens de consulta Bancos de dados XML Conceitos e linguagens de consulta Sidney Roberto de Sousa MC536 - Bancos de Dados: Teoria e prática Material base: W3Schools XPath and XQuery Tutorial http://www.w3schools.com/xpath/

Leia mais

XQuery (1ª parte) Gestão e Tratamento da Informação DEI IST. (baseado nos slides de Ioana Manolescu, acessíveis em:

XQuery (1ª parte) Gestão e Tratamento da Informação DEI IST. (baseado nos slides de Ioana Manolescu, acessíveis em: XQuery (1ª parte) Gestão e Tratamento da Informação DEI IST (baseado nos slides de Ioana Manolescu, acessíveis em: http://www-rocq.inria.fr/~abitebou/master-ssd/slxquery.pdf) Agenda Aspectos básicos Porquê

Leia mais

Prof. Fabiano Taguchi

Prof. Fabiano Taguchi BANCO DE DADOS Prof. Fabiano Taguchi http://fabianotaguchi.wordpress.com fabianotaguchi@hotmail.com OPERAÇÕES LÓGICAS AND (E) Avalia as condições e devolve um valor verdadeiro caso ambas condições forem

Leia mais

Linguagem de pesquisa declarativa para banco de dados relacional; 1ª Versão - Desenvolvida pela IBM no laboratório de pesquisa de San José;

Linguagem de pesquisa declarativa para banco de dados relacional; 1ª Versão - Desenvolvida pela IBM no laboratório de pesquisa de San José; MySQL SQL (Structured Query Languagem ) Linguagem de pesquisa declarativa para banco de dados relacional; 1ª Versão - Desenvolvida pela IBM no laboratório de pesquisa de San José; Inicialmente - Sequel

Leia mais

AULA 8. Ambientes Visuais 8.1. OBJETIVO DA AULA SQL (Structured Query Language)

AULA 8. Ambientes Visuais 8.1. OBJETIVO DA AULA SQL (Structured Query Language) AULA 8 8.1. OBJETIVO DA AULA Relembrar conceitos e recursos básicos apresentados nas aulas anteriores, dar continuidade nas codificações iniciadas e ainda não finalizadas, explorar acesso a banco de dados

Leia mais

Unidade 7: Documentação de Código A Importância dos Comentários Prof. Daniel Caetano

Unidade 7: Documentação de Código A Importância dos Comentários Prof. Daniel Caetano Linguagem de Programação 1 Unidade 7: Documentação de Código A Importância dos Comentários Prof. Daniel Caetano Objetivo: Desenvolver a habilidade de comentar código adequadamente INTRODUÇÃO Até o momento

Leia mais

XPath e XSLT. Ferramentas para Internet Marx Gomes Van der Linden. ( Material baseado no original de Marcelo José Siqueira Coutinho de Almeida )

XPath e XSLT. Ferramentas para Internet Marx Gomes Van der Linden. ( Material baseado no original de Marcelo José Siqueira Coutinho de Almeida ) XPath e XSLT Ferramentas para Internet Marx Gomes Van der Linden ( Material baseado no original de Marcelo José Siqueira Coutinho de Almeida ) XSL XSL Extensible Stylesheet Language Uma família de linguagens

Leia mais

XMLs E INTEGRAÇÃO COM BANCOS DE DADOS

XMLs E INTEGRAÇÃO COM BANCOS DE DADOS Faculdade de Tecnologia de Guaratinguetá. 07, novembro de 2011. XMLs E INTEGRAÇÃO COM BANCOS DE DADOS Abel Vieira, Cleber Lopes, Pedro Lemes saitovieira@gmail.com, cleber.campomori@gmail.com, pedro.lemes@gmail.com

Leia mais

Dados Semi-Estruturados e XML

Dados Semi-Estruturados e XML Dados Semi-Estruturados e XML Dados da Web A Web constitui hoje um repositório universal de dados Características dos dados da Web: Disponíveis através de documentos textuais Utilizados apenas para consumo

Leia mais

Sumário. XML (extensible Markup Language)

Sumário. XML (extensible Markup Language) Sumário 1 Introdução Aplicações Não-Convencionais 2 BD Orientado a Objetos e Objeto-Relacional 3 BD Temporal 4 BD Geográfico 5 XML e Bancos de Dados XML (extensible Markup Language) Tecnologia desenvolvida

Leia mais

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE INTRODUÇÃO A SQL

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE INTRODUÇÃO A SQL INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE INTRODUÇÃO A SQL Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com 02/06/2016 SUMÁRIO SQL DDL DML SQL (STRUCTURED

Leia mais

Álgebra Relacional e SQL

Álgebra Relacional e SQL Álgebra Relacional e SQL Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri Álgebra Relacional Maneira teórica de se manipular o banco de dados relacional Linguagem de consulta procedural usuários

Leia mais

Oracle Database 11g: Introdução à Linguagem SQL Novo

Oracle Database 11g: Introdução à Linguagem SQL Novo Oracle University Contact Us: 0800 891 6502 Oracle Database 11g: Introdução à Linguagem SQL Novo Duration: 5 Days What you will learn Neste curso, os alunos aprendem os conceitos de bancos de dados relacionais.

Leia mais

Grupo: Rodrigo Pescador Lucas Silveira Renê Rodrigues Eduardo Dellandrea Thiago Bonetti. BANCOS DE DADOS II Bancos de Dados Semi-Estruturados e XML

Grupo: Rodrigo Pescador Lucas Silveira Renê Rodrigues Eduardo Dellandrea Thiago Bonetti. BANCOS DE DADOS II Bancos de Dados Semi-Estruturados e XML Bancos de Dados Semi-Estruturados e XML Grupo: Rodrigo Pescador Lucas Silveira Renê Rodrigues Eduardo Dellandrea Thiago Bonetti O que é XML: iniciando XML - Extensible Markup Language (Linguagem de Marcação

Leia mais

DDL DML DCL DTL Tipos Numéricos: INT FLOAT DOUBLE Tipos String: CHAR VARCHAR BINARY BLOB TEXT Tipos Data e Hora: DATE TIME TIMESTAMP YEAR

DDL DML DCL DTL Tipos Numéricos: INT FLOAT DOUBLE Tipos String: CHAR VARCHAR BINARY BLOB TEXT Tipos Data e Hora: DATE TIME TIMESTAMP YEAR SQL Structured Query Language, ou Linguagem de Consulta Estruturada, foi desenvolvida pela IBM nos anos 70 para demonstrar a viabilidade do modelo relacional para bancos de dados. No final dos anos 80

Leia mais

Introdução. Conceitos Básicos. Conceitos Básicos. Conceitos Básicos

Introdução. Conceitos Básicos. Conceitos Básicos. Conceitos Básicos Introdução Laboratório de Computação para Ciências Módulo II Prof. Guilherme Tavares de Assis Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Mestrado Profissional

Leia mais

MySql. Introdução a MySQL. Andréa Garcia Trindade

MySql. Introdução a MySQL. Andréa Garcia Trindade MySql Introdução a MySQL Andréa Garcia Trindade Introdução O que é Banco de Dados SGBD MYSQL Tipos de Tabelas Tipos de Dados Linguagem SQL Comandos SQL O que é um Banco de Dados? Conjuntos de dados Grupo

Leia mais

XML e Banco de Dados. Prof. Daniela Barreiro Claro DCC/IM/UFBA

XML e Banco de Dados. Prof. Daniela Barreiro Claro DCC/IM/UFBA XML e Banco de Dados DCC/IM/UFBA Banco de Dados na Web Armazenamento de dados na Web HTML muito utilizada para formatar e estruturar documentos na Web Não é adequada para especificar dados estruturados

Leia mais

Bancos (Bases) de Dados

Bancos (Bases) de Dados Bancos (Bases) de Dados Aula #8 SQL Prof. Eduardo R. Hruschka * Slides baseados no material elaborado pelas professoras: Cristina D. A. Ciferri Elaine P. M. de Souza SQL (Structured Query Language) Linguagem

Leia mais

- Um "query block" permite a implementação das operações de selecção, projecção e junção da álgebra relacional.

- Um query block permite a implementação das operações de selecção, projecção e junção da álgebra relacional. 2.3 Linguagens relacionais (continuação) SQL Structured Query Language 1) "Query block" Select From Where - Um "query block" permite a implementação

Leia mais

Agenda. Linguagem de Consulta SQL. 1. Introdução Histórico. 1. Introdução BD Relacionais

Agenda. Linguagem de Consulta SQL. 1. Introdução Histórico. 1. Introdução BD Relacionais Linguagem de Consulta SQL Profa. Carla A. Lima Reis SQL Agenda Introdução Histórico BD relacionais Linguagem SQL Definição de BD Manipulação de BD com SQL Consultas SQL Consultas com várias tabelas Subconsultas

Leia mais

XML para transferência de dados Estrutura hierárquica do XML DTDs e XML Schema Consultas de documentos XML: XPath e XQuery Transformação de

XML para transferência de dados Estrutura hierárquica do XML DTDs e XML Schema Consultas de documentos XML: XPath e XQuery Transformação de Capítulo 9: XML XML para transferência de dados Estrutura hierárquica do XML DTDs e XML Schema Consultas de documentos XML: XPath e XQuery Transformação de documentos XML: XSLT Mapeamento entre documentos

Leia mais

INE 5612 Professor: Frank Siqueira. Leonardo Silva Jean Ercilio Thiago

INE 5612 Professor: Frank Siqueira. Leonardo Silva Jean Ercilio Thiago INE 5612 Professor: Frank Siqueira Alunos: Gustavo de Geus Leonardo Silva Jean Ercilio Thiago DESENVOLVEDORES JAVA EM TODO MUNDO LIDER GAVIN KING JBOSS MANTEVE O SUPORTE História Hibernate foi criado por

Leia mais

GES013 - Sistema de Banco de Dados SQL/DML no PostgreSQL Parte 1 Introdução e Consultas Basicas

GES013 - Sistema de Banco de Dados SQL/DML no PostgreSQL Parte 1 Introdução e Consultas Basicas GES013 - Sistema de Banco de Dados SQL/DML no PostgreSQL Parte 1 Introdução e Consultas Basicas Ilmério Reis da Silva ilmerio arroba ufu.br www.facom.ufu.br/~ilmerio/sbd UFU/FACOM/BCC UFU/FACOM Página

Leia mais

Avisos. SQL: Visões. Roteiro SELECT. Suporte de SQL para OLAP SQL DML CONTINUAÇÃO CONSULTAS AVANÇADAS. Cronograma das próximas aulas

Avisos. SQL: Visões. Roteiro SELECT. Suporte de SQL para OLAP SQL DML CONTINUAÇÃO CONSULTAS AVANÇADAS. Cronograma das próximas aulas Ciência da Computação GBC043 Sistemas de Banco de Dados Avisos SQL: Visões Profa. Maria Camila Nardini Barioni camila.barioni@ufu.br Bloco B - sala 1B137 1 semestre de 2019 Cronograma das próximas aulas

Leia mais

Francisco Roeder. Orientador: Prof. Adilson Vahldick

Francisco Roeder. Orientador: Prof. Adilson Vahldick Francisco Roeder AGRUPAMENTO E ORDENAÇÃO NAS CONSULTAS EM BANCOS DE DADOS DISTRIBUÍDOS ATRAVÉS DE DRIVER JDBC Orientador: Prof. Adilson Vahldick Roteiro da apresentação Introdução Objetivos Fundamentação

Leia mais

Oracle Database: Fundamentos de SQL e PL/SQL

Oracle Database: Fundamentos de SQL e PL/SQL Oracle University Contact Us: 0800 891 6502 Oracle Database: Fundamentos de SQL e PL/SQL Duration: 5 Days What you will learn Este curso apresenta os fundamentos de SQL e PL/SQL e as vantagens das linguagens

Leia mais

Capítulo 9: Sistemas de banco de dados

Capítulo 9: Sistemas de banco de dados Capítulo 9: Sistemas de banco de dados Ciência da computação: Uma visão abrangente 11a Edition by J. Glenn Brookshear Copyright 2012 Pearson Education, Inc. Database (Banco de Dados) Uma coleção de dados

Leia mais

Tópicos. Apresentando a família XML HTML HTML. XML extesible Markup Language. Problemas com o HTML

Tópicos. Apresentando a família XML HTML HTML. XML extesible Markup Language. Problemas com o HTML Tópicos Apresentando a família XML Prof.Tiago Lopes Telecken telecken@gmail.com IFRS Rio Grande HTML XML A família de tecnologias XML (DTD, XML Schemas, XHTML, SVG, MathML, MusicML, XMI, CSS, XSLT, XLINK,

Leia mais

Matéria Introdutória. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

Matéria Introdutória. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri Matéria Introdutória Banco de Dados Motivação Necessidade de armazenar grandes quantidades de dados Necessidade de acessar as informações de maneira eficiente e segura Evolução histórica: desenvolvimento

Leia mais

A U L A 3 S U B G R U P O S D M L E D Q L : I N S E R I N D O E P E S Q U I S A N D O D A D O S E M U M A T A B E L A

A U L A 3 S U B G R U P O S D M L E D Q L : I N S E R I N D O E P E S Q U I S A N D O D A D O S E M U M A T A B E L A BANCO DE DADOS GERENCIAL 1 A U L A 3 S U B G R U P O S D M L E D Q L : I N S E R I N D O E P E S Q U I S A N D O D A D O S E M U M A T A B E L A CONCEITOS LINGUAGEM DE MANIPULAÇÃO DE DADOS (DML) A linguagem

Leia mais

2 Instalando e configurando o ambiente de desenvolvimento do Microsoft SQL Server

2 Instalando e configurando o ambiente de desenvolvimento do Microsoft SQL Server Sumário Parte 1 Introdução ao desenvolvimento de banco de dados com o Microsoft SQL Server 2005 1 Apresentando o desenvolvimento de banco de dados com o Microsoft SQL Server 2005... 21 O processo de armazenar

Leia mais

Preparação criar tabela. Linguagem de Manipulação de Dados (DML) Estudo Dirigido 12/11/2018

Preparação criar tabela. Linguagem de Manipulação de Dados (DML) Estudo Dirigido 12/11/2018 Linguagem de Manipulação de Dados (DML) Estudo Dirigido A Linguagem SQL Preparação criar tabela Criar um novo arquivo de banco de dados chamado Escola Criar a tabela, como especificado abaixo: Create table

Leia mais

AULA 2 VISÃO BÁSICA DE CLASSES EM PHP

AULA 2 VISÃO BÁSICA DE CLASSES EM PHP AULA 2 VISÃO BÁSICA DE CLASSES EM PHP Antes de mais nada, vamos conhecer alguns conceitos, que serão importantes para o entendimento mais efetivos dos assuntos que trataremos durante a leitura desta apostila.

Leia mais

Introdução em Banco de Dados

Introdução em Banco de Dados Introdução em Banco de Dados Aula07 ComandosSQLeMySQL Prof: Franciel MySQL é um banco de dados cliente servidor gratuito É simples, tem alto desempenho, é disponível para várias plataformas e é robusto

Leia mais

Aula 06 Sistemas Embarcados LT38C

Aula 06 Sistemas Embarcados LT38C Aula 06 Sistemas Embarcados LT38C Prof. Lucas Ricken Garcia 2017/1 Introdução a Banco de Dados Coleção de dados relacionados. Fatos conhecidos que podem ser registrados e possuem significado implícito.

Leia mais

BANCO DE DADOS PARA WEB

BANCO DE DADOS PARA WEB BANCO DE DADOS PARA WEB PROF. FABIANO TAGUCHI http://fabianotaguchi.wordpress.com fabianotaguchi@gmail.com BANCO DE DADOS O banco de dados será de fundamental importância para a criação de páginas dinâmicas,

Leia mais

Oracle Objeto-Relacional. Pablo Vieira Florentino

Oracle Objeto-Relacional. Pablo Vieira Florentino Oracle Objeto-Relacional Pablo Vieira Florentino Motivação - Modelo Objeto-Relacional Resposta dos Bancos de Dados Relacionais à Orientação a Objetos Relacional Suporte a SQL, transações, etc. Objeto Suporte

Leia mais

Roteiro. SQL: Visões. Suporte de SQL para OLAP SELECT. Detalhando GROUP BY SQL DML CONTINUAÇÃO CONSULTAS AVANÇADAS. Consultas Avançadas Visões

Roteiro. SQL: Visões. Suporte de SQL para OLAP SELECT. Detalhando GROUP BY SQL DML CONTINUAÇÃO CONSULTAS AVANÇADAS. Consultas Avançadas Visões Ciência da Computação GBC043 Sistemas de Banco de Dados Roteiro SQL: Visões Consultas Avançadas Visões Profa. Maria Camila Nardini Barioni camila.barioni@ufu.br Bloco B - sala 1B137 1 semestre de 2018

Leia mais

Banco de Dados. SGBDs. Professor: Charles Leite

Banco de Dados. SGBDs. Professor: Charles Leite Banco de Dados SGBDs Professor: Charles Leite Sistemas de BD Vimos que um BANCO DE DADOS representa uma coleção de dados com algumas propriedades implícitas Por exemplo, um BD constitui os dados relacionados

Leia mais

Introdução. Conceitos Básicos. Conceitos Básicos. Conceitos Básicos

Introdução. Conceitos Básicos. Conceitos Básicos. Conceitos Básicos Conceitos Básicos Introdução Tópicos Especiais Modelagem de Dados Prof. Guilherme Tavares de Assis Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Mestrado Profissional

Leia mais

Sumário. Motivação. Aplicações precisam acessar o BD Linguagens BD X Linguagens Programação. paradigmas diferentes (impedance mismatch)

Sumário. Motivação. Aplicações precisam acessar o BD Linguagens BD X Linguagens Programação. paradigmas diferentes (impedance mismatch) Sumário 1 Introdução ao Processamento de Consultas 2 Otimização de Consultas 3 Plano de Execução de Consultas 4 Introdução a Transações 5 Recuperação de Falhas 6 Controle de Concorrência 7 Fundamentos

Leia mais

Dados Semi-Estruturados e XML

Dados Semi-Estruturados e XML Dados Semi-Estruturados e XML Sumário Dados da Web: Caracterização Gerência de Dados da Web Dados Semi-Estruturados Modelo de dados XML Definição de esquemas Linguagens de Consulta XPath, XQuery 1 Dados

Leia mais

ATUALIZANDO BANCO DE DADOS OBJETO RELACIONAL ATRAVÉS DE VISÕES XML

ATUALIZANDO BANCO DE DADOS OBJETO RELACIONAL ATRAVÉS DE VISÕES XML ATUALIZANDO BANCO DE DADOS OBJETO RELACIONAL ATRAVÉS DE VISÕES XML Mestrando: Wamberg Gláucon Chaves de Oliveira Orientadora: Profa. Dra. Vânia Maria Ponte Vidal Universidade Federal do Ceará Departamento

Leia mais

XML - Extensible Markup Language

XML - Extensible Markup Language Por Sergio Crespo XML - Extensible Markup Language Extensible Markup Language (XML) é linguagem de marcação de dados (meta-markup language) que provê um formato para descrever dados estruturados. Isso

Leia mais

AULA 01 Bancos de Dados Relacionais Arquitetura Linguagem SQL Componentes: DDL, DML, DCL. Prof. Msc. Célio R. Castelano

AULA 01 Bancos de Dados Relacionais Arquitetura Linguagem SQL Componentes: DDL, DML, DCL. Prof. Msc. Célio R. Castelano AULA 01 Bancos de Dados Relacionais Arquitetura Linguagem SQL Componentes: DDL, DML, DCL Prof. Msc. Célio R. Castelano TÓPICOS Projeto de Bancos de Dados Relacionais Arquitetura Modelagem Conceitual Modelagem

Leia mais

CONTEÚDO PROGRAMÁTICO

CONTEÚDO PROGRAMÁTICO CONTEÚDO PROGRAMÁTICO XML e XSLT Completo Carga horária: 40 horas TreinaWeb Tecnologia LTDA CNPJ: 06.156.637/0001-58 Av. Paulista, 1765 - Conj 71 e 72 São Paulo - SP CONTEÚDO PROGRAMÁTICO Ementa do curso

Leia mais

SQL CREATE DATABASE. MySQL, SQL Server, Access, Oracle, Sybase, DB2, e outras base de dados utilizam o SQL.

SQL CREATE DATABASE. MySQL, SQL Server, Access, Oracle, Sybase, DB2, e outras base de dados utilizam o SQL. LINGUAGEM SQL SQL CREATE DATABASE MySQL, SQL Server, Access, Oracle, Sybase, DB2, e outras base de dados utilizam o SQL. SQL CREATE TABLE SQL NOT NULL O valor NOT NULL obriga que o campo contenha sempre

Leia mais

Aula 01 Revisão Geral Banco de Dados I Conceito de Banco de Dados e SGBD

Aula 01 Revisão Geral Banco de Dados I Conceito de Banco de Dados e SGBD Aula 01 Revisão Geral Banco de Dados I Conceito de Banco de Dados e SGBD Banco de Dados (BD) é o arquivo físico, em dispositivos periféricos, onde estão armazenados os dados de diversos sistemas, para

Leia mais

Preparação. Linguagem de Manipulação de Dados (DML) Estudo Dirigido 10/12/2013

Preparação. Linguagem de Manipulação de Dados (DML) Estudo Dirigido 10/12/2013 Linguagem de Manipulação de Dados (DML) Estudo Dirigido A Linguagem SQL Preparação Criar um banco de dados denominado Escola ; Criar a tabela, como especificado abaixo: # RA Numeric(8) Nome Serie Turma

Leia mais

Banco de Dados. Banco de Dados II. Característica fundamental de SGBDs. Abordagem SGBD x Processamento de Arquivos Tradicional

Banco de Dados. Banco de Dados II. Característica fundamental de SGBDs. Abordagem SGBD x Processamento de Arquivos Tradicional Banco de Dados Banco de Dados II Conceitos Básicos Coleção logicamente coerente de dados relacionados com algum significado inerente; Exemplos de bancos de dados: Agenda de endereços (papel ou computador)

Leia mais

UNIP - Ciência da Computação e Sistemas de Informação. Estrutura de Dados. AULA 5 Pilhas

UNIP - Ciência da Computação e Sistemas de Informação. Estrutura de Dados. AULA 5 Pilhas UNIP - Ciência da Computação e Sistemas de Informação Estrutura de Dados AULA Pilhas Estrutura de Dados A Estrutura de Dados Pilha Pilha é uma estrutura de dados usada em programação, que tem uma regra

Leia mais

Banco de Dados. Professora: Luciana Faria

Banco de Dados. Professora: Luciana Faria Banco de Dados Professora: Luciana Faria Introdução ao linguagem é a SQL (Structured Query Language) Linguagem de Consulta Estruturada Para se utilizar, administrar, e trabalhar com um banco de dados é

Leia mais

Manipulação de Dados com SQL

Manipulação de Dados com SQL Manipulação de Dados com SQL Wendel Melo Faculdade de Computação Universidade Federal de Uberlândia www.facom.ufu.br/~wendelmelo Banco de Dados I manipulação de dados com SQL 2 Structured Query Language

Leia mais

S Q L Asserções, Visões e Técnicas de Programação. Daniel Bordignon Cassanelli Fernando Luiz Grando Pedro Patitucci Finamore

S Q L Asserções, Visões e Técnicas de Programação. Daniel Bordignon Cassanelli Fernando Luiz Grando Pedro Patitucci Finamore S Q L Asserções, Visões e Técnicas de Programação Daniel Bordignon Cassanelli Fernando Luiz Grando Pedro Patitucci Finamore Resumo Apresentaremos os seguintes tópicos: - Especificação de restrições genéricas

Leia mais

SQL (com MySQL) Apresentação OBJETIVOS. Programação

SQL (com MySQL) Apresentação OBJETIVOS. Programação SQL (com MySQL) Programação Formato: Mentored - Presencial Preço: 395 ( Os valores apresentados não incluem IVA. Oferta de IVA a particulares e estudantes. ) Horário: Flexível das 2ª a 6ª das 9h às 21h30

Leia mais

Variáveis primitivas e Controle de fluxo

Variáveis primitivas e Controle de fluxo Variáveis primitivas e Controle de fluxo Material baseado na apostila FJ-11: Java e Orientação a Objetos do curso Caelum, Ensino e Inovação, disponível para download em http://www.caelum.com.br/apostilas/

Leia mais

DOM (Document Object Model)

DOM (Document Object Model) DOM (Document Object Model) Modelo de dados para XML estrutura hierárquica (árvore) métodos de acesso (API DOM) principais classes de objetos document, node, nodelist e element execução de consultas e

Leia mais

Banco de Dados. SGBD - Sistema de Gerenciamento de Banco de Dados Parte 2. Prof. Leonardo Vasconcelos

Banco de Dados. SGBD - Sistema de Gerenciamento de Banco de Dados Parte 2. Prof. Leonardo Vasconcelos Banco de Dados Parte 2 Prof. Leonardo Vasconcelos - Conceitos e Arquiteturas de SBD Modelos de dados: conjunto de conceitos que podem ser usados para descrever a estrutura de um banco de dados. Permitem

Leia mais

PCS3413. Engenharia de So-ware e Banco de Dados. Aula 17. Escola Politécnica da Universidade de São Paulo

PCS3413. Engenharia de So-ware e Banco de Dados. Aula 17. Escola Politécnica da Universidade de São Paulo PCS3413 Engenharia de So-ware e Banco de Dados Aula 17 Escola Politécnica da Universidade de São Paulo 1 SQL STRUCTURED QUERY LANGUAGE Manipulação de dados operações de modificam o estado das tabelas:

Leia mais

ROTEIRO Introdução Álgebra e Cálculo Relacional Operações da Álgebra Relacional Classificação de Operadores da Álgebra Relacional Mapeamento AR -> SQL

ROTEIRO Introdução Álgebra e Cálculo Relacional Operações da Álgebra Relacional Classificação de Operadores da Álgebra Relacional Mapeamento AR -> SQL BANCO DE DADOS Universidade do Estado de Santa Catarina Centro de Ciências Tecnológicas Departamento de Ciência da Computação Prof. Alexandre Veloso de Matos alexandre.matos@udesc.br ROTEIRO Introdução

Leia mais

Web Development. Apresentação. Destinatários. Pré-requisitos. Web Design & Development

Web Development. Apresentação. Destinatários. Pré-requisitos. Web Design & Development Web Development Web Design & Development Formato: Mentored - Online Preço: 968,50 ( Os valores apresentados não incluem IVA. Oferta de IVA a particulares e estudantes. ) Horário: Flexível das 24h/24h Duração:

Leia mais

Banco de Dados PLPGSQL. Prof. Dr. Joel da Silva

Banco de Dados PLPGSQL. Prof. Dr. Joel da Silva Banco de Dados PLPGSQL Prof. Dr. Joel da Silva - Introdução 2 - Introdução A PLPGSQL ou PL/pgSQL é uma linguagem estendida da SQL que tem por objetivo auxiliar as tarefas de programação no PostgreSQL.

Leia mais

Sistemas da Informação. Banco de Dados I. Edson Thizon

Sistemas da Informação. Banco de Dados I. Edson Thizon Sistemas da Informação Banco de Dados I Edson Thizon (edson@esucri.com.br) 2008 Apresentação (mini-currículo) Formação Acadêmica Mestrando em Ciência da Computação (UFSC/ ) Créditos Concluídos. Bacharel

Leia mais

Compiladores Análise Semântica

Compiladores Análise Semântica Compiladores Análise Semântica Fabio Mascarenhas - 2013.2 http://www.dcc.ufrj.br/~fabiom/comp Árvores Sintáticas Abstratas (ASTs) A árvore de análise sintática tem muita informação redundante Separadores,

Leia mais

De forma simples, para a execução de comandos SQL com JDBC, precisa-se da instancia de três classes Java. São elas: Nome da classe Função

De forma simples, para a execução de comandos SQL com JDBC, precisa-se da instancia de três classes Java. São elas: Nome da classe Função .1 JDBC A linguagem Java possui classes que permitem a com um banco de dados. Essas classes fazem parte do pacote JDBC (Java Database Connectivity), uma API (Application Program Interface) que permite

Leia mais

IEC Banco de Dados I Aula 11 Técnicas de Programação SQL

IEC Banco de Dados I Aula 11 Técnicas de Programação SQL IEC Banco de Dados I Aula 11 Técnicas de Programação SQL Turmas: Sistemas de Informação Professora: André Luiz da Costa Carvalho E- mail: andre@icomp.ufam.edu.br Site: hjp://bdufam.wordpress.com Sumário

Leia mais

JPQL (Java Persistence Query language)

JPQL (Java Persistence Query language) JPQL (Java Persistence Query language) Uma query SELECT JPQL é formada pelas cláusulas SELECT e FROM (obrigatórias) e mais 4 cláusulas opcionais com o seguinte formato: SELECT... FROM... [WHERE...] [GROUP

Leia mais

Introdução a Banco de Dados Prof. Msc Denival A. dos Santos

Introdução a Banco de Dados Prof. Msc Denival A. dos Santos Introdução a Banco de Dados Prof. Msc Denival A. dos Santos Dado Um dado sozinho, dissociado de um contexto, não expressa algo que traga qualquer certeza ou elimine dúvidas de qualquer natureza. No máximo,

Leia mais

Douglas Matheus de Souza Prof. Marcel Hugo, Mestre - Orientador

Douglas Matheus de Souza Prof. Marcel Hugo, Mestre - Orientador Douglas Matheus de Souza Prof. Marcel Hugo, Mestre - Orientador Introdução Objetivos Fundamentação teórica Desenvolvimento da ferramenta Operacionalidade Resultados e discussão Conclusões Versões futuras

Leia mais

IMPLEMENTAÇÃO DE BANCO DE DADOS

IMPLEMENTAÇÃO DE BANCO DE DADOS IMPLEMENTAÇÃO DE BANCO DE DADOS MODULO 2 LINGUAGEM SQL CONTEÚDO 2. LINGUAGEM SQL 2.1 Linguagens de Definição de Dados (DDL) 2.1.1 Criação de tabela: CREATE 2.1.2 Alteração de Tabela: ALTER 2.1.3 Exclusão

Leia mais

Transformação de documentos XML

Transformação de documentos XML Transformação de documentos XML César Vittori cvittori@inf.ufrgs.br Outubro de 2000 Resumo XSLT: Transformações XSL. Transformação de documentos XML. XSLT Introdução XSLT: transformações XSL (inglês: XSL

Leia mais