O documento discute: 1) como dados estruturados, semi-estruturados e não estruturados são armazenados e acessados; 2) como XML é usado para estruturar dados na web de forma mais flexível que HTML; 3) como esquemas XML especificam a estrutura de documentos XML de forma mais genérica que DTDs.
XML e bancos de dados: estruturação e acesso a dados
1. Giorgio Prímola F. G. Torres – 59377
Vitor Madureira Sales – 51091
Wagner J. da S. Freitas – 56571
2. De que modo os bancos de dados são usados
e acessados a partir da Internet?
O HTML é muito utilizado para formatar e
estruturar documentos Web.
Ele não é adequado para especificar dados
estruturados que são extraídos de bancos de
dados.
3. O XML (Linguagem Estendida de Marcação) —
surgiu como o padrão para estruturar e trocar
dados pela Web.
O XML pode ser usado para fornecer
informação sobre a estrutura e o significado
dos dados nas páginas web.
4. 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 de
Documento) e esquema XML.
Como vários tipos de documentos XML podem
ser armazenados e recuperados.
Consultas XML
5.
6. Dados Estruturados
A informação armazenada em bancos de
dados é conhecida como dados estruturados
porque é representada em um formato rígido
(segue o mesmo formato dos outros registros
daquela tabela).
O SGBD assegura que os dados sigam as
estruturas e restrições especificadas no
esquema.
7. Dados Semi-Estruturados
Esses dados podem possuir uma estrutura,
mas nem toda a informação coletada terá
estrutura idêntica.
Atributos adicionais podem ser introduzidos
em alguns dos itens de dados mais novos a
qualquer momento, e não há nenhum
esquema predefinido.
São baseados no uso de estruturas de dados
de árvore ou de grafos em lugar das
estruturas planas do modelo relacional.
8.
9.
10. Os nodos internos representam objetos
individuais ou atributos compostos.
Os nodos folhas representam valores de
dados de fato de atributos simples
(atômicos).
Nomes de atributos, relacionamentos e
classes (tipos de objetos) no modelo semi-
estruturado é misturada com os objetos e
seus valores de dados na mesma estrutura de
dados.
11. Dados não Estruturados
Existe uma indicação muito limitada do tipo dos
dados.
Os tags especificam a formatação do documento
em vez do significado dos vários elementos de
dados 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.
14. Dados não Estruturados
documento de texto HTML é muito difícil de
ser interpretado porque eles não incluem
informação de esquema sobre o tipo de
dados nos documentos.
15.
16. Baseado em dois conceitos de estruturação:
elementos e atributos de elementos.
Atributos de elemento fornecem informações
adicionais aos elementos.
Elementos são definidos por tag de início e
tag de fim.
17. Tag de início: <exemplo>
Tag de fim: </exemplo>
Elementos são classificados em duas categorias:
simples e complexos.
Elementos simples são representados pelas
folhas da árvore; Elementos complexos são os
nós e a raiz.
18. Elementos simples são caracterizados por
conter 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.
19. 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>
20. Caracterização quanto ao conteúdo
Documentos XML centrados em dados:
possuem muitos itens de dados e são,
normalmente, estruturados, com o propósito
de troca e exibição pela internet.
Documentos XML centrados em documento:
possuem muito texto, podendo representar
artigos de jornais ou revista; não seguem
uma estruturação padrão.
21. Documentos XML híbridos:
Possuem muitos itens de dados, assim como
grande quantidades de texto, e também não
são estruturados.
22.
23. 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.
24. Deve estar sintaticamente correto.
Isso permite que qualquer processador de
documentos XML possa lê-lo corretamente.
Não há restrição quanto aos nomes das tags.
26. 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.
27. Para um documento XML ser válido, além de
ser bem formado, os nomes das tags devem
seguir uma estrutura especificada em um
arquivo.
XML DTD.
Schema XML.
29. 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.
30. Limitações da DTD:
Os tipos de dados em DTD não são muito
genéricos;
Documento DTD possui sua própria sintaxe,
sendo necessário um processador de texto
especializado;
Ordem a ser seguida no documento XML é a
ordem que está especificada no DTD.
31. Schema XML especifica a estrutura de
documentos XML usando as mesmas regras
de sintaxe de XML.
Também é baseado no modelo de dados de
árvore, tendo como elementos principais
atributos e elementos, mas também utiliza
conceitos adicionais a estes, herdados de
banco de dados, como chaves, referências e
identificadores.
32. Como o documento de esquema XML é um
documento XML, ele deve começar com um
cabeçalho inicial comum de XML.
O segundo item num documento de esquema
XML, diz respeito a um conjunto específico de
elementos (tags) utilizado naquele documento.
Esse conjunto é definido através de um arquivo
hospedado em um site.
É chamado de namespace de XML.
42. Ex.:
<xsd:schema xmlns:xsd=―http://www.w3.org/2001/XMLSchema‖>
O site entre aspas contém o arquivo que será usado
como namespace.
xsd (XML Shema Descriptor)é a variável que guarda o
arquivo que contém o namespace para o documento.
xmlns especifica que a variável xsd é uma variável de
namespace, isto é, ela será usada como prefixo para
todos os elementos (nomes de tags) de esquema.
43. 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>
44. No exemplo, as tags xsd:annotation e
xsd:documentation do esquema xsd, servem
para descrever comentários e descrições
gerais sobre o documento. Além disso, o
atributo xml:lang especifica o idioma usado
para compor aquele documento.
45. 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>
46. Exemplo de elemento simples:
<xsd:element name=―nomeDepartamento‖ type=―xsd:string‖ />
◦ Um elemento simples é, normalmente,
caracterizado como um elemento vazio,
representado apenas pelos atributos.
47. 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>
48. 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.
49. 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‖ />
50. 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 xpath
indica o campo do atributo, caso esse atributo
seja um elemento complexo.
51. Para especificar chaves primárias usa-se a tag
xsd: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>
52.
53. Uso de um SGBD para armazenar os documentos como
texto.
Uso de um SGBD para armazenar o conteúdo do documento
como elemento Xml.
Uso de um sistema especializado para o armazenamento de
dados XML nativos.
Criação ou publicação de documentos XML customizados a
partir de bancos de dados relacionais preexistentes.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67. Xquery é conhecida pela expressão FLWR que
representa 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
68.
69.
70. Elmasri, Ramez
Sistemas de Banco de Dados / Ramez Elmasri e Shamkant B.
Navathe – Pearson Addison Weasley, 2005.
World Wide Web Consortium
http://www.w3c.org/
Wikipedia
http://pt.wikipedia.org/wiki/XML/