Bases de dados semi-estruturadas, XML



Documentos relacionados
extensible Markup Language (XML) XML é uma linguagem de anotação. XML utiliza tags para descrever informação.

GERÊNCIA DE DADOS SEMIESTRUTURADOS -DTD. Prof. Angelo Augusto Frozza, M.Sc.

Um documento XML possui Unidade lógica - os elementos Usuário "inventa" as marcas através de DTDs

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 e Banco de Dados. Prof. Daniela Barreiro Claro DCC/IM/UFBA

Conversão do modelo UML para o modelo relacional

SQL: Interrogações simples

Introdução. Definição. Validação. Universo XML. Apresentação. Processamento. Prof. Enzo Seraphim. Banco de Dados

XML e Banco de Dados de Internet. Tópicos Especiais em Tecnologia da Informação Profa. Késsia R. C. Marchi

Sistemas Distribuídos na WEB (Plataformas para Aplicações Distribuídas) XML Origens. HTML Problemas

Uma Abordagem Alternativa para o Armazenamento Electrónico de Dados: O Papel da Norma XML

GERÊNCIA DE DADOS SEMI ESTRUTURADOS -XML. Prof. Angelo Augusto Frozza, M.Sc.

Sumário. XML (extensible Markup Language)

Álgebra relacional. Fernando Lobo. Conjunto de operadores que permitem manipular relações: produtos cartesianos e joins.

Sintaxe XML. César Vittori Outubro de Resumo Introdução à sintaxe XML. Marcação tradicional x marcação de documentos

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

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

XML. 1. XML: Conceitos Básicos. 2. Aplicação XML: XHTML 3. Folhas de Estilo em Cascata XML

GERÊNCIA DE DADOS SEMIESTRUTURADOS -XML. Prof. Angelo Augusto Frozza, M.Sc.

Álgebra relacional. Fernando Lobo. Base de Dados, aula 12

Transformação de Documentos XML em Bases de Dados Relacionais Utilizando ASP.NET

XML XML. XML extensible Markup Language HTML. Motivação. W3C: World Wide Web Consortium XML 1.0. Mário Meireles Teixeira DEINF-UFMA

GERÊNCIA DE DADOS SEMIESTRUTURADOS -XML. Prof. Angelo Augusto Frozza, M.Sc.

SQL: Definição de tabelas, Modificações à Base de Dados

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

L A C Laboratory for Advanced Collaboration

Programação para Internet I 4. XML. Nuno Miguel Gil Fonseca nuno.fonseca@estgoh.ipc.pt

XML (extensible Markup Language) por. Rafael Port da Rocha. (Notas de Aula)

Fernando Albuquerque - fernando@cic.unb.br. Bancos de Dados. Fernando Albuquerque fernando@cic.unb.br

Este relatório tem por objetivo, abordar a sintaxe XML.

Capítulo 9: XML! Database System Concepts! Silberschatz, Korth and Sudarshan (modificado)!

MAPEAMENTO DE CONSULTAS SQL EM XML ENTRE SISTEMAS GERENCIADORES DE BANCO DE DADOS RELACIONAIS

Tarefa Orientada 10 Obter informação a partir de uma tabela

Banco de Dados. Gerenciamento de Dados e Informação Fernando Fonseca, Ana Carolina Salgado & Robson Fidalgo

Programação SQL. Introdução

Linguagem XML. Linguagem XML

Web Semântica. Web Semântica. uma

Sistemas de Gerência de Bancos de Dados. 7 - Outras Arquiteturas para SGBDs SGBDs e a Web

Tutorial. Introdução ao XML e tecnologias associadas. Aplicações e dialectos XML. Sessão Fevereiro XATA 06

XML (extensible Markup Language)

Tarefa Orientada 12 Junção Externa, Auto-Junção e União

Introdução ao XML. Extensible Markup Language

Uma Abordagem sobre Mapeamento Objeto Relacional com Hibernate

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

Recapitular XML... Gestão e Tratamento de Informação DEI IST

UNIVERSIDADE FEDERAL DO PARANÁ PROGRAMA DE PÓS-GRADUAÇÃO EM INFORMÁTICA MESTRADO EM INFORMÁTICA

Disciplina: Unidade V: Prof.: Período:

Comandos de Manipulação

XML & Banco de Dados

XML Básico. Murillo Vasconcelos Henriques B. Castro. 17 de maio de 2011

Trabalho de Graduação

UNIVERSIDADE FEDERAL DE SANTA MARIA - UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN BANCO DE DADOS II

XML (extensible Markup Language)

Triggers e Regras. Fernando Lobo. Base de Dados, Universidade do Algarve

MINISTÉRIO DA CULTURA

Álgebra Relacional. Conjunto de operações que usa uma ou duas relações como entrada e gera uma relação de saída. Operações básicas:

Leiaute-IMPORTAÇÃO-Plano de Contas - XML

SQL (Structured Querie Language) Escola Secundária de Emídio Navarro 2001/2002 Estruturas, Tratamento e Organização de Dados

XHTML 1.0 DTDs e Validação

Dependências Funcionais

Geração de código intermediário. Novembro 2006

Introdução de XML. Dados da Web. Gerência de Dados da Web. A Web representa, nos dias de hoje, um repositório universal de dados, onde:

GESTÃO DA CADEIA DE SUPRIMENTOS FORMAS DE TROCA DE INFORMAÇÃO: EDI E XML

EMML Enterprise Mashup Markup Language. Jesús Martín Talavera Portocarrero

Informática I. Aula 6. Aula 6-12/09/2007 1

Função dos Sistemas de Bases de Dados Visão dos dados Modelos de dados Linguagem de Definição de Dados Linguagem de Manipulação de Dados Gestão de

3 Classes e instanciação de objectos (em Java)

Os dados no MySQL são armazenado em tabelas. Uma tabela é uma colecção de informação relacionada e consiste em colunas e linhas.

Dados Semi-Estruturados

XML extensible Markup Language. Prof. Fellipe Aleixo

Universidade Federal de Goiás Ciências da Computação Sistemas Operacionais 2

Sistemas de Gestão de Bases de Dados

António Rocha Nuno Melo e Castro

Estrutura Lógica DTD

Índice. Introdução 31. Tutorial 1: O Microsoft Access como Sistema de Gestão de Bases de Dados Relacionais 35

UNIVERSIDADE FEDERAL DE SANTA MARIA - UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN BANCO DE DADOS II

Controle de Restrições de Integridade de Domínio em Documentos XML

TX validação de XML baseada em tipos

Os objetivos indicados aplicam-se a duas linguagens de programação: C e PHP

Processamento de dados XML

XPath. Resumo Descrever um esquema específico XML (XPath) para identificar subestruturas

Guia de Consulta Rápida XML. Otávio C. Décio. Novatec Editora

Dados Semi-Estruturados e XML

Como funcionam os comandos de SQL no Logic Basic Por Alan Oliveira

JDBC Tópicos avançados de acesso a base de dados relacional

Esquema da Relação. Modelo Relacional. Instância da Relação. Exemplo. Uma base de dados é uma colecção de uma ou mais relações com nomes distintos

DTD. Vanessa Braganholo.

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

Manipulação de Dados em PHP (Visualizar, Inserir, Atualizar e Excluir) Parte 2

Hardware & Software. SOS Digital: Tópico 2

SQL UMA ABORDAGEM INTERESSANTE

Um modelo de dados é a colecção de, pelo menos, 3 componentes:

XML (extensible Markup Language)

A lógica de programação ajuda a facilitar o desenvolvimento dos futuros programas que você desenvolverá.

XML Schema. Vanessa de Paula Braganholo ftp://metropole/pub/curso/xml/index.html. Janeiro de XML Schema

XML XML. Motivação. Mário Meireles Teixeira DEINF-UFMA

JPA: Persistência padronizada em Java

Interpretação e Compilação de Linguagens de Programação Sintaxe e Semântica

Transcrição:

Bases de dados semi-estruturadas, XML Fernando Lobo Base de Dados, Universidade do Algarve 1 / 40 Modelo de informação semi-estruturado Esquema está impĺıcito nos dados. Ao invés do modelo relacional, não é obrigatório a existência de um esquema para a BD. Muito em voga nos últimos anos com XML. 2 / 40

Modelo de informação semi-estruturado Os dados são auto-descritivos. Podemos forçar a existência de um esquema se assim o desejarmos. É mais flexível que o modelo relacional. As linguagens para manipular os dados não são tão eficientes como no modelo relacional. 3 / 40 Representação A BD é um grafo, uma colecção de nós e arcos entre nós. Um nó pode ser um nó interior ou uma folha. As folhas têm informação associada (inteiros, strings, datas, etc.) Os nós interiores têm 1 ou mais arcos para outros nós. 4 / 40

Nós interiores Cada arco tem uma anotação que indica como o nó de origem se relaciona com o nó destino. Existe um nó especial, a raíz, que não tem arcos a apontar para ele, e que representa a BD inteira. Todo o nó pode ser alcançado através de um caminho a partir da raíz. 5 / 40 Exemplo: BD de filmes raiz actor actor filme nome cf nome hf rua cidade participaem temactor sw nome ano morada morada Harrison Ford Oak Rd Beverly Hills Star Wars 1977 Carrie Fisher rua cidade rua cidade participaem temactor 123 Maple St Hollywood 7th Av New York 6 / 40

Etiquetas em nó interior Uma anotação L num arco do nó N para o nó M pode significar 2 coisas: N e M podem ser objectos que estão relacionados através de uma associação de nome L. hf participaem sw N pode ser um objecto e M é um dos atributos do objecto. Neste caso L é o nome do atributo. ano sw 1977 7 / 40 XML extensible Markup Language XML é um standard que nos permite armazenar e manipular informação semi-estruturada. Muito bom para integrar informação oriunda de bases de dados distintas e para partilhar informação na web. 8 / 40

XML XML é uma linguagem de anotação. Utiliza etiquetas (tags, em inglês) para descrever informação. Podemos definir os tags que quisermos. 9 / 40 XML: tags e elementos Tags: <ano> </ano> Um elemento é um par de matching tags e tudo o que está aí incluído. Um documento XML tem um só elemento raíz, que corresponde à BD inteira. 10 / 40

XML bem formado Não há esquema pré-definido. Encadeamento de tags tem de ser respeitado, tal como os parêntesis de uma expressão aritmética. 11 / 40 Exemplo <?xml version="1.0" standalone="yes"?> <Info_Filmes> <Actor> <Nome>Carrie Fisher</Nome> <Morada> <Rua>123 Maple St</Rua> <Cidade>Hollywood</Cidade> </Morada> <Morada> <Rua>7th Ave</Rua> <Cidade>New York</Cidade> </Morada> </Actor> 12 / 40

Exemplo (cont.) <Actor> <Nome>Harrison Ford</Nome> <Rua>Oak Rd</Rua> <Cidade>Beverly Hills</Cidade> </Actor> <Filme> <Nome>Star Wars</Nome> <Ano>1977</Ano> </Filme> </Info_Filmes> 13 / 40 Atributos Os elementos podem ter atributos. É um modo alternativo de representar uma folha no modelo semi-estruturado. Exemplo, Ou, <Filme ano="1977"><nome>star Wars</Nome></Filme> <Filme nome="star Wars" ano="1977"></filme> Ou ainda, <Filme nome="star Wars" ano="1977" /> 14 / 40

Atributos para associar elementos Podemos usar atributos para representar associações entre elementos. Tornam-se uma espécie de apontadores. <?xml version="1.0" standalone="yes"?> <Info_Filmes> <Actor actorid="cf" participaem="sw"> <Nome>Carrie Fisher</Nome> <Morada> <Rua>123 Maple St</Rua> <Cidade>Hollywood</Cidade> </Morada> <Morada> <Rua>7th Ave</Rua> <Cidade>New York</Cidade> </Morada> </Actor> 15 / 40 <Actor actorid="hf" participaem="sw"> <Nome>Harrison Ford</Nome> <Rua>Oak Rd</Rua> <Cidade>Beverly Hills</Cidade> </Actor> <Filme filmeid="sw" actores="cf hf"> <Nome>Star Wars</Nome> <Ano>1977</Ano> </Filme> </Info_Filmes> 16 / 40

XML válido Requer um esquema. Pode ser definido usando um DTD (Document Type Definition) Um DTD é uma espécie de gramática que define regras para o documento. Uma alternativa ao DTD é usar XML Schema (que não vamos ver nesta disciplina.) 17 / 40 DTDs <!DOCTYPE <tag raiz> [ <!ELEMENT <nome> ( <componentes> ) <mais elementos> ]> A descrição de um elemento consiste num nome (tag), e na descrição dos seus elementos constituintes. inclui ordem e multiplicidade. As folhas são elementos de texto e têm #PCDATA (Parsed Character Data) 18 / 40

DTD para filmes <!DOCTYPE Info_Filmes [ <!ELEMENT Info_Filmes (Actor*, Filme*)> <!ELEMENT Actor (Nome, (Morada+ (Rua, Cidade)))> <!ELEMENT Morada (Rua, Cidade)> <!ELEMENT Rua (#PCDATA)> <!ELEMENT Cidade (#PCDATA)> <!ELEMENT Filme (Nome, Ano)> <!ELEMENT Nome (#PCDATA)> <!ELEMENT Ano (#PCDATA)> ]> 19 / 40 Definição de elementos Os elementos devem aparecer pela ordem especificada. No final do tag coloca-se um símbolo que indica a multiplicidade. * zero ou mais. + um ou mais.? zero ou um. O símbolo tem o significado de ou (permite especificar uma sequência alternativa de tags). 20 / 40

Definição de atributos <!ATTLIST nome-elemento nome-atributo tipo > O tipo mais comum é CDATA (uma string) Identificador é do tipo ID Referência é do tipo IDREF, lista de referências é do tipo IDREFS. Atributos podem ser obrigatórios (#REQUIRED) ou opcionais (#IMPLIED) 21 / 40 DTD para filmes, com ID s e IDREF s <!DOCTYPE Info_Filmes [ <!ELEMENT Info_Filmes (Actor*, Filme*)> <!ELEMENT Actor (Nome, Morada+)> <!ATTLIST Actor actorid ID #REQUIRED participaem IDREFS #IMPLIED > <!ELEMENT Nome (#PCDATA)> <!ELEMENT Morada (Rua, Cidade)> <!ELEMENT Rua (#PCDATA)> <!ELEMENT Cidade (#PCDATA)> <!ELEMENT Filme (Nome, Ano)> <!ATTLIST Filme filmeid ID #REQUIRED actores IDREFS #IMPLIED > <!ELEMENT Ano (#PCDATA)> ]> 22 / 40

Utilização do DTD No documento XML colocar STANDALONE = no, e depois, Incluir o DTD no preâmbulo do documento XML, ou Colocar DOCTYPE <elemento raiz> SYSTEM path para o ficheiro que contem o DTD. 23 / 40 Exemplo 1 <?xml version="1.0" standalone="no"?> <!DOCTYPE Info_Filmes [ <!ELEMENT Info_Filmes (Actor*, Filme*)> <!ELEMENT Actor (Nome, Morada+)>... ]> <Info_Filmes> <Actor actorid="cf" participaem="sw"> <Nome>Carrie Fisher</Nome> <Morada>... </Morada> </Actor>... </Info_Filmes> 24 / 40

Exemplo 2, DTD em ficheiro externo <?xml version="1.0" standalone="no"?> <!DOCTYPE Info_Filmes SYSTEM "filmes-id.dtd"> <Info_Filmes> <Actor actorid="cf" participaem="sw"> <Nome>Carrie Fisher</Nome> <Morada>... </Morada> </Actor>... </Info_Filmes> 25 / 40 Como validar Existem programas que permitem validar um documento XML Um desses programas chama-se xmllint e corre na linha de comandos. Exemplo de utilização, xmllint --dtdvalid filmesid.dtd --noout filmesid.xml 26 / 40

Linguagens de programação para XML Duas linguagens importantes para manipular XML, XPath XQuery 27 / 40 XPath Permite extrair informação de um documento XML usando expressões que denotam caminhos a partir do raíz do grafo. Exemplos, Retorna os actores Info_Filmes/Actor Retorna os nomes dos actores Info_Filmes/Actor/Nome 28 / 40

Atributos Para extrair o valor de um atributo temos de usar @nome-do-atributo. Exemplo, Retorna os IDs dos actores Info_Filmes/Actor/@actorID 29 / 40 Condições Nome dos actores que moram em Hollywood /Info_Filmes/Actor[Morada/Cidade = "Hollywood"]/Nome Nome dos filmes feitos depois de 1980 /Info_Filmes/Filme[Ano > 1980]/Nome 30 / 40

XQuery XQuery é uma generalização do XPath É uma linguagem funcional baseada em expressões Tem algumas semelhanças com SQL 31 / 40 Expressões FLWR (flower) F for... L let... W where... R return... 32 / 40

Expressões FLWR (flower) Query tem, zero ou mais clausulas for e let, intercaladas em qualquer ordem seguido de uma clausula opcional where seguido de uma clausula return 33 / 40 Exemplo Nome dos actores let $info := doc("filmes-id.xml") for $a in $info//actor return $a/nome variáveis começam com $ := sinal de atribuição return não tem o significado habitual como em C ou Java. Pode ser chamado várias vezes. O resultado vai sendo concatenado sempre que a clausula where é verdadeira. 34 / 40

Mais exemplos Nome dos actores que moram em Hollywood let $info := doc("filmes-id.xml") for $a in $info//actor where $a/morada/cidade = "Hollywood" return $a/nome Nome de filmes feitos depois de 1980 let $info := doc("filmes-id.xml") for $f in $info//filme where $f/ano > 1980 return $f/nome 35 / 40 Mais exemplos Número de actores let $seq := ( let $info := doc("filmes-id.xml") for $a in $info//actor return $a/nome ) return count($seq) 36 / 40

Mais exemplos Dentro de tags, substituir variáveis pelo respectivo valor let $seq := ( let $info := doc("filmes-id.xml") for $a in $info//actor return $a/nome ) return <actores>{$seq}</actores> 37 / 40 Mais exemplos Nome dos filmes em que participou o Harrison Ford let $info := doc("filmes-id.xml") let $actores := $info//actor let $filmesid_hf := ( for $a in $actores where $a/nome = "Harrison Ford" return $a/data(@participaem) ) let $filmes := $info//filme for $f in $filmes where contains($filmesid_hf, $f/@filmeid) return $f/nome 38 / 40

Mais exemplos Retornar pares de actores com a mesma morada (equivalente a um Join) let $info := doc("filmes-id.xml") let $actores := $info//actor for $a1 in $actores, $a2 in $actores where $a1/morada/rua = $a2/morada/rua and $a1/morada/cidade = $a2/morada/cidade and $a1/nome < $a2/nome return <par>{$a1/nome}{$a2/nome}</par> 39 / 40 Informação adicional Há muito mais para além disto. Um bom local para explorar é ver os tutoriais de XPath e XQuery em http://www.w3schools.com/ Podem testar os exemplos que dei usando um processador de XML, como o Saxon. (Kernow é uma aplicação gráfica que usa Saxon, pode ser decarregada em http://kernowforsaxon.sourceforge.net/) Existem API s para usar XQuery em programas Java. 40 / 40