gerência de dados xml em bancos de dados

Download Gerência de Dados XML em Bancos de Dados

If you can't read please download the document

Upload: raja

Post on 08-Jan-2016

64 views

Category:

Documents


14 download

DESCRIPTION

II Escola Regional de Banco de Dados – II ERBD Mini-Curso. Gerência de Dados XML em Bancos de Dados. Ronaldo dos Santos Mello INE/CTC/UFSC [email protected] http://www.inf.ufsc.br/~ronaldo. Roteiro. Introdução Tecnologia XML Gerência de Dados XML em bancos de dados relacionais - PowerPoint PPT Presentation

TRANSCRIPT

  • Gerncia de Dados XML em Bancos de DadosRonaldo dos Santos MelloINE/CTC/[email protected]://www.inf.ufsc.br/~ronaldoII Escola Regional de Banco de Dados II ERBD

    Mini-Curso

  • RoteiroIntroduoTecnologia XMLGerncia de Dados XMLem bancos de dados relacionaisem bancos de dados XML nativosConsideraes Finais

  • RoteiroIntroduoTecnologia XMLGerncia de Dados XMLem bancos de dados relacionaisem bancos de dados XML nativosConsideraes Finais

  • XML (eXtensible Markup Language)Tecnologia desenvolvida pela W3CW3C: World Wide Web Consortiumdefinio de padres para a Webconsrcio formado pela academia e indstriaPadro para representao e transferncia de dados Motivaes para utilizao crescente da XML aplicaes sobre a Webextrao, manipulao, integrao, transferncia e publicao de dadosaplicaes que lidam com dados de natureza complexaexemplos: aplicaes cientficas, geogrficas, ...preferncia por docs XML ao invs de dados em BDs relacionais

  • Protocolos XMLDefinidos em diversos domnios e tecnologiascomrcio eletrnicoCXML, eBisXML, ...referncias bibliogrficasDBLP, SIGMOD, ...sistemas de informao geogrficaSVG, GML, ...dispositivos mveis WAP, WML, ...web services SOAP, WSDL, ......

  • Uso Extensivo de Protocolos XML...Necessidadesmtodos de acesso a dados XML pelos programas de aplicaoprojeto da estrutura dos dados XMLfacilidades para armazenamento e manipulao de dados XML persistentes...A tecnologia de Banco de Dados (BD) til neste contexto

  • Tecnologia XML x Tecnologia BDSimilaridadesdocumentos XML mantm colees de dadostecnologia XML oferece mecanismos para definio e manipulao de dadosDTD e XSD, XPath e XQuery, DOM, ...Diferenasdado XML no um dado convencionaldado semi-estruturadomisto de texto e estrutura, instncias heterogneas, auto-descritivo, ... tecnologia XML carente de alguns mecanismos de gerenciamento de dadosintegridade, transaes, indexao, atualizao, ...

  • Tecnologia XML x Tecnologia BDConclusotecnologia XML no totalmente equivalente tecnologia de BDTpico de pesquisa na comunidade cientfica de BDgerenciamento de dados XML atravs de BDscomo tratar?extenso de SGBDs existentes?desenvolvimento de SGBDs especficos para XML?

  • RoteiroIntroduoTecnologia XMLGerncia de Dados XMLem bancos de dados relacionaisem bancos de dados XML nativosConsideraes Finais

  • O que XML?XML uma meta-linguagem de marcaolinguagem de marcaosemelhante linguagem HTMLutiliza tags para descrio os dadostag: indica a inteno do dado e delimita o seu contedometa-linguagemXML um padro abertocada aplicao define o protocolo (linguagem) para a representao dos seus dadosDados no formato XML so descritos em um documento XML

  • Exemplo de Documento XML
  • Documento XML Bem FormadoRequisitoscontm um elemento raizdefine elementos com tags inicial e finaldefine atributos com contedo delimitado por aspas simples () ou aspas duplas ()Parser XMLprograma que verifica se um documento XML bem formadoalguns browsers Web so capazes de realizar tal verificao

  • Tecnologia XML da W3CPrincipais facilidades similares a SGBDsdefinio de esquemasDTD e XSDlinguagens de consultaXPath e XQuerymodelo de representao e interface de acessoDOM

  • Definio de EsquemasEsquema XMLdefine restries para a organizao hierrquica e contedo dos dados em um doc XMLdocumento vlidodocumento cuja estrutura est de acordo com um esquemavalidao feita por um parserDuas recomendaesDTD (Document Type Definition)XSD (XML Schema Definition)

  • DTDPrimeira recomendao da W3CGramtica para definio de hierarquiabaseada em seqncias ordenadas e escolhasDefinio de elementoscomplexos, textuais (#PCDATA), vazios (EMPTY), mistos ((#PCDATA | ...)*) ou com contedo aberto (ANY)Definio de atributosobrigatrios (#REQUIRED) opcionais (#IMPLIED), fixos (#FIXED), valor default, enumerao, referncia (ID, IDREF(S))

  • DTD - Exemplo

  • XML Schema (XSD)Recomendao mais recente Sintaxe XMLExtenso da funcionalidade de uma DTDdefinio e especializao de tipos de elementossemelhana com esquemas orientados a objetosdefinio de tipos de dados simples (string, integer, boolean, ...)complexos (list, union)facilidades adicionais para definio de restriesintervalos de valores permitidos, padres de contedo via expresses regulares, ......

  • XSD - Exemplo

    ... ... ...

  • XSD Exemplo (cont.)... ... minOccurs=1 maxOccurs=unbounded/>

  • XPathPrimeira recomendao para consulta a dadosLinguagem para acessar partes de um doc XMLsintaxe: expresses de caminhoassemelha-se navegao em diretrios de arquivosexemploexpresso XPath: /livro/ttuloresultado: Tecnologia XML Sistema de Banco de Dados ...

  • XPath - Exemplos/ (elemento raiz todo o doc XML)/livro/*/eMail (* substitui 1 elem)/livro//seo (qq elemento descendente seo)/livro/captulo[1] (primeiro captulo de livros)/livro/captulo/nome |/livro/captulo/seo/nome (unio)/livro/@ISBN (acesso a um atributo)/livro[ttulo = XML] (filtro)/livro[capitulo/@nome = XML or //seo/nome = XML]/ttulo (filtro)/livro//seo[last()] (funo)

  • XQueryRecomendao mais recenteRecursos adicionais em relao XPathjunes, definio de estruturas de resultado, variveis de consulta, atributos calculados, funes de agregao, ...Sintaxe bsica (expresso FLWR)

    for varivel in expressoXPath[let associao de novas variveis][where condio]return estrutura de resultado

  • XQuery - Exemplos for $liv in /livro where $liv/autor/nome = Joo Silva return { $liv/@ISBN, $liv/titulo }for $liv in /livrolet $pDesc := $liv/preo - $liv/preo * 0.1where $liv/categoria = ficcaoreturn {$liv/titulo, $pDesc}for $liv1 in /livro[@ISBN = 562]for $liv2 in /livrowhere $liv2/@ISBN != $liv1/@ISBNand $liv2/autor/nome = $liv1/autor/nome return $liv2/titulo(juno)(nova estrutura de resultado)(consultasimples)

  • DOM (Document Object Model)Modelo de dados para XMLestrutura hierrquica (rvore)mtodos de acesso (API DOM)principais classes de objetosdocument, node, nodelist e elementexecuo de consultas e atualizaes de dadosParsers DOMvalidam um doc XMLgeram um objeto document

  • Objetos do Modelo DOMlistaLivroslivropreoISBNTecnologia XML79.00Joo da [email protected]@hotmail.comnomeautornomeautorMaria Souzalivro. . .documentnodeelementnodelist

  • Exemplos de Mtodos da API DOMdocumentelementnodeList

    MtodoResultadodocumentElementElementgetElementByTagName(String)NodeListcreateElement(String)Element. . .

    MtodoResultadotagNameStringgetAttribute(String)StringsetAttribute(String nome, String valor)AttrremoveAttribute(String)getElementsByTagNameNodeList. . .

    MtodoResultadoLengthintitem(int)Node

  • DOM Exemplo (JavaScript)var doc, raiz, livro1, autores, autor2;doc = new ActiveXObject(Microsoft.XMLDOM);doc.load(livros.xml);if (doc.parseError != 0) ...;else{ raiz = doc.documentElement; /* busca o primeiro livro (primeiro nodo filho) */ livro1 = raiz.childNodes.item(0); /* busca a lista de autores do primeiro livro */ autores = livro1.getElementsbyTagName(autor); /* busca o segundo autor */ autor2 = autores.item(1); /* escreve o nome do autor primeiro nodo filho */ document.write(Nome do segundo autor: + autor.childNodes.item(0).data);}

  • RoteiroIntroduoTecnologia XMLGerncia de Dados XMLem bancos de dados relacionaisem bancos de dados XML nativosConsideraes Finais

  • XML em BDs Relacionais (BDRs)BDRs so adequados a docs XML fortemente estruturadosdocumentos orientados a registros

    aplicaes que realizam intercmbio de dados convencionais em XMLdados de BD, arquivos, docs bem formatados em geral

    Beira-Mar104apto 203 centroFlorianpolis 88010-600

    Lauro Linhares761trindade Florianpolis88040-900

  • XML em BDRsVantagemuso de uma tecnologia madura de BDacesso eficienteescalabilidadelinguagens de consulta declarativasampla utilizao no mercadoVrios SGBDs j lidam com o formato XMLOracle, DB2, ...Questes bsicas a resolverarmazenamento dos docs XMLacesso aos dados XML

  • Armazenamento de XML em BDRDuas abordagensesquemas de armazenamento que no levam em conta o esquema XML (no schema-based)arestartulonodonveis de granularidade esquemas de armazenamento que levam em conta o esquema XML (schema-based)inliningviso de grafo

  • Abordagem no schema-basedNas trs primeiras alternativasdoc XML armazenado na forma de um grafo orientado rotuladonfase na estrutura de dados genrica XMLesquema relacional o mesmo para qq tipo de doc

    XML Joo Silva [email protected] ... ... ...

    livros.xml

  • Alternativa 1 - Arestalivrottulo. . [email protected]"eMail112215Joo Silva78nome9. . .. . .LivrosXMLArestas

    origemordemnometipodestinovalor01listaLivrosref111livroref2...21ISBNint311222ttulostring4XML23autorref524captuloref8...51nomestring6JooSilva...

  • Alternativa 2 RtuloLivroAutorTtuloeMail. . .

    docIDorigemordemdestino100112...

    docIDorigemordemdestinovalor100224XML...

    docIDorigemordemdestino100235...

    [email protected]...

  • Alternativa 3 NodoTextosCaminhosNodoslivrottulo. . [email protected]"eMail11221. . .5Joo Silva78nome9. . .. . .

    [email protected]...

    docIDcamIDiniciofimordem100X573...

    IDexpresso...XlistaLivros.livro.autorYlistaLivros.livro.autor.eMail...

  • Comparativo das Alternativas

    ArestaRtuloNodo+ Tabela nica Bom desempenho em buscas na hierarquia do doc No h desperdcio de espao Bom desempenho em buscas por um certo tipo de elemento ou atributo No h desperdcio de espao Bom desempenho em buscas por relacionamentos ancestral-descendente Poucas tabelas- Colunas nulas Desempenho ruim em buscas por um certo tipo de elemento ou atributo Vrias tabelas Desempenho ruim em buscas na hierarquia do doc (acesso a muitas tabelas) Desempenho ruim em buscas por um certo tipo de elemento ou atributo Os contedos dos nodos so mantidos em uma tabela separada Desempenho ruim na reconstruo do doc XML (muitos acessos) No h distino entre elemento e atributo

  • Alternativa Nveis de GranularidadeConsidera trs nveis de detalhamento de docs XML para fins de armazenamentogranularidade grandegranularidade pequenagranularidade mdia

  • Granularidade Grande

    XML Joo Silva [email protected] ... ... ...

    livros.xml---Documentos

    DocIDNomeContedo1livros.xml. . .

  • Granularidade Pequena

    XML Joo Silva [email protected] ... ... ...

    livros.xmlDocumentosElementosAtributosContedos (de elementos simples)

    elemIDtagelemPaiordemdoc1listaLivros12livro1113ttulo211. . .

    docIDnomeraiz1livros.xml1. . .

    atrIDtagelemordemvalor1ISBN21112...

    contIDvalorelem1XML32Joo Silva5. . .

  • Granularidade Mdia

    XML Joo Silva [email protected] ... ... ...

    livros.xmlElementosAtributosDocumentosTextos---Contedos

    elemIDtagelemPaiordemdoc1listaLivros12livro1113ttulo211. . .

    atrIDtagelemordemvalor1ISBN21112...

    docIDnomeraiz. ...

    contIDcontedoelemordem123. . .

    contIDvalorelem. . .

  • Nveis de Granularidade - Anliseaumenta a complexidade da reconstruo do doc XMLmelhora o desempenho de consultasgranularidade grande: buscas por palavras-chaveXgranularidade pequena: consulta e indexao de qualquer tipo de elemento ou atributo (coluna tag) e do contedo (coluna valor)diminui o volume de armazenamentogranularidade grande/mdia: tags do doc ocupam muito espao Granularidade GrandeGranularidade MdiaGranularidade Pequena

  • Abordagem schema-basedDoc XML armazenado em um conjunto de tabelas baseado no seu esquema de elementos nfase na estrutura dos elementosdocs diferentes geram esquemas relacionais diferentesAbordagem principal Inlining (alinhamento)agrupamento do maior nmero possvel de descendentes na tabela do elemento ancestralelementos simples ou atributos que aparecem uma nica veztabelas so geradas para elementos complexosrelacionamentos com descendentes que ocorrem mais de uma vez no elemento ancestral

  • Abordagem Inlining - ExemploEsquema XML (DTD)Seo (ID, nome, contedo, IDcaptulo)ContedoCaptulo (ID, texto, IDcaptulo)Captulo (ID, nome, ISBN)Autor (ID, nome, eMail, ISBN)Livro (ISBN, titulo, preo, edioAnterior, IDlistaLivros)

    Esquema Relacional+ : esquema relacional mais prximo da organizao lgica do esquema XML : esquema relacional no totalmente normalizado; exige sempre docs com esquema

  • Projeto do Esquema RelacionalDepende das prioridades da aplicaoprioriza-se a reconstruo do doc XMLgranularidade grande ou mdia prioriza-se navegaes por relacionamentos hierrquicosaresta; nodo; inliningprioriza-se consultas a determinados tipos de elementosrtulo; granularidade mdia ou pequena; inliningprioriza-se economia no espao de armazenamentoaresta; nodo; granularidade pequena...

  • Projeto do Esquema RelacionalCombinaes de alternativas podem ser adotadasexemplo: rtulo + granularidade mdiapossibilidade de consulta a um tipo de elemento ou atributo at o nvel de detalhe desejadocerta economia de espao desempenho mdio na reconstruo do doc XML

  • Anlise de SGBDRs - DB2 XML ExtenderArmazenamento de doc XML com granularidade grandecoluna XMLCLOB, XMLVarchar ou XMLFileprximo de uma abordagem inliningdefinio um DAD (Database Action Diagram)documento XSD estendido com anotaes de mapeamento

  • Exemplo 1 DB2 XML ExtenderArmazenamento com granularidade grande

    CREATE TABLE Documentos ( docID VARCHAR(10) NOT NULL PRIMARY KEY nome VARCHAR(40) contedo XMLCLOB);

  • Exemplo 2 DB2 XML ExtenderArmazenamento com definies de mapeamento atravs de DAD

    livros.dtd ... ?xml version="1.0"? ...

  • Exemplo 3 DB2 XML ExtenderArmazenamento com definies de mapeamento em um doc XSD estendido...
  • Oracle XML DBArmazenamento de doc XML granularidade grande coluna CLOBExemplo

    create table DocsXMLEstruturados(docID varchar(10), nome varchar2(40),contedo CLOB)

  • SQL ServerArmazenamento de doc XML prximo de uma abordagem inliningforma declarativafuno OPENXML invocada em instrues SQLdocumento XSD estendido com anotaes de mapeamentoabordagem arestafuno OPENXML

  • Exemplo 1 SQL ServerArmazenamento de forma declarativadefinido de forma ad hoc

    select * into Livros from OPENXML(@pDoc,/livro,3)with (codLivro varchar(11) @ISBN, titulo varchar(50) titulo, preco numeric(5,2) preo, ...)apontador do doc XMLelemento a armazenarforma de mapeamento (*)(*) indica a provenincia de um dado, de acordo com o seu nome, a menos que a clusula WITH indique explicitamente sua localizao: 1: centrada em atributo: dados vm de atributos 2: centrada em elemento: dados vm de sub-elementos 3: hbrido: dados vm de atributos (tem precedncia) ou de sub-elementos

  • Exemplo 2 SQL ServerArmazenamento de forma declarativasegundo uma abordagem aresta (enxuta)tabela nica para o doc XML (ou parte dele)clusula WITH no informadaconsidera textos como nodos da rvore XMLselect * into ArvoreXMLLivro from OPENXML(@pDoc,/livro,2)rvoreXMLLivrotipoNodo:1: elemento2: atributo3: texto

    IDpaiIDcontedotipoNodo11livro123ISBN234112325ttulo2...

  • Exemplo 3 SQL ServerArmazenamento com definies de mapeamento em um doc XSD estendido

  • Acesso a Dados XML em BDRsArmazenamento dos dados XML relacionalSQL o padro para acesso!Esquemas relacionais mais detalhadosexs.: granularidade pequena, rtulo ou inlininginstrues SQL tradicionais resolvem!Esquemas relacionais mais compactosexs.: granularidade grande/mdiaconsultas SQL especiais sobre o contedo do docResultados de consultas no formato XML

  • SQL/XML Padro ANSI ISO derivado do SQLMtodos para manipulao de dados XML atravs da SQLprincipais funcionalidadesconsulta ao contedo de docs XML gerao de estruturas XML como resultado de uma consulta SQLatualizao de docs XMLOracle e DB2 adotam grande parte do padroMySQL implementa algumas funcionalidades

  • Acesso ao Contedo de Docs XMLExemplo1 DB2 XML Extender

    select docID, nomefrom Documentoswhere extract Varchar (contedo,/livro/ttulo) like %XML%nome de coluna quemantm o doc XML

  • Acesso ao Contedo de Docs XMLExemplo2 Oracle XML DB

    select extractValue(contedo,'/livro/ttulo')from DocsXMLEstruturados whereexistsNode(contedo,'/livro/autor/nome') = Joo Silva

    resultadotabular

  • Resultados de Consultas em XMLExemplo 3 DB2 e Oracle

    SELECT XMLElement(Livro", XMLAttributes(l.codLivro AS ISBN, l.titulo AS titulo), XMLAgg( XMLElement(Capitulo", XMLForest (c.codCapto AS numero, c.nome AS nome))) FROM livros l INNER JOIN capitulos c ON l.codLivro = c.codLivroGROUP BY l.codLivro;define um elemento XMLdefine atributos de um elemento XMLdefine uma agregao de sub-elementos com base em um agrupamento (por Livro, no caso)define uma seqncia de elementos

  • Resultados de Consultas em XMLExemplo 3 DB2 e Oracleresultado

    ...

  • Resultados na Forma de Docs XMLGranularidade grandeseleo direta da coluna que mantm o doc XML na ntegraGerao doc XML a partir de dados de tabelas Oracle XML DBmtodos da API DBMS_XMLGEN geram docs XML a partir do resultado de consultas SQLDB2 XML Extender define-se um esquema de mapeamento relacionalXML (DADs) utiliza-se mtodos especficos de gerao de docs XML a partir desta DAD

  • Gerao de Docs XMLExemplo Oracle XML DBtrecho de programa PL/SQLpara consultas SQL/XMLfragmento XML do resultado transformado em um doc XMLpara consultas SQL convencionaisuma transformao predefinida para uma estrutura XML aplicada (atravs dos mtodos DBMS_XMLGEN)DECLARE qCtx DBMS_XMLGen.ctxHandle; result CLOB; BEGIN qCtx := DBMS_XMLGen.newContext('SELECT ... '); result := DBMS_XMLGen.getXML(qCtx); DBMS_XMLGen.closeContext(qCtx); END;

  • Atualizao de Contedo XMLGranularidade grandeincluso/excluso/substituio do doc XMLOperadores SQL/XML de atualizao (Oracle)insertChildXML(), insertXMLBefore(), appendChildXML(), deleteXML(), updateXML()Mtodos proprietrios executados na instruo update da SQL (DB2)

    No h padronizao...

  • Exemplo 1 Oracle XML DBAtualizao via SQL/XML

    update EsquemaLivros pset object_value = updateXML(object_value, /livro/preco/text(), 117.50)where ref(p) = (select extractValue(res, /livro[ISBN=112]) from DocsXMLEstruturados where docID = 100) esquema XML registrado no Oracle (atualizao deve respeit-lo)objeto default do Oracle para contedo XMLvarivel com os dados XML a atualizar

  • Exemplo 2 DB2 XML ExtenderAtualizao via instruo update da SQLcom mtodo proprietrio db2xml.Update()

    update Documentos set conteudo =db2xml.Update(conteudo, /livro[ISBN=112]/preo, 117.50)where docID = 100;

  • Acesso XML Outros BDRsSQL Serverextenso proprietria da SQL (mtodos e clusulas)gerao de resultados no formato XMLescrita de dados em docs XMLupdategramssintaxe XML para atualizao de docs XMLexecuo em APIs para acesso a BD (ADO, OLE DB)MySQLalguns recursos da SQL/XML para consultaextenses das clusulas insert e update da SQL para insero e substituio de fragmentos de docs XML

  • RoteiroIntroduoTecnologia XMLGerncia de Dados XMLem bancos de dados relacionaisem bancos de dados XML nativosConsideraes Finais

  • BD XML Nativo (ou BD XML)Suporta um modelo de dados proprietrio para dados XMLdefinio de elementos, atributos, ordem, ...no h mapeamento para um esquema de dados relacionalAdequado a docs XML fortemente semi-estruturadosdocumentos orientados a textosmapeamento para BD relacional seria complexo!necessidade de consultas envolvendo padres textuais aplicaes que lidam apenas com dados no formato XMLAlguns SGBDRs possuem suporte nativo a XMLexemplos: Oracle, DB2

  • BD XMLDocumento Orientado a Textofortemente semi-estruturadorepresentao menos estruturada e homognea

    Tpico atual de pesquisa e desenvolvimento na rea de BDexemplos de SGBDs XML: Tamino, eXist, ...

    Vendo, por motivo de viagem,automvel Gol I 97, cor azul, em timo estado de conservao. Preo: R$9000,00. Tratar comPedro fone99991111

    Ateno! Se voc deseja vender o seu veculo, ns realizamos o melhor negcio. Compramos qq tipo de veculo. Ligue-nos: 2340011 ou envie um e-mail:[email protected]

  • BD XML - Caractersticas PrincipaisEsquemas lgicos baseados em coleesConsultas AtualizaoTransaesConectividadeRestries de IntegridadeArmazenamento e indexao de dados

  • ColeesNoo lgica de um conjunto de docs XMLa deciso por quais docs XML pertencem a uma coleo fica em geral a cargo da aplicao+ : flexibilidade quanto ao contedo da coleo- : baixo nvel de integridade dos dadosuma coleo pode estar restrita a um ou mais esquemas XMLConsultas e atualizaes podem ser direcionadas a colees

  • Colees - Tamino1 BD n colees n esquemas n tipos de documentos cada tipo de documento define um elemento raiz permitido novo doc XML: inserido em uma coleo e vlido para algum tipo docDocs sem esquema mantidos em uma coleo especficatipos de documentos

  • ConsultasSuporte a pelo menos uma linguagem de consulta para XMLuso mais extensivo de XPath uso de alguns dialetos da XQuery (tendncia!)Caractersticas desejadas para uma linguagem de consulta para XMLbuscas textuais (por palavras-chaves, por padres, ...)consultas declarativasresultados de consultasdoc XML, fragmentos de docs XML ou novas estruturas XML

  • ConsultasTaminoconsultas em XPath e XQuery estendidassuporta busca por padro/livro[ttulo ~= *XML*]/ttulogerao de docs XML como resultadoeXistconsultas em XPath estendidasuporta busca por padro, por palavra-chave (em textos) e por proximidade/livro[ttulo &=banco XML]/ttulo/livro/capitulo[near(.,banco XML,50)]/@nome

  • AtualizaesCapacidades de atualizao so variadaspossibilidade apenas de substituio de um doc XML completoAPI DOM para atualizao de nodoslinguagens de atualizao declarativastendncia1: XUpdate (consrcio XML:DB)XML:DBconsrcio de empresas responsvel pelo desenvolvimento de tecnologias para BDs XMLtendncia2: XQuery com capacidades de atualizao

  • XUpdateSintaxe XMLI / E de elementos, atributos e textoA do contedo de elementos e atributosExemplo 1:

    (incluso de um novo eMail para Maria)Exemplo 2:

    (remoo do primeiro livro)

    [email protected]

  • Atualizaes - TaminoXQuery possui capacidades de atualizaoinsert, delete, rename e replaceExemplos update(insero de autor)for $liv in input()/livro where $liv/titulo = XML do(insert (Joo Silva)following $liv/autor[last()])

    update(alterao de eMail de autor)for $aut in input()/livro/autor where $aut/nome = Maria Souza do (replace $aut/eMail with ([email protected]))

  • Gerncia de TransaesControle convencional de concorrncia e recuperao contra falhasGranularidade de bloqueios coleodoc XML (bloqueio usual baixo nvel de concorrncia)elementos

  • Gerncia de Transaes - TaminoUsurios definem sesses de conexo com o BD vrias transaes podem ocorrer dentro de uma sessointerrupo da sesso implica rollback de todas as transaes pendentesmecanismo de log e backup de dadosdeadlocktransao mais recente tem prioridadeGranularidade de bloqueio sempre o doc XML

  • Conectividade APIs Interfaces ODBC tradicionaisconexo com o BD, execuo de consultas e atualizaes e explorao de resultadosXQuery API para Java (JQX)JDBC como baseProtocolos HTTPacesso via browsers WebConsrcio XML:DBproposta de uma API para BDs XMLmanipulao de BDs e colees; execuo de consultas Xpath e XUpdate; acesso a resultados de consultas; controle de transaes

  • APIs - TaminoInterface principal de acesso so browsers Webum servidor Tamino deve estar sempre associado a um Web server (domnio Internet)define uma API que encapsula chamadas HTTP criao e manipulao de BDs, colees e docsacesso: http:///tamino// []Outras formas de acessoAPI DOM para aplicaes Java, Jscript e Active XAPI XML:DB

  • Tamino Conectividade HTTP

  • Restries de IntegridadeRIs a nvel de esquemas XML so limitadasordem hierrquica e restries de cardinalidadetipo de dado de elementos e atributosenumerao de valores permitidosintegridade referencial intra-documento Carncia de um mecanismo de integridade mais robustosimilar a SQL em BDRs (DCL)

  • Integridade Semntica - Tamino Definio de valores possveis (fixos, defaults, enumeraes, ...)Integridade referencial controlada por stored procedures (para cada caso indicado no campo trigger)controles de integridade

  • ArmazenamentoDocs XML in-natura (campo longo)texto do doc preservado na ntegra (cabealho, comentrios, ...)armazenamento clusterizado de fragmentos do docEsquema de objetos (DOM ou esquema similar a BDOO)

  • IndexaoIndexao por valorindexa valores de elementos simples e atributosex: buscar elementos com valor XMLIndexao por estruturaindexa a localizao de elementos e atributosex: buscar elementos com nome XMLIndexao full-textindexa tokens em textos e valores de atributosex: buscar elementos que contenham a palavra XML

  • Exemplo de Indexao - eXistndices so IDs numricos para nodos, com uma numerao dada por uma busca em largurasupondo uma rvore sempre completa (nodos virtuais)certas propriedades da rvore permitem calcular o ID de nodos filhos, pai e irmosex.: maxFilhos = 4 filhos de n [ID(n)*4+1, ID(n)*4+4]livropreonomeeMailautorautor0nomeeMail1234. . .XML & BD79.0081215161920

  • XML Nativo em BDR Oracle XML DBTipo nativo XMLTypeusado para definir uma coluna, tabela (colees de docs XML) ou varivel PL/SQLmantm um doc XML bem formadoexistem mtodos especficos para sua manipulaofunes SQL/XML, validao com esquema XSD, ...Registro de esquemas XSDarmazenados e acessados para validar docs XMLpodem ser associados a uma coluna XMLTypegarante docs XML vlidos

  • XML Nativo em BDR Oracle XML DBArmazenamento objeto-relacionaldecomposio em objetos SQL (Oracle BDOR!)aproveita facilidades de gerncia OR do Oraclebaseia-se no esquema do doc XML para a converso de tipos complexos de elementos em tipos SQLIndexaopor valor (rvore-B)full-text (utilizado em CLOB ou XMLType)por caminho (indexa expresses XPath em CLOB ou XMLType)til para alcanar dados presentes em hierarquias especficas

  • XML Nativo em BDR Oracle XML DBConsulta a dados XML nativosfuno XMLQuery embute XQuery em SQLpossibilitando junes de dados relacionais e XMLexemplo: select XMLQuery( for $liv in /livro where $liv/autor/nome = Maria Souza return $liv/titulopassing contedo returning content) as titulofrom DocsXMLEstruturados;traduo de expresses XPath para instrues SQL3processamento e otimizao de consultas a nvel ORAtualizaoAPI especfica para o tipo XMLTypeappendChildXML(), insertXLBefore(), ... coluna do tipo XMLTyperetorno de valores noformato de tabela

  • XML Nativo em BDR DB2Tipo nativo XMLpode ser associado a uma coluna de uma tabela Armazenamento hierrquico proprietriocom manuteno de ordem e economia de espaosubstitui: nomes de tags por IDs e relaes pai-filho por ponteiros fsicos; ndices de pginas indicam todos os fragmentos de um doc XML nomes de tagssubstitudospor IDs nicos Tabela de stringsrvore do doc XML particionada em pginas

    ndice pginaspginapginapgina

  • XML Nativo em BDR DB2Formas de indexao idnticas ao Oracle XML DBexemplocreate index ind1 on documentos(conteudo) (ndice por caminho)using xmlpattern /livro/capitulo/secao/nome as sql varchar(50)Consulta XQuerypermitindo integrao com SQL e SQL/XMLmanipulao conjunta de dados relacionais e XMLexemplo:

    SQL com funo XMLQuery() Atualizaomtodo db2xml.update() atualiza valores de elementos e atributosAPIs (JDBC, ODBC e DOM) oferecem mtodos para insero e remoo de contedo em docs XMLfor $l in db2-fn:sqlquery( select d.conteudo from documentos d, repositorios r where d.docID = r.docID and r.cidade = Florianpolis)/livrowhere $l/preo > 100.00return $l/titulo

  • RoteiroIntroduoTecnologia XMLGerncia de Dados XMLem bancos de dados relacionaisem bancos de dados XML nativosConsideraes Finais

  • Consideraes FinaisUso amplo de XML requer solues para gerenciamento de dados XMLtema de pesquisa atual na comunidade de BDDuas frentes de pesquisa/desenvolvimentoextenso de SGBDs relacionaisdesenvolvimento de SGBDs XML nativos

  • BDs XML CrticaPontos a favordados XML so semi-estruturadosoverhead de gerenciamento para BDs no-XMLaplicaes com dados complexos ou com regras de negcio pouco claras ou muito dinmicasflexibilidade estrutural de docs XML modela melhor as transaes e dados (complexos) personalizados do negcioaplicaes que lidam apenas com dados XMLpor qu adquirir um BD no-XML? modelo de dados diferente; recursos para o gerenciamento de dados XML complicadoTecnologia relativamente recentealgumas funcionalidades de SGBDs no so ainda tratadas ou no esto consolidadasrestries de integridade, vises, segurana, concorrncia, ...

  • BDRs CrticaSGBDs robustosgerenciamento completo e eficiente de dadosModelo de dados no XMLnecessidade de um suporte de mapeamento para importao/exportao de dados XML overhead de processamentoapesar de alguns SGBDRs j possurem recursos de armazenamento nativo de XMLdefinio de novos padres de acessocomo SQL/XML

  • Benchmark BD XML x BDR [Chaudhri03,Lu05]BD XML ocupa mais espaomais ndices; tags tambm so nodos DOMBD XML e BDR com desempenho semelhante em consultas a grandes massas de dadosBD XML: boas estratgias de indexao; no h overhead de mapeamento de modelo de dadosalternativa de representao mais eficiente: DOMBDR: boas tcnicas de clusterizao; menor volume de dados (modelo de dados mais simples)alternativa de representao mais eficiente: inliningBD XML mais lento em atualizaesinexistncia de mtodos DOM eficientes ou linguagens declarativas padro para atualizaoalteraes geralmente exigem parsing do doc XMLatualizao de muitos ndicesBD XML j apresenta boa compatibilidade com APIs Java, porm requer mais codificaoBDRs tem mais ferramentas proprietrias para desenvolvimento de aplicaes, requerendo menos codificao

  • Consideraes FinaisSGBDs XML iro vingar?no h resposta imediata...provavelmente no sero A nova gerao de SGBDsBDs relacionais continuam adequados a diversas categorias de aplicaes BDs relacionais esto evoluindo para se tornar BDs hbridos (relacional e XML)

  • Referncias RelevantesTecnologia XMLhttp://www.w3c.org/xmlhttp://www.w3schools.comXML & BDhttp://www.rpbourret.com/xml/XMLAndDatabases.htmSQL/XMLhttp://sqlx.orgXML:DB http://www.xmldb.org SGBDRs com suporte a XML (Oracle e DB2)http://www.oracle.com/technology/tech/xml/xmldbhttp://www-306.ibm.com/software/data/db2/extenders/xmlext/SGBDs XML Nativos (Tamino e eXist)http://www.softwareag.com/tamino http://exist-db.org/

  • Gerncia de Dados XML em Bancos de DadosRonaldo dos Santos MelloINE/CTC/[email protected]://www.inf.ufsc.br/~ronaldoII Escola Regional de Banco de Dados II ERBD

    Mini-Curso

    - Viso geral (mais em profundidade que em abrangncia) das 2 principais abordagens de gerencia de dados XML: BDR e BDXMLAplicacoes na Web: maquinas de busca (extracao, transferencia, manipulacao e publicacao), comercio eletronico (manipulacao, transferencia, publicacao), sistemas semanticos de busca na Web (extracao, transferencia, integracao e publicacao)Aplicacoes cientificas (dados biologicos, aplicacoes de engenharia (pecas mecanicas, projetos eletronicos, ...)) Metodos de acesso (linguagens de consulta)Armazenamento eficiente com indexacao; facil insercao, atualizacao e exclusao de docs e dados XML - Mais adiante veremos um exemplo de dado XML onde serah possivel verificar as suas caracteristicas semi-estruturadas!- Como tratar? Na verdade existe no mercado as 2 tendencias (SGBDR com suporte a XML e SGBD XML)- Objetivo no eh se estender muito neste tpico. Este no eh um mini-curso sobre XML o mnimo que se espera de um documento XML!- Existem outras tecnologias, como XSL e SAX (por questes de tempo no sero apresentadas) - Node: generalizao de um nodo XML (que pode ser um elemento, atributo ou texto)- Revisada a tecnologia XML, entramos na segunda parte do mini-curso, onde veremos um panorama da gerencia XML em BDsDocumentos orientados a registros: ESTRUTURA DOS DADOS ASSEMELHA-SE A ESTRUTURA DE UM REGISTRO (OU TUPLA) EM UM BDR (OU AO RESULTADODE UMA DESNORMALIZACAO DE UM ESQUEMA RELACIONAL)NO SCHEMA-BASED: armazenam qq documento XML da mesma forma (utilizando o mesmo esquema, que se baseia na estrutura generica de grafo hierarquico do XML)SCHEMA-BASED: geram um esquema relacional com base na estrutura especifica de elementos de um doc XMLInlining: alinhamento

    Mantm os dados do doc XML em uma nica tabelaTabela mantem as ARESTAS da estrutura XML (ou seja, as setas orientadas, com indicao de origem e destino, nome do rotulo, tipo (SE CONDUZ A UM VALOR (tipo de dado bsico), ou um REFERENCIA a um elemento complexo), e qual o VALOR do nodo destino, se for o caso)

    Uma tabela para cada nome nico de rtulo existente na estrutura XML (com atributos semelhantes a alternativa de ARESTA)Rtulos que conduzem a nodos valores possuem um atributo adicional (VALOR)Mantm sempre 3 tabelas: uma para os NODOS e outra para os TEXTOS dos nodos (qdo eles forem terminais), ambas com indicao dos caminhos at eles, mantidos na tabela CAMINHOSFacilita a analise de descendentes de um nodo (atravs dos atributos INICIO e FIM)ARESTA: RUIM: valores nulos no atributo VALOR, qdo a aresta conduz a um nodo no-terminal; como uma tabela nica, fica difcil localizar um determinado tipo de atributo ou elemento; BOM: mantm relaes pai-filhoROTULO: BOM: colunas sempre preenchidas; dados separados por nome de rtulo permite localizar rpido nodos por rtulo e partir dele os seus descendentes; RUIM: dados muito fragmentados em tabelas, muitas junesNODO: BOM: colunas sempre preenchidas; a tupla de um nodo no-terminal mantm as informaes da sua sub-arvore; no tem tabelas organizadas por tipos de elementos ou atributos, dificultando esse tipo de busca; junes so necessrias para busca de valores de elementos ou atributos ROTULO gera uma tabela para cada tag. Com GRANULARIDADE MEDIA, geram-se tabelas at um certo nvel hierrquico- Se fosse 2 todos os nomes na clausula WITH so de sub-elementos (a menos que na clausula WITH haja indicacao que o nome eh de um atributo)- Semelhante ao DB2 Mtodo utilizado na clausula WHEREMtodo utilizado na parte SELECT (extractValue) Metodo utulizado na parte WHERE (existsNode)- Resultados de consulta MAIS ELABORADOS no formato XML- O modelo de dados serah detalhado mais adianteDOCS ORIENTADOS A TEXTOS: diversas partes do conteudo do documento no eh estruturadoOutros exemplos de BD XML: Xindice (Apache), dbXML (dbXML group), Sedna,- Transacoes e Ris : SUPORTE LIMITADO!Similar a um BDR que define um esquema composto por varias tabelas: um BD XML organiza docs XML em colecoes, sendo possivel esses docs serem validos perante um ou mais esquemas associados a colecaoDocs sem esquema para valida-los ficam na colecao INO:ETCUm tipo de documento deve ser definido como elemento raiz em pelo menos um dos esquemas existentes na colecaoConsultas declarativas so desejadas para se alcancar um poder de expressao similar a de um BD convencional- Limitacao dos BDs XML eh permitir bloqueio apenas ateh o nivel de DOCUMENTO, limitando a concorrencia! Pesquisas atuais buscam definir tecnicas de bloqueio a estruturas em arvoreNa abordagem DOMClusterizacao por largura mantem proximos todos os sub-elementos MAIS DIRETOS de um certo elemento, facilitando consultas que filtrem mais de uma propriedade deste elemento Na abordagem BDOOModelo de classes eh similar ao modelo XML (ambos so modelos de objetos complexos). Por isso o mapeamento no eh complexo.Facilita a BUSCA NO ARQUIVO DE INDICES por entradas correspondentes aos filhos de um certo elemento;Essa estratgia independe do tipo de clusterizao dos dados, pois aplicada sobre o arquivo de ndicesAGORA UM PANORAMA DO GERENCIAMENTO NATIVO DE XML EM ALGUNS BANCOS DE DADOS RELACIONAIS!!!!!!!!!!!

    - Esquemas XSD so mantidos no ORACLE XML STORAGE (reservado apenas para dados e metadados XML)Tem overhead para mapeamento de esquemas, dados e consultas XML para o modelo ORCLUSTERIZACAO POR PROFUNDIDADEMAIS Facilidades de consulta que o ORACLEPor que adquirir um BD no xml se as consultas sobre dados nativos em BDR so complexas e requerem tb mapeamento para outro modelo fisicoAs ferramentas de desenvolvimento de BDRs so avancadas e facilitam a programacao de tarefas, reduzindo o esforco de codificacao manual pelo desenvolvedor!