XML e Banco de Dados XML Nativo

Post on 20-Aug-2015

9.537 views 6 download

Transcript of XML e Banco de Dados XML Nativo

Giorgio Prímola F. G. Torres – 59377

Vitor Madureira Sales – 51091

Wagner J. da S. Freitas – 56571

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.

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.

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

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.

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.

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.

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.

Dados não Estruturados

Dados não Estruturados

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.

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.

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.

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.

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>

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.

Documentos XML híbridos:

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

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.

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.

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>

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.

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.

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)>

]>

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.

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.

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.

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.

Cabeçalho do esquema

Especificação do elemento empresa (raiz)

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.

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>

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.

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>

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

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

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>

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.

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‖ />

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.

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>

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.

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

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/