Vous êtes sur la page 1sur 19

Armazenamento de Dados XML em SGBDs

Armazenamento de Dados XML em SGBDs Fernanda Baião fernanda.baiao@uniriotec.br Apresentação baseada no material de

Fernanda Baião fernanda.baiao@uniriotec.br

Apresentação baseada no material de Humberto José Vieira Junior e Gabriela Ruberg © 2006

1

Agenda

Agenda Introdução Armazenamento de Documentos XML Mapeamento relacional Mapeamento OO Transformação XQuery →

Introdução Armazenamento de Documentos XML

Agenda Introdução Armazenamento de Documentos XML Mapeamento relacional Mapeamento OO Transformação XQuery →

Mapeamento relacional Mapeamento OO

Transformação XQuery SQL3 Análise Comparativa Exercício XVerter

2

Motivação

Motivação • Documentos XML como troca de informação • Armazenamento – Arquivos texto – SGBDs (Nativos,

• Documentos XML como troca de informação

• Armazenamento

Documentos XML como troca de informação • Armazenamento – Arquivos texto – SGBDs (Nativos, Relacionais ou

– Arquivos texto

– SGBDs (Nativos, Relacionais ou baseados em Objetos)

• Consulta aos dados

– Conhecimento das linguagens de consulta

– Conhecimento da estrutura de armazenamento

3

Cenário

Cenário • Analisar estratégias para o armazenamento de documentos XML em SGBDs com pouca ou nenhuma
Cenário • Analisar estratégias para o armazenamento de documentos XML em SGBDs com pouca ou nenhuma

• Analisar estratégias para o armazenamento de documentos XML em SGBDs com pouca ou nenhuma perda semântica

– Dados estruturados e semi-estruturados em um mesmo sistema

• Analisar a reconstrução de documentos XML

• Analisar impactos para o processamento de consultas XQuery em SGBDs

4

Referências

Referências 5 • CHAUDHURI, S. SHIM K. “Storage and Retrieval of XML Data using Relational Databases”,

5

Referências 5 • CHAUDHURI, S. SHIM K. “Storage and Retrieval of XML Data using Relational Databases”,

• CHAUDHURI, S. SHIM K. “Storage and Retrieval of XML Data using Relational Databases”, Tutorial, VLDB’01. Também em ICDE 2003

• Ronald Bourret, Native XML Databases, http://www.rpbourret.com/xml/ProdsNative.htm

• Sun Developer Network, Java Architecture for XML Binding (JAXB), http://java.sun.com/webservices/jaxb

• Vieira, H. “XVerter: Armazenamento e Consulta de Dados XML em SGBDs” Tese de Mestrado, COPPE/UFRJ, dezembro 2002.

• Vieira, H., Ruberg, G., Mattoso, M., 2002, "XVerter: Armazenamento e Consulta de Dados XML em SGBDs". In: XVII Simpósio Brasileiro de Banco de Dados (SBBD'2002), pp. 224-238, Gramado, Brasil.

Referências

Referências • FEGARAS, L.,ELMASRI, R., 2001, "Query Engines for Web-Accessible XML Data". In: 27th
Referências • FEGARAS, L.,ELMASRI, R., 2001, "Query Engines for Web-Accessible XML Data". In: 27th

• FEGARAS, L.,ELMASRI, R., 2001, "Query Engines for Web-Accessible XML Data". In: 27th International Conference on Very Large Data Bases (VLDB'2001), pp. 251-260, Roma, Italy.

• FLORESCU, D.,KOSSMAN, D., 1999, "Storing and Querying XML Data using an RDBMS". In: IEEE Data Engineering Bulletin, v. 22, pp. 27-34.

• MANOLESCU, I., FLORESCU, D., KOSSMAN, D., 2001, "Answering XML Queries Over Heterogeneous Data Sources". In: 27th International Conference on Very Large Data Bases (VLDB'2001), pp. 241-250, Roma, Italy.

• MANOLESCU, I., FLORESCU, D., KOSSMAN, D., et al, 2000, "Agora:

Living with XML and Relational". In: 26th International Conference on Very Large Data Bases (VLDB'2000), pp. 623-626, Cairo, Egypt

6

Referências

Referências 7 • RUNAPONGSA, K.,PATEL, J., 2002, "Stori ng and Querying XML Data in Object- Relational

7

Referências 7 • RUNAPONGSA, K.,PATEL, J., 2002, "Stori ng and Querying XML Data in Object- Relational

• RUNAPONGSA, K.,PATEL, J., 2002, "Storing and Querying XML Data in Object- Relational DBMSs". In: International Conference on Extending Database Technology (EDBT'2002) Workshops XMLDM, pp. 266-285, Prague, Czech Republic.

• SHANMUGASUNDARAM, J., SHEKITA, E., BARR, R., et al, 2000, "Efficiently Publishing Relational Data as XML Documents". In: 26th International Conference on Very Large Data Bases (VLDB'2000), pp. 65-76, Cairo, Egypt.

• SHANMUGASUNDARAM, J., SHEKITA, E., KIERNAN, J., et al, 2001, "A General Technique for Querying XML Documentos using a Relational Database System". In:

Special Interest Group on Management of Data (SIGMOD) Record, v. 30, pp. 20-26.

• SHANMUGASUNDARAM, J., TUFTE, K., HE, G., et al, 1999, "Relational Databases for Querying XML Documents: Limitations and Opportunities". In: 25th International Conference on Very Large Data Bases (VLDB'1999), pp. 302-314, Edinburgh, Scotland, United Kingdom.

Referências

Referências • TIAN, F., DEWITT, D., CHEN, J., et al, 2002, "The Design and Performance Evaluation
Referências • TIAN, F., DEWITT, D., CHEN, J., et al, 2002, "The Design and Performance Evaluation

• TIAN, F., DEWITT, D., CHEN, J., et al, 2002, "The Design and Performance Evaluation of Alternative XML Storage Strategies". In:

SIGMOD Record, v. 31.

• MASATOSHI YOSHIKAWA and TOSHIYUKI AMAGASA, XRel:

A Path-Based Approach to Storage and Retrieval of XML Documents Using Relational Databases, ACM TOIT 1(1)

8

Armazenamento de Documentos XML

Armazenamento de Documentos XML • Arquivos texto – Dados estruturados e se mi-estruturados separados – Dificuldade

Arquivos texto

– Dados estruturados e semi-estruturados separados

– Dificuldade de consulta

SGBDs XML Nativos

separados – Dificuldade de consulta • SGBDs XML Nativos – Documentos XML sem nenhuma perda –

– Documentos XML sem nenhuma perda

– Recursos de Gerência de dados (transações, otimização

de consultas,

) em evolução

SGBDs Tradicionais

– Dados estruturados e semi-estruturados em um mesmo sistema

– Aproveitamento das funcionalidades típicas de um SGBD

9

SGBDs XML Nativos

SGBDs XML Nativos • Especificamente projetados para armazenar documentos XML • Recursos de gerência de dados

Especificamente projetados para armazenar documentos XML

• Recursos de gerência de dados

– Transações, segurança, acesso multi-usuário, APIs programáveis, linguagens de consultas,

– Índices

• Índices de valor, estruturais, textos-completos (full-text)

• Modelo interno de armazenamento baseado em XML

– Árvores (grafos), e não tabelas

• Suportam a noção de “coleções”

10

SGBDs XML Nativos - Usos

SGBDs XML Nativos - Usos • Armazenamento de dados centrados em documentos – Linguagens de consulta

• Armazenamento de dados centrados em documentos

– Linguagens de consulta XML, difíceis de expressar em SQL

– "Get me all documents in which the third paragraph after the start of the section contains a bold word,"

– Preservam ordem do documento, instruções de processamento, comentários, seções CDATA

• Integração de dados

– Evitam mapeamento das fontes de dados para modelo relacional (BDs federados)

– Maior flexibilidade

– Lidam melhor com evolução de esquemas

– Tratam dados não estruturados

• Domínios em que a estrutura dos dados evolui rapidamente

– Finanças

– Bioinformática

• Outros

– Transações longas, documentos grandes, etc

11

Qual o Problema ?

Qual o Problema ? • Cenário: – receber grandes instâncias de dados XML – armazenar, gerenciar,

• Cenário:

– receber grandes instâncias de dados XML

– armazenar, gerenciar, consultar através da XQuery

• Considerando o uso de SGBDs tradicionais:

– Como mapear XML para o relacional, relacional-objeto ou objeto ?

– Como reconstruir o documento XML original ?

– Como mapear a consulta XQuery para SQL, OQL ?

12

How to store Native XML Data?

How to store Native XML Data? [Shaudhuri e Shim 2001] • Usuário provê mapeamento para tabelas

[Shaudhuri e Shim 2001]

• Usuário provê mapeamento para tabelas relacionais específicas

– produtos comerciais em geral

• Mapeamento Genérico

– usuário não define o mapeamento

– Sem DTD

• Inferir mapeamento a partir do DTD ou XML Schema

• Analisar documentos XML e consultas

13

Mapeamento relacional

Mapeamento relacional • Genérico – arco (edge) • Universal • DTD • Inferência 15

• Genérico – arco (edge)

• Universal

• DTD

• Inferência

15

Documento XML

Documento XML < book >   < title > The Calculus </ title > < author

<book>

 

<title> The Calculus </title> <author> Tamer Ozsu </author> <author> Patrick Valduriez </author> <year> 1986 </year>

</book>

<book>

 

<title> Foundations of Databases </title> <author> Serge Abiteboul </author> <author> <first-name> Rick </first-name> <last-name> Hull </last-name> <author> Victor Vianu </author> <year> 1995 </year>

</book>

16

Armazenamento XML: Genérico (Edge)

Armazenamento XML: Genérico (Edge) source Ref Val dest Ref &o1 book Source Label Dest &o1
source Ref Val dest Ref
source
Ref
Val
dest
Ref
&o1
&o1

book

Source

Label

Dest

&o1

book

&o2

&o2

title

&o3

&o2

author

&o4

&o2

author

&o5

&o2

year

&o6

Val

&o2 year title author author &o3 &o4 &o5 &o6 “The Calculus” “…” “…”
&o2
year
title
author
author
&o3
&o4
&o5
&o6
“The Calculus”
“…”
“…”
“1986”
 

Node

Value

&o3

The Calculus

&o4

[Florescu, Kossman 1999]

&o5

17

&o6

1986

Armazenamento XML: Genérico (Edge)

Armazenamento XML: Genérico (Edge) 18
18
18

Armaz XML: Genérico (Edge-Tab Unica)

Armaz XML: Genérico (Edge-Tab Unica) 19
Armaz XML: Genérico (Edge-Tab Unica) 19

19

Mapeamento de Consultas

Mapeamento de Consultas 20
Mapeamento de Consultas 20

20

Documento XML de exemplo

Documento XML de exemplo <!DOCTYPE Dept SYSTEM “Dept.dtd”> < Dept dept_id=“dept1”> < Student

<!DOCTYPE Dept SYSTEM “Dept.dtd”> <Dept dept_id=“dept1”> <Student student_id=“123”>

<Name>St1</Name>

<Enroll>CS10</Enroll>

<Enroll>CS20</Enroll>

</Student> <Student student_id=“124”>

<Name>St2</Name>

</Student>

</Dept>

21

Armazenamento XML: Genérico (Edge)

Armazenamento XML: Genérico (Edge) 22
22
22

Armaz XML: Genérico (Edge-Inlining)

Armaz XML: Genérico (Edge-Inlining) 23
Armaz XML: Genérico (Edge-Inlining) 23

23

Armaz XML: Genérico (Edge-Binário)

Armaz XML: Genérico (Edge-Binário) 24
Armaz XML: Genérico (Edge-Binário) 24

24

Armaz XML: Genérico (Universal)

Armaz XML: Genérico (Universal) 25
Armaz XML: Genérico (Universal) 25

25

Armaz XML: Genérico (tipo DOM)

Armaz XML: Genérico (tipo DOM) [Manolescu et al. 2000] 26

[Manolescu et al. 2000]

Armaz XML: Genérico (tipo DOM) [Manolescu et al. 2000] 26

26

Mapeamento a partir do DTD

Mapeamento a partir do DTD 27
Mapeamento a partir do DTD 27

27

Mapeamento a partir do DTD

Mapeamento a partir do DTD 28
Mapeamento a partir do DTD 28
Mapeamento a partir do DTD 28

28

Shared e Hybrid Inlining

Shared e Hybrid Inlining 29
Shared e Hybrid Inlining 29

29

Ex. DTD : SIGMOD Record

Ex. DTD : SIGMOD Record 30
Ex. DTD : SIGMOD Record 30

30

Ex. Shared Inlining

Ex. Shared Inlining 31
Ex. Shared Inlining 31

31

Ex. Hybrid Inlining

Ex. Hybrid Inlining 32
Ex. Hybrid Inlining 32

32

Storing XML:

Storing XML: Derive Schema from XML-Schema • DTD: <!ELEMENT bib (paper*)> <!ELEMENT paper

Derive Schema from XML-Schema

• DTD:

<!ELEMENT bib (paper*)> <!ELEMENT paper (author*,title,year)> <!ELEMENT author (firstname, lastname)>

• Relational Schema:

Paper(pid, title, year)

Author(aid, pid, fn, ln)

• Sometimes this is poor. E.g.

– 80% of papers have <= 2 authors

– 18% have 3 authors

– 2%

have 4 or more…

[Christophides et al. 1994 , Shanmugasundaram et al. 1999]

33

STORED Approach:

STORED Approach: Mine Data to Derive Schema paper paper paper paper author author title author title

Mine Data to Derive Schema

paper paper paper paper author author title author title year author title author title fn
paper
paper paper paper
author author
title author
title year author
title author
title
fn
fn
ln
fn
fn
ln
ln
ln

[Deutsch, Fernandez, Suciu, SIGMOD’99]

34

Papers1

fn1

ln1

fn2

ln2

title

year

   

XXXXX

   

-

XX

 

-

-

X

X

XX - - X -
XX
-
-
X
-
Papers2 author title X X
Papers2
author
title
X
X

Use “overflow” to store the rest (e.g. as blobs)

Mapeamento para objetos

Mapeamento para objetos • Genérico: – DOM (padrão) – Modelo de classes [Fegaras – Tabela [Tian

• Genérico:

DOM (padrão)

– Modelo de classes [Fegaras

– Tabela [Tian

]

]

35

Mapeamento para objetos: DOM

Mapeamento para objetos: DOM DocumentImpl “cartas.xml” <cartas> <carta id="1">
DocumentImpl
DocumentImpl
Mapeamento para objetos: DOM DocumentImpl “cartas.xml” <cartas> <carta id="1">
“cartas.xml” <cartas> <carta id="1"> <para>Joao</para>
“cartas.xml”
<cartas>
<carta id="1">
<para>Joao</para>
<de>Maria</de>
<assunto>Viagem</assunto>
</carta>
<carta id="2">
<para>Jane</para>
<de>Joao</de>
ElementImpl
<cartas>
ElementImpl
ElementImpl
ElementImpl
<carta>
<carta>
<bilhete>
<assunto>Empresa</assunto>
</carta>
<bilhete id="1">
<conteudo>
<para>Maria</para>
AttrImpl
<id = “1”>
ElementImpl
ElementImpl
ElementImpl
<de>Jane</de>
<para>
<de>
<assunto>
<assunto>Carro</assunto>
</conteudo>
</bilhete>
TextImpl
TextImpl
TextImpl
</cartas>
“Joao”
“Maria”
“Viagem”

36

Armazenamento de Documentos XML Abordagem de Mapeamento x Vantagens/Desvantagens Vantagens Desvantagens Caixa Preta
Armazenamento de Documentos XML
Abordagem de Mapeamento x Vantagens/Desvantagens
Vantagens
Desvantagens
Caixa Preta
-Reconstrução total dos
documentos
-Falta de flexibilidade
-Dificuldade de consulta
-Restrito ao espaço de memória
disponível
Genérica
-N° baixo de estruturas geradas
-Esquema independente do
documento armazenado
-Facilita o processo de tradução
-Necessidade de conhecimento das
estruturas criadas para consulta
Única
-Esquema simples de
representação
-Dificuldade de consulta pois há apenas
uma única estrutura de dados
Específica
-Mapeamento mais direto
-Otimização no acesso a
elementos do mesmo tipo
-Dificuldade de reconstrução total dos
documentos
-Geração de um n° alto de estruturas
44
(muitas junções
)
Armazenamento de Documentos XML Modelo de Dados x Vantagens/Desvantagens Vantagens Desvantagens Relacional
Armazenamento de Documentos XML
Modelo de Dados x Vantagens/Desvantagens
Vantagens
Desvantagens
Relacional
-Agrupamento físico eficiente das
estruturas de dados
-Tecnologia amplamente
consolidada
-Dificuldade de reconstrução total dos
documentos
-Consultas com número excessivo de
junções
-Gap semântico entre os modelos
Relacional e XML
Baseado
-Algumas diferenças entre a semântica
OO e XML
em
Objetos
-Riqueza semântica do modelo OO
-Capacidade de representação de
herança
-Semelhança entre o modelo OO e
o XML
45

Exercício

Exercício • Escolher um documento XML simples • Fazer a representação relacional do documento para as

• Escolher um documento XML simples

• Fazer a representação relacional do documento para as diversas abordagens apresentadas:

46