SlideShare a Scribd company logo
1 of 70
Download to read offline
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/

More Related Content

What's hot

1 03 - CSS Introduction
1 03 - CSS Introduction1 03 - CSS Introduction
1 03 - CSS Introduction
apnwebdev
 
Revisão HTML, CSS e BOOTSTRAP - Professor Franciosney
Revisão HTML, CSS e BOOTSTRAP - Professor FranciosneyRevisão HTML, CSS e BOOTSTRAP - Professor Franciosney
Revisão HTML, CSS e BOOTSTRAP - Professor Franciosney
franciosney
 

What's hot (20)

MongoDB e Bancos de Dados Orientados a Documentos
MongoDB e Bancos de Dados Orientados a DocumentosMongoDB e Bancos de Dados Orientados a Documentos
MongoDB e Bancos de Dados Orientados a Documentos
 
1 03 - CSS Introduction
1 03 - CSS Introduction1 03 - CSS Introduction
1 03 - CSS Introduction
 
CSS
CSSCSS
CSS
 
Apresentação Final de Banco de Dados
Apresentação Final de Banco de DadosApresentação Final de Banco de Dados
Apresentação Final de Banco de Dados
 
Yaml
YamlYaml
Yaml
 
Aula 2 - Introdução a Banco de Dados
Aula 2 - Introdução a Banco de DadosAula 2 - Introdução a Banco de Dados
Aula 2 - Introdução a Banco de Dados
 
Banco de Dados II Aula 14 - Projeto de Banco de Dados e Estudo de Caso (Postg...
Banco de Dados II Aula 14 - Projeto de Banco de Dados e Estudo de Caso (Postg...Banco de Dados II Aula 14 - Projeto de Banco de Dados e Estudo de Caso (Postg...
Banco de Dados II Aula 14 - Projeto de Banco de Dados e Estudo de Caso (Postg...
 
#4 Primeiros comandos no MongoDB
#4   Primeiros comandos no MongoDB#4   Primeiros comandos no MongoDB
#4 Primeiros comandos no MongoDB
 
Banco de Dados I - Aula 10 - Banco de Dados Relacional (Modelo Físico)
Banco de Dados I - Aula 10 - Banco de Dados Relacional (Modelo Físico)Banco de Dados I - Aula 10 - Banco de Dados Relacional (Modelo Físico)
Banco de Dados I - Aula 10 - Banco de Dados Relacional (Modelo Físico)
 
Apache HBase - Just the Basics
Apache HBase - Just the BasicsApache HBase - Just the Basics
Apache HBase - Just the Basics
 
Html Básico
Html BásicoHtml Básico
Html Básico
 
Introdução a Tecnologias Web
Introdução a Tecnologias WebIntrodução a Tecnologias Web
Introdução a Tecnologias Web
 
PostgreSQL
PostgreSQLPostgreSQL
PostgreSQL
 
Intro to JSON
Intro to JSONIntro to JSON
Intro to JSON
 
Aula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHPAula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHP
 
Javascript by geetanjali
Javascript by geetanjaliJavascript by geetanjali
Javascript by geetanjali
 
Aula 01 - Fundamentos de Banco de Dados (2).pdf
Aula 01 - Fundamentos de Banco de Dados (2).pdfAula 01 - Fundamentos de Banco de Dados (2).pdf
Aula 01 - Fundamentos de Banco de Dados (2).pdf
 
Bancos de dados NoSQL: uma visão geral
Bancos de dados NoSQL: uma visão geralBancos de dados NoSQL: uma visão geral
Bancos de dados NoSQL: uma visão geral
 
Introdução ao HTML e CSS
Introdução ao HTML e CSSIntrodução ao HTML e CSS
Introdução ao HTML e CSS
 
Revisão HTML, CSS e BOOTSTRAP - Professor Franciosney
Revisão HTML, CSS e BOOTSTRAP - Professor FranciosneyRevisão HTML, CSS e BOOTSTRAP - Professor Franciosney
Revisão HTML, CSS e BOOTSTRAP - Professor Franciosney
 

Viewers also liked

Improvement of no sql technology for relational databases v2
Improvement of no sql technology for relational databases v2Improvement of no sql technology for relational databases v2
Improvement of no sql technology for relational databases v2
Tsendsuren Munkhdalai
 
Sistemas de informação moveis eCommerce eBusiness eGovernment
Sistemas de informação moveis eCommerce eBusiness eGovernmentSistemas de informação moveis eCommerce eBusiness eGovernment
Sistemas de informação moveis eCommerce eBusiness eGovernment
GPrimola
 
Exercicios word extra 2
Exercicios word extra 2Exercicios word extra 2
Exercicios word extra 2
filipereira
 

Viewers also liked (20)

Aula Introdução a Linguagem XML
Aula Introdução a Linguagem XMLAula Introdução a Linguagem XML
Aula Introdução a Linguagem XML
 
Modelos de banco de dados
Modelos de banco de dadosModelos de banco de dados
Modelos de banco de dados
 
Ferramentas para Construção de IDE
Ferramentas para Construção de IDEFerramentas para Construção de IDE
Ferramentas para Construção de IDE
 
Web Service - XML
Web Service - XMLWeb Service - XML
Web Service - XML
 
Uma DSL para declarar a Ordem de Execução de Aspectos
Uma DSL para declarar a Ordem de Execução de AspectosUma DSL para declarar a Ordem de Execução de Aspectos
Uma DSL para declarar a Ordem de Execução de Aspectos
 
Improvement of no sql technology for relational databases v2
Improvement of no sql technology for relational databases v2Improvement of no sql technology for relational databases v2
Improvement of no sql technology for relational databases v2
 
eXtensible Markup Language (XML)
eXtensible Markup Language (XML)eXtensible Markup Language (XML)
eXtensible Markup Language (XML)
 
Sistemas de informação moveis eCommerce eBusiness eGovernment
Sistemas de informação moveis eCommerce eBusiness eGovernmentSistemas de informação moveis eCommerce eBusiness eGovernment
Sistemas de informação moveis eCommerce eBusiness eGovernment
 
Minicurso Programação Android
Minicurso Programação AndroidMinicurso Programação Android
Minicurso Programação Android
 
Banco de Dados XML
Banco de Dados XMLBanco de Dados XML
Banco de Dados XML
 
Sistemas NoSQL, surgimento, características e exemplos
Sistemas NoSQL, surgimento, características e exemplosSistemas NoSQL, surgimento, características e exemplos
Sistemas NoSQL, surgimento, características e exemplos
 
Conceitos e arquitetura do sistema de banco de dados
Conceitos e arquitetura do sistema de banco de dadosConceitos e arquitetura do sistema de banco de dados
Conceitos e arquitetura do sistema de banco de dados
 
XML - Data Modeling
XML - Data ModelingXML - Data Modeling
XML - Data Modeling
 
Curso de desenvolvimento de aplicações para iOS com Objective-C
Curso de desenvolvimento de aplicações para iOS com Objective-CCurso de desenvolvimento de aplicações para iOS com Objective-C
Curso de desenvolvimento de aplicações para iOS com Objective-C
 
Regulamento jornada PRINCE2
Regulamento jornada PRINCE2Regulamento jornada PRINCE2
Regulamento jornada PRINCE2
 
7. Key-Value Databases: In Depth
7. Key-Value Databases: In Depth7. Key-Value Databases: In Depth
7. Key-Value Databases: In Depth
 
No sql Orientado a documento
No sql Orientado a documentoNo sql Orientado a documento
No sql Orientado a documento
 
Banco de Dados - Conceitos Básicos
Banco de Dados - Conceitos BásicosBanco de Dados - Conceitos Básicos
Banco de Dados - Conceitos Básicos
 
Introdução à XML - Serviço de Biblioteca da EEFE-USP
Introdução à XML - Serviço de Biblioteca da EEFE-USPIntrodução à XML - Serviço de Biblioteca da EEFE-USP
Introdução à XML - Serviço de Biblioteca da EEFE-USP
 
Exercicios word extra 2
Exercicios word extra 2Exercicios word extra 2
Exercicios word extra 2
 

Similar to XML e Banco de Dados XML Nativo

A e xtensible markup language (xml)
A e xtensible markup language (xml)A e xtensible markup language (xml)
A e xtensible markup language (xml)
Liliana Costa
 
Arquitetura: XML + RDF ate WebSemantica
Arquitetura: XML + RDF ate WebSemanticaArquitetura: XML + RDF ate WebSemantica
Arquitetura: XML + RDF ate WebSemantica
Sergio Crespo
 

Similar to XML e Banco de Dados XML Nativo (20)

A e xtensible markup language (xml)
A e xtensible markup language (xml)A e xtensible markup language (xml)
A e xtensible markup language (xml)
 
Arquitetura: XML + RDF ate WebSemantica
Arquitetura: XML + RDF ate WebSemanticaArquitetura: XML + RDF ate WebSemantica
Arquitetura: XML + RDF ate WebSemantica
 
Xml pucminas2013
Xml pucminas2013Xml pucminas2013
Xml pucminas2013
 
Aplicando Transformação em XML usando XSLT e XSL-FO - 1
Aplicando Transformação em XML usando XSLT e XSL-FO - 1Aplicando Transformação em XML usando XSLT e XSL-FO - 1
Aplicando Transformação em XML usando XSLT e XSL-FO - 1
 
Conceitos de xml
Conceitos de xmlConceitos de xml
Conceitos de xml
 
Tp 4 xml
Tp 4   xmlTp 4   xml
Tp 4 xml
 
Aula Xml Schema - XSD
Aula Xml Schema - XSDAula Xml Schema - XSD
Aula Xml Schema - XSD
 
Pro php and xml web services xml canonical
Pro php and xml web services   xml canonicalPro php and xml web services   xml canonical
Pro php and xml web services xml canonical
 
Parte5 xml
Parte5 xmlParte5 xml
Parte5 xml
 
JustJava 2004: JAXB
JustJava 2004: JAXBJustJava 2004: JAXB
JustJava 2004: JAXB
 
XML - Parte 1
XML - Parte 1XML - Parte 1
XML - Parte 1
 
Aplicando Transformação em XML usando XSLT e XSL-FO - 3
Aplicando Transformação em XML usando XSLT e XSL-FO - 3Aplicando Transformação em XML usando XSLT e XSL-FO - 3
Aplicando Transformação em XML usando XSLT e XSL-FO - 3
 
XML
XMLXML
XML
 
Curso de xml
Curso de xmlCurso de xml
Curso de xml
 
XML_WS.pdf
XML_WS.pdfXML_WS.pdf
XML_WS.pdf
 
Java e XML
Java e XMLJava e XML
Java e XML
 
Introdução HTML_CSS.pptx
Introdução  HTML_CSS.pptxIntrodução  HTML_CSS.pptx
Introdução HTML_CSS.pptx
 
Curso de XHTML
Curso de XHTMLCurso de XHTML
Curso de XHTML
 
Xml
XmlXml
Xml
 
XSL, XSL-FO e XSLT + XPath
XSL, XSL-FO e XSLT + XPathXSL, XSL-FO e XSLT + XPath
XSL, XSL-FO e XSLT + XPath
 

Recently uploaded

Recently uploaded (8)

Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdf
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdf
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 

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
  • 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.
  • 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.
  • 33.
  • 35. Especificação do elemento empresa (raiz)
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 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/