46
Trabalho Individual – PPGCC/UFSC – 2004 1/46 XDCL: uma proposta para controle de restrições de integridade de domínio em documentos XML Universidade Federal de Santa Catarina Programa de Pós-Graduação em Ciência da Computação Alexandre Tagliari Lazzaretti Prof. Dr. Ronaldo Santos Mello Orientador

Trabalho Individual – PPGCC/UFSC – 20041/46 XDCL: uma proposta para controle de restrições de integridade de domínio em documentos XML Universidade Federal

Embed Size (px)

Citation preview

Page 1: Trabalho Individual – PPGCC/UFSC – 20041/46 XDCL: uma proposta para controle de restrições de integridade de domínio em documentos XML Universidade Federal

Trabalho Individual – PPGCC/UFSC – 2004 1/46

XDCL: uma proposta para controle de restrições de integridade de domínio em documentos XML

Universidade Federal de Santa CatarinaPrograma de Pós-Graduação em Ciência da Computação

Alexandre Tagliari Lazzaretti

Prof. Dr. Ronaldo Santos MelloOrientador

Page 2: Trabalho Individual – PPGCC/UFSC – 20041/46 XDCL: uma proposta para controle de restrições de integridade de domínio em documentos XML Universidade Federal

Trabalho Individual – PPGCC/UFSC – 2004 2/46

Roteiro• Objetivos• Restrições de Integridade e SQL (Structured

Query Language)• XML (eXtensible Markup Language)• Restrições de Integridade vs. XML• Motivação• Proposta• Dificuldades• Cronograma

Page 3: Trabalho Individual – PPGCC/UFSC – 20041/46 XDCL: uma proposta para controle de restrições de integridade de domínio em documentos XML Universidade Federal

Trabalho Individual – PPGCC/UFSC – 2004 3/46

Objetivo geral

• Propor um controle de restrições de integridade de domínio em documentos XML, inexistente na especificação de esquemas XML (DTD – Document Type Definition e XSD – XML Schema Definition), através de recursos semelhantes aos existentes na linguagem SQL.

Page 4: Trabalho Individual – PPGCC/UFSC – 20041/46 XDCL: uma proposta para controle de restrições de integridade de domínio em documentos XML Universidade Federal

Trabalho Individual – PPGCC/UFSC – 2004 4/46

Objetivos específicos• Classificar as restrições de integridade do modelo

relacional e comparar com os recursos existentes na linguagem SQL para seu tratamento;

• Analisar as especificações de esquemas XML com relação à imposição de restrições de integridade;

• Concentrar as necessidades levantadas no item anterior, na categoria de restrições de integridade de domínio;

• Analisar trabalhos relacionados;• Propor um controle de restrições de integridade de

domínio, com base nos recursos da linguagem SQL;• Aplicar o controle num estudo de caso.

Page 5: Trabalho Individual – PPGCC/UFSC – 20041/46 XDCL: uma proposta para controle de restrições de integridade de domínio em documentos XML Universidade Federal

Trabalho Individual – PPGCC/UFSC – 2004 5/46

Restrições de Integridade (conceitos)

• “O termo integridade refere-se a precisão ou correção dos dados em um banco de dados.” (Date,2000)

• Para garantir a integridade de um banco de dados são necessárias regras que estabelecem a consistência dos dados, essas regras são chamadas “restrições de integridade”;

• Os autores estudados, Date, Silberchatz, Elmasri & Navathe e Heuser, classificam as restrições de integridade de várias formas;

• Foi estabelecida uma classificação única, com base nos autores, para restrições de integridade.

Page 6: Trabalho Individual – PPGCC/UFSC – 20041/46 XDCL: uma proposta para controle de restrições de integridade de domínio em documentos XML Universidade Federal

Trabalho Individual – PPGCC/UFSC – 2004 6/46

Restrições de Integridade (classificação)

• Classificação:

• Domínio

• Chaves

• Integridade Referencial

• Momento de Verificação

• Baseada em eventos

Page 7: Trabalho Individual – PPGCC/UFSC – 20041/46 XDCL: uma proposta para controle de restrições de integridade de domínio em documentos XML Universidade Federal

Trabalho Individual – PPGCC/UFSC – 2004 7/46

Restrições de Integridade (classificação)

• Classificação:

• Domínio

• Chaves

• Integridade Referencial

• Momento de Verificação

• Baseada em eventos

• Especificam quais os valores válidos cada atributo deve ter;

• Subdivide-se em:• Restrições de atributo• Restrições de tipo• Restrições de tuplas• Restrições de banco de dados• Restrições de transição de estado

Page 8: Trabalho Individual – PPGCC/UFSC – 20041/46 XDCL: uma proposta para controle de restrições de integridade de domínio em documentos XML Universidade Federal

Trabalho Individual – PPGCC/UFSC – 2004 8/46

Restrições de Integridade (classificação)

Classificação:

• Domínio

• Chaves

• Integridade Referencial

• Momento de Verificação

• Baseada em eventos

• Identificam as tuplas e estabelecem relações entre tuplas de tabelas;

• Classifica-se em:• candidatas• primárias ou alternativas• estrangeiras

Page 9: Trabalho Individual – PPGCC/UFSC – 20041/46 XDCL: uma proposta para controle de restrições de integridade de domínio em documentos XML Universidade Federal

Trabalho Individual – PPGCC/UFSC – 2004 9/46

Restrições de Integridade (classificação)

• Classificação:

• Domínio

• Chaves

• Integridade Referencial

• Momento de Verificação

• Baseada em eventos

• Visam garantir que o banco de dados não inclua valores inválidos para chaves estrangeiras;

• Se B faz relação a A então A tem que existir.

Page 10: Trabalho Individual – PPGCC/UFSC – 20041/46 XDCL: uma proposta para controle de restrições de integridade de domínio em documentos XML Universidade Federal

Trabalho Individual – PPGCC/UFSC – 2004 10/46

Restrições de Integridade (classificação)

• Classificação:

• Domínio

• Chaves

• Integridade Referencial

• Momento de Verificação

• Baseada em eventos

• Indica a questão de quando a verificação é feita;

• Pode ser de dois tipos: imediata e postergada.

Page 11: Trabalho Individual – PPGCC/UFSC – 20041/46 XDCL: uma proposta para controle de restrições de integridade de domínio em documentos XML Universidade Federal

Trabalho Individual – PPGCC/UFSC – 2004 11/46

Restrições de Integridade (classificação)

• Classificação:

• Domínio

• Chaves

• Integridade Referencial

• Momento de Verificação

• Baseada em eventos

• São restrições programadas pelos usuários;

• Sua verificação é independente das operações de atualização.

Page 12: Trabalho Individual – PPGCC/UFSC – 20041/46 XDCL: uma proposta para controle de restrições de integridade de domínio em documentos XML Universidade Federal

Trabalho Individual – PPGCC/UFSC – 2004 12/46

SQL (conceitos)

• SQL é a linguagem padrão para bancos de dados relacionais;

• Objetivo: verificar como SQL trata as restrições de integridade do modelo relacional.

Page 13: Trabalho Individual – PPGCC/UFSC – 20041/46 XDCL: uma proposta para controle de restrições de integridade de domínio em documentos XML Universidade Federal

Trabalho Individual – PPGCC/UFSC – 2004 13/46

SQLRelacional

DomínioBásicas de Tabelas

Gerais GatilhosProcedi-mentos

Transa-çoes

Momento de verificação

a) Domínio

AtributosDOMAIN, CHECK

CHECK _ _ NOT DEFERRABLE

Tipo _TIPOS DE

DADOS _ _ _ _ NOT DEFERRABLE

Tuplas _ _ASSERTION,

CHECK _ NOT DEFERRABLE

Banco de dados _ _ASSERTION,

CHECK NOT DEFERRABLE ou DEFERRABLE

Transição de estadoDOMAIN, CHECK

_ _ _ NOT DEFERRABLE

b) Chaves

candidatas _ UNIQUE, _ _ _ _ NOT DEFERRABLE

primárias _ PRIMARY KEY _ _ _ _ NOT DEFERRABLE

estrangeiras _ FOREIGN KEY _ _ _ _ NOT DEFERRABLE

c) Integridade referencial

_PRIMARY E

FOREIGN KEY _ _ NOT DEFERRABLE

d) Momento de Verificação

IMEDIATO IMEDIATO IMEDIATO IMEDIATO IMEDIATOPOSTERGA-

DONOT DEFERRABLE ou

DEFERRABLE

e) Baseada em eventos _ _ _ _ NOT DEFERRABLE ou

DEFERRABLE

Relacional vs. SQL

*

Page 14: Trabalho Individual – PPGCC/UFSC – 20041/46 XDCL: uma proposta para controle de restrições de integridade de domínio em documentos XML Universidade Federal

Trabalho Individual – PPGCC/UFSC – 2004 14/46

SQL (recursos)

• Assertions: predicados que expressam uma condição que deve ser sempre verdadeira no banco de dados;

• Checks: asseguram que os valores dos atributos possam satisfazer determinadas condições;

• Gatilhos: é um conjunto de instruções executadas automaticamente em decorrência de algum evento (ação);

• Procedimentos: são programas escritos que são executados através de uma chamada de aplicação.

Page 15: Trabalho Individual – PPGCC/UFSC – 20041/46 XDCL: uma proposta para controle de restrições de integridade de domínio em documentos XML Universidade Federal

Trabalho Individual – PPGCC/UFSC – 2004 15/46

XML (conceitos)

• XML vem se consolidando um padrão para intercâmbio de dados na Web;

• Um conjunto de dados XML é descrito num documento XML;

• Características de um documento XML• estrutura hierárquica;• composto por texto e marcação;• um dado XML é chamado elemento;• tags (inicial e final) delimitam o conteúdo de um elemento;• possui um elemento raiz;• atributos são informações adicionais sobre um elemento.

Page 16: Trabalho Individual – PPGCC/UFSC – 20041/46 XDCL: uma proposta para controle de restrições de integridade de domínio em documentos XML Universidade Federal

Trabalho Individual – PPGCC/UFSC – 2004 16/46

XML (documento)

<? xml version = ”1.0” encoding = ”UTF-8” standalone = “yes” ><pessoas>

<codigo cpf=”68458371049”><nome>

<primeiro> Maria </primeiro><meio> Aparecida </meio><sobrenome> Tavares </sobrenome>

</nome><endereco>

<rua> Rua das Flores </rua><numero> 1789 </numero><bairro> Centro </bairro>

</endereco><cidade> Rio de Janeiro </cidade>

</codigo></pessoas>

Atributo de um elemento

Elemento

Elemento raiz

Page 17: Trabalho Individual – PPGCC/UFSC – 20041/46 XDCL: uma proposta para controle de restrições de integridade de domínio em documentos XML Universidade Federal

Trabalho Individual – PPGCC/UFSC – 2004 17/46

XML (restrições)

• Um documento XML, no que se refere a restrições, classifica-se em: bem formado e válido;

• Documento XML bem formado deve estar de acordo com a sintaxe XML, ou seja, deve conter:• elementos com tag inicial e tag final;• elementos conter um único pai, com exceção do

elemento raiz;• valor dos atributos estar entre aspas.

• Um documento XML é dito válido se possui um esquema hierárquico definido e se a sua estrutura está de acordo com esse esquema;

• Existem 2 tipos de esquemas: DTD e XSD.

Page 18: Trabalho Individual – PPGCC/UFSC – 20041/46 XDCL: uma proposta para controle de restrições de integridade de domínio em documentos XML Universidade Federal

Trabalho Individual – PPGCC/UFSC – 2004 18/46

XML (esquemas)

“esquemas XML expressam vocabulários compartilhados, e fornecem uma maneira de definição de estrutura, conteúdo e semântica de documentos XML.” (W3C)

• DTD • descreve o que cada elemento e atributo faz;• os elementos podem ser simples ou complexos;• ao declarar elementos, podem-se definir controles de

conteúdo, seqüência e cardinalidade;• ao declarar atributos, podem-se definir controles de

tipo do atributo e de ocorrência.

Page 19: Trabalho Individual – PPGCC/UFSC – 20041/46 XDCL: uma proposta para controle de restrições de integridade de domínio em documentos XML Universidade Federal

Trabalho Individual – PPGCC/UFSC – 2004 19/46

XML (DTD)

Conteúdos de elementos

Seqüência de sub-elementos

Cardinalidade de elementos

Tipos de atributos

Ocorrência de atributos

ANY, EMPTY, MIXED, PCDATA

VÍRGULA, BARRA VERTICAL +, *. ?

CDATA, ENTITY, ENTITIES, NMTOKEN,

NMTOKENS,NOTATION, ID, IDREF

REQUIRED, IMPLIED, FIXED

• Controles de integridade da DTD

• Exemplo DTD<?xml version =“1.0” encoding =“UTF-8” standalone =”yes”>

<!DOCTYPE pessoas [

<! ELEMENT pessoa (codigo+)>

<! ELEMENT codigo (nome, endereco, cidade)*>

<! ATTLIST codigo cpf CDATA #REQUIRED>

<! ELEMENT nome (primeiro, meio?, sobrenome)>

<!ELEMENT primeiro (#PCDATA)>

<!ELEMENT meio (#PCDATA)>

<!ELEMENT sobrenome (#PCDATA)>

<!ELEMENT endereco (rua, numero, bairro)>

<!ELEMENT tipopessoa (cgc | rg)>

<!ELEMENT rua (#PCDATA)>

<!ELEMENT numero (#PCDATA)>

<!ELEMENT bairro (#PCDATA)>

<!ELEMENT cidade (#PCDATA)>

<!ELEMENT cgc EMPTY>

<!ELEMENT rg EMPTY>

]>

Declaração de atributo

Declaração de elemento

Conteúdo de um elemento

Seqüência de sub-elementos

Cardinalidade

Page 20: Trabalho Individual – PPGCC/UFSC – 20041/46 XDCL: uma proposta para controle de restrições de integridade de domínio em documentos XML Universidade Federal

Trabalho Individual – PPGCC/UFSC – 2004 20/46

XML (XSD)

• Também é utilizado para definir elementos e atributos, semelhante a DTD, porém, com mais recursos;

• Principais vantagens do XSD com relação a DTD:• tipos de dados (tanto para elementos quanto

para atributos);• permite herança;• sintaxe XML;• oferece mais controles.

• Permite definir elementos simples e complexos;

Page 21: Trabalho Individual – PPGCC/UFSC – 20041/46 XDCL: uma proposta para controle de restrições de integridade de domínio em documentos XML Universidade Federal

Trabalho Individual – PPGCC/UFSC – 2004 21/46

XML (XSD)

Conteúdo de elementos Seqüência e escolha de elementos

Padrões de elementos

Ocorrência de elementos

Qualquer conteúdo, Elementos vazios, Conteúdo simples, Conteúdo misto, Elementos referencia, Elementos complexos, Elementos

ANY, Elementos GROUP

Elemento SEQUENCE,Elemento CHOICE, Modelo complexo

(SEQUENCE e CHOICE)

Valores padrão (DEFAULT), Valores fixos (FIXED), Valores Enumerados

(ENUMERATION)

Elementos opcionais repetitivos (maxOccurs e minOccurs),

Elemento ALL

Conteúdo de atributos

Padrões de atributos

Ocorrência de atributos

Tipos de dados Chaves e referências

Em elementos vazios, Em elementos com conteúdo,

Pertencentes a namespaces

Com valores padrão (DEFAULT), Com valores fixos (FIXED), Valores

enumerados (ENUMERATION)Requeridos e opcionais

(USE)

Tipos simples (SIMPLETYPE, FACETS), Tipos complexos (Devivações por extensão e

restrição)

UNIQUE, KEY, KEYREF

Page 22: Trabalho Individual – PPGCC/UFSC – 20041/46 XDCL: uma proposta para controle de restrições de integridade de domínio em documentos XML Universidade Federal

Trabalho Individual – PPGCC/UFSC – 2004 22/46

XML (exemplo XSD)<?xml version="1.0" encoding="UTF-8"?><xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="nome"> <xs:complexType> <xs:attribute name="primeiro" type="xs:string"/> </xs:complexType> </xs:element> <xs:element name="endereco"> <xs:complexType mixed="true"> <xs:attribute name="complemento" type="xs:string"/> </xs:complexType> </xs:element> <xs:element name="cidade"> <xs:complexType> <xs:simpleContent> <xs:extension base="xs:string"> <xs:attribute name="uf" type="estados" default=”SC”/> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> <xs:simpleType name="estados"> <xs:restriction base="xs:string"> <xs:enumeration value="RS"/> <xs:enumeration value="SC"/> </xs:restriction> </xs:simpleType> <xs:element name="pessoas"> <xs:complexType> <xs:sequence> <xs:element ref="nome"/> <xs:element ref="endereco"/> <xs:element ref="cidade"/> </xs:sequence> </xs:complexType> </xs:element></xs:schema>

tipos de dados

herança

Controle de conteúdo

Controle de seqüência

Page 23: Trabalho Individual – PPGCC/UFSC – 20041/46 XDCL: uma proposta para controle de restrições de integridade de domínio em documentos XML Universidade Federal

Trabalho Individual – PPGCC/UFSC – 2004 23/46

Restrições de integridade vs. DTDDTD

RelacionalConteúdos de

elementosSeqüência de sub-

elementosCardinalidade de

elementosTipos de atributos

Ocorrência de atributos

a) Domínio

TipoANY, EMPTY, MIXED,

PCDATAVÍRGULA, BARRA

VERTICAL +, *. ?CDATA, ENTITY,

ENTITIES, NMTOKEN, NMTOKENS,NOTATION

_

Atributos _ _ _ _REQUIRED,

IMPLIED, FIXED

Tuplas _ _ _ _ _

Banco de dados _ _ _ _ _

b) Chaves

Candidatas _ _ _ ID _

Primárias _ _ _ ID _

Estrangeiras _ _ _ IDREF _

c) Integridade referencial

_ _ _ ID, IDREF _

d) Momento de Verificação

IMEDIATO IMEDIATO IMEDIATO IMEDIATO IMEDIATO

e) Baseada em eventos SAX/ DOM SAX/ DOM SAX/ DOM SAX/DOM SAX/ DOM

Page 24: Trabalho Individual – PPGCC/UFSC – 20041/46 XDCL: uma proposta para controle de restrições de integridade de domínio em documentos XML Universidade Federal

Trabalho Individual – PPGCC/UFSC – 2004 24/46

Restrições de integridade vs. XSDXSD

RelacionalConteúdo de elementos Seqüência e escolha de

elementosPadrões de elementos

Ocorrência de elementos

a) Domínio

Tipo

Qualquer conteúdo, Elementos vazios, Conteúdo simples, Conteúdo misto, Elementos referencia, Elementos

complexos, Elementos ANY, Elementos GROUP

Elemento SEQUENCE,Elemento CHOICE, Modelo complexo (SEQUENCE e

CHOICE)

_

Elementos opcionais repetitivos (maxOccurs

e minOccurs), Elemento ALL

Atributos _ _

Valores padrão (DEFAULT), Valores fixos (FIXED), Valores Enumerados

(ENUMERATION)

_

Tuplas _ _ _ _

banco de dados _ _ _ _

b) Chaves

Candidatas _ _ _ _

Primárias _ _ _ _

Estrangeiras _ _ _ _

c) Integridade referencial _ _ _ _

d) Momento de Verificação

IMEDIATO IMEDIATO IMEDIATO IMEDIATO

e) Baseada em eventos SAX/ DOM SAX/ DOM SAX/ DOM SAX/ DOM

Page 25: Trabalho Individual – PPGCC/UFSC – 20041/46 XDCL: uma proposta para controle de restrições de integridade de domínio em documentos XML Universidade Federal

Trabalho Individual – PPGCC/UFSC – 2004 25/46

Restrições de integridade vs. XSDXSD

RelacionalConteúdo de

atributosPadrões de atributos Ocorrência de

atributosTipos de dados Chaves e

referências

a) Domínio

Tipo

Em elementos vazios, Em elementos com

conteúdo, Pertencentes a namespaces

_Requeridos e opcionais

(USE)

Tipos simples (SIMPLETYPE, FACETS), Tipos

complexos (Devivações por extensão e restrição)

_

Atributos _

Com valores padrão (DEFAULT), Com valores

fixos (FIXED), Valores enumerados

(ENUMERATION)

_ FACETS _

Tuplas _ _ _ _ _

Banco de dados _ _ _ _ _

b) Chaves

Candidatas _ _ _ _ UNIQUE, KEY

Primárias _ _ _ _ KEY

Estrangeiras _ _ _ _ KEYREF

c) Integridade referencial

_ _ _ _UNIQUE, KEY,

KEYREF

d) Momento de Verificação

IMEDIATO IMEDIATO IMEDIATO IMEDIATO IMEDIATO

e) Baseada em eventos

SAX/ DOM SAX/ DOM SAX/ DOM SAX/ DOM SAX/ DOM

Page 26: Trabalho Individual – PPGCC/UFSC – 20041/46 XDCL: uma proposta para controle de restrições de integridade de domínio em documentos XML Universidade Federal

Trabalho Individual – PPGCC/UFSC – 2004 26/46

Trabalhos Relacionados• Alguns trabalhos buscam adicionar restrições de

integridade de domínio em documentos XML;• “para incorporar restrições de integridade são

necessários, uma linguagem para definí-las, e um mecanismo para controlá-las”; (Provost, 2002)

• Tabela – trabalhos vs relacional

TrabalhosRelacional

OGBUJI (2001) PROVOST (2002)

BENEDIKT et al. (2002)

BAYLEY et al. (2002)

Domínio

Tipo √ √ √ -

Atributos - - - -

Tuplas √ √ √ √

Banco de dados √ √ √ √

Baseada em eventos - - - √

Page 27: Trabalho Individual – PPGCC/UFSC – 20041/46 XDCL: uma proposta para controle de restrições de integridade de domínio em documentos XML Universidade Federal

Trabalho Individual – PPGCC/UFSC – 2004 27/46

Trabalhos Relacionados

• Tabela – trabalhos vs SQL

TrabalhosSQL

OGBUJI (2001) PROVOST (2002) BENEDIKT et al. (2002) BAYLEY et al. (2002)

Domain - - - -

Check - - - -

Assertion - - - -

Gatilhos - - - √

Procedimentos √ √ √ -

Transações - - - -

Page 28: Trabalho Individual – PPGCC/UFSC – 20041/46 XDCL: uma proposta para controle de restrições de integridade de domínio em documentos XML Universidade Federal

Trabalho Individual – PPGCC/UFSC – 2004 28/46

Conclusões• Apenas um trabalho possui enfoque semelhante a

maneira que SQL trata restrições de integridade de domínio, porém serve apenas para inserir e apagar elementos (Bayley et al., 2002);

• Necessidade de incorporar elementos predefinidos para controle de restrições de integridade nos esquemas XML (Ogbuji, 2001 e Benedikt et al., 2002);

• Geração de códigos extensos para a validação de documentos XML (Provost, 2002);

MOTIVAÇÕES

Page 29: Trabalho Individual – PPGCC/UFSC – 20041/46 XDCL: uma proposta para controle de restrições de integridade de domínio em documentos XML Universidade Federal

Trabalho Individual – PPGCC/UFSC – 2004 29/46

Proposta• Um mecanismo de controle de restrições de integridade

de domínio para documentos XML, em específico, restrições de integridade de tuplas e de banco de dados;

• Para isso, usar como referência mecanismos existentes na linguagem SQL como: gatilhos, asserções e a cláusula check;

• Através de uma linguagem para especificação de restrições de integridade, que será chamada XDCL (XML Domain Constraints Language);

• Através de um parser de validação, chamado parser XDCL.

Como ?

Page 30: Trabalho Individual – PPGCC/UFSC – 20041/46 XDCL: uma proposta para controle de restrições de integridade de domínio em documentos XML Universidade Federal

Trabalho Individual – PPGCC/UFSC – 2004 30/46

Arquitetura

Validação

de RIs

Page 31: Trabalho Individual – PPGCC/UFSC – 20041/46 XDCL: uma proposta para controle de restrições de integridade de domínio em documentos XML Universidade Federal

Trabalho Individual – PPGCC/UFSC – 2004 31/46

Arquitetura

Representado

Em parte

bem formado/válido

Validação

de RIs

Page 32: Trabalho Individual – PPGCC/UFSC – 20041/46 XDCL: uma proposta para controle de restrições de integridade de domínio em documentos XML Universidade Federal

Trabalho Individual – PPGCC/UFSC – 2004 32/46

Linguagem XDCL• Características:

• independência do contexto XML;• pode ser referenciado por um banco de dados nativo

XML ou por um documento XML; • documento texto, com extensão XDC;• sintaxe XML (pode-se utilizar todos os recursos da

tecnologia);• é validado por um parser XML (questões de bem formado e

válido)

• referência a um esquema XML (portanto, já incorporando seus controles de restrições de integridade).

Page 33: Trabalho Individual – PPGCC/UFSC – 20041/46 XDCL: uma proposta para controle de restrições de integridade de domínio em documentos XML Universidade Federal

Trabalho Individual – PPGCC/UFSC – 2004 33/46

Parser XDCL

• Características:• efetua a validação das expressões contidas no

documento XDC contra as instâncias XML;• Mostra o resultado da validação;

• Validação correta;• Indicação de inconsistências.• Realiza

• Checks• Updates• Inserts• Removes• Renames• Appends

Page 34: Trabalho Individual – PPGCC/UFSC – 20041/46 XDCL: uma proposta para controle de restrições de integridade de domínio em documentos XML Universidade Federal

Trabalho Individual – PPGCC/UFSC – 2004 34/46

Estudo de caso• Domínio – Operadora de planos de saúde;

• Objetivo da operadora – prestar atendimento à saúde de seus usuários;

• Quem presta o atendimento – são os prestadores de serviço (médicos, laboratórios, clínicas, hospitais)

• MOTIVAÇÃO – troca constante de dados entre prestadores e operadora através de documentos XML;

• Finalidade dos dados – armazenamento num banco de dados ou geração de novas instâncias;

Page 35: Trabalho Individual – PPGCC/UFSC – 20041/46 XDCL: uma proposta para controle de restrições de integridade de domínio em documentos XML Universidade Federal

Trabalho Individual – PPGCC/UFSC – 2004 35/46

Estudo de caso - exemplo<dados> <instituicao> 124 </instituicao> <nome_instituicao> Hosp. Prontoclinicas Ltda </nome_instituicao> <prestadores> <prestador> 1452 </prestador> <nome_prestador> Inst. de Neurologia </nome_prestador> <responsavel> Maria da Silva </responsavel> <data_geracao> 29-04-2004 </data_geracao> <total_pagamentos> 54,00 </total_pagamentos> <consultas> <qtde_consultas> 2 </qtde_consultas> <total_consultas> 54,00 </total_consultas> <consulta> <autorizacao> 813321 </autorizacao> <data_lancamento> 15-04-2004 </data_lancamento> <paciente> 14578 </paciente> <nome_paciente> Adalgisa Severo </nome_paciente> <convenio> 78 </convenio> <nome_convenio> Saude Brasil Individual </nome_convenio> <medico> 65 </medico> <nome_medico> Adao Soares </nome_medico> <data_realizacao> 12-04-2004 </data_realizacao> <quantidade> 1 </quantidade> <valor_consulta> 27,00 </valor_consulta> </consulta> <consulta> <autorizacao> 81341 </autorizacao> <data_lancamento> 12-04-2004 </data_lancamento> <paciente> 1245 </paciente> <nome_paciente> Maria do Carmo </nome_paciente> <convenio> 77 </convenio> <nome_convenio> Saude Brasil Coletivo </nome_convenio> <medico> 65 </medico> <nome_medico> Adao Soares </nome_medico> <data_realizacao> 20-04-2004 </data_realizacao> <quantidade> 1 </quantidade> <valor_consulta> 27,00 </valor_consulta> </consulta> </consultas> </prestadores></dados>

Page 36: Trabalho Individual – PPGCC/UFSC – 20041/46 XDCL: uma proposta para controle de restrições de integridade de domínio em documentos XML Universidade Federal

Trabalho Individual – PPGCC/UFSC – 2004 36/46

Estudo de caso - exemplo<dados> <instituicao> 124 </instituicao> <nome_instituicao> Hosp. Prontoclinicas Ltda </nome_instituicao> <prestadores> <prestador> 1452 </prestador> <nome_prestador> Inst. de Neurologia </nome_prestador> <responsavel> Maria da Silva </responsavel> <data_geracao> 29-04-2004 </data_geracao> <total_pagamentos> 54, 00 </total_pagamentos> <consultas> <qtde_consultas> 2 </qtde_consultas> <total_consultas> 54,00 </total_consultas> <consulta> <autorizacao> 813321 </autorizacao> <data_lancamento> 15-04-2004 </data_lancamento> <paciente> 14578 </paciente> <nome_paciente> Adalgisa Severo </nome_paciente> <convenio> 78 </convenio> <nome_convenio> Saude Brasil Individual </nome_convenio> <medico> 65 </medico> <nome_medico> Adao Soares </nome_medico> <data_realizacao> 12-04-2004 </data_realizacao> <quantidade> 1 </quantidade> <valor_consulta> 27,00 </valor_consulta> </consulta> <consulta> <autorizacao> 81341 </autorizacao> <data_lancamento> 12-04-2004 </data_lancamento> <paciente> 1245 </paciente> <nome_paciente> Maria do Carmo </nome_paciente> <convenio> 77 </convenio> <nome_convenio> Saude Brasil Coletivo </nome_convenio> <medico> 65 </medico> <nome_medico> Adao Soares </nome_medico> <data_realizacao> 20-04-2004 </data_realizacao> <quantidade> 1 </quantidade> <valor_consulta> 27,00 </valor_consulta> </consulta> </consultas> </prestadores></dados>

A data de lançamento de uma consulta

deve ser menor ou igual a data

de realização da mesma consulta

A data de lançamento de uma consulta

deve ser menor ou igual a data

de realização da mesma consulta

Page 37: Trabalho Individual – PPGCC/UFSC – 20041/46 XDCL: uma proposta para controle de restrições de integridade de domínio em documentos XML Universidade Federal

Trabalho Individual – PPGCC/UFSC – 2004 37/46

Estudo de caso - exemplo<dados> <instituicao> 124 </instituicao> <nome_instituicao> Hosp. Prontoclinicas Ltda </nome_instituicao> <prestadores> <prestador> 1452 </prestador> <nome_prestador> Inst. de Neurologia </nome_prestador> <responsavel> Maria da Silva </responsavel> <data_geracao> 29-04-2004 </data_geracao> <total_pagamentos> 54,00 </total_pagamentos> <consultas> <qtde_consultas> 2 </qtde_consultas> <total_consultas> 54,00 </total_consultas> <consulta> <autorizacao> 813321 </autorizacao> <data_lancamento> 15-04-2004 </data_lancamento> <paciente> 14578 </paciente> <nome_paciente> Adalgisa Severo </nome_paciente> <convenio> 78 </convenio> <nome_convenio> Saude Brasil Individual </nome_convenio> <medico> 65 </medico> <nome_medico> Adao Soares </nome_medico> <data_realizacao> 12-04-2004 </data_realizacao> <quantidade> 1 </quantidade> <valor_consulta> 27,00 </valor_consulta> </consulta> <consulta> <autorizacao> 81341 </autorizacao> <data_lancamento> 12-04-2004 </data_lancamento> <paciente> 1245 </paciente> <nome_paciente> Maria do Carmo </nome_paciente> <convenio> 77 </convenio> <nome_convenio> Saude Brasil Coletivo </nome_convenio> <medico> 65 </medico> <nome_medico> Adao Soares </nome_medico> <data_realizacao> 20-04-2004 </data_realizacao> <quantidade> 1 </quantidade> <valor_consulta> 27,00 </valor_consulta> </consulta> </consultas> </prestadores></dados>

O valor do elemento total de consultas deve

ser igual ao somatório dos

elementos valor consulta

O valor do elemento total de consultas deve

ser igual ao somatório dos

elementos valor consulta

Page 38: Trabalho Individual – PPGCC/UFSC – 20041/46 XDCL: uma proposta para controle de restrições de integridade de domínio em documentos XML Universidade Federal

Trabalho Individual – PPGCC/UFSC – 2004 38/46

Sintaxe XDCL<xdcl_constraint xdcl_name=”nome_constraint”>

<xdcl_on> [Expressão XPath] </xdcl_on> <xdcl_statements>

<xdcl_operations xdcl_operator=”[=,>=,<=,>,<,<>]”> <xdcl_oper1 [xdcl_function1=”[sum, count, max, min]”]> <xdcl_path1> [expressão XPath] </xdcl_path1> </xdcl_oper1> <xdcl_oper2 [xdcl_function2=”[sum, cont, max, min]”]>

<xdcl_path2> [expressão XPath] </xdcl_path2> </xdcl_oper2></xdcl_operations><xdcl_return> <xdcl_update> instruções XUpdate </xdcl_update>

<xdcl_insert> instruções XUpdate </xdcl_insert> <xdcl_delete> instruções XUpdate </xdcl_delete> <xdcl_message> <xdcl_data_message> mensagem de aviso </xdcl_data_message> </xdcl_message></xdcl_return>

</xdcl_statements></xdcl_constraint>

Page 39: Trabalho Individual – PPGCC/UFSC – 20041/46 XDCL: uma proposta para controle de restrições de integridade de domínio em documentos XML Universidade Federal

Trabalho Individual – PPGCC/UFSC – 2004 39/46

XSD da linguagemDocumento do Word

Page 40: Trabalho Individual – PPGCC/UFSC – 20041/46 XDCL: uma proposta para controle de restrições de integridade de domínio em documentos XML Universidade Federal

Trabalho Individual – PPGCC/UFSC – 2004 40/46

Exemplo de Check<?xml version="1.0" encoding="UTF-8"?><xdcl_constraint xdcl_name="nome da restricao" xmlns:xsi="http://www.w3.org/2001/XMLSchema-

instance" xsi:noNamespaceSchemaLocation="C:\Mestrado\Trabalho Final\Dissertaçao\xdcl.xsd">

<!-- MOSTRA UMA MENSAGEM DE INCONSISTÊNCIA ENTRE OS ELEMENTOS DATA_LANCAMENTO E DATA_REALIZACAO--><xdcl_on>/dados/prestadores/consultas/consulta</xdcl_on><xdcl_statements>

<xdcl_operations xdcl_operation="&gt;="> <xdcl_oper1> <xdcl_path1>/dados/prestadores/consultas/consulta/data_lançamento</

xdcl_path1> </xdcl_oper1> <xdcl_oper2>

<xdcl_path2>/dados/prestadores/consultas/consulta/data_realização</xdcl_path2>

</xdcl_oper2></xdcl_operations><xdcl_return> <xdcl_message> <xdcl_data_return>DATAS INVÁLIDAS, VERIFIQUE !</xdcl_data_return> </xdcl_message></xdcl_return>

</xdcl_statements></xdcl_constraint>

Page 41: Trabalho Individual – PPGCC/UFSC – 20041/46 XDCL: uma proposta para controle de restrições de integridade de domínio em documentos XML Universidade Federal

Trabalho Individual – PPGCC/UFSC – 2004 41/46

Exemplo de Update<?xml version="1.0" encoding="UTF-8"?><xdcl_constraint xdcl_name="nome da restricao" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:noNamespaceSchemaLocation="C:\Mestrado\Trabalho Final\Dissertaçao\xdcl.xsd">

<!-- ATUALIZA O VALOR DO ELEMENTO QTDE_CONSULTAS COM O VALOR DE XDCL_OPER1--><xdcl_on>/dados/prestadores/consultas</xdcl_on><xdcl_statements> <xdcl_operations xdcl_operation="&lt;&gt;">

<xdcl_oper1 xdcl_function="sum"> <xdcl_path1>/dados/prestadores/consultas/consulta/quantidade</xdcl_path1></xdcl_oper1><xdcl_oper2> <xdcl_path2>/dados/prestadores/consultas/qtde_consultas</xdcl_path2></xdcl_oper2>

</xdcl_operations> <xdcl_return>

<xdcl_update> <xupdate_modifications version="1.0" xupdate_xmlns="http://www.xmldb.org/xupdate"> <xupdate_update

select="/dados/prestadores/consultas/qtde_consultas">xdcl_oper1</xupdate_update> </xupdate_modifications></xdcl_update>

</xdcl_return></xdcl_statements>

</xdcl_constraint>

Page 42: Trabalho Individual – PPGCC/UFSC – 20041/46 XDCL: uma proposta para controle de restrições de integridade de domínio em documentos XML Universidade Federal

Trabalho Individual – PPGCC/UFSC – 2004 42/46

Exemplo de Remove<?xml version="1.0" encoding="UTF-8"?><xdcl_constraint xdcl_name="nome da restricao" xmlns:xsi="http://www.w3.org/2001/XMLSchema-

instance" xsi:noNamespaceSchemaLocation="C:\Mestrado\Trabalho Final\Dissertaçao\xdcl.xsd">

<!-- REMOVE O ELEMENTO 'CONFERIDO' DESDE QUE ELE ESTEJA COM O VALOR 'OK' -->

<xdcl_on>/dados/prestadores/consultas</xdcl_on><xdcl_statements> <xdcl_operations xdcl_operation="=">

<xdcl_oper1> <xdcl_path1>/dados/prestadores/consultas/conferido</xdcl_path1></xdcl_oper1><xdcl_oper2> <xdcl_path2>OK</xdcl_path2></xdcl_oper2>

</xdcl_operations> <xdcl_return>

<xdcl_delete> <xupdate_modifications version="1.0"

xupdate_xmlns="http://www.xmldb.org/xupdate"><xupdate_remove select="conferido"></xupdate_remove>

</xupdate_modifications></xdcl_delete>

</xdcl_return></xdcl_statements>

</xdcl_constraint>

Page 43: Trabalho Individual – PPGCC/UFSC – 20041/46 XDCL: uma proposta para controle de restrições de integridade de domínio em documentos XML Universidade Federal

Trabalho Individual – PPGCC/UFSC – 2004 43/46

Exemplo de Insert<?xml version="1.0" encoding="UTF-8"?><xdcl_constraint xdcl_name="nome da restricao" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:noNamespaceSchemaLocation="C:\Mestrado\Trabalho Final\Dissertaçao\xdcl.xsd">

<!-- INSERE O ELEMENTO CONFERIDO APÓS O ELEMENTO TOTAL_PAGAMENTOS COM O VALOR 'OK' --><xdcl_on>/dados/prestadores/consultas</xdcl_on><xdcl_statements>

<xdcl_return> <xdcl_insert> <xupdate_modifications version="1.0"

xupdate_xmlns="http://www.xmldb.org/xupdate"><xupdate_insert-before select="\dados\prestadores\total_pagamentos"> <element name="conferido">ok</element></xupdate_insert-before>

</xupdate_modifications> </xdcl_insert></xdcl_return>

</xdcl_statements></xdcl_constraint>

Page 44: Trabalho Individual – PPGCC/UFSC – 20041/46 XDCL: uma proposta para controle de restrições de integridade de domínio em documentos XML Universidade Federal

Trabalho Individual – PPGCC/UFSC – 2004 44/46

Dificuldades• Implementar no xsd controles da linguagem

xupdate• Momento que o parser de verificação será

executado• Bancos XML (eventos?)• Documentos XML (ao alterar o documento)

Page 45: Trabalho Individual – PPGCC/UFSC – 20041/46 XDCL: uma proposta para controle de restrições de integridade de domínio em documentos XML Universidade Federal

Trabalho Individual – PPGCC/UFSC – 2004 45/46

Cronograma de atividadesMeses

AtividadesJulho (2004)

Agosto (2004)

Setembro (2004)

Outubro (2004)

Novembro (2004)

Dezembro (2004)

Janeiro (2005)

Defesa TI OKAdequação da proposta com sugestões da Banca do TI OK OKEstudo detalhado da sintaxe de checks, triggers e assertions da SQL

OKDefinição da linguagem XDCL com base no estudo da etapa anterior

OK OKImplementação do parser XDCL

Validação

Redação da dissertação

Defesa da dissertação

Page 46: Trabalho Individual – PPGCC/UFSC – 20041/46 XDCL: uma proposta para controle de restrições de integridade de domínio em documentos XML Universidade Federal

Trabalho Individual – PPGCC/UFSC – 2004 46/46

Obrigado !