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 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.
   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.
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
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.
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.
   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.
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.
Dados não Estruturados
Dados não Estruturados
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.
   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.
   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.
   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.
   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ó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.
   Documentos XML híbridos:

Possuem muitos itens de dados, assim como
grande quantidades de texto, e também não
sã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 de
documentos 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 de
    ser bem formado, os nomes das tags devem
    seguir uma estrutura especificada em um
    arquivo.

   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 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.
   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.
   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.
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á 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.
   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 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.
   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 xpath
    indica o campo do atributo, caso esse atributo
    seja um elemento complexo.
   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>
   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.
   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
   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/

XML e Banco de Dados XML Nativo

  • 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
  • 6.
    Dados Estruturados  Ainformaçã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.
  • 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.
  • 12.
  • 13.
  • 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.
  • 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 aoconteú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.
  • 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 estarsintaticamente correto. Isso permite que qualquer processador de documentos XML possa lê-lo corretamente.  Não há restrição quanto aos nomes das tags.
  • 25.
    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>
  • 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.
  • 28.
    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)> ]>
  • 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.
  • 34.
  • 35.
  • 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>
  • 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.
  • 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
  • 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/