banco de dados: teoria e prática 1santanch/teaching/db/2016-2/... · 2016-11-22 · banco de dados...

32
Banco de Dados na Web e XML (resolução dos exercícios) Banco de Dados: Teoria e Prática André Santanchè e Patrícia Cavoto Institute of Computing – UNICAMP Outubro 2016 Picture by http://www.flickr.com/photos/crouchy69, 2010

Upload: others

Post on 10-Jan-2020

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Banco de Dados: Teoria e Prática 1santanch/teaching/db/2016-2/... · 2016-11-22 · Banco de Dados na Web e XML (resolução dos exercícios) Banco de Dados: Teoria e Prática André

Banco de Dados na Web e XML(resolução dos exercícios)

Banco de Dados: Teoria e PráticaAndré Santanchè e Patrícia CavotoInstitute of Computing – UNICAMP

Outubro 2016

Pic

ture

by

htt

p:/

/ww

w.f

lickr

.co

m/p

ho

tos/

cro

uch

y69,

201

0

Page 2: Banco de Dados: Teoria e Prática 1santanch/teaching/db/2016-2/... · 2016-11-22 · Banco de Dados na Web e XML (resolução dos exercícios) Banco de Dados: Teoria e Prática André

Exercício 1

Representar:Sr. Horácio é autor da página http://www.paleo.org/dino.html

em XML

Page 3: Banco de Dados: Teoria e Prática 1santanch/teaching/db/2016-2/... · 2016-11-22 · Banco de Dados na Web e XML (resolução dos exercícios) Banco de Dados: Teoria e Prática André

Exercício 1(resolução)

Representar:Sr. Horácio é autor da página http://www.paleo.org/dino.html

em XML

<escritor nome="Sr. Horário"> <autorPagina href="http://www.paleo.org/dino.html"/> </escritor>

Page 4: Banco de Dados: Teoria e Prática 1santanch/teaching/db/2016-2/... · 2016-11-22 · Banco de Dados na Web e XML (resolução dos exercícios) Banco de Dados: Teoria e Prática André

Exercício 1Outra Possível Representação 1

< r e c u r s o > < r e f e r e n c i a > h t t p : / / w w w . p a l e o . o r g / d i n o s . h t m l < / r e f e r e n c i a > < p r o p r i e d a d e > a u t o r < / p r o p r i e d a d e > < v a l o r > S r . H o r á c i o < / v a l o r >< / r e c u r s o >

r e c u r s o

a u t o r S r . H o r á c i o

v a l o rr e f e r e n c i a p r o p r i e d a d e

h t t p : / / w w w . p a l e o . o r g / d i n o s . h t m l

Page 5: Banco de Dados: Teoria e Prática 1santanch/teaching/db/2016-2/... · 2016-11-22 · Banco de Dados na Web e XML (resolução dos exercícios) Banco de Dados: Teoria e Prática André

Exercício 1Outra Possível Representação 2

< r e c u r s o r e f e r e n c i a = " h t t p : / / w w w . p a l e o . o r g / d i n o s . h t m l " > < p r o p r i e d a d e r o t u l o = " a u t o r " > S r . H o r á c i o < / p r o p r i e d a d e >< / r e c u r s o >

r e c u r s o

r o t u l o = a u t o r

S r . H o r á c i o

p r o p r i e d a d e

r e f e r e n c i a = h t t p : / / w w w . p a l e o . o r g / d i n o s . h t m l

Page 6: Banco de Dados: Teoria e Prática 1santanch/teaching/db/2016-2/... · 2016-11-22 · Banco de Dados na Web e XML (resolução dos exercícios) Banco de Dados: Teoria e Prática André

Exercício 1Outra Possível Representação 3

< r e c u r s o r e f e r e n c i a = " h t t p : / / w w w . p a l e o . o r g / d i n o s . h t m l " > < a u t o r > S r . H o r á c i o < / a u t o r >< / r e c u r s o >

r e c u r s o

S r . H o r á c i o

a u t o r

r e f e r e n c i a = h t t p : / / w w w . p a l e o . o r g / d i n o s . h t m l

Page 7: Banco de Dados: Teoria e Prática 1santanch/teaching/db/2016-2/... · 2016-11-22 · Banco de Dados na Web e XML (resolução dos exercícios) Banco de Dados: Teoria e Prática André

Exercício 1Outra Possível Representação 4

< r e c u r s o r e f e r e n c i a = " h t t p : / / w w w . p a l e o . o r g / d i n o s . h t m l " a u t o r = " S r . H o r a c i o " / >

r e c u r s o

r o t u l o = a u t o r

r e f e r e n c i a = h t t p : / / w w w . p a l e o . o r g / d i n o s . h t m l

Page 8: Banco de Dados: Teoria e Prática 1santanch/teaching/db/2016-2/... · 2016-11-22 · Banco de Dados na Web e XML (resolução dos exercícios) Banco de Dados: Teoria e Prática André

Exercício 2

Representar:Sr. Horácio é autor da página http://www.paleo.org/dino.html

em XML usando relacionamento entre elementos

Page 9: Banco de Dados: Teoria e Prática 1santanch/teaching/db/2016-2/... · 2016-11-22 · Banco de Dados na Web e XML (resolução dos exercícios) Banco de Dados: Teoria e Prática André

Exercício 2(resolução)Representar:

Sr. Horácio é autor da página http://www.paleo.org/dino.html

em XML usando relacionamento entre elementos

<registro> <escritor nome="Sr. Horário" ref="pg-dinos"/> <pagina id="pg-dinos" href="http://www.paleo.org/dino.html"/> </fichario>

Page 10: Banco de Dados: Teoria e Prática 1santanch/teaching/db/2016-2/... · 2016-11-22 · Banco de Dados na Web e XML (resolução dos exercícios) Banco de Dados: Teoria e Prática André

Exercício 3

▪ Escreva um modelo relacional compatível com este exemplo:

<fichario> <individuo nome="Asdrubal da Silva"> <idade>15</idade> <genero>masculino</genero> </individuo> <individuo nome="Quincas Borba"> <idade>33</idade> <genero>masculino</genero> </individuo> <individuo nome="Doriana Margarina"> <idade>42</idade> <genero>feminino</genero> </individuo></fichario>

Page 11: Banco de Dados: Teoria e Prática 1santanch/teaching/db/2016-2/... · 2016-11-22 · Banco de Dados na Web e XML (resolução dos exercícios) Banco de Dados: Teoria e Prática André

Exercício 3(resolução)

▪ Escreva um modelo relacional compatível com este exemplo:

CREATE TABLE Individuo ( Nome VARCHAR(80) NOT NULL, Idade INTEGER, Genero VARCHAR(9), PRIMARY KEY(Nome)

);

Individuo(Nome, Idade, Genero)

Page 12: Banco de Dados: Teoria e Prática 1santanch/teaching/db/2016-2/... · 2016-11-22 · Banco de Dados na Web e XML (resolução dos exercícios) Banco de Dados: Teoria e Prática André

Exercício 4

▪ Construa uma comando SELECT que retorne dados equivalentes a este XPath

//individuo[idade>20]/@nome

<fichario> <individuo nome="Asdrubal da Silva"> <idade>15</idade> <genero>masculino</genero> </individuo> <individuo nome="Quincas Borba"> <idade>33</idade> <genero>masculino</genero> </individuo> <individuo nome="Doriana Margarina"> <idade>42</idade> <genero>feminino</genero> </individuo></fichario>

nome="Quincas Borba"-----------------------nome="Doriana Margarina"

Page 13: Banco de Dados: Teoria e Prática 1santanch/teaching/db/2016-2/... · 2016-11-22 · Banco de Dados na Web e XML (resolução dos exercícios) Banco de Dados: Teoria e Prática André

Exercício 4(resolução)

▪ Construa uma comando SELECT que retorne dados equivalentes a este XPath

//individuo[idade>20]/@nome

SELECT nome FROM Individuo WHERE idade > 20;

Page 14: Banco de Dados: Teoria e Prática 1santanch/teaching/db/2016-2/... · 2016-11-22 · Banco de Dados na Web e XML (resolução dos exercícios) Banco de Dados: Teoria e Prática André

Exercício 5

▪ Qual a outra maneira de escrever esta query sem o where?

▪ Qual a diferença?

let $fichariodoc := doc('icunicamp:fichario.xml') for $i in ($fichariodoc//individuo)where $i[idade>17]return {data($i/@nome)}

Page 15: Banco de Dados: Teoria e Prática 1santanch/teaching/db/2016-2/... · 2016-11-22 · Banco de Dados na Web e XML (resolução dos exercícios) Banco de Dados: Teoria e Prática André

Exercício 5(resolução)

▪ Qual a outra maneira de escrever esta query sem o where?

▪ Qual a diferença?

let $fichariodoc := doc('icunicamp:fichario.xml') for $i in ($fichariodoc//individuo[idade>17])return {data($i/@nome)}

let $fichariodoc := doc('icunicamp:fichario.xml') for $i in ($fichariodoc//individuo)where $i[idade>17]return {data($i/@nome)}

Page 16: Banco de Dados: Teoria e Prática 1santanch/teaching/db/2016-2/... · 2016-11-22 · Banco de Dados na Web e XML (resolução dos exercícios) Banco de Dados: Teoria e Prática André

Exercício 6

▪ Escreva uma consulta SQL equivalente ao XQuery:

let $fichariodoc := doc('icunicamp:fichario.xml') for $i in ($fichariodoc//individuo)where $i[idade>17]return {data($i/@nome)}

Page 17: Banco de Dados: Teoria e Prática 1santanch/teaching/db/2016-2/... · 2016-11-22 · Banco de Dados na Web e XML (resolução dos exercícios) Banco de Dados: Teoria e Prática André

Exercício 6(resolução)

▪ Escreva uma consulta SQL equivalente ao XQuery:

let $fichariodoc := doc('icunicamp:fichario.xml') for $i in ($fichariodoc//individuo)where $i[idade>17]return {data($i/@nome)}

SELECT nome FROM Individuo WHERE idade > 17;

Page 18: Banco de Dados: Teoria e Prática 1santanch/teaching/db/2016-2/... · 2016-11-22 · Banco de Dados na Web e XML (resolução dos exercícios) Banco de Dados: Teoria e Prática André

Exercício para Casa 1

▪ Escreva um XQuery que transforme o arquivo XML em uma sequência de INSERTS.

Page 19: Banco de Dados: Teoria e Prática 1santanch/teaching/db/2016-2/... · 2016-11-22 · Banco de Dados na Web e XML (resolução dos exercícios) Banco de Dados: Teoria e Prática André

Exercício 7

▪ Livros escritos após o ano 2000

nome: string

autores

idade: int

titulo: string

ano: int

livro

autor

catalogo

Page 20: Banco de Dados: Teoria e Prática 1santanch/teaching/db/2016-2/... · 2016-11-22 · Banco de Dados na Web e XML (resolução dos exercícios) Banco de Dados: Teoria e Prática André

Exercício 7Autor/Livro Embedded

▪ Livros escritos após o ano 2000

nome: string

autores

idade: int

titulo: string

ano: int

livro

autor

catalogo

Page 21: Banco de Dados: Teoria e Prática 1santanch/teaching/db/2016-2/... · 2016-11-22 · Banco de Dados na Web e XML (resolução dos exercícios) Banco de Dados: Teoria e Prática André

Exercício 7Autor/Livro Embedded

▪ Livros escritos após o ano 2000

▪ return $publicadoc//livro[@ano>2000])

nome: string

autores

idade: int

titulo: string

ano: int

livro

autor

catalogo

Page 22: Banco de Dados: Teoria e Prática 1santanch/teaching/db/2016-2/... · 2016-11-22 · Banco de Dados na Web e XML (resolução dos exercícios) Banco de Dados: Teoria e Prática André

Exercício 8

▪ Autores com mais de 50 anos e os livros que ele escreveu

▫ use para o autor um tag especial <autorSenior>

▫ associado ao tag coloque um atributo com seu nome

nome: string

autores

idade: int

titulo: string

ano: int

livro

autor

catalogo

Page 23: Banco de Dados: Teoria e Prática 1santanch/teaching/db/2016-2/... · 2016-11-22 · Banco de Dados na Web e XML (resolução dos exercícios) Banco de Dados: Teoria e Prática André

Exercício 8(resolução)

▪ Autores com mais de 50 anos e os livros que ele escreveu

▫ use para o autor um tag especial <autorSenior>

▫ associado ao tag coloque um atributo com seu nome

let $fichariodoc := ... for $a in ($fichariodoc//autor[@idade>50])return <autorSenior nome=”{data($a/@nome)}”> {for $l in ($a/livro) Return <livro titulo=”{data($l/@titulo)}”></livro>} </autorSenior>

Page 24: Banco de Dados: Teoria e Prática 1santanch/teaching/db/2016-2/... · 2016-11-22 · Banco de Dados na Web e XML (resolução dos exercícios) Banco de Dados: Teoria e Prática André

Exercício 9

▪ Retorne quantas publicações são posteriores ao ano de 2011

Page 25: Banco de Dados: Teoria e Prática 1santanch/teaching/db/2016-2/... · 2016-11-22 · Banco de Dados na Web e XML (resolução dos exercícios) Banco de Dados: Teoria e Prática André

Exercício 9(resolução)

▪ Retorne quantas publicações são posteriores ao ano de 2011

▪ return count($publicadoc//publication[year>2010])

Page 26: Banco de Dados: Teoria e Prática 1santanch/teaching/db/2016-2/... · 2016-11-22 · Banco de Dados na Web e XML (resolução dos exercícios) Banco de Dados: Teoria e Prática André

Exercício 10

▪ Retorne a categoria cujo <label> em inglês seja 'e-Science Domain'

Page 27: Banco de Dados: Teoria e Prática 1santanch/teaching/db/2016-2/... · 2016-11-22 · Banco de Dados na Web e XML (resolução dos exercícios) Banco de Dados: Teoria e Prática André

Exercício 10(resolução)

▪ Retorne a categoria cujo <label> em inglês seja 'e-Science Domain'.

▪ for $c in ($publicadoc//categories/category)where $c/label[@lang='en-US'] = 'e-Science Domain'return $c

Page 28: Banco de Dados: Teoria e Prática 1santanch/teaching/db/2016-2/... · 2016-11-22 · Banco de Dados na Web e XML (resolução dos exercícios) Banco de Dados: Teoria e Prática André

Agradecimentos

▪ Luiz Celso Gomes Jr (professor desta disciplina em 2014) pela contribuição na disciplina e nos slides.

▪ Patrícia Cavoto (professora desta disciplina em 2015) pela contribuição na disciplina e nos slides.

Page 29: Banco de Dados: Teoria e Prática 1santanch/teaching/db/2016-2/... · 2016-11-22 · Banco de Dados na Web e XML (resolução dos exercícios) Banco de Dados: Teoria e Prática André

Referências Bibliográficas▪ Elmasri, Ramez; Navathe, Shamkant B. (2010) Sistemas de Banco de

Dados. Pearson, 6a edição em português.

▪ Lee, T.B. Notation 3. March 2006. on-line: http://www.w3.org/DesignIssues/Notation3.html

▪ Lee, T.B.; Hendler, J. & Lassila, O. The Semantic Web. Scientific American, 2001, 284, 28-37

▪ Moats R. URN Syntax. Network Working Group, May 1997.

▪ Sollins, K. and Masinter, L. Functional Requirements for Uniform Resource Names. Network Working Group, December 1994.

▪ Wang, X.; Gorlitsky, R. & Almeida, J.S. From XML to RDF: how semantic web technologies will change the design of 'omic' standards Nat Biotech. 2005, 23, 1099-1103.

▪ Whiteside, Arliss. URNs of definitions in ogc namespace. version: 1.0.0, document: 05-010. January 2005.

Page 30: Banco de Dados: Teoria e Prática 1santanch/teaching/db/2016-2/... · 2016-11-22 · Banco de Dados na Web e XML (resolução dos exercícios) Banco de Dados: Teoria e Prática André

Referências Bibliográficas

▪ Leise, F.; Fast, K.; Steckel, M. What Is A Controlled Vocabulary? Boxes and Arrows, Dezembro 2002, online: http://www.boxesandarrows.com/view/what_is_a_controlled_vocabulary_

▪ Amy J. Warner. Taxonomy Primer, online: http://www.lexonomy.com/publications/aTaxonomyPrimer.html, visitado em 20/08/2010.

▪ Wellisch, H. Indexing from A to Z. New York: H.W. Wilson, 1995. p. 214.

▪ Wilde, Erik. XML Foundations (slides). UC Berkeley iSchool, Aug 2006. http://dret.net/lectures/xml-fall06/basics

Page 31: Banco de Dados: Teoria e Prática 1santanch/teaching/db/2016-2/... · 2016-11-22 · Banco de Dados na Web e XML (resolução dos exercícios) Banco de Dados: Teoria e Prática André

André Santanchèhttp://www.ic.unicamp.br/~santanche

Page 32: Banco de Dados: Teoria e Prática 1santanch/teaching/db/2016-2/... · 2016-11-22 · Banco de Dados na Web e XML (resolução dos exercícios) Banco de Dados: Teoria e Prática André

License▪ These slides are shared under a Creative Commons License.

Under the following conditions: Attribution, Noncommercial and Share Alike.

▪ See further details about this Creative Commons license at:http://creativecommons.org/licenses/by-nc-sa/3.0/