XML e Banco de Dados XML Nativo

70
Giorgio Prímola F. G. Torres 59377 Vitor Madureira Sales 51091 Wagner J. da S. Freitas 56571

Transcript of XML e Banco de Dados XML Nativo

Page 1: XML e Banco de Dados XML Nativo

Giorgio Prímola F. G. Torres – 59377

Vitor Madureira Sales – 51091

Wagner J. da S. Freitas – 56571

Page 2: XML e Banco de Dados XML Nativo

De que modo os bancos de dados são usadose acessados a partir da Internet?

O HTML é muito utilizado para formatar eestruturar documentos Web.

Ele não é adequado para especificar dadosestruturados que são extraídos de bancos dedados.

Page 3: XML e Banco de Dados XML Nativo

O XML (Linguagem Estendida de Marcação) —surgiu como o padrão para estruturar e trocardados pela Web.

O XML pode ser usado para fornecerinformação sobre a estrutura e o significadodos dados nas páginas web.

Page 4: XML e Banco de Dados XML Nativo

Veremos a seguir: Diferenças entre dados estruturados, semi-

estruturados e não estruturados.

Modelo de Dados Hierárquicos (Árvore).

Documentos XML, DTD (Definição de Tipo deDocumento) e esquema XML.

Como vários tipos de documentos XML podemser armazenados e recuperados.

Consultas XML

Page 5: XML e Banco de Dados XML Nativo
Page 6: XML e Banco de Dados XML Nativo

Dados Estruturados

A informação armazenada em bancos dedados é conhecida como dados estruturadosporque é representada em um formato rígido(segue o mesmo formato dos outros registrosdaquela tabela).

O SGBD assegura que os dados sigam asestruturas e restrições especificadas noesquema.

Page 7: XML e Banco de Dados XML Nativo

Dados Semi-Estruturados Esses dados podem possuir uma estrutura,

mas nem toda a informação coletada teráestrutura idêntica.

Atributos adicionais podem ser introduzidosem alguns dos itens de dados mais novos aqualquer momento, e não há nenhumesquema predefinido.

São baseados no uso de estruturas de dadosde árvore ou de grafos em lugar dasestruturas planas do modelo relacional.

Page 8: XML e Banco de Dados XML Nativo
Page 9: XML e Banco de Dados XML Nativo
Page 10: XML e Banco de Dados XML Nativo

Os nodos internos representam objetosindividuais ou atributos compostos.

Os nodos folhas representam valores dedados de fato de atributos simples(atômicos).

Nomes de atributos, relacionamentos eclasses (tipos de objetos) no modelo semi-estruturado é misturada com os objetos eseus valores de dados na mesma estrutura dedados.

Page 11: XML e Banco de Dados XML Nativo

Dados não Estruturados

Existe uma indicação muito limitada do tipo dos dados.

Os tags especificam a formatação do documentoem vez do significado dos vários elementos dedados do documento.

Os tags HTML especificam informações, como tamanho de fonte e estilo (negrito, itálico etc), cor, níveis de cabeçalhos em documentos, e assim por diante.

Page 12: XML e Banco de Dados XML Nativo

Dados não Estruturados

Page 13: XML e Banco de Dados XML Nativo

Dados não Estruturados

Page 14: XML e Banco de Dados XML Nativo

Dados não Estruturados

documento de texto HTML é muito difícil deser interpretado porque eles não inclueminformação de esquema sobre o tipo dedados nos documentos.

Page 15: XML e Banco de Dados XML Nativo
Page 16: XML e Banco de Dados XML Nativo

Baseado em dois conceitos de estruturação:elementos e atributos de elementos.

Atributos de elemento fornecem informaçõesadicionais aos elementos.

Elementos são definidos por tag de início etag de fim.

Page 17: XML e Banco de Dados XML Nativo

Tag de início: <exemplo>

Tag de fim: </exemplo>

Elementos são classificados em duas categorias: simples e complexos.

Elementos simples são representados pelasfolhas da árvore; Elementos complexos são osnós e a raiz.

Page 18: XML e Banco de Dados XML Nativo

Elementos simples são caracterizados porconter valores de dados.

Ex.: <nome>Brasil</nome>

Diferença entre XML e HTML: a tag <nome> é um nome de um valor de dado, ela não indica como o valor Brasil será exibido no documento.

Page 19: XML e Banco de Dados XML Nativo

Elementos complexos são representações hierárquicas de outros elementos.

Ex.: <paises>

... <pais>

<nome>Brasil</nome>

<populacao>190.732.694</populacao><area>8.514.876,599</area>...

</pais>...

</paises>

Page 20: XML e Banco de Dados XML Nativo

Caracterização quanto ao conteúdo

Documentos XML centrados em dados:possuem muitos itens de dados e são,normalmente, estruturados, com o propósitode troca e exibição pela internet.

Documentos XML centrados em documento:possuem muito texto, podendo representarartigos de jornais ou revista; não seguemuma estruturação padrão.

Page 21: XML e Banco de Dados XML Nativo

Documentos XML híbridos:

Possuem muitos itens de dados, assim comogrande quantidades de texto, e também nãosão estruturados.

Page 22: XML e Banco de Dados XML Nativo
Page 23: XML e Banco de Dados XML Nativo

Para um documento XML ser bem formado, ele deve respeitar algumas condições:

Começar com uma declaração XML:

<?xml version=―1.0‖ encoding="utf-8" standalone=―yes‖?>

Deve seguir a estrutura de árvore, contendo apenas uma raiz.

Page 24: XML e Banco de Dados XML Nativo

Deve estar sintaticamente correto.

Isso permite que qualquer processador dedocumentos XML possa lê-lo corretamente.

Não há restrição quanto aos nomes das tags.

Page 25: XML e Banco de Dados XML Nativo

Exemplo:

<?xml version=―1.0‖ encoding="utf-8" standalone=―yes‖?>

<projetos><projeto>

<nome>ProjetoX</nome><numero>190.732.694</numero><localizacao>depArquitetura</localizacao>...

</projeto>

</projetos>

Page 26: XML e Banco de Dados XML Nativo

SAX – Simple API for XML:API independente de linguagem, que provê acesso serial a um documento XML.

DOM – Document Object Model:API independente de linguagem, que provê acesso e manipulação à representação da estrutura indicada por um documento XML, na memória.

Page 27: XML e Banco de Dados XML Nativo

Para um documento XML ser válido, além deser bem formado, os nomes das tags devemseguir uma estrutura especificada em umarquivo.

XML DTD.

Schema XML.

Page 28: XML e Banco de Dados XML Nativo

Exemplo DTD:

<!DOCTYPE projetos [<!ELEMENT paises (projeto+)><!ELEMENT projeto (Nome, Numero, Localizacao, NumDepto?, Trabalhadores)><!ELEMENT Nome (#PCDATA)><!ELEMENT Numero (#PCDATA)><!ELEMENT Localizacao (#PCDATA)><!ELEMENT NumDepto (#PCDATA)><!ELEMENT Trabalhadores (Trabalhador*)><!ELEMENT Trabalhador (SSN, UltimoNome?, PrimeiroNome?, horas)><!ELEMENT SSN (#PCDATA)><!ELEMENT UltimoNome (#PCDATA)><!ELEMENT PrimeiroNome (#PCDATA)><!ELEMENT horas (#PCDATA)>

]>

Page 29: XML e Banco de Dados XML Nativo

Um documento XML que segue uma DTD deve especificá-la em seu cabeçalho:

<?xml version=―1.0‖ encoding="utf-8" standalone=―no‖?>

<!DOCTYPE projetos SYSTEM ―projets.dtd‖>

Ou incluir a DTD no início do próprio documento XML.

Page 30: XML e Banco de Dados XML Nativo

Limitações da DTD:

Os tipos de dados em DTD não são muitogenéricos;

Documento DTD possui sua própria sintaxe,sendo necessário um processador de textoespecializado;

Ordem a ser seguida no documento XML é aordem que está especificada no DTD.

Page 31: XML e Banco de Dados XML Nativo

Schema XML especifica a estrutura dedocumentos XML usando as mesmas regrasde sintaxe de XML.

Também é baseado no modelo de dados deárvore, tendo como elementos principaisatributos e elementos, mas também utilizaconceitos adicionais a estes, herdados debanco de dados, como chaves, referências eidentificadores.

Page 32: XML e Banco de Dados XML Nativo

Como o documento de esquema XML é umdocumento XML, ele deve começar com umcabeçalho inicial comum de XML.

O segundo item num documento de esquemaXML, diz respeito a um conjunto específico deelementos (tags) utilizado naquele documento.Esse conjunto é definido através de um arquivohospedado em um site.

É chamado de namespace de XML.

Page 33: XML e Banco de Dados XML Nativo
Page 34: XML e Banco de Dados XML Nativo

Cabeçalho do esquema

Page 35: XML e Banco de Dados XML Nativo

Especificação do elemento empresa (raiz)

Page 36: XML e Banco de Dados XML Nativo
Page 37: XML e Banco de Dados XML Nativo
Page 38: XML e Banco de Dados XML Nativo
Page 39: XML e Banco de Dados XML Nativo
Page 40: XML e Banco de Dados XML Nativo
Page 41: XML e Banco de Dados XML Nativo
Page 42: XML e Banco de Dados XML Nativo

Ex.:<xsd:schema xmlns:xsd=―http://www.w3.org/2001/XMLSchema‖>

O site entre aspas contém o arquivo que será usadocomo namespace.

xsd (XML Shema Descriptor)é a variável que guarda oarquivo que contém o namespace para o documento.

xmlns especifica que a variável xsd é uma variável denamespace, isto é, ela será usada como prefixo paratodos os elementos (nomes de tags) de esquema.

Page 43: XML e Banco de Dados XML Nativo

Após a definição do namespace pode-se adicionar um elemento que conterá apenas informações sobre aquele esquema.

Ex.:<xsd:annotation>

<xsd:documentation xml:lang=―en‖>Enterprise Schema</xsd:documentation>

</xsd:annotation>

Page 44: XML e Banco de Dados XML Nativo

No exemplo, as tags xsd:annotation exsd:documentation do esquema xsd, servempara descrever comentários e descriçõesgerais sobre o documento. Além disso, oatributo xml:lang especifica o idioma usadopara compor aquele documento.

Page 45: XML e Banco de Dados XML Nativo

Cada elemento, simples ou composto, pode ser especificado por uma tag. Normalmente não é especificado o tipo do elemento raiz, pois seu tipo é o que está descrito no documento.

Exemplo de elemento raiz.:<xsd:element name=―enterprise‖>

<xsd:complexType><xsd:sequence>

...<xsd:sequence>

</xsd:complexType></xsd:element>

Page 46: XML e Banco de Dados XML Nativo

Exemplo de elemento simples:<xsd:element name=―nomeDepartamento‖ type=―xsd:string‖ />

◦ Um elemento simples é, normalmente, caracterizado como um elemento vazio, representado apenas pelos atributos.

Page 47: XML e Banco de Dados XML Nativo

Exemplo elemento composto 1:

<xsd:element name=―departamento‖><xsd:complexType name>

<xsd:sequence>―lista de elementos simples ou

compostos‖</xsd:sequence>

</xsd:complexType></xsd:element>

Page 48: XML e Banco de Dados XML Nativo

Exemplo elemento composto 2:<xsd:element name=―departamento‖ type=―Departamento‖/>

...

<xsd:complexType name=―Departamento‖><xsd:sequence>

―lista de elementos simples ou compostos‖</xsd:sequence>

</xsd:complexType>

A diferença entre os dois elementos compostos é que o segundo elemento é de um tipo complexo.

Page 49: XML e Banco de Dados XML Nativo

Ocorrência mínima e máxima de um elemento pode ser especificada utilizando os atributos minOccurs e maxOccurs dentro da tag de um elemento.

Exemplo:

<xsd:element name=―departamento‖ type=―Departamento‖

minOccurs=―0‖ maxOccurs=―unbounded‖ />

Page 50: XML e Banco de Dados XML Nativo

Especificação de elemento único, correspondente a atributo único em um banco de dados relacional, mas que não é atributo chave:

<xsd:unique name=―nomeDependenteUnico‖><xsd:selector xpath=―dependenteTrabalhador‖/><xsd:field xpath=―nomeDependente‖/>

</xsd:unique>

xsd:selector xpath indica qual atributo do tipo de dado Trabalhador será único; e xsd:field xpathindica o campo do atributo, caso esse atributo seja um elemento complexo.

Page 51: XML e Banco de Dados XML Nativo

Para especificar chaves primárias usa-se a tagxsd:key no lugar da tag xsd:unique.

Chaves estrangeiras:

<xsd:keyref name=―refChaveuSSNGerenteDepartamento‖

refer=―chaveuSSNTrabalhador‖><xsd:selector xpath=―departamento‖/><xsd:field xpath=―uSSNGerenteDepartamento‖/>

</xsd:keyref>

Page 52: XML e Banco de Dados XML Nativo
Page 53: XML e Banco de Dados XML Nativo

Uso de um SGBD para armazenar os documentos comotexto.

Uso de um SGBD para armazenar o conteúdo do documentocomo elemento Xml.

Uso de um sistema especializado para o armazenamento dedados XML nativos.

Criação ou publicação de documentos XML customizados apartir de bancos de dados relacionais preexistentes.

Page 54: XML e Banco de Dados XML Nativo
Page 55: XML e Banco de Dados XML Nativo
Page 56: XML e Banco de Dados XML Nativo
Page 57: XML e Banco de Dados XML Nativo
Page 58: XML e Banco de Dados XML Nativo
Page 59: XML e Banco de Dados XML Nativo
Page 60: XML e Banco de Dados XML Nativo
Page 61: XML e Banco de Dados XML Nativo
Page 62: XML e Banco de Dados XML Nativo
Page 63: XML e Banco de Dados XML Nativo
Page 64: XML e Banco de Dados XML Nativo
Page 65: XML e Banco de Dados XML Nativo
Page 66: XML e Banco de Dados XML Nativo
Page 67: XML e Banco de Dados XML Nativo

Xquery é conhecida pela expressão FLWR querepresenta as quatro principais clásulas do Xml

FOR/LET associam valores às variáveis

WHERE filtra o resultado vindo das cláusulas FOR/LET

RETURN gera a saída da consulta

Page 68: XML e Banco de Dados XML Nativo
Page 69: XML e Banco de Dados XML Nativo
Page 70: XML e Banco de Dados XML Nativo

Elmasri, RamezSistemas de Banco de Dados / Ramez Elmasri e Shamkant B.

Navathe – Pearson Addison Weasley, 2005.

World Wide Web Consortiumhttp://www.w3c.org/

Wikipediahttp://pt.wikipedia.org/wiki/XML/