Keli Cristina Manini Susane Schmidt. Uma Ferramenta para Geração de Esquemas XML a partir de Documentos XML

Tamanho: px
Começar a partir da página:

Download "Keli Cristina Manini Susane Schmidt. Uma Ferramenta para Geração de Esquemas XML a partir de Documentos XML"

Transcrição

1 Keli Cristina Manini Susane Schmidt Uma Ferramenta para Geração de Esquemas XML a partir de Documentos XML Florianópolis - SC 2006

2 Keli Cristina Manini Susane Schmidt Uma Ferramenta para Geração de Esquemas XML a partir de Documentos XML Trabalho apresentado como requisito para graduação em Bacharelado em Ciências da Computação Orientador: Ronaldo S. Mello Co-orientador: Olinto José Varela Furtado Universidade Federal de Santa Catarina - UFSC Departamento de Informática e Estatística - INE Florianópolis - SC 2006

3 Sumário Lista de Figuras 1 Introdução p. 5 2 XML - extensible Markup Language p. 8 3 Esquemas XML p DTD - Document Type Description p XML Schema p Gramáticas p Trabalhos Relacionados p XTRACT p DataGuides p Extração de esquemas de dados XML: Uma Abordagem de Gramática de Inferência p Processo do Trabalho da Ferramenta p. 28 Anexo A -- Codigos p. 34 Referências p. 35

4 Lista de Figuras 1 Entradas e Saídas da abordagem BinXs p. 6 2 Exemplo de uma Estrutura XML p. 9 3 Exemplo de elementos em um documento XML p. 9 4 Exemplo de esquema DTD p Exemplo de esquema em XML Schema p Sintaxe e exemplo de uma declaração de atributo em uma DTD.... p Sintaxe e exemplo de uma declaração de entidade p Exemplo Derivação por Extensão p Exemplo de definição de Elemento Simples na XML Schema p Exemplo de Definição de Elemento Complexo na XML Schema..... p Exemplo Elemento Complexo de XML Schema p Exemplo de um subconjunto da gramática portuguesa p Exemplo de um subconjunto da gramática portuguesa segundo outra notação p Exemplo de uma Gramática Regular p Exemplo documento OEM p Exemplo de documento XML para OEM do Exemplo Locais de Alimentação p Exemplo DataGuide p Exemplo XML Schema para OEM do Exemplo Locais de Alimentação. p Exemplo de documento XML sobre o Campeonato Europel de Futebol p Exemplo XML Schema Campeonato Europel de Futebol p. 25

5 21 Árvore XML - Exemplo Estruturado p Gramática Livre de Contexto Estendida para XML Times p Algoritimo Passo p Algoritimo Passo p Merge de Não Terminais de Estrutura Repetida p Algoritimo Passo p Algoritimo Passo p Diagrama da Ferramenta Proposta p Gramática Genérica p Exemplo Primeiro Documento a entrar no Processo p Exemplo Segundo Documento a entrar no Processo p Gramática Específica da Primeira Iteração p Gramática Específica da Segunda Iteração p XML Schema Gerado com Base no Exemplo p. 33

6 5 1 Introdução XML (Extensible Markup Language) emergiu como um novo padrão para troca e manipulação de dados descritivos de documentos estruturados. (1) Este fato ocorreu devido a grande quantidade de vantagens que este padrão de linguagem representa: o formato XML é auto-descritivo; documentos XML formam coleções de elementos aninhados hierarquicamente; XML é um arquivo texto,não é volumoso, facilita a transferência de dados entre sistemas e a estrutura interna destes documentos pode ser padronizada em esquemas que auxiliam na organização, clareza e utilização destes. Por estes e demais motivos, a comunidade de pesquisa em bancos de dados tem investido cada vez mais no estudo de XML e novas técnicas e ferramentas para o seu gerenciamento vêm sendo desenvolvidas. A especificação de um esquema para um documento XML é importante pois permite a validação de dados XML baseados neste esquema. A partir de um esquema também é possível verificar a equivalência dos dados, e então unificar dados de documentos XML com a mesma estrutura. Esta tarefa é importante em sistemas que realizam integração de dados na Web. Outra vantagem é que a existência de um esquema facilita o mapeamento de dados XML para esquemas de banco de dados, possibilitando a formulação e o processamento otimizado de consultas. Apesar destas vantagens, a maioria dos documentos XML disponíveis em computadores não possui um esquema associado, e mesmo que o possua, é provável que estes esquemas não sejam idênticos, pois foram definidos por pessoas ou sistemas diferentes. Em função disto, este trabalho propõe uma ferramenta que procura solucionar, mesmo que parcialmente, o problema da falta de esquemas, já que a integração de dados XML tornou-se relevante devido a grande quantidade de dados XML disponíveis na Web atualmente e para que tal integração seja facilitada é importante que se conheça o esquema de cada documento. Além das justificativas citadas anteriormente, essa ferramenta terá aplicação direta na abordagem BInXS (Bottom-Up Integration of XML Schemata). Esta abordagem BInXS foi proposta por (2) e realiza a integração semântica de esquemas XML com o objetivo de permitir o acesso transparente a dados XML em fontes de dados na

7 6 Web sem que haja necessidade de se saber suas localizações e seus esquemas. O objetivo da abordagem BinXs é gerar, de forma semi-automática, um esquema global a partir dos esquemas XML de fontes de dados XML. É neste contexto que se insere a ferramenta proposta neste trabalho, uma vez que os documentos XML nem sempre são acompanhadas de seus esquemas XML. A figura 1 monstra as entradas e saídas do processo realizado pelo BinXs. As entradas são documentos XML de fontes de dados da Web e seus esquemas. A saída é o esqeuma global, a nível conceitual, que resulta da integração semântica dos esquemas XML. Este trabalho age como um facilitador para a enrada do processo, gerando esquemas XML para um conjunto de documentos que não possuem um esquema associado. Figura 1: Entradas e Saídas da abordagem BinXs Algumas soluções já foram desenvolvidas no sentido de tentar sanar o problema anteriormente mencionado (3), (4), (5). Porém, elas geram o esquema a partir de um único documento XML. O objetivo da ferramenta proposta é permitir que o usuário possa informar vários documentos XML de uma mesma autoria ou de uma mesma fonte de dados, e a partir destes documentos seja gerado um esquema XML único e completo. No entanto, um dos maiores problemas na formação de um esquema XML está relacionado a alcançar um esquema que consiga ser completo e compacto, já que estas são características inver-

8 7 samente proporcionais: esquemas tendem a ser ou muito volumosos ou incompletos. (3) Encontrar um esquema XML que consiga balancear estas duas características é um dos desafios a ser solucionados neste trabalho. No próximo capítulo é dada uma breve introdução a linguagem XML, mostrando um pouco de sua estrutura e funcionalidade. No capítulo 3 é apresentado o conceito de esquemas XML, com aprofundamento dos tipos de esquemas XML recomendados pela W3C. Para melhor entendimento dos conceitos introduzidos em seções posteriores. No capítulo 4, é apresentado o conceito de gramáticas. Já no capítulo 5, são apresentados alguns trabalhos relacionados contribuem com o desenvolvimento deste trabalho. No capítulo 6 é apresentada a proposta inicial da ferramenta e um cronograma relacionando as atividades necessárias para a conclusão do trabalho com o tempo restante para o seu desenvolvimento.

9 8 2 XML - extensible Markup Language XML( extensible Markup Language), padrão popular do consórcio W3C(1), é um formato para troca, representação e manipulação de documentos estruturados e semiestruturados (1). Como o próprio nome diz, é uma linguagem de marcação com formato aberto, isto é, o próprio desenvolvedor define as tags que serão utilizadas para construir o documento (6). Pela sua versatilidade e capacidade de extensão, XML é, na verdade, uma meta-linguagem que serve de base para a definição de novas linguagens de marcação (7). Um documento XML é onde são definidos os dados XML. Estes documentos XML formam uma coleção de elementos tags aninhados hierarquicamente que servem de delimitadores de informação. O conceito de tags é também utilizado na linguagem HTML (Hyper Text Markup Language). Apesar das semelhanças existentes nessas duas linguagens, existem diferenças fundamentais. Uma delas é em relação ao uso das tags, que são pré-definidas em um documento HTML, enquanto possuem valor semântico na linguagem XML. Outra diferença importante está relacionada com a função específica de cada linguagem. Enquanto a função da linguagem HTML está dividida entre estruturar o documento e permitir a apresentação dos seus dados em um software navegador na internet, XML preocupa-se com a estruturação da informação(6). Cada documento XML possui uma estrutura lógica e física. A estrutura física permite a definição de componentes de documentos chamados entidades, que podem ser nomeadas ou armazenadas separadamente (7). A estrutura lógica é composta de declarações, elementos, comentários, enfim, tudo o que estiver indicado no documento através de marcação(6). A figura 2 mostra parte da estrutura de um documento XML. Os documentos XML caracterizam-se por apresentar uma estrutura hierárquica de elementos, começando com um elemento raiz. Os elementos podem ser do tipo simples ou complexo. Elementos complexos contém sub-elementos (elementos filhos), que devem estar aninhados com seus

10 9 <NOTA número="1"> <PARA>Professor</PARA> <DE>Keli e Susane</DE> <CABECALHO>Mensagem</CABECALHO> <CORPO>N~ao esqueça de dar uma boa nota!</corpo> </NOTA> Figura 2: Exemplo de uma Estrutura XML pais (8), como mostra a figura 3. Os elementos identificam objetos do documento XML. Por este motivo, o nome dado aos elementos deve estar de acordo com o conteúdo respectivo e com a intenção do domínio de aplicação para o qual o ducumento XML é criado. <raiz> <filhos> <subfilho>...</subfilho> </filhos> </raiz> Figura 3: Exemplo de elementos em um documento XML Para incluir informações adicionais sobre os elementos são utilizados atributos, que são declarados na tag de abertura do elemento, como pode-se observar na figura 2 que tem o atributo número como uma propriedade do elemento Nota. Outra característica que determina a forma do documento XML está ligada à noção de esquema, que pode opcionalmente acompanhar um documento XML (3). Um esquema XML tem como função descrever a estrutura interna de um documento XML. Existem dois tipos de esquemas: DTD e XML Schema As figuras 4 e 5 representam respectivamente a estrutura do dado XML da figura 2, descritos através de uma DTD e de um XML Schema. Estas figuras definem um elemento complexo note e sua estrutura que é composta de um atributo e de elementos simples (to, from, heading e body). Os esquemas XML e suas estruturas são detalhados no próximo capítulo. xsd:element name= biblioteca xsd:complextype xsd:element name= livro type = TipoLivro / /xsd:complextype xsd:complextype name= TipoLivro element name= titulo type = String / xsd:complextype

11 10 <?xml version- 1.0?> <!DOCTYPE NOTA [ <!ELEMENT NOTA (PARA, DE, CABECALHO, CORPO)> <!ATTLIST NOTA numero PCDATA #IMPLIED> <!ELEMENT PARA (#PCDATA)> <!ELEMENT DE (#PCDATA)> <!ELEMENT CABECALHO (#PCDATA)> <!ELEMENT CORPO (#PCDATA)> ]> Figura 4: Exemplo de esquema DTD <?xml version= 1.0 encoding = UTF-8?> <xsd:schema xmlns:xsd= > <xsd:complextype> <xsd:element name= nota type = TipoNota /> </xsd:complextype> <xsd:attribute name= numero type= xs:integer > <xsd:complextype name= TipoLivro > <xsd:sequence> <xsd: element name = PARA Type = xsd:string /> <xsd: element name = DE Type = xsd:string /> <xsd: element name = CABECALHO Type = xsd:string /> <xsd: element name = CORPO Type = xsd:string /> </xsd:sequence> </xsd:complextype> </xsd:schema> Figura 5: Exemplo de esquema em XML Schema

12 11 3 Esquemas XML Esquemas XML definem a forma como um documento XML pode ser estruturado. Através do uso destas estruturas, desenvolvedores diferentes podem interagir trocando ou integrando documentos de dados no formato XML, devido ao fato destes diferentes documentos possuírem o mesmo esquema. Sistemas de integração de dados XML, como o BInXS, comentado anteriormente, vêm sendo propostos por pesquisadores e desenvolvedores para permitirem visões unificadas de dados na Web. Neste contexto, a declaração de esquemas facilita a fusão de tais documentos, uma vez que suas estruturas são conhecidas. Atualmente existem duas recomentações da W3C para especificação de esquemas para XML: DTD e XML Schema. Essas recomendações são descritas a seguir. 3.1 DTD - Document Type Description Uma DTD define as instruções que são enviadas ao parser XML para o documento que está para ser analisado(6).essas regras definem o tipo dos elementos que podem ser usados e a hierarquia e granularidade do texto(7). Uma DTD define o conteúdo de um elemento no formato de expressões regulares (4). Uma DTD é composta por um conjunto de declarações. Cada declaração está de acordo com o formato de marcação <!... > e seus tipos principais são: ELEMENT (definição de elemento), ATTLIST (definição de atributo) e ENTITY (definição de entidade). Os elementos definem os blocos principais de um documento XML. Eles podem conter texto, outros elementos, ou serem vazios.(8) Na declaração de um elemento é possível também definir a quantidade de ocorrências de seus sub-elementos: Uma única ocorrência: <!ELEMENT element-name (child-name)> Mínimo de uma ocorrência: <!ELEMENT element-name (child-name+)> Zero ou mais ocorrências: <!ELEMENT element-name (child-name*)>

13 12 Zero ou nenhuma ocorrência: <!ELEMENT element-name (child-name?)> Uma ou outra ocorrência: <! ELEMENT element-name(child name1 child name2) > Os atributos contêm informações extras sobre os elementos. Eles estão sempre localizados dentro de uma tag de um elemento e definem sempre um par (nome/valor), como pode ser observado na figura 6 (8). O primeiro parâmetro na declaração é o nome seguido do tipo do atributo, cujos principais tipos são: CDATA (cadeia de caracteres), NMTOKEN (um identificador), NMTOKENS (lista de NMTOKEN), ENTITY (entidade),entities (lista de entidades), ID (id única), IDREF (referêncai ao id de um elemento já existente), IDREFS (lista de IDREF)(7). O parâmetro final especifica um valor que é dado ao atributo quando o autor do documento não informa um valor (7). Outras restrições que podem ser definidas em um atributo são: #REQUIRED(o atributo é obrigatório), #IMPLIED (o atributo é opcional no elemento) e #FIXED (o valor do atributo é fixo).(8) <!ATTLIST nome-do-elemento nome-do-atributo tipo-do-atributo valor-padr~ao> Exemplo: DTD: <!ATTLIST pagamento type (cheque dinheiro) dinheiro > XML: <pagamento type= cheque > ou <pagamento type= dinheiro > Figura 6: Sintaxe e exemplo de uma declaração de atributo em uma DTD As entidades, demonstradas na figura 7, são variáveis usadas para definir textos comuns. Uma entidade é utilizada principalmente para evitar a repetição de textos similares. Isto reduz a carga de trabalho na definição do esquema, faz com que apareçam menos erros e facilita o entendimento da estrutura da DTD. (7) <!ENTITY nome da entidade valor da entidade > Exemplo: DTD: <!ENTITY livro-name Código da Vince > <!ENTITY autor Dan Brown > XML: <livro>&livro-name;&autor;</livro> Figura 7: Sintaxe e exemplo de uma declaração de entidade

14 XML Schema A recomendação XML SCHEMA foi aprovada pela W3C em março de 2001 (1). Surgiu para ser o sucessor de esquemas DTDs e por isso possui todas as funcionalidades desta e ainda características específicas que a tornam mais expressiva. Diferente de DTDs, este tipo de esquema é estruturado seguindo o mesmo formato sintático da XML, ou seja, um documento XML Schema é um documento XML. Isto possibilita a utilização de parsers XML para fazer a validação dos esquemas escritos em XML SCHEMA (6). Outras características importantes ausentes nas DTDs e presentes nesta recomendação são: a possibilidade de definir restrições masi detalhadas para valores de dados, o mecanismo de derivação e a capacidade de definir tipos de dados para elementos e atributos. Dentre as características citadas anteriormente destaca-se o mecanismo de derivação. Este processo possibilita aos desenvolvedores um controle maior sobre aqueles disponibilizados pelo padrão(4),ou seja, o uso de derivações possibilita ao desenvolvedor criar restrições e incluir/adicionar novos elementos e atributos a definições de tipos já existentes. Dois tipos de derivação permitidos: por restrição e por extensão. As derivações por restrição são declaradas através do uso do elemento < restriction > e possuem propriedades que definem tamanho, padrão, máxima e miníma ocorrência, entre outros. Um exemplo de restrição é demonstrado na figura 11: o elemento simples SEXO possui dois valores fixos possíveis: Masculino ou Feminino. No caso das derivações por extensão, a declaração é feita através do elemento < complexcontent > seguido pelo elemento extension, utilizando-se do atributo base do elemento para indicar o tipo que está sendo estendido. Um exemplo desta derivação é descrito na figura 8, onde o tipo NovoContato é uma extensão do tipo Contato. Os elementos declarados em XML SCHEMA podem ser de tipos de dados simples ou complexos. Os primeiros são os elementos formados somente por texto, como podemos observar na figura 9, onde é definido um elemento nome cujo tipo de dado simples é String. Os complexos são aqueles que possuem outros elementos aninhados dentro de sua estrutura e/ou atributos que determinam as características dos dados inseridos no documento, como mostra a figura 10. Nesta figura é detectado um elemento complexo EMPREGADO formado pelas tags de elementos simples NOME e SOBRENOME ambas do tipo String, mais um elemento simples salario do tipo float. Algumas das principais vantagens de XML SCHEMA ocorrem por causa da declaração

15 14 Tipo Original: <complextype name = Contato > <sequence> <element name = nome type = xsd:string /> <element name = telefone type = xsd:string /> </sequence> </complextype> Tipo derivado por extens~ao: <complextype name = NovoContato > <complexcontent> <extension base = Contato > <sequence> <element name = celular type = xsd:string /> </sequence> </extension> </complexcontent> </complextype> Figura 8: Exemplo Derivação por Extensão <xs:element name= nome type= xs:string > Figura 9: Exemplo de definição de Elemento Simples na XML Schema de atributos para tipos e elementos do esquema. Devido à existência destes é possível definição de diferentes tipos de dados simples (String, Decimal, Integer, Float Boolean, Date e Time). Outra contribuição importante é a possibilidade de definir algumas restrições semelhantes às utilizadas em Bancos de Dados tais como: conteúdo, tamanho, etc. A figura 11 é um exemplo de um XML Schema com todas as características presentes nestes esquemas: elementos complexos, restrições, atributos e namespace, dentre outras. Ela mostra o Schema de um documento XML formado por uma tag raiz PESSOAS e seus filhos, compostos de um elemento complexo (linha 4) que possui um elemento simples PESSOA com um atributo maxoccurs= unbounded, indicando que pode haver inúmeras ocorrências deste sub-elemento. Outro elemento complexo é definido dentro de PESSOA. Ele possui dois elementos simples de tipo String. Os atributos de mínima e máxima ocorrência podem ser pré-fixados, como definido no elemento NOMEFILHO da linha 10.

16 15 <xs: element name = EMPREGADO > <xs:complextype> <xs:sequence> <xs:element name= NOME type= xs:string /> < xs:element name= SOBRENOME type= xs:string > </xs:sequence > </xs:complextype> </xs:element> Figura 10: Exemplo de Definição de Elemento Complexo na XML Schema 1 <?xml version= 1.0 encoding= ISO > 2 <xs:schema xmlns:xs= 1 elementformdefault 3 <xs: element name = PESSOAS > 4 <xs:complextype> 5 <xs:sequence> 6 <xs:element name= PESSOA maxoccurs= unbounded > 7 <xs:complextype> 8 <xs:sequence> 9 < xs:element name= NOMECOMPLETO type= xs:string /> 10 < xs:element name= NOMEFILHO type= xs:string minoccurs= 0 maxoccurs= 5 /> 11 </xs:sequence> 12 </xs:complextype> 13 </xs:element> 14 </xs:sequence > 15 </xs:complextype> 16 <xs:simpletype> 17 <xs:element name= SEXO > 18 <xs:restriction base = xsd:string > 19 <xs:enumeration value= masculino > 20 <xs:enumeration value= feminino > 21 <xs:restriction> 22 </xs:simpletype> 23 </xs:element> 24 </xs:schema> Figura 11: Exemplo Elemento Complexo de XML Schema

17 16 4 Gramáticas A palavra gramática e alguns conceitos relacionados serão vistos com freqüência nos próximos capítulos.por esta razão, este capítulo apresenta os conpara melhor entendimento deste conceito, é necessário anteriormente explicar outras definições, como por exemplo, o conceito de linguagem. Uma linguagem, segundo o Dicionário Aurélio é o uso da palavra articulada ou escrita como meio de expressão e comunicação entre pessoas. Matematicamente falando, é qualquer conjunto ou subconjunto de sentenças sobre um alfabeto que podem ser derivadas a partir de um símbolo inicial da gramática que a representa. Um exemplo de linguagem é o XML (extensible Markup Language). O alfabeto é um conjunto finito de símbolos, entidades abstratadas não definidas formalmente, como por exemplo, as letras e os dígitos. A gramática define uma estrutura sobre este alfabeto, de forma a permitir que apenas determinadas combinações sejam válidas, ou seja, sejam consideradas sentenças (seqüência finita de símbolos justapostos), definindo assim a linguagem que representa (9). Formalmente falando, uma gramática é uma quádrupla ordenada G=(V,T,P,S) onde: - V é um conjunto finito de símbolos variáveis ou não-terminais; - T é um conjunto de símbolos terminais disjunto de V; - P é um conjunto finito de pares, demoninados regras de produção tal que a primeira componente é palavra de (V T) + e a segunda componente é palavra de (V T) ; - S é um elemento de V denominado - variável inicial; As regras de produção definem as condições de geração das palavras da linguagem, como pode-se observar na figura 12.A partir desta figura pode-se retirar a seguinte notação: \textbf{<...>} : categoria sintática ou gramatical; \textbf{::=} : definido por; \textbf{ } : alternativa (ou); \textbf{$\alpha$ ::= $\beta$} : regra de sintaxe.

18 <sentença>::= <sujeito> <predicado> <sujeito>::= <substantivo> <artigo> <substantivo> <artigo> <adjetivo> <substant <predicado>::= <verbo> <objeto> <substantivo>::= Jo~ao Maria cachorro livro <artigo>::= o a <adjetivo>::= pequeno bom bela <verbo>::= morde olha l^e <objeto>::= <substantivo> <artigo> <substantivo> <artigo> <adjetivo> <substanti 17 Figura 12: Exemplo de um subconjunto da gramática portuguesa Uma forma mais simples de descrever esta gramática é demonstrado na figura 13.Nesta notação, as categorias são representadas por letras, para facilitar a escrita e ao invés de ::= usa-se. X SP S B AB ADB P VO B João Maria cachorro livro A o a D pequeno bom bela V morde olha lê O B AB ADB Figura 13: Exemplo de um subconjunto da gramática portuguesa segundo outra notação Existem 4 tipos de linguagens: linguagem regular (tipo 3), livre de contexto (tipo2), sensíveis ao contexto (tipo 1)e enumeráveis recursivamente (tipo 0). A linguagem regular é a mais restrita e limitada das linguagens, sendo representada por formalismos de pouca complexidade, grande eficiência e fácil implementação. Toda linguagem regular é uma gramática livre de contexto, porém as produções das gramáticas regulares são mais simples do que as produções das livres de contexto, sendo sempre do tipo linear, como pode ser observado na figura 14. S Aa Ba A Aa a ɛ B Bb b Figura 14: Exemplo de uma Gramática Regular A linguagem Simples de Contexto é um pouco mais ampla que a regular, tratando, adequadamente, questões como parênteses balanceados, construções bloco-estruturadas, entre outras funções de linguagens de programação. os algorítmos reconhecedores e geradores que implementam esta linguagem são relativamente simples e de boa eficiência. Permitem produções do tipo S asb e aabb, ou seja, produções com dois ou mais não-terminais ou terminais juntos. As linguagens Sensíveis ao Contexto abrangem as Livres de Contexto, permitem ainda produções como SA asb e aabb, com mais de um não-terminal como regra de produção.

19 18 Estes são os principais conceitos necessários para melhor entendimento dos próximos capítulos.

20 19 5 Trabalhos Relacionados Este capítulo apresenta alguns trabalhos relacionados com a extração de esquemas XML a partir de documentos XML. A partir dos estudos realizados com base nestes trabalhos pretende-se escolher as melhores e mais eficientes técnicas, e estas podem ser ainda adaptadas para o desenvolvimento da ferramenta desejada neste trabalho. 5.1 XTRACT Este trabalho busca encontrar o DTD perfeito para um documento XML, combinando precisão e intuição, através de uma seqüência de passos que envolvem a procura de padrões nas seqüências de entrada, seguida de uma fatoração dos possíveis candidatos gerados no passo anterior e concluindo com a aplicação do princípio da Descrição do Tamanho Mínimo(3). No primeiro passo, chamado de generalização, são empregados algoritmos heurísticos para encontrar padrões em cada seqüência de entrada e então substituí-las por expressões regulares apropriadas para produzir candidatos mais gerais. O principal objetivo deste passo é introduzir metacaracteres (, +,?,...) para produzir sub-expressões que gerem os padrões observados nas seqüências de entrada. Isto é realizado através da descoberta de freqüências e de ocorrências próximas de subseqüências e símbolos em cada seqüência de entrada. Por exemplo, se tivermos como entrada a seqüência abababcababc, este passo vai verificar que a seqüência ab utiliza dois campos e a substituirá pela expressão A1. Como resultado teremos A1cA1c, que finalmente é substituído pelo termo ((ab) c) O segundo passo, conhecido como fatoração, herda os candidatos a DTD obtidos no passo anterior e tenta torná-los mais concisos através da aplicação de técnicas adaptadas da literatura de otimização lógica. A fatoração é usada para tentar obter uma DTD de menor tamanho e conseqüentemente de melhor qualidade. Suponha que temos como entrada a seqüência I = ab, abab, ac, ad, bc, bd, bbd, bbbbe e o módulo da generalização gerou o seguinte resultado: G = I (ab), (a b), b d, b e, que são gramáticas mais genéricas para

21 20 gerar as sentenças de I. Com a aplicação da fatoração gera-se F = G (a b)(c d), b (d e). Neste passo foi colocado em evidência os fatores em comuns. O próximo passo é responsável por definir qual, entre todas as opções geradas, será a DTD ótima. No terceiro e mais importante passo é aplicado o princípio da Descrição do tamanho Mínimo. Este mecanismo classifica cada candidato a DTD com base no custo atribuído a cada DTD. Este custo depende do tamanho da gramática, em bits, que é o responsável para encontrar uma DTD concisa, e do tamanho dos dados, em bits, que define a precisão da candidata.por exemplo, considere a entrada I = ab, abab, ababab e considere que entre os resultados encontrados estejam (1) ab abab ababab e (2) (ab). O cálculo do custo do resultado para 1 é 17 bits, sendo 14 para codificar a DTD (quantidade de caracteres) e +3 para codificar a seqüência de entrada (1 caractere para cada posição de entrada). Já o cálculo do resultado para 2 é 8 bits, sendo 5 para a codificação do DTD e 3 para codificação da seqüência de entrada (necessário para especificar o número de repetições do termo ab para cada seqüência). (3) Neste caso, a DTD escolhida é o número 2, pois ela conseguiu abranger toda a seqüência de entrada e, ao mesmo tempo, é mais compacta. Segundo o trabalho, os resultados obtidos são satisfatórios, já que sempre conseguese encontrar uma DTD ótima ou muito próximo disto. Porém, ainda não foram feitos estudos para ampliar o sistema para a captação de um XML Schema, que é, atualmente, o esquema recomendado pela W3C. 5.2 DataGuides O conceito DataGuide foi introduzido para aproveitar os benefícios de um esquema para dados semi-estruturados. Os DataGuides são um sumário estrutural de um banco de dados semi-estruturado conciso e exato, que agem como esquemas dinâmicos. Eles são gerados a partir dos dados do banco de dados, são utilizados para formulação de consultas, armazenamento de informação e também possilitam a otimização das consultas.(5) Este trabalho baseia-se no modelo para dados chamado Object Exchange Model (OEM). Em OEM, cada objeto contém um objeto identificador e um valor, que pode ser atômico ou complexo, um exemplo de OEM pode ser visualizado na figura 15. Por tratar-se de uma representação de dados semi-estruturada é possível obter um documento XML de uma árvore OEM. A figura 16 demonstra um documento XML com os dados apresentados na OEM da figura 15. A Linguagem Lore, criada na Universidade de Stanford, é utilizada neste trabalho pois

22 21 permite realizar operações em dados semiestruturados utilizando paths. Outra teoria presente neste trabalho é a conversão de autômatos finitos não-determinísticos (AFND) para autômatos finitos determinísticos (AFD) uma vez que DataGuides podem ser similares estruturalmente a automatos. Figura 15: Exemplo documento OEM <locais_alimentacao> <restaurante> <nome>chili s</nome> <entrada>salada</entrada> <telefone> </telefone> <proprietario>josé da Silva</proprietario> </restaurante> <restaurante> <nome>rose & Crown</nome> <entrada>salada</entrada> <entrada>sopa<entrada> <gerente>josé da Silva</gerente> </restaurante> <bar>darbar</bar> </locais_alimentacao> Figura 16: Exemplo de documento XML para OEM do Exemplo Locais de Alimentação DataGuides descrevem um caminho único rotulado com exatamente uma fonte, sem levar em conta o número de vezes que o DataGuide aparece na fonte. Para garantir exatidão, um DataGuide não codifica o caminho que não aparece na fonte e para garantir

23 22 conveniência, o DataGuide deve ser um OEM para que possa armazenar e acessar o DataGuide usando as mesmas tecnologias disponíveis para processar o OEM. (5) O exemplo de DataGuide para o OEM da figura 15 é demonstrado na figura 17. Figura 17: Exemplo DataGuide As características estruturais e conceituais do DataGuide descritas anteriormente tornam esta forma estruturada de representação de dados uma alternativa para extração de esquemas XML. Através do relacionamento dos elementos presentes no DataGuide com os elementos de um XML Schema, por exemplo. Os nodos folhas do DataGuide são os elementos simples e os nodos que contem subarvores são os elementos complexos. A figura 18 apresenta o XML Schema do DataGuide demonstrado na figura 17. <element name = locais_alimentacao > <complextype> <element name = restaurante type = TipoRestaurante /> </complextype> <complextype name = TipoRestaurante > <element name = nome type = String /> <element name = Entrada type = String /> <element name = Telefone type = String /> <element name = Proprietario type = String /> <element name = Gerente type = String /> </complextype> <element name = Bar type = String /> </element> Figura 18: Exemplo XML Schema para OEM do Exemplo Locais de Alimentação

24 5.3 Extração de esquemas de dados XML: Uma Abordagem de Gramática de Inferência 23 O trabalho de Boris Chidlovskii (4) enfatiza a importância de se possuir uma definição de esquema para documentos XML e propõe uma alternativa para a extração deste esquema através do relacionamento sintático de documentos XML com linguagens Livre de Contexto, ou melhor, uma extensão dessas linguagens. Através de métodos desenvolvidos para este tipo de gramática e também para as gramáticas regulares, definiu-se um algoritmo baseado em Gramáticas Livre de Contexto para realizar a extração de esquemas em XML SCHEMA para documentos XML. No algoritmo sugerido, primeiramente o documento XML é mapeado para um formato de uma linguagem livre de contexto. Posteriormente, métodos de comparação seguidos de métodos de fatoração e consecutiva unificação de elementos mapeados possibilitam a obtenção de uma estrutura, ainda no formato de gramática, que é uma aproximação do esquema do documento XML. O algoritmo pode ser descrito através dos seguintes passos: 1) Representação de documentos XML como um conjunto estruturado de dados; 2) Indução de uma Gramática Livre de Contexto Estendida (GLCE) para o documento XML em questão; 2.1) Criação do conjunto inicial de não terminais N; 2.2) Fusão dos elementos não-terminais de N que possuem conteúdo e contexto similares; 2.3) Determinação dos tipos de dados para os terminais em G; 3) Transformação do resultado da G em uma definição XML SCHEMA S. Para um melhor entendimento do algoritmo, é apresentado um exemplo com os resultados obtidos a cada passo. A figura 19 mostra um documento XML que contém informações sobre clubes do futebol europeu e sua situação dentro dos campeonatos que já disputaram. A figura 20 mostra como seria o XML Schema correto correspondente ao arquivo XML da figura 19. A figura 21 representa o resultado do primeiro passo do algoritmo: a representação de um XML como uma árvore de derivação da GLC, com todos os não-terminais removidos.

25 <times> <time><nome>juventus</nome> <ChLeague> <ano>1999</ano><classificacao>semi-final</classificacao> <ano>1997</ano><classificacao>final</classificacao>...//5 no total </ChLeague> <UEFA> <ano>1995</ano><classificacao>final</classificacao>... // 7 no total </UEFA> </time> <time><nome>manchester United</nome> <ChLeague> <ano>1999</ano><classificacao>campe~ao</classificacao>... // 4 no total </ChLeague> </time>... // 46 times no total </times> 24 Figura 19: Exemplo de documento XML sobre o Campeonato Europel de Futebol Na árvore demonstrada na figura 21 temos os nodos internos (circulos) correspondente aos elementos complexos, enquanto as folhas são as tags ou elementos simples(retangulos). Na sequência (passo 2) é necessário que se faça o mapeamento dos elementos presentes no documento XML para a GLCE G. A correspondente GLCE é dada por G = (T,N,D,&,Start) onde T={times, time, nome,...}, N = {Start, TipoTime, TipoLista}, D = {String, PositiveInteger}, e & contem a regra de produção demonstrada na figura 22. O próximo passo do algoritmo (passo 2.1), representado na figura 23, é a geração do conjunto inicial de não terminais. Para uma melhor visualização, associou-se o tipo genérico Any para os elementos simples e um rótulo para cada elemento complexo do documento XML. Após obtidos os não terminais, é necessário fazer a fusão dos elementos similares (Passo 2.2) - figura 24. O primeiro não terminal a sofrer a fusão é o Start, pois suas produções possuem ambigüidade com o terminal time. O resultado da fusão continha termos ambíguos com terminais ChLeague. Portanto foram fundidos os não-terminais A47 e A49. Estas fusões geraram o seguinte conjunto de produções: Observa-se, neste resultado, que os não-terminais A47 e A48 estão repetindo os pares de elementos ano e classificacao, por isso são fundidos. O resultado obtido após as fusões

26 <element name = times > <complextype> <element name = time type = TipoTime maxoccurs = 500 /> </complextype> <complextype name = TipoTime > <element name = nome type = String /> <element name = ChLeague type = TipoLista minoccurs = 0 maxoccurs = 1 <element name = UEFA type = ListType minoccurs = 0 maxoccurs = 1 /> </complextype> <complextype name= TipoLista > <group minoccurs = 1 maxoccurs= 100 > <element name = ano type = PositiveInteger /> <element name = classificacao type = String /></group> </complextype> </element> 25 Figura 20: Exemplo XML Schema Campeonato Europel de Futebol é uma Gramática Livre de Contexto com os não-terminais que geram diferentes produções (figura 25). O passo 2.3 analisa as produções e através de métodos específicos é obtida a seguinte gramática do documento XML da figura 19: O último passo do algoritimo é transformar a gramática obtida em um esquema de acordo com as regras definidas em XML Schema. De acordo com a gramática da figura 26 é determinado o XML Schema da figura 27. O element name é dado pela produção da Gramatica no não-terminal Inicial (Start > (time: A1) [46]). O não terminal A1 apontado na produção citada anteriormente é um elemento complexo pois possui dentro das suas produções um apontador para mais um não terminal, ou seja, na produção A1 > nome: String (ChLeague: A4) [0:1] (UEFA:A4) [0:1] os não terminais A4 indicam que existem elementos inclusos nos elementos formados por A1. O tipo complexo TipoLista é proveniente da produção A4 > (ano: UnsignedShort classificacao: String) [0:8].

27 26 Figura 21: Árvore XML - Exemplo Estruturado Start -> times:tipotime TipoTime -> (time:tipotime) [0:500] TipoTime -> nome:string (ChLeague:TipoLista) [0:1] (UEPA: TipoLista) [0:1] TipoLista -> (ano:positiveinteger classificacao:string) [1:100] Figura 22: Gramática Livre de Contexto Estendida para XML Times Start -> time:a1 time: A2 time: A3... (46 times no total) A1 -> nome: Any ChLeague: A47 UEFA: A48 A2 -> nome: Any ChLeague: A49 A3 -> nome: Any... A47 -> ano: Any classificacao: Any... // (7 pares ano-classificacao no total) A48 -> ano: Any classificacao: Any... // (5 pares) A49 -> ano: Any classificacao: Any... // (4 pares)... Figura 23: Algoritimo Passo 2.1 Start -> time:a1 time:a1 time:a1... (46 times no total) A1 -> nome: Any ChLeague: A47 UEFA: A48 A1 -> nome: Any ChLeague: A47 A1 -> nome: Any A47 -> ano: Any classificacao: Any... // (7 pares) A48 -> ano: Any classificacao: Any... // (5 pares) A47 -> ano: Any classificacao: Any... // (4 pares)... Figura 24: Algoritimo Passo 2.2

28 27 Start -> (time:a1) [46] A1 -> nome: Any ChLeague: A47 UEFA: A47 nome: Any ChLeague: A47... A47 -> (ano: Any classificacao: Any) [7] ano: Any classificacao: Any)[5]... Figura 25: Merge de Não Terminais de Estrutura Repetida Start -> (time: A1) [46] A1 -> nome: String (ChLeague: A4) [0:1] (UEFA:A4) [0:1] A4 -> (ano: UnsignedShort classificacao: String) [0:8] Figura 26: Algoritimo Passo 2.3 <element name = times > <complextype> <element name = time type = TipoTime maxoccurs = 46 /> </complextype> <complextype name = TipoTime > <element name = nome type = String /> <element name = ChLeague type = TipoLista minoccurs = 0 maxoccurs = 1 <element name = UEFA type = ListType minoccurs = 0 maxoccurs = 1 /> </complextype> <complextype name= TipoLista > <group minoccurs = 0 maxoccurs= 8 > <element name = ano type = UnsignedShort /> <element name = classificacao type = String /></group> </complextype> </element> Figura 27: Algoritimo Passo 3

29 28 6 Processo do Trabalho da Ferramenta A idéia inicial para o desenvolvimento da ferramenta desejada baseia-se no princípio de que XML é uma linguagem finita e, conseqüentemente, um documento XML finito. Em função disto, é possível obter, a partir de sua estrutura, uma gramática. Devido a este conceito, a ferramenta utiliza-se de gramáticas para a obtenção dos seus objetivos. A solução proposta é definida em 4 etapas, que são: 1. Análise de Entrada; 2. Definição de Estruturas; 2.1 Análise através de uma gramática genérica; 2.2 Montagem da Tabela de Símbolos; 3. Definição e Validação da Gramática Final; 4. Conversão. Estas etapas podem ser melhor visualizadas através da figura 28. A primeira etapa recebe como entrada uma fonte de dados XML. Porém, esta fonte pode ser muito extensa por conter muitos documentos XML,tornando o processo muito lento. Portanto, nesta fase é realizado, através de métodos probabilisticos, a definição de uma amostra que varia de acordo com a quantidadde de documentos da fonte de dados XML. O processo de escolha dos documentos que pertencem ao conjunto analisado é randômico. O primeiro elemento selecionado passará para a fase seguinte, os demais vão direto para a fase de validação. A segunda etapa é a etapa em que é analisada a estrutura do documento. Este será validado através de uma gramática genérica geradora de documentos XML que pode ser visualizada na figura 29.Esta gramática, que é utilizada para descobrir se o documento XML é bem-formado, ainda está sendo desenvolvida.a partir desta gramática será gerada a tabela de símbolos. Esta tabela é a estrutura que guarda as informações essenciais sobre cada identificador reconhecido no documento. Estas informações identificam o tipo dos elementos, atributos, entre outras características. As informações armazenadas na tabela de símbolos serão de extrema importância para o próximo passo. A terceira fase é responsável por, baseada nas informações geradas na fase anterior, definir a gramática específica do documento XML. Esta gramática dá informações de

30 29 hierarquia e complementa com todas as informações necessárias para a montagem do esquema. Sua estrutura varia de acordo com o tipo do documento. Após criada pela primeira vez, servirá de teste para os próximos documentos XML. Ao selecionar o próximo documento, este tem sua estrutura comparada à estrutura da gramática gerada. Se estiver válido e houver mais documentos XML para serem processados, mantém-se a gramática gerada anteriormente e processa-se o próximo documento XML. Se forem encontradas diferenças, este documento é enviado para a etapa 2, onde passará pela validação através da gramática genérica e então serão acrescentas as diferenças encontradas em relação aos documentos anteriores. Isto faz com que a gramática específica gerada seja incrementada, já de volta a etapa 3. Esta gramática atualizada passa a ser a gramática utilizada nos testes de comparação. Após ser percorrida toda a amostra de documentos, a gramática gerada será a gramática final, representativa do esquema de todos os documentos analisados. Esta, então, passará por um processo de conversão para a linguagem XML Schema, atual recomendação da W3C para especificações XML. Além disso, essa é a linguagem de esquema para XML adotada como entrada pelo BInXS.Vale lembrar que a gramática gerada deve ser guardada para eventos futuros, ou seja, ela deve ser armazenada e o foramto de armazenamento está sendo decidido. O último passo é fazer a conversão da gramática gerada em um esquema XSD (XML Schema Definition) baseado na tabela de Simbolos resultante e na gramática específica final. Para exemplificar o funcionamento da ferramenta supõe-se que os documentos da figura 30 e 31 fazem parte da amostra selecionada na primeira etapa do processo,sendo o documento da figura 30, o primeiro documento de entrada. Após o primeiro documento ser validado pela Gramática Genérica da figura 29 é gerada a tabela de símbolos 2 que contém informações relevantes para a criação da Gramática Específica e o esquema do documento.nesta tabela, que ainda está sendo desenvolvida, as abreviações LE, LA,LP e LF significam respectivamente: Lista de Elementos, Lista de Atributos, Lista de Pais e Lista de Filhos. A partir da tabela de símbolos (tabela2) é estabelecida uma gramática específica que serve de comparação para os próximos documentos da amostra. A gramática da figura 32 representa o resultado da etapa de Definição de Estruturas. O próximo passo é testar o segundo documento(figura 31) da amostra. Este teste

31 30 Tabela 1: Tabela de Simbolos à partir do documento 1. Id Elemento Categoria LE LA Cardinalidade Tipo 1 <biblioteca> raiz LF(2) LA() <livro> complexo LP(1) LF(3,4) LA() <titulo> simples LP(2) LA() 1-1 String 4 <autor> complexo LP(2) LF(5) LA() <nome> simples LP(4) LA() 1-1 String 6 <edicao> simples LP(2) LA() 1-1 String Tabela 2: Tabela de Simbolos à partir do documento 1. consiste em conferir se este documento é validado pela gramática da figura 32. Caso sejam encontradas divergências significa que esta gramática precisa ser incrementada. Neste exemplo observa-se diferenças fazendo-se necessária a reformulação da tabela de símbolos(tabela 4) e então, da gramática específica. As alterações estão destacadas em negrito. Tabela 3: Tabela de Simbolos à partir do documento 2. Id Elemento Categoria LE LA Cardinalidade Tipo 1 <biblioteca> raiz LF(2) LA() <livro> complexo LP(1) LF(3,4) LA() <titulo> simples LP(2) LA() 1-1 String 4 <autor> complexo LP(2) LF(5) LA() <nome> simples LP(4) LA() 1-1 String 6 <edicao> simples LP(2) LA() 0-1 String 7 < > simples LP(4) LA() 1-1 String Tabela 4: Tabela de Simbolos à partir do documento 2. As mudanças ocorridas nesta etapa são responsaveis pelos acréscimos de produções na gramática específica visualizada na figura 33. Este procedimento de incremento da tabela e da gramática é realizado até que todos os documentos da amostra sejam verificados. A etapa final toma os dados presentes na tabela de símbolos e na gramática específica resultantes e cria o esquema aproximado referente aos documentos XML da fonte de dados em questão. A figura 34 demonstra o XML Schema gerado à partir dos documentos analisados (figura 30 e 31). A proposta de funcionamento sugerida para a ferramenta ainda não é definitiva. Mudanças na solução proposta podem ocorrer durante o desenvolvimento da ferramenta. A tabela abaixo apresenta as atividades futuras a serem realizadas até o término do TCC.

32 31 Tabela 5: Cronograma de Atividades Futuras Jan/Mar Abr/Mai Jun/Ago Ago/Ago Conclusão da Proposta Implementação Testes e Experimentos Redação do TCC Figura 28: Diagrama da Ferramenta Proposta

33 32 S-> tag L tag L-> CL C E C-> tag C tag CC E E-> string integer... Figura 29: Gramática Genérica <?xml version="1.0" encoding= "US-ASCII"?> <biblioteca> <livro> <titulo> Onze minutos </titulo> <autor> <nome> Paulo Coelho </nome> </autor> <edicao> Segunda </edicao> </livro> </biblioteca> Figura 30: Exemplo Primeiro Documento a entrar no Processo <?xml version="1.0" encoding= "US-ASCII"?> <biblioteca> <livro> <titulo> A Herdeira </titulo> <autor> <nome> Sidney Sheldon </nome> < > sheldon@gmail.com </ > </autor> </livro> </biblioteca> Figura 31: Exemplo Segundo Documento a entrar no Processo R -> <biblioteca>l</biblioteca> L -> <livro>a</livro> A -> <autor>b</autor> <titulo>t</titulo> <edicao>t</edicao> AA B -> <nome>t</nome> T-> String Figura 32: Gramática Específica da Primeira Iteração.

34 33 R -> <biblioteca>l</biblioteca> L -> <livro>a</livro> A -> <autor>b</autor> <titulo>t</titulo> <edicao>t</edicao> AA B -> <nome>t</nome> < >t</ > T-> String Figura 33: Gramática Específica da Segunda Iteração. <?xml version="1.0" encoding= "US-ASCII"?> <xsd:schema xmlns:xsd=" <xsd:element name= biblioteca > <xsd:complextype> <xsd:element name= livro type = TipoLivro /> </xsd:complextype> <xsd:complextype name= TipoLivro > <element name= titulo type = String /> <xsd:complextype> <xsd:element name= autor type = TipoAutor /> </xsd:complextype> <element name= edicao type = String /> </xsd:complextype> <xsd:complextype name= TipoAutor > <xsd:element name= nome type = String /> <xsd:element name= type = String /> </xsd:complextype> </xsd:element> </xsd:schema> Figura 34: XML Schema Gerado com Base no Exemplo.

35 ANEXO A -- Codigos 34

36 35 Referências 1 W3C. World Wide Web Consortium. Acesso em 10/2006. Disponível em: < 2 MELLO, R. dos S. Binxs GAROFALAKIS ARISTIDES GIONIS, R. R. S. S. K. S. M. Xtract: A system for extracting document type descriptors from xml documents. 4 CHILDLOVSKII, B. Schema extraction from xml data: A grammatical inference approach. 5 GOLDMAN, J. W. R. Dataguides: Enabling query formulation and optimization in semistructed databases. 6 JR., J. R. T. XML Schema. [S.l.]: Visual Books Ltda, BRADLEY, N. The xml schema companion W3SCHOOL. w3cschool.com. Acesso em 10/2006. Disponível em: < 9 MENEZES, P. B. Linguagens Formais e Autômatos. [S.l.]: Editora Sagra Luzzatto, 2002.

Keli Cristina Manini Susane Schmidt. Uma Ferramenta para Geração de Esquemas XML a partir de Documentos XML

Keli Cristina Manini Susane Schmidt. Uma Ferramenta para Geração de Esquemas XML a partir de Documentos XML Keli Cristina Manini Susane Schmidt Uma Ferramenta para Geração de Esquemas XML a partir de Documentos XML Florianópolis - SC 2006 Keli Cristina Manini Susane Schmidt Uma Ferramenta para Geração de Esquemas

Leia mais

Um documento XML possui Unidade lógica - os elementos Usuário "inventa" as marcas através de DTDs

Um documento XML possui Unidade lógica - os elementos Usuário inventa as marcas através de DTDs XML Um documento XML possui Unidade lógica - os elementos Usuário "inventa" as marcas através de DTDs Unidade física - as entidades Armazenamento separado dos dados Como toda linguagem de marcação: XML

Leia mais

GERÊNCIA DE DADOS SEMIESTRUTURADOS -DTD. Prof. Angelo Augusto Frozza, M.Sc. http://www.about.me/tilfrozza

GERÊNCIA DE DADOS SEMIESTRUTURADOS -DTD. Prof. Angelo Augusto Frozza, M.Sc. http://www.about.me/tilfrozza GERÊNCIA DE DADOS SEMIESTRUTURADOS -DTD Prof. Angelo Augusto Frozza, M.Sc. http://www.about.me/tilfrozza ROTEIRO Introdução ao DTD Elementos Atributos Entidades Validando um documento XML DTD (DOCUMENT

Leia mais

XML: uma introdução prática X100. Helder da Rocha (helder@argonavis.com.br)

XML: uma introdução prática X100. Helder da Rocha (helder@argonavis.com.br) XML: uma introdução prática X100 Helder da Rocha (helder@argonavis.com.br) Atualizado em Jan 2003 O que é um Esquema XML? Documentos que aderem à especificação (válidos) O esquema representa uma classe

Leia mais

Engenharia de Software III

Engenharia de Software III Engenharia de Software III Casos de uso http://dl.dropbox.com/u/3025380/es3/aula6.pdf (flavio.ceci@unisul.br) 09/09/2010 O que são casos de uso? Um caso de uso procura documentar as ações necessárias,

Leia mais

Este relatório tem por objetivo, abordar a sintaxe XML.

Este relatório tem por objetivo, abordar a sintaxe XML. Relatório do GPES Este relatório tem por objetivo, abordar a sintaxe XML. XML Estrutura do documento Um documento XML é uma árvore rotulada onde um nó externo consiste de: [1] Dados de caracteres (uma

Leia mais

DESENVOLVIMENTO WEB DENTRO DOS PARADIGMAS DO HTML5 E CSS3

DESENVOLVIMENTO WEB DENTRO DOS PARADIGMAS DO HTML5 E CSS3 DESENVOLVIMENTO WEB DENTRO DOS PARADIGMAS DO HTML5 E CSS3 Eduardo Laguna Rubai, Tiago Piperno Bonetti Universidade Paranaense (Unipar) Paranavaí PR- Brasil eduardorubay@gmail.com, bonetti@unipar.br Resumo.

Leia mais

XML. 1. XML: Conceitos Básicos. 2. Aplicação XML: XHTML 3. Folhas de Estilo em Cascata XML

XML. 1. XML: Conceitos Básicos. 2. Aplicação XML: XHTML 3. Folhas de Estilo em Cascata XML 1 1. : Conceitos Básicos 2. Aplicação : XHTML 3. Folhas de Estilo em Cascata 2 é um acrônimo para EXtensible Markup Language é uma linguagem de marcação muito parecida com HTML foi designada para descrever

Leia mais

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008 Tabela de Símbolos Análise Semântica A Tabela de Símbolos Fabiano Baldo Após a árvore de derivação, a tabela de símbolos é o principal atributo herdado em um compilador. É possível, mas não necessário,

Leia mais

GERÊNCIA DE DADOS SEMIESTRUTURADOS -XML. Prof. Angelo Augusto Frozza, M.Sc. http://about.me/tilfrozza

GERÊNCIA DE DADOS SEMIESTRUTURADOS -XML. Prof. Angelo Augusto Frozza, M.Sc. http://about.me/tilfrozza GERÊNCIA DE DADOS SEMIESTRUTURADOS -XML Prof. Angelo Augusto Frozza, M.Sc. http://about.me/tilfrozza O QUE É XML? Tecnologia desenvolvida pelo W3C http://www.w3c.org W3C: World Wide Web Consortium consórcio

Leia mais

XML Schema. Vanessa de Paula Braganholo vanessa@inf.ufrgs.br ftp://metropole/pub/curso/xml/index.html. Janeiro de 2001. XML Schema

XML Schema. Vanessa de Paula Braganholo vanessa@inf.ufrgs.br ftp://metropole/pub/curso/xml/index.html. Janeiro de 2001. XML Schema XML Schema Vanessa de Paula Braganholo vanessa@inf.ufrgs.br ftp://metropole/pub/curso/xml/index.html Janeiro de 2001 XML Schema XML Schema Utilizado para descrever a estrutura de um documento XML, assim

Leia mais

GERÊNCIA DE DADOS SEMI ESTRUTURADOS -XML. Prof. Angelo Augusto Frozza, M.Sc.

GERÊNCIA DE DADOS SEMI ESTRUTURADOS -XML. Prof. Angelo Augusto Frozza, M.Sc. GERÊNCIA DE DADOS SEMI ESTRUTURADOS -XML Prof. Angelo Augusto Frozza, M.Sc. O QUE É XML? Tecnologia desenvolvida pelo W3C http://www.w3c.org W3C: World Wide Web Consortium consórcio formado por acadêmicos

Leia mais

Diagrama de Classes. Um diagrama de classes descreve a visão estática do sistema em termos de classes e relacionamentos entre as classes.

Diagrama de Classes. Um diagrama de classes descreve a visão estática do sistema em termos de classes e relacionamentos entre as classes. 1 Diagrama de Classes Um diagrama de classes descreve a visão estática do sistema em termos de classes e relacionamentos entre as classes. Um dos objetivos do diagrama de classes é definir a base para

Leia mais

MAPEAMENTO DE CONSULTAS SQL EM XML ENTRE SISTEMAS GERENCIADORES DE BANCO DE DADOS RELACIONAIS

MAPEAMENTO DE CONSULTAS SQL EM XML ENTRE SISTEMAS GERENCIADORES DE BANCO DE DADOS RELACIONAIS Universidade Federal de Santa Catarina Centro Tecnológico Departamento de Informática e Estatística Curso de Sistemas de Informação RENATO SULZBACH MAPEAMENTO DE CONSULTAS SQL EM XML ENTRE SISTEMAS GERENCIADORES

Leia mais

Banco de Dados Aula 1 Introdução a Banco de Dados Introdução Sistema Gerenciador de Banco de Dados

Banco de Dados Aula 1 Introdução a Banco de Dados Introdução Sistema Gerenciador de Banco de Dados Banco de Dados Aula 1 Introdução a Banco de Dados Introdução Um Sistema Gerenciador de Banco de Dados (SGBD) é constituído por um conjunto de dados associados a um conjunto de programas para acesso a esses

Leia mais

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS. Aula 2. Prof. Rafael Dias Ribeiro. M.Sc.

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS. Aula 2. Prof. Rafael Dias Ribeiro. M.Sc. MODELAGEM DE DADOS PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS Aula 2 Prof. Rafael Dias Ribeiro. M.Sc. @ribeirord 1 Objetivos: Revisão sobre Banco de Dados e SGBDs Aprender as principais

Leia mais

Orientação a Objetos

Orientação a Objetos 1. Domínio e Aplicação Orientação a Objetos Um domínio é composto pelas entidades, informações e processos relacionados a um determinado contexto. Uma aplicação pode ser desenvolvida para automatizar ou

Leia mais

AMBIENTE PARA AUXILIAR O DESENVOLVIMENTO DE PROGRAMAS MONOLÍTICOS

AMBIENTE PARA AUXILIAR O DESENVOLVIMENTO DE PROGRAMAS MONOLÍTICOS UNIVERSIDADE REGIONAL DE BLUMENAU CENTRO DE CIÊNCIAS EXATAS E NATURAIS CURSO DE CIÊNCIAS DA COMPUTAÇÃO BACHARELADO AMBIENTE PARA AUXILIAR O DESENVOLVIMENTO DE PROGRAMAS MONOLÍTICOS Orientando: Oliver Mário

Leia mais

GERÊNCIA DE DADOS SEMIESTRUTURADOS -XML. Prof. Angelo Augusto Frozza, M.Sc. http://about.me/tilfrozza

GERÊNCIA DE DADOS SEMIESTRUTURADOS -XML. Prof. Angelo Augusto Frozza, M.Sc. http://about.me/tilfrozza GERÊNCIA DE DADOS SEMIESTRUTURADOS -XML Prof. Angelo Augusto Frozza, M.Sc. http://about.me/tilfrozza O QUE É XML? Tecnologia desenvolvida pelo W3C http://www.w3c.org W3C: World Wide Web Consortium consórcio

Leia mais

3.1 Definições Uma classe é a descrição de um tipo de objeto.

3.1 Definições Uma classe é a descrição de um tipo de objeto. Unified Modeling Language (UML) Universidade Federal do Maranhão UFMA Pós Graduação de Engenharia de Eletricidade Grupo de Computação Assunto: Diagrama de Classes Autoria:Aristófanes Corrêa Silva Adaptação:

Leia mais

XML e Banco de Dados de Internet. Tópicos Especiais em Tecnologia da Informação Profa. Késsia R. C. Marchi

XML e Banco de Dados de Internet. Tópicos Especiais em Tecnologia da Informação Profa. Késsia R. C. Marchi XML e Banco de Dados de Internet Tópicos Especiais em Tecnologia da Informação Profa. Késsia R. C. Marchi Motivação Diversas aplicações Web utilizam Fontes de Dados (BD); Arquitetura Cliente-Servidor (2

Leia mais

3 Parsing Expression Grammars

3 Parsing Expression Grammars 3 Parsing Expression Grammars Parsing Expression Grammars (PEG) são um formalismo que descreve reconhecedores de linguagens (For04). PEGs são uma alternativa para gramáticas livres de contexto (CFGs) e

Leia mais

Algoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br

Algoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br Introdução O computador como ferramenta indispensável: Faz parte das nossas vidas; Por si só não faz nada de útil; Grande capacidade de resolução

Leia mais

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES 3.1 - IDENTIFICADORES Os objetos que usamos no nosso algoritmo são uma representação simbólica de um valor de dado. Assim, quando executamos a seguinte instrução:

Leia mais

Persistência e Banco de Dados em Jogos Digitais

Persistência e Banco de Dados em Jogos Digitais Persistência e Banco de Dados em Jogos Digitais Prof. Marcos Francisco Pereira da Silva Especialista em Engenharia de Software Jogos Digitais - Computação Gráfica 1 Agenda Vantagens de usar a abordagem

Leia mais

XML (extensible Markup Language)

XML (extensible Markup Language) Sumário 1. Introdução a Aplicações Não-Convencionais 2. Revisão de Modelagem Conceitual 3. BD Orientado a Objetos (BDOO) 4. BD Objeto-Relacional (BDOR) 5. BD Temporal (BDT) 6. BD Geográfico (BDG) 7. BD

Leia mais

Algoritmos e Estrutura de Dados III. Árvores

Algoritmos e Estrutura de Dados III. Árvores Algoritmos e Estrutura de Dados III Árvores Uma das mais importantes classes de estruturas de dados em computação são as árvores. Aproveitando-se de sua organização hierárquica, muitas aplicações são realizadas

Leia mais

FACULDADE DE ENGENHARIA DE COMPUTAÇÃO. PROJETO FINAL I e II PLANO DE TRABALHO <NOME DO TRABALHO> <Nome do Aluno> <Nome do Orientador>

FACULDADE DE ENGENHARIA DE COMPUTAÇÃO. PROJETO FINAL I e II PLANO DE TRABALHO <NOME DO TRABALHO> <Nome do Aluno> <Nome do Orientador> FACULDADE DE ENGENHARIA DE COMPUTAÇÃO PROJETO FINAL I e II PLANO DE TRABALHO O Trabalho de Conclusão de Curso (TCC) a ser desenvolvido

Leia mais

XHTML 1.0 DTDs e Validação

XHTML 1.0 DTDs e Validação XHTML 1.0 DTDs e Validação PRnet/2012 Ferramentas para Web Design 1 HTML 4.0 X XHTML 1.0 Quais são os três principais componentes ou instrumentos mais utilizados na internet? PRnet/2012 Ferramentas para

Leia mais

Conceitos de Banco de Dados

Conceitos de Banco de Dados Conceitos de Banco de Dados Autor: Luiz Antonio Junior 1 INTRODUÇÃO Objetivos Introduzir conceitos básicos de Modelo de dados Introduzir conceitos básicos de Banco de dados Capacitar o aluno a construir

Leia mais

Introdução e motivação SGBD XML Nativo Consultas em SGBDs XML Prática. Bancos de dados XML. Conceitos e linguagens de consulta

Introdução e motivação SGBD XML Nativo Consultas em SGBDs XML Prática. Bancos de dados XML. Conceitos e linguagens de consulta Bancos de dados XML Conceitos e linguagens de consulta Sidney Roberto de Sousa MC536 - Bancos de Dados: Teoria e prática Material base: W3Schools XPath and XQuery Tutorial http://www.w3schools.com/xpath/

Leia mais

ISO/IEC 12207: Gerência de Configuração

ISO/IEC 12207: Gerência de Configuração ISO/IEC 12207: Gerência de Configuração Durante o processo de desenvolvimento de um software, é produzida uma grande quantidade de itens de informação que podem ser alterados durante o processo Para que

Leia mais

TOTVS BA Guia de Customização Linha Logix

TOTVS BA Guia de Customização Linha Logix TOTVS BA Guia de Customização Linha Logix Guia de Customização Sumário Título do documento 1. Objetivo... 3 2. Introdução... 3 3. Customização... 3 2 TOTVS BA Linha Logix Guia de Customização Projeto/Versão:

Leia mais

LINGUAGEM DE BANCO DE DADOS

LINGUAGEM DE BANCO DE DADOS LINGUAGEM DE BANCO DE DADOS Gabriela Trevisan Bacharel em Sistemas de Informação Universidade Federal do Rio Grande Pós-Graduanda Formação Pedagógica de Professores (FAQI) Conceito de BD Um banco de dados

Leia mais

XML e Banco de Dados. Prof. Daniela Barreiro Claro DCC/IM/UFBA

XML e Banco de Dados. Prof. Daniela Barreiro Claro DCC/IM/UFBA XML e Banco de Dados DCC/IM/UFBA Banco de Dados na Web Armazenamento de dados na Web HTML muito utilizada para formatar e estruturar documentos na Web Não é adequada para especificar dados estruturados

Leia mais

Manual SAGe Versão 1.2 (a partir da versão 12.08.01)

Manual SAGe Versão 1.2 (a partir da versão 12.08.01) Manual SAGe Versão 1.2 (a partir da versão 12.08.01) Submissão de Relatórios Científicos Sumário Introdução... 2 Elaboração do Relatório Científico... 3 Submissão do Relatório Científico... 14 Operação

Leia mais

Controle do Arquivo Técnico

Controle do Arquivo Técnico Controle do Arquivo Técnico Os documentos existentes de forma física (papel) no escritório devem ser guardados em pastas (normalmente pastas suspensas) localizadas no Arquivo Técnico. Este Arquivo pode

Leia mais

A Linguagem de Modelagem Unificada (UML)

A Linguagem de Modelagem Unificada (UML) Aécio Costa A Linguagem de Modelagem Unificada (UML) Percebeu-se a necessidade de um padrão para a modelagem de sistemas, que fosse aceito e utilizado amplamente. Surge a UML (Unified Modeling Language)

Leia mais

Bases de dados semi-estruturadas, XML

Bases de dados semi-estruturadas, XML Bases de dados semi-estruturadas, XML Fernando Lobo Base de Dados, Universidade do Algarve 1 / 40 Modelo de informação semi-estruturado Esquema está impĺıcito nos dados. Ao invés do modelo relacional,

Leia mais

Para construção dos modelos físicos, será estudado o modelo Relacional como originalmente proposto por Codd.

Para construção dos modelos físicos, será estudado o modelo Relacional como originalmente proposto por Codd. Apresentação Este curso tem como objetivo, oferecer uma noção geral sobre a construção de sistemas de banco de dados. Para isto, é necessário estudar modelos para a construção de projetos lógicos de bancos

Leia mais

Resolução de problemas e desenvolvimento de algoritmos

Resolução de problemas e desenvolvimento de algoritmos SSC0101 - ICC1 Teórica Introdução à Ciência da Computação I Resolução de problemas e desenvolvimento de algoritmos Prof. Vanderlei Bonato Prof. Cláudio Fabiano Motta Toledo Sumário Análise e solução de

Leia mais

4 O Workflow e a Máquina de Regras

4 O Workflow e a Máquina de Regras 4 O Workflow e a Máquina de Regras O objetivo do workflow e da máquina de regras é definir um conjunto de passos e regras configuráveis. Ao longo de sua execução, um usuário consegue simplificar o seu

Leia mais

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação SOFT DISCIPLINA: Engenharia de software AULA NÚMERO: 08 DATA: / / PROFESSOR: Andrey APRESENTAÇÃO O objetivo desta aula é apresentar e discutir conceitos relacionados a modelos e especificações. Nesta aula

Leia mais

UFG - Instituto de Informática

UFG - Instituto de Informática UFG - Instituto de Informática Especialização em Desenvolvimento de Aplicações Web com Interfaces Ricas EJB 3.0 Prof.: Fabrízzio A A M N Soares professor.fabrizzio@gmail.com Aula 13 Web Services Web Services

Leia mais

Metadados. 1. Introdução. 2. O que são Metadados? 3. O Valor dos Metadados

Metadados. 1. Introdução. 2. O que são Metadados? 3. O Valor dos Metadados 1. Introdução O governo é um dos maiores detentores de recursos da informação. Consequentemente, tem sido o responsável por assegurar que tais recursos estejam agregando valor para os cidadãos, as empresas,

Leia mais

XML XML. XML extensible Markup Language HTML. Motivação. W3C: World Wide Web Consortium XML 1.0. Mário Meireles Teixeira DEINF-UFMA

XML XML. XML extensible Markup Language HTML. Motivação. W3C: World Wide Web Consortium XML 1.0. Mário Meireles Teixeira DEINF-UFMA Mário Meireles Teixeira DEINF-UFMA Motivação extensible Markup Language W3C: World Wide Web Consortium http://www.w3.org 1.0 W3C Recommendation, 10/Fev/1998 (inicial) W3C Recommendation, 04/Fev/2004, 3

Leia mais

Apostila de Fundamentos de Programação I. Prof.: André Luiz Montevecchi

Apostila de Fundamentos de Programação I. Prof.: André Luiz Montevecchi Apostila de Fundamentos de Programação I Prof: André Luiz Montevecchi Introdução O mundo atual é dependente da tecnologia O uso intenso de diversos aparatos tecnológicos é parte integrante do nosso dia-a-dia

Leia mais

Prof. Marcelo Machado Cunha www.marcelomachado.com mcelobr@yahoo.com.br

Prof. Marcelo Machado Cunha www.marcelomachado.com mcelobr@yahoo.com.br Prof. Marcelo Machado Cunha www.marcelomachado.com mcelobr@yahoo.com.br Ementa Introdução a Banco de Dados (Conceito, propriedades), Arquivos de dados x Bancos de dados, Profissionais de Banco de dados,

Leia mais

LP II Estrutura de Dados. Introdução e Linguagem C. Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br

LP II Estrutura de Dados. Introdução e Linguagem C. Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br LP II Estrutura de Dados Introdução e Linguagem C Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br Resumo da aula Considerações Gerais Introdução a Linguagem C Variáveis e C Tipos de

Leia mais

Glossários em Moodle (1.6.5+)

Glossários em Moodle (1.6.5+) Glossários em Moodle (1.6.5+) Athail Rangel Pulino 2 Ficha Técnica Título Glossários em Moodle Autor Athail Rangel Pulino Filho Copyright Creative Commons Edição Agosto 2007 Glossários em Moodle 3 Índice

Leia mais

Uma Abordagem Alternativa para o Armazenamento Electrónico de Dados: O Papel da Norma XML

Uma Abordagem Alternativa para o Armazenamento Electrónico de Dados: O Papel da Norma XML Uma Abordagem Alternativa para o Armazenamento Electrónico de Dados: O Papel da Norma XML Semana da Ciência e da Tecnologia 2002 FOR $l IN document( wwwestvipvpt/biblioteca/bdbiblioxml ) //livro WHERE

Leia mais

ESTENDENDO A UML PARA REPRESENTAR RESTRIÇÕES DE INTEGRIDADE

ESTENDENDO A UML PARA REPRESENTAR RESTRIÇÕES DE INTEGRIDADE ESTENDENDO A UML PARA REPRESENTAR RESTRIÇÕES DE INTEGRIDADE Fabiana Gomes Marinho Faculdade Lourenço Filho Resumo: Na UML, a modelagem conceitual dos dados é descrita pelo diagrama de classes, que através

Leia mais

Modelo Entidade-Relacionamento

Modelo Entidade-Relacionamento Modelo Entidade-Relacionamento Banco de Dados I Fases do Projeto jt de BD Enunciado de requisitos entrevista com o usuário do banco de dados para entender e documentar seus requerimentos de dados. Projeto

Leia mais

ALGORITMOS PARTE 01. Fabricio de Sousa Pinto

ALGORITMOS PARTE 01. Fabricio de Sousa Pinto ALGORITMOS PARTE 01 Fabricio de Sousa Pinto Algoritmos: Definição 2 É uma sequência de instruções finita e ordenada de forma lógica para a resolução de uma determinada tarefa ou problema. Algoritmos 3

Leia mais

Novell. Novell Teaming 1.0. novdocx (pt-br) 6 April 2007 EXPLORAR O PORTLET BEM-VINDO DESCUBRA SEU CAMINHO USANDO O NOVELL TEAMING NAVIGATOR

Novell. Novell Teaming 1.0. novdocx (pt-br) 6 April 2007 EXPLORAR O PORTLET BEM-VINDO DESCUBRA SEU CAMINHO USANDO O NOVELL TEAMING NAVIGATOR Novell Teaming - Guia de início rápido Novell Teaming 1.0 Julho de 2007 INTRODUÇÃO RÁPIDA www.novell.com Novell Teaming O termo Novell Teaming neste documento se aplica a todas as versões do Novell Teaming,

Leia mais

Curso de Aprendizado Industrial Desenvolvedor WEB. Disciplina: Banco de Dados Professora: Cheli Mendes Costa Modelo de Dados

Curso de Aprendizado Industrial Desenvolvedor WEB. Disciplina: Banco de Dados Professora: Cheli Mendes Costa Modelo de Dados Curso de Aprendizado Industrial Desenvolvedor WEB Disciplina: Banco de Dados Professora: Cheli Mendes Costa Modelo de Dados Modelo para organização dos dados de um BD. define um conjunto de conceitos para

Leia mais

Bem- Vindo ao manual de instruções do ECO Editor de COnteúdo.

Bem- Vindo ao manual de instruções do ECO Editor de COnteúdo. Manual de Instruções ECO Editor de Conteúdo Bem- Vindo ao manual de instruções do ECO Editor de COnteúdo. O ECO é um sistema amigável e intui?vo, mas abaixo você pode?rar eventuais dúvidas e aproveitar

Leia mais

Empresa de Informática e Informação do Município de Belo Horizonte S/A PRODABEL

Empresa de Informática e Informação do Município de Belo Horizonte S/A PRODABEL Empresa de Informática e Informação do Município de Belo Horizonte S/A PRODABEL Diretoria de Sistema - DS Superintendência de Arquitetura de Sistemas - SAS Gerência de Arquitetura de Informação - GAAS

Leia mais

Universidade Federal de Santa Maria Curso de Arquivologia. Disciplina de Banco de Dados Aplicados à Arquivística. Versao 1.

Universidade Federal de Santa Maria Curso de Arquivologia. Disciplina de Banco de Dados Aplicados à Arquivística. Versao 1. Universidade Federal de Santa Maria Curso de Arquivologia Disciplina de Banco de Dados Aplicados à Arquivística Prof. Andre Zanki Cordenonsi Versao 1.0 Março de 2008 Tópicos Abordados Conceitos sobre Banco

Leia mais

Análise semântica. Análise Semântica. Estrutura de um compilador. Anotação da árvore sintática. Tipos de comunicação de atributos?

Análise semântica. Análise Semântica. Estrutura de um compilador. Anotação da árvore sintática. Tipos de comunicação de atributos? Estrutura de um compilador Análise semântica Tradução orientada pela sintaxe 1 2 Análise Semântica Anotação da árvore sintática Análise semântica: Tipos (& Declarações) Escopo Checagens estáticas: Idéia:

Leia mais

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP) Hardware (Nível 0) Organização O AS/400 isola os usuários das características do hardware através de uma arquitetura de camadas. Vários modelos da família AS/400 de computadores de médio porte estão disponíveis,

Leia mais

MC536 Bancos de Dados: Teoria e Prática

MC536 Bancos de Dados: Teoria e Prática Universidade Estadual de Campinas - UNICAMP Instituto de Computação - IC MC536 Bancos de Dados: Teoria e Prática Aula #3 : MER e MER Estendido Profs. Anderson Rocha e André Santanchè Campinas, 1 de Agosto

Leia mais

2 Diagrama de Caso de Uso

2 Diagrama de Caso de Uso Unified Modeling Language (UML) Universidade Federal do Maranhão UFMA Pós Graduação de Engenharia de Eletricidade Grupo de Computação Assunto: Diagrama de Caso de Uso (Use Case) Autoria:Aristófanes Corrêa

Leia mais

TÉCNICAS DE PROGRAMAÇÃO

TÉCNICAS DE PROGRAMAÇÃO TÉCNICAS DE PROGRAMAÇÃO (Adaptado do texto do prof. Adair Santa Catarina) ALGORITMOS COM QUALIDADE MÁXIMAS DE PROGRAMAÇÃO 1) Algoritmos devem ser feitos para serem lidos por seres humanos: Tenha em mente

Leia mais

Entendendo como funciona o NAT

Entendendo como funciona o NAT Entendendo como funciona o NAT Vamos inicialmente entender exatamente qual a função do NAT e em que situações ele é indicado. O NAT surgiu como uma alternativa real para o problema de falta de endereços

Leia mais

Possui como idéia central a divisão de um universo de dados a ser organizado em subconjuntos mais gerenciáveis.

Possui como idéia central a divisão de um universo de dados a ser organizado em subconjuntos mais gerenciáveis. 3. Tabelas de Hash As tabelas de hash são um tipo de estruturação para o armazenamento de informação, de uma forma extremamente simples, fácil de se implementar e intuitiva de se organizar grandes quantidades

Leia mais

Microsoft Access XP Módulo Um

Microsoft Access XP Módulo Um Microsoft Access XP Módulo Um Neste primeiro módulo de aula do curso completo de Access XP vamos nos dedicar ao estudo de alguns termos relacionados com banco de dados e as principais novidades do novo

Leia mais

Roteiro 2 Conceitos Gerais

Roteiro 2 Conceitos Gerais Roteiro 2 Conceitos Gerais Objetivos: UC Projeto de Banco de Dados Explorar conceitos gerais de bancos de dados; o Arquitetura de bancos de dados: esquemas, categorias de modelos de dados, linguagens e

Leia mais

Fundamentos em Informática (Sistemas de Numeração e Representação de Dados)

Fundamentos em Informática (Sistemas de Numeração e Representação de Dados) 1 UNIVERSIDADE DO CONTESTADO / UnC CAMPUS CONCÓRDIA/SC CURSO DE SISTEMAS DE INFORMAÇÃO Fundamentos em Informática (Sistemas de Numeração e Representação de Dados) (Apostila da disciplina elaborada pelo

Leia mais

5 Mecanismo de seleção de componentes

5 Mecanismo de seleção de componentes Mecanismo de seleção de componentes 50 5 Mecanismo de seleção de componentes O Kaluana Original, apresentado em detalhes no capítulo 3 deste trabalho, é um middleware que facilita a construção de aplicações

Leia mais

Curso: Ciência da Computação Disciplina: Construção de Compiladores Período: 2010-1 Prof. Dr. Raimundo Moura

Curso: Ciência da Computação Disciplina: Construção de Compiladores Período: 2010-1 Prof. Dr. Raimundo Moura UFPI CCN DIE Curso: Ciência da Computação Disciplina: Construção de Compiladores Período: 2010-1 Prof. Dr. Raimundo Moura O projeto Desenvolver um compilador de um subconjunto básico da linguagem PORTUGOL.

Leia mais

Dadas a base e a altura de um triangulo, determinar sua área.

Dadas a base e a altura de um triangulo, determinar sua área. Disciplina Lógica de Programação Visual Ana Rita Dutra dos Santos Especialista em Novas Tecnologias aplicadas a Educação Mestranda em Informática aplicada a Educação ana.santos@qi.edu.br Conceitos Preliminares

Leia mais

Resolução da lista de exercícios de casos de uso

Resolução da lista de exercícios de casos de uso Resolução da lista de exercícios de casos de uso 1. Explique quando são criados e utilizados os diagramas de casos de uso no processo de desenvolvimento incremental e iterativo. Na fase de concepção se

Leia mais

Mais sobre uso de formulários Site sem Ajax

Mais sobre uso de formulários Site sem Ajax Mais sobre uso de formulários Site sem Ajax Página com busca padrão 1 Página com o resultado da busca carregada no local da anterior (o formulário está vazio) Site com Ajax 2 Site usando Ajax para preencher

Leia mais

)HUUDPHQWDV &RPSXWDFLRQDLV SDUD 6LPXODomR

)HUUDPHQWDV &RPSXWDFLRQDLV SDUD 6LPXODomR 6LPXODomR GH6LVWHPDV )HUUDPHQWDV &RPSXWDFLRQDLV SDUD 6LPXODomR #5,6. Simulador voltado para análise de risco financeiro 3RQWRV IRUWHV Fácil de usar. Funciona integrado a ferramentas já bastante conhecidas,

Leia mais

1.1. Organização de um Sistema Computacional

1.1. Organização de um Sistema Computacional 1. INTRODUÇÃO 1.1. Organização de um Sistema Computacional Desde a antiguidade, o homem vem desenvolvendo dispositivos elétricoeletrônicos (hardware) que funciona com base em instruções e que são capazes

Leia mais

Compiladores. Análise léxica. Plano da aula. Vocabulário básico. Motivação para análise léxica. Estrutura de um compilador

Compiladores. Análise léxica. Plano da aula. Vocabulário básico. Motivação para análise léxica. Estrutura de um compilador Estrutura de um compilador Compiladores Análise lexical (1) Expressões Regulares 1 2 Plano da aula 1. Motivação do uso de E.R. e definições Linguagens, tokens, lexemas... 2. Regras de formação e exemplos

Leia mais

Análise e Projeto Orientados por Objetos

Análise e Projeto Orientados por Objetos Análise e Projeto Orientados por Objetos Aula 02 Análise e Projeto OO Edirlei Soares de Lima Análise A análise modela o problema e consiste das atividades necessárias para entender

Leia mais

Banco de Dados I. Apresentação (mini-currículo) Conceitos. Disciplina Banco de Dados. Cont... Cont... Edson Thizon (edson@esucri.com.

Banco de Dados I. Apresentação (mini-currículo) Conceitos. Disciplina Banco de Dados. Cont... Cont... Edson Thizon (edson@esucri.com. Sistemas da Informação Banco de Dados I Edson Thizon (edson@esucri.com.br) 2008 Apresentação (mini-currículo) Formação Acadêmica Mestrando em Ciência da Computação (UFSC/ ) Créditos Concluídos. Bacharel

Leia mais

02 - Usando o SiteMaster - Informações importantes

02 - Usando o SiteMaster - Informações importantes 01 - Apresentação do SiteMaster - News Edition O SiteMaster foi desenvolvido para ser um sistema simples de gerenciamento de notícias, instalado em seu próprio computador e com configuração simplificada,

Leia mais

ROTEIRO PARA ELABORAÇÃO DE PROJETOS

ROTEIRO PARA ELABORAÇÃO DE PROJETOS APRESENTAÇÃO ROTEIRO PARA ELABORAÇÃO DE PROJETOS Breve histórico da instituição seguido de diagnóstico e indicadores sobre a temática abrangida pelo projeto, especialmente dados que permitam análise da

Leia mais

Roteiro para Transmissão Ambiente de Testes da Guias Online

Roteiro para Transmissão Ambiente de Testes da Guias Online Roteiro para Transmissão Ambiente de Testes da Guias Online (GRH) Acessar o sistema pelo site: http://www.sdas.org.br/ Acessar o sistema com o Usuário: 9999 e Senha: PMG52 Será disponibilizado o ambiente

Leia mais

Lição 1 - Criação de campos calculados em consultas

Lição 1 - Criação de campos calculados em consultas 1 de 5 21-08-2011 22:15 Lição 1 - Criação de campos calculados em consultas Adição de Colunas com Valores Calculados: Vamos, inicialmente, relembrar, rapidamente alguns conceitos básicos sobre Consultas

Leia mais

Leiaute-IMPORTAÇÃO-Plano de Contas - XML

Leiaute-IMPORTAÇÃO-Plano de Contas - XML Leiaute-IMPORTAÇÃO-Plano de Contas - XML DOC-IN 1.0 1 / 6 Leiaute-IMPORTAÇÃO-Plano de Contas - XML Leiaute-IMPORTAÇÃO-Plano de Contas - XML DOC-IN 1.0 2 / 6 ÍNDICE ARQUIVO DE LEIAUTE... 3 Formato... 3

Leia mais

UNIVERSIDADE FEDERAL DE SANTA CATARINA GRADUAÇÃO EM SISTEMAS DE INFORMAÇÃO DEPARTAMENTO DE INFORMÁTICA E ESTATÍSTICA DATA MINING EM VÍDEOS

UNIVERSIDADE FEDERAL DE SANTA CATARINA GRADUAÇÃO EM SISTEMAS DE INFORMAÇÃO DEPARTAMENTO DE INFORMÁTICA E ESTATÍSTICA DATA MINING EM VÍDEOS UNIVERSIDADE FEDERAL DE SANTA CATARINA GRADUAÇÃO EM SISTEMAS DE INFORMAÇÃO DEPARTAMENTO DE INFORMÁTICA E ESTATÍSTICA DATA MINING EM VÍDEOS VINICIUS DA SILVEIRA SEGALIN FLORIANÓPOLIS OUTUBRO/2013 Sumário

Leia mais

DOCUMENTAÇÃO DO FRAMEWORK - versão 2.0

DOCUMENTAÇÃO DO FRAMEWORK - versão 2.0 DOCUMENTAÇÃO DO FRAMEWORK - versão 2.0 Índice 1 - Objetivo 2 - Descrição do ambiente 2.1. Tecnologias utilizadas 2.2. Estrutura de pastas 2.3. Bibliotecas já incluídas 3 - Características gerais 4 - Criando

Leia mais

Status. Barra de Título. Barra de Menu. Barra de. Ferramentas Padrão. Caixa de nomes. Barra de. Ferramentas de Formatação. Indicadores de Coluna

Status. Barra de Título. Barra de Menu. Barra de. Ferramentas Padrão. Caixa de nomes. Barra de. Ferramentas de Formatação. Indicadores de Coluna O que é uma planilha eletrônica? É um aplicativo que oferece recursos para manipular dados organizados em tabelas. A partir deles pode-se gerar gráficos facilitando a análise e interpretação dos dados

Leia mais

MÓDULO 6 INTRODUÇÃO À PROBABILIDADE

MÓDULO 6 INTRODUÇÃO À PROBABILIDADE MÓDULO 6 INTRODUÇÃO À PROBBILIDDE Quando estudamos algum fenômeno através do método estatístico, na maior parte das vezes é preciso estabelecer uma distinção entre o modelo matemático que construímos para

Leia mais

www. inf.br Outubro/2008 5www.habisp.inf.br TREINAMENTO HABISP VERBA DE ATENDIMENTO

www. inf.br Outubro/2008 5www.habisp.inf.br TREINAMENTO HABISP VERBA DE ATENDIMENTO 5 www. HABISP. inf.br Outubro/2008 TREINAMENTO HABISP MÓDULO VERBA DE ATENDIMENTO 1 INTRODUÇÃO Este documento, tem por finalidade, permitir aos usuários a utilização das ferramentas do HABISP que possibilitam

Leia mais

Nome: Login: CA: Cidade: UF CARTÃO RESPOSTA QUESTÃO RESPOSTA QUESTÃO RESPOSTA

Nome: Login: CA: Cidade: UF CARTÃO RESPOSTA QUESTÃO RESPOSTA QUESTÃO RESPOSTA ANÁLISE E DESENVOLVIMENTO DE SISTEMAS TURMA 2008 3º PERÍODO - 5º MÓDULO AVALIAÇÃO A4 DATA 23/04/2009 ENGENHARIA DE SOFTWARE Dados de identificação do Acadêmico: Nome: Login: CA: Cidade: UF CARTÃO RESPOSTA

Leia mais

Desenvolvendo Websites com PHP

Desenvolvendo Websites com PHP Desenvolvendo Websites com PHP Aprenda a criar Websites dinâmicos e interativos com PHP e bancos de dados Juliano Niederauer 19 Capítulo 1 O que é o PHP? O PHP é uma das linguagens mais utilizadas na Web.

Leia mais

GUIA DE REDAÇÃO PARA TRABALHO DE EM974

GUIA DE REDAÇÃO PARA TRABALHO DE EM974 GUIA DE REDAÇÃO PARA TRABALHO DE EM974 CONSIDERAÇÕES GERAIS O objetivo deste documento é informar a estrutura e a informação esperadas num texto de Trabalho de Graduação. O conteúdo do texto deverá ser

Leia mais

ROTEIRO PARA TREINAMENTO DO SAGRES DIÁRIO Guia do Docente

ROTEIRO PARA TREINAMENTO DO SAGRES DIÁRIO Guia do Docente Conceito ROTEIRO PARA TREINAMENTO DO SAGRES DIÁRIO Guia do Docente O Sagres Diário é uma ferramenta que disponibiliza rotinas que facilitam a comunicação entre a comunidade Docente e Discente de uma instituição,

Leia mais

Programação Web Prof. Wladimir

Programação Web Prof. Wladimir Programação Web Prof. Wladimir Linguagem de Script e PHP @wre2008 1 Sumário Introdução; PHP: Introdução. Enviando dados para o servidor HTTP; PHP: Instalação; Formato básico de um programa PHP; Manipulação

Leia mais

MODELAGEM DE DADOS MODELAGEM DE DADOS. rafaeldiasribeiro.com.br 04/08/2012. Aula 7. Prof. Rafael Dias Ribeiro. M.Sc. @ribeirord

MODELAGEM DE DADOS MODELAGEM DE DADOS. rafaeldiasribeiro.com.br 04/08/2012. Aula 7. Prof. Rafael Dias Ribeiro. M.Sc. @ribeirord MODELAGEM DE DADOS PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS Aula 7 Prof. Rafael Dias Ribeiro. M.Sc. @ribeirord 1 Objetivos: Aprender sobre a modelagem lógica dos dados. Conhecer os

Leia mais

Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br

Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br Programação com acesso a BD Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br 1 Modelos de Dados, Esquemas e Instâncias 2 Modelos de Dados, Esquemas e Instâncias Modelo de dados: Conjunto de conceitos

Leia mais

Manual do Visualizador NF e KEY BEST

Manual do Visualizador NF e KEY BEST Manual do Visualizador NF e KEY BEST Versão 1.0 Maio/2011 INDICE SOBRE O VISUALIZADOR...................................................... 02 RISCOS POSSÍVEIS PARA O EMITENTE DA NOTA FISCAL ELETRÔNICA.................

Leia mais

A lógica de programação ajuda a facilitar o desenvolvimento dos futuros programas que você desenvolverá.

A lógica de programação ajuda a facilitar o desenvolvimento dos futuros programas que você desenvolverá. INTRODUÇÃO A lógica de programação é extremamente necessária para as pessoas que queiram trabalhar na área de programação, seja em qualquer linguagem de programação, como por exemplo: Pascal, Visual Basic,

Leia mais