41
Modelo de dados semi- estruturado e tipificação em XML Helena Galhardas DEI IST

Modelo de dados semi- estruturado e tipificação em XML Helena Galhardas DEI IST

Embed Size (px)

Citation preview

Page 1: Modelo de dados semi- estruturado e tipificação em XML Helena Galhardas DEI IST

Modelo de dados semi-estruturado e tipificação em XML

Helena GalhardasDEI IST

Page 2: Modelo de dados semi- estruturado e tipificação em XML Helena Galhardas DEI IST

Agenda

Resumo da aula passada Modelo de dados semi-estruturado Tipificação em dados semi-estruturados e

XML

Page 3: Modelo de dados semi- estruturado e tipificação em XML Helena Galhardas DEI IST

Resumo da aula passada

Page 4: Modelo de dados semi- estruturado e tipificação em XML Helena Galhardas DEI IST

Resumo: o que interessa lembrar Semi-estruturado: casamento entre sistemas

documentais e SGBDs XML

Árvores ordenadas, etiquetadas e com ligações Semântica e tipos estão nas tags Formato de transferência de dados

Page 5: Modelo de dados semi- estruturado e tipificação em XML Helena Galhardas DEI IST

Resumo: tecnologia

SGBDs: B-tree, hash table, optimização de interrogações

Documentos: Indíce texto, classificação

XML: Autómato de árvores

Page 6: Modelo de dados semi- estruturado e tipificação em XML Helena Galhardas DEI IST

Resumo: problemas antigos ressurgem Optimização de interrogações distribuídas Integração de dados Procura de dados e serviços Gestão de actualizações de dados

Page 7: Modelo de dados semi- estruturado e tipificação em XML Helena Galhardas DEI IST

Exercício

Considere uma BD relacional que contém uma relação “ensina” com atributos “disciplina” e “docente”. Esta relação representa uma associação entre as disciplinas ensinadas no Mestrado de Bolonha em Informática e os professores que nele ensinam.

Escreva um documento XML que representa uma instância dessa relação contendo dois tuplos (arbitre a disciplina e o nome dos professores)

Page 8: Modelo de dados semi- estruturado e tipificação em XML Helena Galhardas DEI IST

Modelo de dados semi-estruturado e XML

Page 9: Modelo de dados semi- estruturado e tipificação em XML Helena Galhardas DEI IST

Modelo de dados semi-estruturado Dados semi-estruturados são muitas vezes

conotados como “sem-esquema” (schemaless) ou “explicáveis por si próprios” (self-describing)

Dados são descritos através de uma sintaxe simples:{nome: {primeiro: “Bruno”, ultimo: “Martins”}, tel: 21 4233290, email: “[email protected]”}

Page 10: Modelo de dados semi- estruturado e tipificação em XML Helena Galhardas DEI IST

Representação gráfica

nometel

email

primeiro ultimo

“Bruno” “Martins”

214233290“[email protected]

Page 11: Modelo de dados semi- estruturado e tipificação em XML Helena Galhardas DEI IST

Variações na estrutura

{pessoa:{nome: {primeiro: “Bruno”, ultimo: “Martins”},

tel: 21 4233290, email: “[email protected]”},

pessoa: {nome: “Pável”, tel: 21 4233267, email: [email protected]},

pessoa:{nome: “Helena”, tel: 21 4233246, altura: 1,60}

}

Page 12: Modelo de dados semi- estruturado e tipificação em XML Helena Galhardas DEI IST

Representação de dados relacionais{ r1: {linha: {a: a1, b: b1, c: c1}, linha: {a: a2, b: b2, c: c2} }, r2: {linha: {c: c2, d: d2}, linha: {c: c3, d: d3},

linha: {c: c4, d: d4} }

}

Page 13: Modelo de dados semi- estruturado e tipificação em XML Helena Galhardas DEI IST

Representação de BDs de objectos{ pessoa: &o1 {nome: “Ana”,

idade: 35, filho: &o2,

filho: &o3 },

pessoa: &o2 {nome: “João”, idade: 7, parentes: {mae: &o1,

irma: &o3} },

pessoa: &o3 {nome: “Joana”, país: “Portugal”,

mae: &o1 }}

Page 14: Modelo de dados semi- estruturado e tipificação em XML Helena Galhardas DEI IST

Modelo de dados semi-estruturado

&o1

&o12 &o24 &o29

&o43&96

&243 &206

&25

“Serge” “Abiteboul”

1997

“Victor” “Vianu” 122 133

paper bookpaper

references

references references

author title year httpauthor

authorauthor

title publisherauthor

authortitle

page

firstnamelastname firstname lastname first

last

Bib

Object Exchange Model (OEM)

complex object

atomic object

Page 15: Modelo de dados semi- estruturado e tipificação em XML Helena Galhardas DEI IST

Sintaxe para expressões semi-estruturadas

<ssd-expr> ::= <value> | oid<value> |oid<value> ::= atomicvalue | <complexvalue><complexvalue> ::= {label: <ssd-expr>,..., label:<ssd-expr>}

Um oid o é definido numa ssd-expression s se s tem a forma ov para algum valor v ou s tem a forma {l1:e1, ..., ln:en} e o está definido numa das e1,..., en

Qualquer oid é definido no máximo uma vez em s Se um oid o é usado em s, então tem que ter sido definido

em s

Page 16: Modelo de dados semi- estruturado e tipificação em XML Helena Galhardas DEI IST

Terminologia de grafos para descrever dados semi-estruturados Grafo (N, E) consiste num conjunto N de nós e um

conjunto E de arcos (edges) Associado a cada e E, existe um par ordenado de

nós, o nó fonte s(e) e o nó destino t(e). Um caminho (path) é uma sequência e1, e2, ..., ek

de arcos tal que: t(ei) = s(ei+1), 1<=i<=k-1, K: tamanho do caminho

Um nó r é a raíz do grafo se existir um caminho de r para n, para qualquer n N

Um ciclo num grafo é um caminho entre um nó e ele mesmo. Um grafo sem ciclos é aciclico.

Page 17: Modelo de dados semi- estruturado e tipificação em XML Helena Galhardas DEI IST

Terminologia de grafos para descrever dados semi-estruturados (2) Um grafo com raíz é uma árvore se existir

um caminho único de r para n, para qualquer n N

Um nó é terminal ou folha se não é a fonte de nenhum arco em E.

DAG: Directed Acyclic graph Modelo de dados semi-estruturados: grafo

com arcos etiquetados (edge-labeled graph) Tb pode incluir etiquetas nos nós

Page 18: Modelo de dados semi- estruturado e tipificação em XML Helena Galhardas DEI IST

XML e dados semi-estruturados<person>

<name> Alan </name> <age> 42 </age> <email> ab@com </email></person>

Ssd-expression: {person: {name: “Alan”, age: 43, email: [email protected]}}

Função de tradução T:T(valoratomico) = valoratomicoT({l1:v1, ..., ln:vn} = <l1> T[v1] </l1> ... <ln> T[vn] </ln>

Page 19: Modelo de dados semi- estruturado e tipificação em XML Helena Galhardas DEI IST

Referências XML XML permite associar identificadores únicos a elementos, como

sendo o valor de um determinado atributo.

<state id = “s2”><scode> NE </scode><sname> Nevada </sname>

</state>

<city id = “c2”><ccode> CCN </ccode><cname> Carson City </cname><state-of idref =“s2”/>

</city>

Page 20: Modelo de dados semi- estruturado e tipificação em XML Helena Galhardas DEI IST

Semelhanças e diferenças

<person id=“o123”> <name> Alan </name> <age> 42 </age> <email> ab@com </email></person>

{ person: &o123 { name: “Alan”, age: 42, email: “ab@com” }}

person

name age email

Alan 42 ab@com

person

name age email

Alan 42 ab@com

father father

<person father=“o123”> …</person>

{ person: { father: &o123 …}}

Semelhante em árvores, diferente em grafos

Page 21: Modelo de dados semi- estruturado e tipificação em XML Helena Galhardas DEI IST

Ordem em XML

Em XML, existe a noção de ordem, em ssd não.Person:{fn:”John”, ln:”Smith”} igual aPerson:{ln:”Smith”, fn:“John”}Mas<person><fn>John</fn>

<ln>Smith</ln></person>Diferente de:<person><ln>Smith</ln>

<fn>John</fn></person> Atributos em XML não têm noção de ordem

Page 22: Modelo de dados semi- estruturado e tipificação em XML Helena Galhardas DEI IST

Mistura de elementos e texto XML pode misturar texto e elementos <talk> Making Java easier to type and easier to type <speaker> Phil Wadler </speaker> </talk>

Além disto, XML tem uma panóplia de outras construções como entidades, instruções de processamento, comentários, etc.

Todas estas diferenças fazem com que a gestão de dados XML seja mais complexa

Page 23: Modelo de dados semi- estruturado e tipificação em XML Helena Galhardas DEI IST

Tipificação em XML

Page 24: Modelo de dados semi- estruturado e tipificação em XML Helena Galhardas DEI IST

Tipificação em XML

Não é imposta Mas

Melhora o armazenamento Facilita a navegação nos dados (data guide) Facilita a interrogação Facilita a descrição e explicação dos dados Ajuda à optimização Permite a interoperabilidade entre programas Permite proteger os dados

Page 25: Modelo de dados semi- estruturado e tipificação em XML Helena Galhardas DEI IST

Melhora o armazenamento

Root

Company Employee

string

company

person

works-for

c.e.o.

address

name

managed-by

name

o i d n a m e a d d r e s s c . e . o .… … … …… … … …

Company

o i d n a m e m a n a g e d - b y w o r k s - f o r… … … …… … … …

Employee

Store rest in overflow graph

Page 26: Modelo de dados semi- estruturado e tipificação em XML Helena Galhardas DEI IST

Ajuda na optimização de interrogações

Bib

paper book

yearjournal

title

int string string

addressauthor

title

zip city street

lastname

firstname

string string string string string

string

select X.titlefrom Bib._ Xwhere X.*.zip = “12345”

select X.titlefrom Bib.book Xwhere X.address.zip = “12345”

Page 27: Modelo de dados semi- estruturado e tipificação em XML Helena Galhardas DEI IST

Dados relacionais vs dados semi-estruturadosEsquemas em dados relacionais

Definidos antes dos dados Os dados têm que obedecer ao esquema Cada instância de dados obedece exactamente a

um esquemaEsquemas em dados semi-estruturados

Definidos depois dos dados Alguns dados podem não ter esquema associado Uma instância de dados pode ter vários

esquemas

Page 28: Modelo de dados semi- estruturado e tipificação em XML Helena Galhardas DEI IST

Quando é que o esquema é criado nos dados semi-estruturados? Criado pelo utilizador

Antes ou depois dos dados Não tem que ser único

Extraído dos dados Isto não existe em BDs relacionais

Extraído das interrogações Como inferência de tipos em linguagens de

programação

Page 29: Modelo de dados semi- estruturado e tipificação em XML Helena Galhardas DEI IST

Grafos de esquema (schema graphs) Dado um conjunto de dados semi-

estruturados, podemos querer extrair o seu esquema

O grafo de esquema especifica que arcos são permitidos num grafo de dados Todos os caminhos (paths) que ocorrem no grafo

de dados ocorrem no grafo de esquema

Page 30: Modelo de dados semi- estruturado e tipificação em XML Helena Galhardas DEI IST

Exemplo (OEM)

&r1

&c1 &c2

&s2 &s3 &s6 &s7

&s10

companycompany

nameaddress name

url

address

“Widget” “Trenton” “Gadget”

“www.gp.fr”

“Paris”

&p2&p1 &p3

&s0 &s1 &s4 &s5 &s8 &s9

personperson

person

“Smith”

nameposition name phonename

position

“Manager” “Jones” “5552121” “Dupont” “Sales”

employeemanages

c.e.o.works-for works-for

works-forc.e.o.

&a1

&a2 &a3

&a4&a5

&a6&a7

description

description

procurement salesrep

contact

task

eval1997

1998

“on target”

“below target”

Dados:

Page 31: Modelo de dados semi- estruturado e tipificação em XML Helena Galhardas DEI IST

Grafo de esquema

Root

CompanyPerson

string

companyperson

works-for

c.e.o. | employee

name | address | url

managed-by

name | phone | position

Any

description

*

Page 32: Modelo de dados semi- estruturado e tipificação em XML Helena Galhardas DEI IST

Duas questões

Conformance: os dados são conforme o esquema?

Classificação: se sim, então que objectos pertencem a que classes?

Page 33: Modelo de dados semi- estruturado e tipificação em XML Helena Galhardas DEI IST

Simulação de grafos

Definição Dois grafos edge-labeled G1, G2Uma simulação é uma relação R entre nós:

se (x1, x2) pertencem a R, e (x1,a,y1) está em G1,Então existe (x2,a,y2) em G2 (mesma etiqueta)tal que (y1,y2) está em R

x1 x2a

R

G1 G2

y1

aR y2

Page 34: Modelo de dados semi- estruturado e tipificação em XML Helena Galhardas DEI IST

Simulação entre uma instância de dados SS (OEM) e um grafo de esquema1. Permite-se que um arco x1[l]y1 nos dados seja

simulado por algum arco x2[l’]y2 quando l’ é um wild card ou uma alternância contendo l

2. AS raízes têm que estar na simulação rRr’ onde r e r’ são as raízes dos dados e do grafo de esquema, respectvamente. Diz-se que a simulação é “rooted”

3. Sempre que xRy, se y é um tipo atómico então x também tem que ser um nó atómico e ter um valor desse tipo. Diz-se então que a simulação é tipificada.

Page 35: Modelo de dados semi- estruturado e tipificação em XML Helena Galhardas DEI IST

Exemplo

&r1

&c1 &c2

&s2 &s3 &s6 &s7

&s10

companycompany

name address name

url

address

“Widget” “Trenton” “Gadget”

“www.gp.fr”

“Paris”

&p2&p1 &p3

&s0 &s1 &s4 &s5 &s8 &s9

personperson

person

“Smith”

nameposition name phonename

position

“Manager” “Jones” “5552121” “Dupont” “Sales”

employeemanages

c.e.o.works-for works-for

works-for

c.e.o.

&a1

&a2 &a3

&a4&a5

&a6&a7

description

description

procurement salesrep

contact

task

eval1997

1998

“on target”

“below target”

Root

Company Person

string

companyperson

works-for

c.e.o. | employee

name | address | url

managed-by

name | phone | position

Any

description

*

Dados Grafo de esquema

Page 36: Modelo de dados semi- estruturado e tipificação em XML Helena Galhardas DEI IST

Usando Simulação

Grafo de dados D, esquema S conformance: encontrar a simulação máxima

R de D para S: Notação: D S

classificação: verificar se (x,c) estão em R Notação: x c

Page 37: Modelo de dados semi- estruturado e tipificação em XML Helena Galhardas DEI IST

Extracção de esquema (data guides) Data guide é um sumário preciso e conciso do grafo

de dados Preciso: todos os caminhos (paths) nos dados ocorrem no

data guide e vice-versa Conciso: todos os caminhos no data guide ocorrem

exactamente uma vez Data Guide é o grafo de esquema mais específico

para um dado grafo de dados, ou seja, existe uma simulação do data guide para qualquer outro grafo de esquema que o grafo de dados satisfaça

Um grafo de dados é análogo a um NFA (nondeterministic finite state automaton) Dado um NFA N, o data guide é análogo a um DFA

(deterministic finite state automaton) equivalente ao NFA N

Page 38: Modelo de dados semi- estruturado e tipificação em XML Helena Galhardas DEI IST

Exemplo: Grafo de Dados

&r

&p8&p1 &p2 &p3 &p4 &p5 &p6 &p7

&c

company

employeeemployee

employeeemployee employee employee

employeeemployee

worksforworksfor

worksforworksforworksfor

worksforworksfor

worksfor

manages

manages

manages

manages

managedby

managedbymanagedby

manages

managedbymanagedby

D =

Page 39: Modelo de dados semi- estruturado e tipificação em XML Helena Galhardas DEI IST

Exemplo: Data Guide

Root&r

Employees&p1,&p1,&p3,P4

&p5,&p6,&p7,&p8

Bosses&p1,&p4,&p6

Regulars&p2,&p3,&p5,&p7,&p8

Company&c

company

employee

managesmanagedby

manages

managedby

worksfor

worksfor

worksfor

Result Sd =

Page 40: Modelo de dados semi- estruturado e tipificação em XML Helena Galhardas DEI IST

Referências Serge Abiteboul, Slides of the course: “Données

Semistructurées”, Master Recherche Informatique Paris Sud, http://www-rocq.inria.fr/~abitebou/Master-SSD/index.html

Dan Suciu, Slides on “The semistructured data model”, CSE 590ds: Management of XML and Semistructured Data, http://www.cs.washington.edu/education/courses/cse590ds/01sp/

S. Abiteboul, P. Buneman, D. Suciu, “Data on the Web, From Relations to Semistructured Data and XML”, Morgan Kaufmann, 2000, (caps 2, 3 e 7)

Page 41: Modelo de dados semi- estruturado e tipificação em XML Helena Galhardas DEI IST

Tópicos próximas aulas DTD, XML Schema, XSDL XSLT XPath XQuery