UNIVERSIDADE FEDERAL DE MATO GROSSO COORDENAÇÃO DE ENSINO DE GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO
|
|
- Jorge Figueiroa Valgueiro
- 8 Há anos
- Visualizações:
Transcrição
1 UNIVERSIDADE FEDERAL DE MATO GROSSO COORDENAÇÃO DE ENSINO DE GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO UM PROCESSO DE CONVERSÃO ENTRE BANCO DE DADOS RELACIONAL E SERVIÇO DE OBJETO DE DADOS ADRIANO CRESTANI CAMPOS CUIABÁ MT 2008
2 UNIVERSIDADE FEDERAL DE MATO GROSSO COORDENAÇÃO DE ENSINO DE GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO UM PROCESSO DE CONVERSÃO ENTRE BANCO DE DADOS RELACIONAL E SERVIÇO DE OBJETO DE DADOS ADRIANO CRESTANI CAMPOS Orientadora: Profa. Esp. MARIA ELISA PATTARO Monografia apresentada ao Curso de Ciência da Computação da Universidade Federal de Mato Grosso, para obtenção do Título de Bacharel em Ciência da Computação. CUIABÁ MT 2008
3 UNIVERSIDADE FEDERAL DE MATO GROSSO COORDENAÇÃO DE ENSINO DE GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO CERTIFICADO DE APROVAÇÃO Título: Um processo de conversão entre banco de dados relacional e serviço de objeto de dados Autor: Adriano Crestani Campos Aprovada em / / Profa. Esp. MARIA ELISA PATTARO ICET/DCC (Orientadora) Prof. Dra. Patricia Cristiane de Souza ICET/DCC Prof. Dr. Josiel Maimone de Figueiredo ICET/DCC
4 SUMÁRIO LISTA DE TABELAS... 4 LISTA DE FIGURAS... 5 LISTA DE CÓDIGOS... 7 LISTA DE SIGLAS E ABREVIATURAS... 8 RESUMO INTRODUÇÃO APRESENTAÇÃO OBJETIVOS Objetivo Geral Objetivos Específicos JUSTIFICATIVA METODOLOGIA CRONOGRAMA PROPOSTO CRONOGRAMA EXECUTADO SERVIÇO DE OBJETO DE DADOS (SDO) OBJETOS DE DADOS PROPRIEDADES TIPOS Tipos Simples Tipos Complexos Tipos Abertos GRAFO DE DADOS RESUMO DE ALTERAÇÕES RELACIONANDO SDO COM OUTRAS TECNOLOGIAS BANCO DE DADOS RELACIONAL (BDR) CHAVE PRIMÁRIA CHAVE ESTRANGEIRA CONSULTA SERVIÇO DE ACESSO A DADOS (DAS) O PROCESSO DE CONVERSÃO ACESSANDO AS ESTRUTURAS DE DADOS RELACIONANDO OS COMPONENTES DAS ESTRUTURAS Tipos Complexos e Tabelas Tipos Simples e Colunas Relacionamentos Mapeamento de Nomes de Tipos, Tabelas, Propriedades e Colunas TIPOS DE DADOS PRIMITIVOS Tipos Dados Primitivos do SDO Tipos Dados Primitivos do BDR Conversão dos Tipos de Dados Primitivos PROCESSO DE CONVERSÃO DE UM BDR PARA UM GRAFO DE DADOS DO SDO 49
5 6.1 CONVERSÃO DE UMA TABELA SIMPLES Acessando os Dados em um BDR Definição dos Tipos Complexos Criação dos Objetos de Dados CONVERSÃO DE UMA JUNÇÃO DE TABELAS Descriminação das Colunas da Tabela Resultado Definição dos Tipos Complexos Criação dos Objetos de Dados Definição do Objeto Raiz do Grafo de Dados ATUALIZANDO AS ALTERAÇÕES DE UM GRAFO DE DADOS EM UM BDR OBTENÇÃO DOS OBJETOS DE DADOS ALTERADOS GERAÇÃO DE INSTRUÇÕES DE SQL PARA OS OBJETOS DE DADOS ALTERADOS Conversão de um Objeto de Dados Deletado para Tupla Conversão de um Objeto de Dados Criado para Tupla Conversão de um Objeto de Dados Modificado para Tupla ATUALIZAÇÃO DE UM BDR A PARTIR DAS INSTRUÇÕES DE SQL GERADAS Caso Caso Caso Caso Caso Caso Caso Caso Caso Caso Definição da Prioridade de Execução das Instruções de SQL CONVERSÃO DOS RELACIONAMENTOS ENTRE OBJETOS DE DADOS EM RELACIONAMENTOS ENTRE TUPLAS Geração das Instruções de SQL de Cada Objeto de Dados Alterado Geração de Instruções de SQL para Relacionamentos Relacionamentos Removidos Relacionamentos Criados Priorização das Instruções de Remoção de Tupla Definição da Prioridade de Execução das Instruções de SQL com Relacionamentos POSSÍVEIS PROBLEMAS CAUSADOS PELA ESTRUTURA DO BDR Remoção de Tuplas Referenciadas Por Tuplas Não Presentes no Grafo de Dados Alteração da Chave Primária de uma Tupla Ausência de Valores para Colunas Definidas como NOT NULL IMPLEMENTAÇÃO DO PROCESSO DE CONVERSÃO CONCLUSÕES TRABALHOS FUTUROS REFERÊNCIAS BIBLIOGRÁFICAS
6 4 LISTA DE TABELAS Tabela 1 - Cronograma Proposto Tabela 2 - Cronograma Executado Tabela 3 - Comparativo entre SDO e outras tecnologias (adaptado de BEATTY et al, 2003) Tabela 4 - Relação dos tipos simples pré-definidos do SDO (adaptado de BEATTY et al, 2003) Tabela 5 - Relação dos tipos de dados primitivos definidos da linguagem SQL (adaptado de MICROSOFT, 1995) Tabela 6 - Tuplas da tabela COMPANIA armazenadas no BDR Tabela 7 - Tuplas resultantes da execução do Código Tabela 8 - Tuplas da tabela DEPARTAMENTO Tabela 9 - Tuplas da tabela EMPREGADO Tabela 10 Tabela resultante da junção efetuada pelo Código Tabela 11 - Tabela contendo apenas as colunas pertencentes à tabela DEPARTAMENTO contidas na Tabela Tabela 12 - Tabela contendo apenas as colunas pertencentes à tabela EMPREGADO contidas na Tabela
7 5 LISTA DE FIGURAS Figura 1 - Diagrama de classes de um grafo de dados do SDO (adaptado de MARECHAUX, 2005) Figura 2 - Como um grafo de dados armazena suas alterações (adaptado de MARECHAUX, 2005) Figura 3 - Situação de um DAS entre as estruturas de dados(adaptado de MARECHAUX, 2005) Figura 4 - Camadas do processo de conversão Figura 5 - Equivalência entre tipo complexo e tabela Figura 6 - Equivalência entre objeto de dados e tupla Figura 7 - Equivalência entre tipo simples e coluna Figura 8 - Equivalência entre um relacionamento 1xN em BDR e uma propriedade 1xN de tipo reference em SDO Figura 9 - Equivalência entre um relacionamento 1x1 em BDR e uma propriedade 1x1 de tipo reference em SDO Figura 10 - Estrutura do grafo do SDO gerada a partir da Tabela Figura 11 - Instâncias da estrutura do grafo da Figura Figura 12 - Estrutura do grafo de dados gerada a partir da Tabela 9 e Tabela Figura 13 - Estrutura do grafo de dados da Figura 12 contendo uma propriedade 1xN do tipo reference Figura 14 - Remoção de propriedades equivalentes às chaves estrangeiras Figura 15 - Objeto de dados equivalentes às tuplas contidas na Tabela 10 e Tabela Figura 16 - Exclusão dos objetos de dados repetidos Figura 17 - Grafo de dados contendo referências entre objetos de dados Figura 18 - Equivalência entre o grafo de dados convertido a partir de uma tabela retornada por um BDR Figura 19 - Grafo de dados contendo o tipo RAIZ (Tipos simples omitidos para melhor visualização) Figura 20 - Grafo de dados contendo um objeto raiz (Objetos de tipos simples omitidos para melhor visualização) Figura 21 - Estrutura de um grafo de dados para armazenar uma lista de empregados Figura 22 - Grafo de dados possui uma lista de empregados Figura 23 - Grafo de dados da Figura 22 alterado Figura 24 - Ilustração de como o processo de conversão irá visualizar o grafo de dados da Figura 22 após compará-lo com seu resumo de alterações Figura 25 Solução para o caso Figura 26 - Solução para o caso Figura 27 - Solução para o caso Figura 28 - Solução para o caso Figura 29 - Modificação entre valores de chaves primárias entre objetos do mesmo tipo em uma forma circular... 85
8 Figura 30 - Estrutura de um grafo de dados que possui departamentos com seus respectivos empregados Figura 31 - Uma instância da estrutura da Figura 30 no momento em que o resumo de alterações foi ativado Figura 32 - Grafo de dados da Figura 31 alterado Figura 33 - Ilustração de como o processo de conversão irá visualizar o grafo de dados da Figura 32 após compará-lo com seu resumo de alterações Figura 34 - Grafo de dados alterado comparado com as alterações armazenadas em seu resumo de alterações
9 7 LISTA DE CÓDIGOS Código 1 - Selecionando duas tuplas da tabela COMPANIA Código 2 - Instrução que efetua a junção entre as tabelas DEPARTMENTO e EMPREGADO Código 3 - Condição de SQL que indica qual tupla deve ser atualizada Código 4 - Condição em SQL que indica qual tupla da tabela EMPREGADO deve ser atualizada Código 5 - Estrutura de uma instrução de SQL que remove uma tupla que equivale à um objeto de dados Código 6 - Instrução de remoção da tupla equivalente ao objeto deletado no grafo de dados da Figura Código 7 - Estrutura de uma instrução de SQL que insere uma tupla equivalente a um objeto de dados Código 8 - Instrução de SQL que insere uma tupla equivalente ao objeto de dados criado no grafo de dados da Figura Código 9 - Estrutura de uma instrução de SQL que modifica uma tupla de acordo com as alterações efetuadas em seu objeto de dados equivalente Código 10 - Instrução de SQL que modifica a coluna da tupla equivalente ao objeto de dados modificado no grafo de dados da Figura Código 11 - Instrução de SQL que altera o valor da chave primária de uma tupla de N para M Código 12 - Instrução de SQL que altera o valor da chave primária de uma tupla de M para P Código 13 - Instrução de SQL que altera o valor da chave primária de uma tabela de N para M Código 14 - Instrução de SQL que altera o valor da chave primária de uma tabela de M para N Código 15 - Seqüência de instruções que irão refletir as modificações feitas no grafo de dados, ilustrado na Figura 23, em um BDR Código 16 - Código SQL altera o nome do departamento de ID igual a Código 17 - Estrutura de uma instrução de SQL que remove o relacionamento entre tuplas que equivalem a objetos de dados Código 18 - Instrução de SQL que reflete a remoção de um relacionamento entre um objeto de dados do tipo EMPREGADO e seu departamento 97 Código 19 - Instrução de SQL que reflete a remoção de um relacionamento entre um objeto de dados do tipo EMPREGADO e seu departamento 98 Código 20 - Estrutura de uma instrução de SQL que reflete a adição de um relacionamento entre dois objetos de dados em um BDR Código 21 - Instrução de SQL que cria um relacionamento entre duas tuplas100 Código 22 - Instrução de SQL que cria um relacionamento entre duas tuplas100 Código 23 - Seqüência de instruções que irão refletir as modificações feitas no grafo de dados, ilustrado na Figura 32, em um BDR
10 8 LISTA DE SIGLAS E ABREVIATURAS ANSI API ASF BDR COC DAS DMS ISO RDB SDO SOA SOAP SGBD American National Standards Institute - Instituto Nacional Americano de Padrões Aplication Program Interface - Interface Aplicação de Programas Apache Software Foundation Banco de Dados Relacional Optimistic Concurrency Control - Controle de Concorrência Otimista Data Access Service - Serviço de Acesso a Dados Data Mediator Service - Serviço Mediador de Dados International Standards Organization - Organização de Padrões Internacionais Relational Database - Banco de Dados Relacional Service Data Object - Serviço de Objeto de Dado Service Oriented Architecture - Serviço Orientado a Arquitetura Simple Object Access Protocol - Protocolo de Acesso Simples a Objetos Sistema Gerenciador de Banco de Dados SGBDR Sistema Gerenciador de Banco de Dados Relacional SQL UDDI WSDL XML Structured Query Language - Linguagem de Consulta Estruturada Universal Description, Discovery and Integration - Descrição, Descobrimento e Integração Web Services Description Language - Linguagem de Descrição de Web Services Extensible Modeling Language - Linguagem de Modelagem Estendida
11 9 RESUMO Aplicações utilizadas em ambientes orientados a serviços necessitam de uma estrutura de dados que possa ser utilizada independentemente da linguagem em que estas estão implementadas e do ambiente de execução. O Serviço de Objeto de Dados (SDO Service Data Object) vem para solucionar esse problema, definindo uma estrutura de dados em forma de grafo. Esta estrutura é armazenada em forma de texto no formato XML, possibilitando o acesso independente de como foi implementada a aplicação. Porém, a maioria dos dados utilizados por essas aplicações e armazenados no grafo de dados do SDO estão persistidos em bancos de dados relacional necessitando, assim, de algo que efetue a conversão entre estas duas estruturas de dados. Este trabalho descreve um processo de conversão entre essas duas estruturas, de forma que a estrutura semântica de cada estrutura de dados seja fiel à original após a conversão. Isto é feito utilizando como base processos de conversão já implementados e resultados extraídos durante a implementação deste processo. Como resultado, foi obtido um processo de conversão que consegue converter quase que totalmente a semântica de uma estrutura de dados para outra e, também, a implementação desse processo em um Serviço de Acesso a Dados para Banco de Dados Relacionais (RDB DAS Relacional Database Data Access Service) implementado na linguagem C++. Palavras-chave: Serviço de Objeto de Dados, Banco de Dados Relacional, Estrutura de Dados, Serviço Orientado a Arquitetura, Serviço.
12 10 1. INTRODUÇÃO 1.1 Apresentação Na última década surgiu no mercado uma infinidade de Sistemas Gerenciadores de Bancos de Dados Relacionais (SGBDR), permitindo aos desenvolvedores escolherem qual melhor se adequa ao seu produto. Porém, a maioria dos SGBDRs possuem recursos próprios, que quando utilizados por uma aplicação, deixam essa fortemente relacionadas com ao SGBDR, consequentemente tornando difícil uma futura migração para um outro SGBDR (DEVMEDIA, 2006). Ou ainda, acarretando uma exaustiva implementação de aplicações que necessitem acessar diferentes bases de dados em diferentes SGBDRs. Uma das soluções existentes para esse problema é a utilização de um Serviço de Objeto de Dados (SDO - Service Data Object) que propõe o armazenamento de dados de forma homogênea e relacionados na estrutura de um grafo, onde eles poderão ser lidos e alterados. Com isso as aplicações não mais precisam conhecer como os dados estão armazenados ou como acessálos, deixando esta função apenas para um Serviço de Acesso a Dados (DAS Data Access Service). Um DAS tem a função de ler e atualizar dados persistidos em qualquer estrutura de dados e efetuar as conversões necessárias para armazená-los em um grafo homogêneo utilizando um SDO. Atualmente existe um projeto chamado Tuscany 1, que está incubado na Apache Software Foundation (ASF), que tem como um de seus subprojetos o desenvolvimento de um SDO. O Tuscany SDO se encontra em fase beta de desenvolvimento. 1
13 11 Este trabalho descreve as principais características de um SDO e um BDR, a fim de detalhar o processo de conversão entre as duas estruturas de dados, o qual poderá ser utilizado na implementação de um DAS para Banco de Dados Relacionais (RDB DAS Relational Database Data Access Service). 1.2 Objetivos Objetivo Geral O objetivo deste trabalho é descrever o processo de conversão da estrutura de dados de um SDO para a estrutura de dados de um banco de dados relacional e vice-versa Objetivos Específicos Descrever as características de um SDO. Descrever as características de um BDR. Descrever as características de um RDB DAS. Definir a equivalência entre a estrutura de dados de um SDO e de um BDR. Definir o processo de conversão de um BDR para um grafo de dados do SDO. Definir o processo de conversão de um grafo de dados do SDO para um BDR. Implementar o processo de conversão definido em um RDB DAS. Descrever os resultados da implementação do processo de conversão. 1.3 Justificativa Atualmente, eu sou commiter do projeto Tuscany, ou seja, eu possuo permissão para contribuir diretamente com o desenvolvimento das aplicações
14 12 desenvolvidas nesse projeto. Esse projeto desenvolve aplicações para ambientes orientados a serviços e uma dessas aplicações é um SDO. O projeto possui a implementação de um SDO em duas linguagens: em C++, que está em atualmente em fase final de desenvolvimento, e em Java, que já possui uma versão estável. Entretanto, as aplicações que irão utilizar um SDO necessitarão de algo que crie um grafo de dados, definindo seus tipos e suas ligações. No caso de aplicações que acessam dados persistidos em um Banco de Dados Relacional (BDR) utilizando um SDO, elas próprias deverão acessar esses dados e povoar o grafo do SDO. Desta forma dificulta sua codificação, uma vez que o desenvolvedor terá que definir no código toda a estrutura do grafo do SDO e populá-lo. Devido à complexidade de definir manualmente a estrutura do grafo do SDO e populá-lo, surge a necessidade da utilização de uma RDB DAS que acesse os dados persistidos, identifique seus tipos e relações, e com isso gere automaticamente um grafo de dados. Dessa forma, a aplicação que utilizar um RDB DAS em conjunto com um SDO, poderá se preocupar apenas com as partes intrínsecas da lógica do sistema em que ela faz parte não se preocupando como os dados estão sendo acessados. A implementação de um RDB DAS também é um dos subprojetos do projeto Tuscany. Entretanto, seu RDB DAS possuia apenas implementação na linguagem Java e com o desenvolvimento de um SDO na linguagem C++, surgiu a necessidade de também desenvolver um RDB DAS utilizando essa linguagem. Com essa necessidade, eu me propus a tomar a frente na implementação do RDB DAS na linguagem C++ e junto com esta implementação descrever o processo de conversão, o qual foi implementado nesse RDB DAS, neste trabalho.
15 13 Entretanto, o processo de conversão que um RDB DAS utiliza para converter os dados de um BDR para um grafo de dados do SDO e vice-versa, não é apenas utilizado por um RDB DAS, mas também por qualquer outra aplicação que necessite efetuar este tipo de conversão. Logo, o processo de conversão descrito aqui será independente do RDB DAS, podendo assim ser implementação em qualquer aplicação que necessite efetuar este tipo de conversão de dados. 1.4 Metodologia A metodologia empregada se inicia por um levantamento bibliográfico das principais características de um SDO e de um BDR, listando as principais semelhanças e diferenças entre as duas estruturas de dados. Esta pesquisa foi efetuada principalmente em livros e na internet. Pelo escasso material disponível sobre SDO e por esta ser uma tecnologia recente, muitas das informações foram obtidas através de listas de discussão, como a lista de desenvolvedores 2 e usuários 3 do projeto Tuscany. Após definidas as semelhanças e diferenças entre SDO e BDR, foi iniciada a descrição do processo de conversão, tendo como base implementações deste processo de conversão, como o processo de conversão implementado no RDB DAS, em Java, do projeto Tuscany. Uma vez descrito o processo de conversão entre as estruturas, este foi implementado no RDB DAS em C++ do projeto Tuscany. A experiência adquirida na implementação deste processo ajudou a definir e detalhar mais o processo de conversão descrito neste trabalho
16 Cronograma Proposto A seguir o cronograma proposto para ser executado durante o desenvolvimento do trabalho de conclusão de curso. Tabela 1 - Cronograma Proposto Meses/Semanas Etapas Junho Julho Agosto Setembro Outubro Novembro Dezembro Janeiro Fevereiro Etapa 1 Etapa 2 Etapa 3 Etapa 4 Etapa 5 Etapa 6 Etapa 7 Etapa 8 Etapa 9 Etapa 1 Pesquisa bibliográfica Leitura de livros e pesquisa em artigos na Internet para fazer o levantamento sobre SDO e DAS disponíveis no mercado. Etapa 2 Detalhamento de um SDO Detalhar as principais características de um SDO. Etapa 3 Detalhamento de um BDR Detalhar as principais características de um SDO. Etapa 4 Detalhamento de um RDB DAS Detalhar as principais características de um DAS.
17 15 Etapa 5 Defesa do projeto Apresentar e defender o projeto do trabalho de conclusão de curso. Etapa 6 - Definição de um RDB DAS Definir as diretrizes de como será o a conversão de RDB para SDO. Etapa 7 Implementação de um RDB DAS Implementar um RDB DAS de acordo com as diretrizes definidas na etapa 5. Etapa 8 Descrição dos resultados Descrever os resultados obtidos durante a implementação de um RDB DAS. Etapa 9 Apresentação à banca avaliadora 1.6 Cronograma Executado O cronograma executado teve algumas alterações em relação ao cronograma proposto. A principal alteração foi a implementação do processo de conversão antes da descrição do mesmo. Também, a etapa 6, que define como deve ser a conversão entre as estruturas de dados em um RDB DAS, foi separada em 3 etapas diferentes: etapa 7, 8 e 9. Desta forma, ficando bem divido o processo de conversão que poderá ser implementado por qualquer RDB DAS. Além disso, a etapa de levantamento bibliográfico foi estendida ao longo de quase todo o trabalho, uma vez que algumas surgiram durante o desenvolvimento do mesmo. A seguir o cronograma executado durante o desenvolvimento deste trabalho de conclusão de curso.
18 16 Tabela 2 - Cronograma Executado Meses/Semanas Etapas Junho Julho Agosto Setembro Outubro Novembro Dezembro Janeiro Fevereiro Etapa 1 Etapa 2 Etapa 3 Etapa 4 Etapa 5 Etapa 6 Etapa 7 Etapa 8 Etapa 9 Etapa 10 Etapa 11 Etapa 1 Pesquisa bibliográfica Leitura de livros e pesquisa em artigos na Internet para fazer o levantamento sobre SDO e DAS disponíveis no mercado. Etapa 2 Detalhamento de um SDO Detalhar as principais características de um SDO. Etapa 3 Detalhamento de um BDR Detalhar as principais características de um SDO. Etapa 4 Detalhamento de um RDB DAS Detalhar as principais características de um DAS.
19 17 Etapa 5 Defesa do projeto Apresentar e defender o projeto do trabalho de conclusão de curso. Etapa 6 Implementação do processo de conversão Implementar o processo de conversão em um RDB DAS. Etapa 7 - Definição da equivalência entre BDR e SDO Definir a equivalência entre a estrutura de dados de um SDO e de um BDR. Etapa 8 - Definição da conversão de um BDR para um SDO Definir o processo de conversão de um BDR para um grafo de dados do SDO. Etapa 9 - Definição da conversão de um SDO para um BDR Definir o processo de conversão de um BDR para um grafo de dados do SDO. Etapa 10 Descrição dos resultados da implementação Descrever os resultados obtidos durante a implementação do processo de conversão. Etapa 11 Apresentação à banca avaliadora
20 18 2. SERVIÇO DE OBJETO DE DADOS (SDO) Antes de começar o processo de desenvolvimento de uma aplicação é necessário escolher quais tecnologias de persitência de dados, comunição, linguagem de programação e etc serão utilizadas por esta aplicação. A escolha de cada uma dessas tecnologias depende da necessidade da aplicação e se a tecnologia atende essas necessidades de forma satisfatória. Entretanto, as tecnologias escolhidas nem sempre são compatíveis entre si. Desta forma, as decisões sobre a lógica de negócio da aplicação fica fortemente ligada a forma em que essa é implementada. Para solucionar este problema, surgiu a Arquitetura Orientada a Serviço (SOA Service Oriented Architecture) que possibilita separar a implementação de uma tecnologia do tipo de serviço que ela disponibiliza. SOA é uma maneira de se organizar um software, baseada na exposição de unidades de software customizadas chamadas serviços (MARGOLIS et al, 2007). Serviços são disponibilizados através de um interface, a qual é independente da linguagem de implementação do serviço e de seu ambiente de execução. Logo, é possível tomar a decisão sobre a arquitetura de uma aplicação, ou seja, como as tecnologias se relacionam nessa aplicação, sem que seja necesssário conhecer como cada uma é implementada e sem ter problema de compatibilidade entre essas tecnologias. Além disso, a arquitetura da aplicação fica desacoplada da forma em que essa é implementada, tornando-a flexível e possibilitando uma rápida adaptação de sua arquitetura, atendendo rapidamente a novas necessidades do usuário. Como a implementação de um serviço é independente da implementação dos outros serviços, cada serviço pode estar executando em qualquer lugar do globo, necessitando assim, apenas definir um protocolo de comunicação entre os serviços, como, por exemplo, Web Services.
21 19 Aplicações implementadas utilizando o conceito de SOA necessitam transferir entre seus serviços. Entretanto esses dados provêm de diversas fontes de dados diferentes, necessitando assim um modelo de programação que permita manipular dados heterogêneos de forma consistente e uniforme (RESENDE, 2007). Com isso surgiu o SDO, que define um modelo de programação independente e unificado de manipulação de dados através de múltiplos tipos de fontes de dados (RESENDE, 2007). "SDO especifica uma forma padronizada de acessar e modificar dados de negócio independentemente de como estes dados estão armazenados fisicamente" (Clarke, 2006, p. 2, tradução nossa). SDO é um serviço que pretende unificar e simplificar a forma em que os dados são acessados por uma aplicação. Usando SDO, os serviços poderão uniformemente acessar e manipular dados de diferentes fontes de dados, incluindo bancos de dados relacional, bases de dados em XML, Web services, entre outras, sem precisar conhecer como estão armazenados. De acordo com Clarke (2006), o SDO suporta processamento desconectado, ou seja, ele consegue armazenar as mudanças efetuadas em seu grafo de dados, mesmo que o mesmo seja transportado através de vários serviços. Com isso, os dados podem ser carregados em um grafo a partir de uma fonte de dados e transportados através de vários serviços, e quando retornado a fonte de dados, será possível atualizá-la de acordo com as alterações efetuadas no grafo de dados. 2.1 Objetos de Dados Objetos de dados são as instâncias que formam o grafo de dados. Eles são gerados a partir de uma fonte de dados e relacionados entre si, formando um grafo de dados, que representa a semântica em que os dados estão relacionados em sua fonte. Uma vez gerado o grafo de dados, os clientes do
22 20 SDO não precisam mais conhecer como estes estão persistidos e nem como acessá-los em sua fonte, deixando esta tarefa para um DAS. O SDO disponibiliza duas formas de acessar e modificar os dados em um objeto de dados: estática e dinâmica. Acesso estático fornece ao programador uma maneira fácil de acessar dados em um objeto de dados, apenas definindo uma interface em tempo de compilação, que deve possuir os getters e setters para acessar e modificar cada propriedade que ele possui. Entretanto, acesso estático impede a manipulação de um objeto de dados quando o programador não conhece previamente suas propriedades, ou quando a fonte de dados de onde o objeto de dados provém for semi-estruturada, pois impossibilita a definição de uma interface fixa para acessá-lo. Porém, o acesso dinâmico é essencial, permitindo acesso de forma independente da linguagem em que a aplicação é implementada, além de permitir acesso a objetos de dados totalmente desconhecidos utilizando a introspecção de dados (BEATTY et al, 2003). 2.2 Propriedades Cada objeto de dados está relacionado com um outro objeto de dados através de uma propriedade. A propriedade de um objeto de dados define como e com qual objeto de dados ele se relaciona, ou seja, seu relacionamento. Propriedades podem ser classificadas como: contaiment ou reference. Uma propriedade contaiment define um relacionamento de propriedade que um objeto de dados exerce em outro. Por exemplo, se um objeto de dados carro possuir uma propriedade contaiment que o relacione com um objeto de dados motor, o objeto de dados que representa o motor somente existirá se o objeto de dados que representa o carro também existir, e será automaticamente apagado caso o objeto de dados carro seja apagado.
23 21 Por outro lado, uma propriedade reference define um relacionamento de referência entre dois objetos de dados. No caso do exemplo acima, se a propriedade que relaciona o objeto de dados carro e motor fosse do tipo reference, o objeto de dados motor poderia existir independentemente da existência de um objeto de dados carro, e caso o objeto de dados carro fosse apagado, apenas a referência entre carro e motor será removida. O SDO garante a integridade dos relacionamentos, não permitindo um objeto de dados referenciar outro objeto de dados que não existe mais. Uma propriedade define também cardinalidade do relacionamento entre objetos de dados, que pode ser 1x1 ou 1xN. O SDO garante esta cardinalidade, e não permite que um objeto de dados seja referenciado pela propriedade de mais de um objeto de dados. Propriedades inicialmente não são definidas, possuem um estado nulo, representando que a propriedade não está relacionando o objeto que a possui a nenhum outro objeto de dados. Para representar o mesmo, após uma propriedade ter sido definida com algum objeto, uma propriedade pode ser definida como nula, removendo o relacionamento, que esta representa, com qualquer outro objeto. 2.3 Tipos Os tipos formam a estrutura em que o SDO armazena seus dados. Eles possuem todas as definições sobre o dado que a sua instância, o objeto de dados, carrega, além de todas as propriedades que este possui. A partir de um objeto de dados é possível acessar seu tipo, permitindo introspecção no mesmo. De acordo com Gadotti et al (2002), introspecção é a capacidade de um sistema computacional de examinar sua própria estrutura, estado e representação. Logo, o SDO possibilita, através de introspecção, qualquer aplicação conhecer como os dados estão estruturados em seu grafo de dados.
24 22 "Um tipo é a forma de descrever um objeto de dados, similar a uma classe em Java" (Robbins et al, 2006, tradução nossa). Um tipo pode ser simples ou complexo. Um tipo complexo é análogo a uma classe em orientação a objetos, um ComplexType ou SimpleType em XML, ou uma Struct em C (BEATTY et al, 2003). E um tipo simples é análogo a um tipo primitivo em qualquer linguagem de programação Tipos Simples Objetos de dados de tipo simples apenas armazenam um valor primitivo. Tipos simples são similares à dados primitivos em Java e representam elementos, tais como um inteiro, um byte, um boleano, entre outros (Robbins et al, 2006, tradução nossa). Alguns dos tipos primitivos já fornecidos pelo SDO são: Boleano; Byte; Caractere com 2 bytes dando suporte a codificação ASCII, UNICODE e qualquer outra que possa ser armazenada em até 2 bytes; Cadeia de bytes; Cadeia de caracteres; Ponto flutuante simples e de dupla precisão; Inteiro de 2, 4 e 8 bytes; UserData, o qual dá suporte a utilização de qualquer tipo primitivo não previsto na especificação do SDO;
25 Tipos Complexos Um objeto de dado de tipo complexo apenas possui propriedades, que o relaciona com outros objetos de dados, sejam eles de tipo complexo ou simples. Tipos complexos suportam herança, que permite um tipo herdar as características e propriedades de outro tipo complexo. Também existem tipos complexos abstratos, que não podem ser instanciados, apenas herdados Tipos Abertos SDO fornece suporte à estrutura de dados semi-estruturada através dos tipos abertos. Inicialmente, todos tipos criados em um grafo de dados são estruturados, ou seja, obedecem a uma estrutura previamente definida. Com isso, uma instância de um tipo comum não irá permitir a definição de um relacionamento entre dois objetos de dados, caso esta não tenha sido previamente definida entre eles. Porém, uma instância de um tipo aberto aceita o relacionamento entre dois objetos de dados mesmo se não existir nenhum relacionamento previamente definido. Com tipos abertos, o SDO consegue dar suporte a fontes de dados semiestruturadas, como arquivos XML. 2.4 Grafo de Dados Um grafo é um par (V,A) em que V é um conjunto arbitrário e A é um subconjunto. Os elementos de V são chamados vértices e os de A são chamados arestas (FEOFILOFF et al, 2005).
26 24 Um grafo em SDO possui toda a estrutura de dados em forma de um grafo bidirecional, onde seus vértices são os objetos de dados e suas arestas representam os relacionamentos entre os dados, formando assim, um grafo de dados. Além disso, armazena um grafo de metadados, que é definido na criação do grafo de dados, o qual os vértices são os tipos dos dados e as arestas são as propriedades, as quais determinam como um determinado tipo se relaciona com outro. Este relacionamento de tipos e propriedades pode ser notado no diagrama de classes ilustrado na Figura 1. Um grafo de dados possui também um resumo de alterações, ou seja, um resumo de todas as alterações efetuadas no grafo de dados. Figura 1 - Diagrama de classes de um grafo de dados do SDO (adaptado de MARECHAUX, 2005) Um grafo de dados possui apenas uma raiz, a qual deve ser qualquer objeto de dados, que a partir dele possa ser acessado todos os outros objetos de dados do grafo, utilizando apenas propriedades do tipo contaiment. SDO suporta a serialização de seus grafos de dados em XML, possibilitando a fácil integração entre SDOs implementados em diferentes linguagens.
27 Resumo de Alterações Cada grafo de dados possui um resumo de alterações, que é um resumo de todas as alterações efetuadas nos objetos contidos no grafo de dados, como ilustrado na Figura 2. O monitoramento efetuado pelo resumo de alterações no grafo pode ser ativado ou não, de acordo com a necessidade do programador. Quando um grafo de dados é criado, seu resumo de alterações não monitora as alterações efetuadas, ele deve ser ativado, para que assim comece o monitoramento. Caso este seja desativado, todas as informações sobre as alterações ocorridas no grafo de dados serão perdidas. O resumo de alterações não armazena todas as alterações efetuadas em determinado dado, e sim, apenas a alteração mais antiga e o valor que este possui antes de ser alterado. Figura 2 - Como um grafo de dados armazena suas alterações (adaptado de MARECHAUX, 2005) Em SDO, o resumo de alterações é representado pelo tipo complexo especial chamado ChangeSummary. Ele deve ser adicionado a um tipo complexo do grafo através de uma propriedade 1x1 do tipo containment. Uma vez ativado,
28 26 ele armazenará todas as alterações efetuadas no objeto de dados em que está contido, e também as alterações de todos os objetos contidos nesse objeto, exceto a própria instância do ChangeSummary. A API do SDO especifica funções que permitem o acesso aos objetos de dados modificados no grafo e a todos os valores antigos de suas propriedades modificadas, os quais estão armazenados no resumo de alterações, desde que o mesmo esteja ativado. 2.6 Relacionando SDO com Outras Tecnologias Além do SDO, existem outras tecnologias que pretendem unificar o acesso a dados. Na Tabela 3 pode ser observada a relação entre estas tecnologias e o SDO, e concluir que o SDO hoje em dia é o que mais fornece vantagens. Tabela 3 - Comparativo entre SDO e outras tecnologias (adaptado de BEATTY et al, 2003) Tecnologia Modelo Acesso a Dados Fonte de Dados Introspecção de Dados Linguagem de Requisição JDBC Conectado Dinâmico Relacional Sim SQL RowSet JDBC Desconectado Dinâmico Relacional Sim SQL CachedRow Set Entity EJB Conectado Estático Relacional Sim EJBQL JDO Conectado Estático Relacional, Sim JDOQL Objeto JCA Desconectado Dinâmico Record Não Definido Não Definido DOM and Não Dinâmico XML Sim Xpath e Xquery SAX Disponível JAXB Não Estático XML Sim Não Disponível Disponível JAX-RPC Não Estático XML Sim Não Disponível Disponível SDO Desconectado Estático e Dinâmico Qualquer Sim Qualquer Na tabela 3 pode ser notada a vantagem do SDO com outras tecnologias, pois: Possui um modelo desconectado, ou seja, sua estrutura de dados não precisa se manter conectada a um sistema gerenciador de dados.
29 27 Permite que seja efetuado acesso aos seus dados de forma dinâmica, possibilitando qualquer aplicação que não conheça a estrutura do grafo de dados acessar dinamicamente os seus dados. E também permite que esses dados sejam acessados estaticamente, através de interfaces definidas pelas aplicações, possibilitando essas aplicações padronizar a forma em que desejam trabalhar com os dados contidos no grafo de dados. A especifição do SDO define que seu grafo de dados é independente de fonte de dados, permitindo a utilização de dados vindos de qualquer fonte, desde que os mesmos sofram as conversões necessárias. Como a maioria das outras tecnologias, o SDO também permite a introspecção na sua estrutura de dados. A especifição do SDO não define uma linguagem de requisição dos dados, apenas define instruções em sua API de acesso que permitem uma aplicação navegar por todo o seu grafo de dados. Possibilitando assim que as implementações do SDO especifiquem alguma liguagem de requisição de dados. Por exemplo, a implementação do SDO do projeto Tuscany permite que a requisição dos dados no grafo de dados seja feita utilizando a linguagem XPath. Logo, a principal vantagem do SDO em relação a outras tecnologias, é que ele não possui nenhuma fonte de dados específica, suportando fonte de dados heterogêneas e tornando possível o acesso a inúmeras fontes de dados distintas de forma transparente.
30 28 3. BANCO DE DADOS RELACIONAL (BDR) Dados dificilmente são armazenados de forma independente um do outro, mas co-relacionados, a fim de formar uma estrutura de dados lógica, a qual representa como determinado dado se relaciona com outro. Esta estrutura é armazenada em um banco de dados, o qual é uma coleção de dados estruturados (Din, 1994). Um banco de dados relacional define maneiras de como armazenar, manipular e recuperar dados que estão relacionados entre si. Para isso se faz necessário definir um modelo que representa como os dados devem ser relacionados. Este modelo é chamado de modelo relacional. Em 1970, E. F. Codd desenvolveu o modelo relacional. Entretanto, naquela época imaginava-se ser uma idéia impossível de ser colocar em prática utilizando os recursos de hardware disponíveis. Porém, qualquer computador pessoal dos dias atuais consegue por em prática o modelo de Codd sem qualquer dificuldade (GILFILLAN, 2002). O modelo relacional de Codd define uma estrutura de dados onde os dados são simplesmente armazenados em tabelas bidimensionais que representam entidades do mundo real (LITWIN, 1994). Cada entidade possui atributos diferentes, onde estes são representados como sendo as colunas da tabela. Um atributo de uma entidade pode ser apenas um dado ou uma outra entidade, no segundo caso é definido pelo relacionamento entre duas entidades. Cada linha de uma determinada tabela são as instâncias desta tabela, que são chamadas de tuplas. Um conjunto de dados armazenados e estruturados de acordo com um determinado modelo forma um banco de dados. Porém, é necessário um software que permita o acesso, manipulação e recuperação destes dados. Este software é chamado de Sistema Gerenciador de Banco de Dados (SGBD). Um
31 29 SGBD que controla um banco de dados relacional recebe o nome de SGBD Relacional (SGBDR). 3.1 Chave Primária De acordo com Battisti (2004), o conceito de chave primária é fundamental para o correto entendimento de como funciona um banco de dados baseado no modelo relacional. Pois, é baseado na chave primária que o SGDBR garante a unicidade de uma tupla em sua tabela. Quando o modelo de uma tabela é definido deve-se também definir sua chave primária. A chave primária é formada por colunas, a qual pode ser constituída por apenas uma coluna, caracterizando uma chave primária simples, ou por várias colunas, chave composta. Simples ou composta, o valor da chave de determinada tupla deve ser único entre todas as tuplas da mesma tabela, garantindo assim a identidade da tupla na tabela (BATTISTI, 2004). 3.2 Chave Estrangeira Chaves estrangeiras são cópias das chaves primárias dentro das tabelas filhas para formar a ligação oposta em um relacionamento entre tabelas, desta forma estabelecendo uma relação de um banco de dados relacional. Uma chave estrangeira define a referência para cada tupla em uma tabela filha, referenciando de volta a chave primária na tabela pai (Powell, 2005, p. 60, tradução nossa). O relacionamento de uma tabela com outra, ocorre através de uma chave estrangeira, que é o conjunto de uma ou mais colunas de uma tabela que definirá seu relacionamento com outra. Esse conjunto de colunas deve representar um valor possa identificar uma única tupla, onde essa é a tupla que é referenciada pela chave estrangeira. Em uma relação entre duas tabelas, uma tabela possui uma chave primária e a outra uma chave estrangeira. A chave primária identifica unicamente cada tupla na primeira tabela. Em outras palavras, somente poderá existir uma tupla na primeira tabela com o mesmo valor de chave primária. A chave estrangeira é colocada na segunda
32 30 tabela do relacionamento, de forma que a chave estrangeira contenha uma cópia do valor da chave primária da tupla na tabela relacionada (Powell, 2005, p. 63, tradução nossa). A base para se manter a integridade de um banco de dados relacional depende unicamente das chaves primárias e estrangeiras. Uma chave primária nunca poderá conter um valor nulo ou igual a de outra tupla da mesma tabela. Uma chave estrangeira poderá ser nula ou possuir o valor da chave primária da tupla de outra tabela. Seguindo estas regras, o SGDBR consegue manter a integridade de um banco de dados relacional. 3.3 Consulta Após os primeiros SGBDRs surgirem, várias linguagens foram criadas a fim de permitirem os programadores acessar e manipular os dados armazenados no banco de dados. Entre estas linguagens, a que mais se destacou foi a Structured Query Language (SQL). A linguagem SQL é uma linguagem com um propósito especial desenvolvida para a criação e manutenção de dados de uma base de dados relacional. Embora os desenvolvedores de sistemas para manutenção de bases relacionais tenham suas próprias definições de SQL, um padrão ISO/ANSI define e controla o que é SQL (TAYLOR, 2003, p. 45). De acordo com Din (1994), SQL é apenas um instrumento que é usado como meio de informar ao SGBDR o que você quer fazer. Instruções de SQL são comandos que são usados para requisitar, atualizar, remover e inserir dados em uma base de dados. SQL é uma linguagem não-procedural, ou seja, não é necessário explicitar onde procurar pelos dados no banco de dados, pois o SGBDR irá procurar onde estes dados estão baseando nas informações contidas na instrução de SQL. A linguagem SQL é atualmente suportada pela maioria dos SGBDRs do mercados, como Oracle, Microsoft SQL Server, Sybase DB/2, MySQL, PostgreSQL, entre outros. Por sua grande utilização, a linguagem SQL ganhou
33 31 certificação ISO e ANSI, padronizando assim a estrutura de seus comandos e facilitando a utilização de um comando SQL por vários SGBDRs diferentes.
34 32 4. SERVIÇO DE ACESSO A DADOS (DAS) Segundo Marechaux (2005), um Serviço de Acesso a Dados (DAS - Data Access Service) ou Serviço Mediador de Dados (DMS - Data Mediator Service) é um serviço que fornece métodos para popular um grafo de dados de um SDO a partir de uma determinada fonte de dados. Este serviço também efetua o processo inverso a atualização dos dados alterados no grafo de volta na fonte de dados. Serviços de Acesso a Dados são responsáveis por aplicar as mudanças de um grafo de dados em uma fonte de dados (RESENDE, 2007, tradução nossa). Por causa da variedade de tecnologias diferentes que um SDO pode utilizar como fonte de dados, será necessário a implementação de um DAS para cada fonte diferente, como ilustrado na Figura 3. O DAS deverá garantir a semântica dos dados no processo de conversão do grafo de dados para a fonte de dados e vice-versa, de acordo com a estrutura da tecnologia em que os dados estão armazenados. Basicamente, o processo de acesso a uma fonte de dados utilizando o DAS ocorre da seguinte forma: 1- O usuário informa ao DAS os dados que deseja. 2- O DAS requere dados da fonte de dados baseando na informação passada pelo usuário. 3- Com os dados retornados pela fonte de dados, o DAS gera o grafo do SDO e o retorna para o cliente. 4- O usuário faz as alterações necessárias no grafo de dados e repassa para o DAS. 5- O DAS verifica quais foram as alterações realizadas no grafo de dados, e as atualiza na fonte de dados.
35 33 Figura 3 - Situação de um DAS entre as estruturas de dados(adaptado de MARECHAUX, 2005) Como o grafo de dados do SDO possui um modelo desconectado da fonte de dados, não é possível realizar um controle de concorrência na fonte de dados entre o período de tempo que o DAS gerou o grafo de dados a partir da fonte de dados e a atualização deste grafo nesta mesma fonte. Controle de concorrência é o gerenciamento da contenção para fontes de dados. Um esquema de controle de concorrência é considerado otimista quando os dados são bloqueados e desbloqueados por um curto período de tempo no final da transação. O objetivo de um controle de concorrência otimista é minimizar o tempo o qual a fonte dos dados estaria indisponível para uso por outras transações (IBM, 2005, tradução nossa). Para resolver este problema de concorrência, o DAS utiliza um Controle de Concorrência Otimista (OCC Optimistic Concurrency Control), onde toda vez que o DAS for atualizar os dados na fonte de dados, ele checa se o dado na fonte está diferente de quando o grafo foi gerado. Se o dado possuir o mesmo valor que ele possuía antes do grafo de dados ser gerado, ele atualiza o dados. Caso contrário, ele gera um aviso de concorrência e não atualiza o dados.
36 34 5. O PROCESSO DE CONVERSÃO O processo de conversão entre os dados de um BDR e um grafo de dados do SDO caracteriza-se pelo processo de converter os dados retornados por uma requisição do usuário feita ao SGBDR para um grafo de dados do SDO e atualizar estes dados no BDR após eles terem sido modificados no grafo de dados pelo usuário. Para que este processo ocorra, é necessário definir as equivalências e diferenças que as duas estruturas possuem, além de definir como estas estruturas serão acessadas pelo processo de conversão. 5.1 Acessando as Estruturas de Dados Para que seja acessado os dados armazenados em um grafo de dados do SDO, é utilizada a API do SDO. Esta API define as interfaces necessárias em C, C++, Java e COBOL para manipular e acessar os dados, os quais estão armazenados em formato XML, de acordo com a especificação do SDO. Esta especificação, que se encontra na versão 2.1, foi elaborada em conjunto pela IBM, BEA, Rogue Wave Software e Sybase, e é disponibilizada pela Open SOA Collaboration 4. Na outra ponta, para que possam ser acessados os dados nos BDRs, independentemente do SGBDR utilizado, é importante que seja utilizada uma API largamente aceita pela maioria dos SGBDRs do mercado, possibilitando desta forma, fornecer suporte de acesso a maior quantidade de SGBDRs possíveis. A API ODBC possibilita que programas acessem qualquer SGBDR, independentemente da linguagem de programação e ambiente de execução, utilizando a linguagem de SQL. A maioria dos SBGDRs do mercado que 4
37 35 fornecem uma API de acesso a dados possuem implementações da API ODBC. Por esses motivos, essa API se torna uma grande candidata a ser utilizada pelo processo de conversão entre SDO e um BDR, uma vez que a mesma fornece a interface necessária para que seja efetuada leitura e atualização dos dados armazenados em um BDR. Figura 4 - Camadas do processo de conversão Como pode ser observado na Figura 4, utilizando APIs de acesso a dados, como a API do SDO e ODBC, tanto para acessar um grafo do SDO quanto para acessar um BDR, é possível que a aplicação que irá efetuar a conversão, representada pela camada de conversão, efetue a conversão de qualquer BDR para um grafo de SDO e vice-versa. Desde que, o SGBDR implemente a API do ODBC e também que os dados no formato XML, que correspondem ao
38 36 grafo de dados do SDO, estejam formatados de acordo com a especificação do SDO e a implementação da API do SDO também siga as regras especificadas para essa API. Acessando os dados desta forma, evita que seja implementada uma camada de conversão específica para cada SGBDR ou SDO diferente e possibilita o acesso a dados de qualquer fonte de forma uniforme e transparente. 5.2 Relacionando os Componentes das Estruturas De acordo com Malveau et al (2000), uma entidade é qualquer coisa de interesse, seja ela concreta ou abstrata. Elas são representadas de formas diferentes em diferentes estruturas, entretanto independentemente da estrutura, elas devem sempre ser representadas de forma que não seja perdido o aspecto semântico da entidade. Componentes de uma estrutura são utilizados para definir uma entidade, de forma a manter o sentido semântico que esta entidade possui. Os componentes de um BDR são as tabelas, colunas, chaves primárias, chaves estrangeiras, gatilhos, etc. Os componentes de um grafo de dados do SDO são os tipos e as propriedades. Por exemplo, a entidade pessoa pode ser representada em um grafo de dados do SDO como um tipo complexo ou em um BDR como uma tabela. A entidade nome, que representa o nome desta pessoa, pode ser representada por uma propriedade deste tipo complexo ou uma coluna desta tabela. Nesta sessão será descrito como os componentes que formam a estrutura de um BDR podem ser convertidos para os componentes que formam a estrutura de um grafo de dados do SDO e vice-versa, de forma que não seja perdida a semântica que cada componente representa em sua estrutura.
39 Tipos Complexos e Tabelas Uma entidade complexa caracteriza-se por ser formada por outras entidades. Um objeto complexo contem um número arbitrário de campos, cada um armazenando valores de dados atômicos ou referências para outros objetos [...] (Lange et al, 1999, p. 14, tradução nossa). Um tipo complexo em SDO é o componente que define uma entidade complexa em um grafo de dados do SDO, ou seja, uma entidade que é formada por outras entidades. Ele possui um nome que o identifica em sua estrutura. O mesmo ocorre em um BDR, porém este componente é conhecido como tabela, a qual define uma entidade complexa, ou seja, uma entidade que é formada por outras entidades. A tabela também é identificada por um nome em sua estrutura. De acordo com Beatty et al (2006), uma classe pode ser representada por um tipo complexo em SDO. E segundo Powell (2006), uma classe equivale a uma tabela em um BDR. Logo, um tipo complexo em grafo de dados do SDO equivale a uma tabela em um BDR. Figura 5 - Equivalência entre tipo complexo e tabela Logo, uma vez definida a equivalência entre tipos complexos e tabelas, podemos concluir que um objeto de dados, que é uma instância de um tipo complexo, equivale a uma tupla, que é a instância de uma tabela. Figura 6 - Equivalência entre objeto de dados e tupla
Introdução a Banco de Dados Aula 03. Prof. Silvestri www.eduardosilvestri.com.br
Introdução a Banco de Dados Aula 03 Prof. Silvestri www.eduardosilvestri.com.br Arquiteturas de Banco de Dados Arquiteturas de BD - Introdução Atualmente, devem-se considerar alguns aspectos relevantes
Leia maisLINGUAGEM SQL. DML - Linguagem de Manipulação de Dados
LINGUAGEM SQL Structured Query Language, ou Linguagem de Consulta Estruturada ou SQL, é uma linguagem de pesquisa declarativa para banco de dados relacional (base de dados relacional). Muitas das características
Leia maisMAPEAMENTO OBJETO RELACIONAL: UM ESTUDO DE CASO
MAPEAMENTO OBJETO RELACIONAL: UM ESTUDO DE CASO UTILIZANDO O HIBERNATE Rafael Laurino GUERRA, Dra. Luciana Aparecida Martinez ZAINA Faculdade de Tecnologia de Indaiatuba FATEC-ID 1 RESUMO Este artigo apresenta
Leia maisConceitos 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 maisSISTEMAS DE INFORMAÇÃO GERENCIAIS
SISTEMAS DE INFORMAÇÃO GERENCIAIS Aluno: Luiza Cavalcanti Marques Orientador: Silvio Hamacher Introdução A modelagem e a utilização de bancos de dados em atividades gerenciais têm sofrido um aumento significativo
Leia maisBanco de Dados. Um momento crucial na organização dos dados é a forma com que cadastramos estes dados, a estrutura de armazenamento que criamos.
Banco de Dados O que é um Banco de Dados? Este assunto é muito vasto, tentaremos resumi-lo para atender as questões encontradas em concursos públicos. Já conhecemos o conceito de dado, ou seja, uma informação
Leia mais2 Engenharia de Software
20 2 Engenharia de Software 2.1 Design de Sistemas Orientados a Objetos Os Sistemas Orientados a Objetos não são mais novidade hoje em dia já estando há muitos anos no mercado. A orientação a objetos permite
Leia maisLINGUAGEM 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 maisUnidade 8: Padrão MVC e DAO Prof. Daniel Caetano
Programação Servidor para Sistemas Web 1 Unidade 8: Padrão MVC e DAO Prof. Daniel Caetano Objetivo: Apresentar a teoria por trás dos padrões na construção de aplicações Web. INTRODUÇÃO Nas aulas anteriores
Leia maisUma Abordagem sobre Mapeamento Objeto Relacional com Hibernate
Uma Abordagem sobre Mapeamento Objeto Relacional com Hibernate Luis Gustavo Zandarim Soares 1, Késsia Rita da Costa Marchi 1 1 Universidade Paranaense (Unipar) Paraná PR Brasil luisgustavo@live.co.uk,
Leia maisServiços Web: Arquitetura
Sistemas Distribuídos Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação Ciência e Tecnologia do Maranhão Objetivos Nesta aula
Leia maisMAPEAMENTO 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 maisUniversidade Federal de Santa Catarina Departamento de Informática e Estatística Bacharelado em Sistemas de Informação
Universidade Federal de Santa Catarina Departamento de Informática e Estatística Bacharelado em Sistemas de Informação Rafael Strecker Coelho de Souza ANÁLISE E COMPARATIVO DE FERRAMENTAS CMS COMPATÍVEIS
Leia maisSQL. Curso Prático. Celso Henrique Poderoso de Oliveira. Novatec
SQL Curso Prático Celso Henrique Poderoso de Oliveira Novatec 1 Introdução Desde o início da utilização dos computadores, sabemos que um sistema é feito para aceitar entrada de dados, realizar processamentos
Leia maisPersistê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 maisOFICINA DA PESQUISA PROGRAMAÇÃO APLICADA À CIÊNCIA DA COMPUTAÇÃO
OFICINA DA PESQUISA PROGRAMAÇÃO APLICADA À CIÊNCIA DA COMPUTAÇÃO Prof. Msc. Carlos José Giudice dos Santos carlos@oficinadapesquisa.com.br www.oficinadapesquisa.com.br Linguagens de Programação Material
Leia maisBanco de Dados Orientado a Objetos
Banco de Dados Orientado a Objetos MODELAGEM, ANÁLISE, PROJETO e CLASSIFICAÇÃO Interação combinando lógica, através de objetos que contém os dados. Estes divididos conforme seus tipos e métodos (classe),
Leia maisO Gerenciamento de Documentos Analógico/Digital
Tipos de GED: Document imaging Document management Document Imaging / Document Management O Gerenciamento de Documentos Analógico/Digital Mundo analógico Criação Revisão Processamento Arquivo Mundo digital
Leia maisProf. Antonio Almeida de Barros Jr. Prof. Antonio Almeida de Barros Junior
Prof. Antonio Almeida de Barros Jr. Introdução Dados Informações Banco de Dados Conceitos Básicos em Bancos de Dados Definição BD - Banco de Dados SGBD - Sistema de Gerenciamento de BD Programa de Aplicação
Leia maisMetadados. 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 maisAula 2 Revisão 1. Ciclo de Vida. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW
Ciclo de Vida Aula 2 Revisão 1 Processo de Desenvolvimento de Software 1 O Processo de desenvolvimento de software é um conjunto de atividades, parcialmente ordenadas, com a finalidade de obter um produto
Leia maisObjetivos Específico
Banco de Dados Ementa (DBA) Conceitos Gerais sobre Banco de Dados Instalação e configuração da Ferramenta de Banco de Dados. Elaboração de projeto de Banco de Dados. Implementação do projeto de Banco de
Leia maisRoteiro. Modelo de Dados Relacional. Processo de Projeto de Banco de Dados. BCC321 - Banco de Dados I. Ementa. Posicionamento.
Roteiro Modelo de Dados Relacional Posicionamento Luiz Henrique de Campos Merschmann Departamento de Computação Universidade Federal de Ouro Preto luizhenrique@iceb.ufop.br www.decom.ufop.br/luiz Introdução
Leia maisMicrosoft Access INTRODUÇÃO. Sumário INTRODUÇÃO INTRODUÇÃO INTRODUÇÃO INTRODUÇÃO. O que é Banco de Dados?
Microsoft Access Sumário 1. 2. ABRINDO UM BANCO DE DADOS PRONTO 3. ASSISTENTE DE BANCO DE DADOS 4. NAVEGANDO PELO BANCO DE DADOS 5. CRIANDO UM BANCO DE DADOS DESDE O INÍCIO 6. CRIANDO COSULTAS 7. CRIANDO
Leia mais6 Ferramenta de Apoio ao Processo de Desenvolvimento de Sistemas Multi-Agentes
6 Ferramenta de Apoio ao Processo de Desenvolvimento de Sistemas Multi-Agentes A ferramenta MAS-ML Tool surgiu com o objetivo de viabilizar o processo de desenvolvimento proposto na Seção anterior, implementando
Leia maisModelo Relacional. 2. Modelo Relacional (Lógico)
Modelo Relacional 2. Modelo Relacional (Lógico) Derivado do modelo conceitual; Depende do SGBD escolhido; Independe dos dispositivos de armazenamento; Primitivas: tabelas, linhas e colunas; Transformação
Leia maisNeste tópico, abordaremos a funcionalidade de segurança fornecida com o SAP Business One.
Neste tópico, abordaremos a funcionalidade de segurança fornecida com o SAP Business One. 1 Ao final deste tópico, você estará apto a: Descrever as funções de segurança fornecidas pelo System Landscape
Leia maisFigura 1: tela inicial do BlueControl COMO COLOCAR A SALA DE INFORMÁTICA EM FUNCIONAMENTO?
Índice BlueControl... 3 1 - Efetuando o logon no Windows... 4 2 - Efetuando o login no BlueControl... 5 3 - A grade de horários... 9 3.1 - Trabalhando com o calendário... 9 3.2 - Cancelando uma atividade
Leia mais3.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 maisagility made possible
RESUMO DA SOLUÇÃO Utilitário ConfigXpress no CA IdentityMinder a minha solução de gerenciamento de identidades pode se adaptar rapidamente aos requisitos e processos de negócio em constante mudança? agility
Leia maisO modelo Entidade-Relacionamento. Agenda: -Modelagem de dados utilizando O Modelo Entidade-Relacionamento
O modelo Entidade-Relacionamento Agenda: -Modelagem de dados utilizando O Modelo Entidade-Relacionamento 1 Antes de começarmos: A modelagem conceitual é uma fase muito importante no plamejamento de um
Leia maisNúcleo de Pós Graduação Pitágoras
Núcleo de Pós Graduação Pitágoras Professor: Fernando Zaidan Disciplina: Modelagem e Projeto de Banco de Dados Especialização em Tecnologia da Informação - Ênfases Março- 2009 1 Material usado na montagem
Leia maisMANUAL DA SECRETARIA
MANUAL DA SECRETARIA Conteúdo Tela de acesso... 2 Liberação de acesso ao sistema... 3 Funcionários... 3 Secretaria... 5 Tutores... 7 Autores... 8 Configuração dos cursos da Instituição de Ensino... 9 Novo
Leia maisGuia de utilização da notação BPMN
1 Guia de utilização da notação BPMN Agosto 2011 2 Sumário de Informações do Documento Documento: Guia_de_utilização_da_notação_BPMN.odt Número de páginas: 31 Versão Data Mudanças Autor 1.0 15/09/11 Criação
Leia maisChaves. Chaves. O modelo relacional implementa dois conhecidos conceitos de chaves, como veremos a seguir:
Chaves 1 Chaves CONCEITO DE CHAVE: determina o conceito de item de busca, ou seja, um dado que será empregado nas consultas à base de dados. É um conceito lógico da aplicação (chave primária e chave estrangeira).
Leia maisBanco 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 maisArmazenamento e Pesquisa de Topic Maps em Banco de Dados Relacional
Armazenamento e Pesquisa de Topic Maps em Banco de Dados Relacional Lucas Indrusiak, Renato Azevedo, Giovani R. Librelotto UNIFRA Centro Universitário Franciscano Rua dos Andradas, 1614 97.010-032 Santa
Leia maisUNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 14 PROFª BRUNO CALEGARO
UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 14 PROFª BRUNO CALEGARO Santa Maria, 01 de Novembro de 2013. Revisão aula passada Projeto de Arquitetura Decisões de projeto de Arquitetura
Leia maisUNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO DEPARTAMENTO DE ESTATÍSTICA E INFORMÁTICA BACHARELADO EM SISTEMAS DE INFORMAÇÃO RAPID APPLICATION DEVELOPMENT
UNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO DEPARTAMENTO DE ESTATÍSTICA E INFORMÁTICA BACHARELADO EM SISTEMAS DE INFORMAÇÃO RAPID APPLICATION DEVELOPMENT Disciplina: Modelagem a Programação Orientada a Objetos
Leia maisIntrodução ao Paradigma Orientado a Objetos. Principais conceitos
Introdução ao Paradigma Orientado a Objetos Principais conceitos Paradigmas de Programação PROGRAMAÇÃO ESTRUTURADA X PROGRAMAÇÃO ORIENTADA A OBJETOS Paradigma Programação estruturada Na programação estrutura
Leia maisBem-vindo ao tópico sobre administração de listas de preços.
Bem-vindo ao tópico sobre administração de listas de preços. Nesse tópico, você aprenderá a administrar listas de preços no SAP Business One. Sua empresa atualiza múltiplas listas de preços para fornecer
Leia maisHoje é inegável que a sobrevivência das organizações depende de dados precisos e atualizados.
BANCO DE DADOS Universidade do Estado de Santa Catarina Centro de Ciências Tecnológicas Departamento de Ciência da Computação Prof. Alexandre Veloso de Matos alexandre.matos@udesc.br INTRODUÇÃO Hoje é
Leia maisArquitetura de Banco de Dados
Arquitetura de Banco de Dados Daniela Barreiro Claro MAT A60 DCC/IM/UFBA Arquitetura de Banco de dados Final de 1972, ANSI/X3/SPARC estabeleceram o relatório final do STUDY GROUP Objetivos do Study Group
Leia maisDados. Qualquer elemento (aspecto, fato, medida etc.) representativo, disponível e coletável na realidade. fatos no estado bruto, conforme Platão;
Dados Os Dados são os fatos em sua forma primária, como observamos no mundo. Qualquer elemento (aspecto, fato, medida etc.) representativo, disponível e coletável na realidade. fatos no estado bruto, conforme
Leia maisUnidade II MODELAGEM DE PROCESSOS
Unidade II 3 MODELAGEM DE SISTEMAS 1 20 A fase de desenvolvimento de um novo sistema de informação (Quadro 2) é um momento complexo que exige um significativo esforço no sentido de agregar recursos que
Leia mais4- PROJETO DE BANCO DE DADOS
4- PROJETO DE BANCO DE DADOS OBJETIVOS DE ENSINO: 4 - Empregar a técnica da modelagem de dados no projeto de banco de dados. OBJETIVOS OPERACIONAIS Ao final desta unidade o aluno será capaz de: 4.1 - Definir
Leia maisManual das planilhas de Obras v2.5
Manual das planilhas de Obras v2.5 Detalhamento dos principais tópicos para uso das planilhas de obra Elaborado pela Equipe Planilhas de Obra.com Conteúdo 1. Gerando previsão de custos da obra (Módulo
Leia maisOrientaçã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 maisSISTEMA GERENCIADOR DE BANCO DE DADOS
BANCO DE DADOS Universidade do Estado de Santa Catarina Centro de Ciências Tecnológicas Departamento de Ciência da Computação Prof. Alexandre Veloso de Matos alexandre.matos@udesc.br SISTEMA GERENCIADOR
Leia maisGBD PROF. ANDREZA S. AREÃO
GBD PROF. ANDREZA S. AREÃO Dado, Informação e Conhecimento DADO: Estímulos captados pelos sentidos humanos; Símbolos gráficos ou sonoros; Ocorrências registradas (em memória, papel, etc.); Indica uma situação
Leia maisEngenharia de Software II
Engenharia de Software II Aula 28 Revisão para a Prova 2 http://www.ic.uff.br/~bianca/engsoft2/ Aula 28-28/07/2006 1 Matéria para a Prova 2 Gestão de projetos de software Conceitos (Cap. 21) Métricas (Cap.
Leia maisSistemas Operacionais. Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com
Sistemas Operacionais Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Estruturas de Sistemas Operacionais Um sistema operacional fornece o ambiente no qual os programas são executados. Internamente,
Leia maisSQL APOSTILA INTRODUÇÃO A LINGUAGEM SQL
SQL APOSTILA INTRODUÇÃO Uma linguagem de consulta é a linguagem por meio da qual os usuários obtêm informações do banco de dados. Essas linguagens são, tipicamente, de nível mais alto que as linguagens
Leia maisBANCO DE DADOS. Isac Aguiar isacaguiar.com.br isacaguiar@gmail.com
BANCO DE DADOS Isac Aguiar isacaguiar.com.br isacaguiar@gmail.com Contexto Fazem parte do nosso dia a dia: Operações bancárias Matrícula na universidade Reserva de hotel Controle de biblioteca Comércio
Leia maisProgramação com acesso a BD. 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 Introdução BD desempenha papel crítico em todas as áreas em que computadores são utilizados: Banco: Depositar ou retirar
Leia maisAutoria:Aristófanes Corrêa Silva Adaptação: Alexandre César M de Oliveira
Unified Modeling Language (UML) Universidade Federal do Maranhão UFMA Pós Graduação de Engenharia de Eletricidade Grupo de Computação Assunto: Introdução Autoria:Aristófanes Corrêa Silva Adaptação: Alexandre
Leia maisTechProf Documento de Arquitetura
TechProf Projeto SuporteProf Versão 1.0 15 de junho de 2016 Responsáveis: Adelson Santos de Melo Filho, Edvaldo Nicolau da Silva, Moisés Luis da Silva Histórico de Revisões Data Versão Descrição Autor
Leia maisSQL Linguagem de Definição de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri
SQL Linguagem de Definição de Dados Banco de Dados SQL Structured Query Language Uma das mais importantes linguagens relacionais (se não a mais importante) Exemplos de SGBD que utilizam SQL Oracle Informix
Leia maisUNIVERSIDADE FEDERAL DE SANTA MARIA - UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN BANCO DE DADOS II
UNIVERSIDADE FEDERAL DE SANTA MARIA - UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN BANCO DE DADOS II BANCO DE DADOS II AULA 1 Linguagem SQL Linguagem de definição de dados (DDL) DISCIPLINA: Banco de Dados
Leia maisGerenciamento da Integração (PMBoK 5ª ed.)
Gerenciamento da Integração (PMBoK 5ª ed.) O PMBoK diz que: O gerenciamento da integração do projeto inclui os processos e as atividades necessárias para identificar, definir, combinar, unificar e coordenar
Leia maisBanco de Dados. Marcio de Carvalho Victorino www.dominandoti.eng.br. Exercícios SQL
Banco de Dados Exercícios SQL 1 TRF (ESAF 2006) 32. Analise as seguintes afirmações relacionadas a Bancos de Dados e à linguagem SQL: I. A cláusula GROUP BY do comando SELECT é utilizada para dividir colunas
Leia maisGerenciamento de Entrada e Saída Hélio Crestana Guardia e Hermes Senger
Gerenciamento de Entrada e Saída Hélio Crestana Guardia e Hermes Senger O controle da entrada e saída (E/S ou I/O, input/output) de dados dos dispositivos é uma das funções principais de um sistema operacional.
Leia maisProgramação Orientada a Objeto
Programação Orientada a Objeto Classes, Atributos, Métodos e Objetos Programação de Computadores II Professor: Edwar Saliba Júnior 1) Java é uma linguagem orientada a objetos. Para que possamos fazer uso
Leia maisCADERNOS DE INFORMÁTICA Nº 1. Fundamentos de Informática I - Word 2010. Sumário
CADERNO DE INFORMÁTICA FACITA Faculdade de Itápolis Aplicativos Editores de Texto WORD 2007/2010 Sumário Editor de texto... 3 Iniciando Microsoft Word... 4 Fichários:... 4 Atalhos... 5 Área de Trabalho:
Leia maisNORMA TÉCNICA PARA IMPLANTAÇÃO DE NOVOS SISTEMAS OU APLICAÇÕES NO BANCO DE DADOS CORPORATIVO
NORMA TÉCNICA PARA IMPLANTAÇÃO DE NOVOS SISTEMAS OU APLICAÇÕES NO BANCO DE DADOS CORPORATIVO Referência: NT-AI.04.02.01 http://www.unesp.br/ai/pdf/nt-ai.04.02.01.pdf Data: 27/07/2000 STATUS: EM VIGOR A
Leia maisSistemas Operacionais. Curso Técnico Integrado Profa: Michelle Nery
Sistemas Operacionais Curso Técnico Integrado Profa: Michelle Nery Conteúdo Programático CONTAS DE E GRUPOS DE O Microsoft Management Console - MMC Permissões de Segurança de um Console Contas de Usuários
Leia mais3. Fase de Planejamento dos Ciclos de Construção do Software
3. Fase de Planejamento dos Ciclos de Construção do Software A tarefa de planejar os ciclos de construção do software pode partir de diretrizes básicas. Estas diretrizes visam orientar que os ciclos de
Leia maisTabelas vista de estrutura
Tabelas vista de estrutura A vista de estrutura permite definir a configuração dos dados Vamos adicionar os restantes campos à tabela carros, de acordo com o modelo de dados feito no papel 47 Tabelas vista
Leia maisIntegração de sistemas utilizando Web Services do tipo REST
Integração de sistemas utilizando Web Services do tipo REST Jhonatan Wilson Aparecido Garbo, Jaime Willian Dias Universidade Paranaense (Unipar) Paranavaí PR Brasil jhowgarbo@gmail.com jaime@unipar.br
Leia maisBase de dados I. Uma base de dados é um simples repositório de informação relacionado com um determinado assunto ou finalidade
Base de dados I O que é? Uma base de dados é um simples repositório de informação relacionado com um determinado assunto ou finalidade Para que serve? Serve para gerir vastos conjuntos de informação de
Leia maisPara 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 maisO Sistema foi inteiramente desenvolvido em PHP+Javascript com banco de dados em MySQL.
Nome do Software: Gerenciador de Projetos Versão do Software: Gerenciador de Projetos 1.0.0 1. Visão Geral Este Manual de Utilização do Programa Gerenciador de Projetos via Web, tem por finalidade facilitar
Leia maisUFG - 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 6 EJB Enterprise Java
Leia maisNORMA TÉCNICA E PROCEDIMENTOS GERAIS PARA ADMINISTRAÇÃO DO BANCO DE DADOS CORPORATIVO
NORMA TÉCNICA E PROCEDIMENTOS GERAIS PARA ADMINISTRAÇÃO DO BANCO DE DADOS CORPORATIVO Referência: NT-AI.04.01.01 http://www.unesp.br/ai/pdf/nt-ai.04.01.01.pdf Data: 27/07/2000 STATUS: EM VIGOR A Assessoria
Leia maisManual do Usuário - ProJuris Web - Biblioteca Jurídica Página 1 de 20
As informações contidas neste documento estão sujeitas a alterações sem o prévio aviso, o que não representa um compromisso da Virtuem Informática. As pessoas, organizações ou empresas e eventos de exemplos
Leia maisBANCO DE DADOS. Fixação dos conteúdos Integridade Referencial Normalização Exercícios
BANCO DE DADOS Fixação dos conteúdos Integridade Referencial Normalização Exercícios BANCO DE DADOS X SGBD Banco de Dados: Um "banco de dados" pode ser definido como um conjunto de "dados" devidamente
Leia maisDescrição do Produto. Altus S. A. 1
Descrição do Produto O software MasterTool IEC é um ambiente completo de desenvolvimento de aplicações para os controladores programáveis da Série Duo. Esta ferramenta permite a programação e a configuração
Leia maisEspecificação do Trabalho
Especificação do Trabalho I. Introdução O objetivo deste trabalho é abordar a prática da programação orientada a objetos usando a linguagem Java envolvendo os conceitos de classe, objeto, associação, ligação,
Leia maisEspecificação do 3º Trabalho
Especificação do 3º Trabalho I. Introdução O objetivo deste trabalho é abordar a prática da programação orientada a objetos usando a linguagem Java envolvendo os conceitos de classe, objeto, associação,
Leia maisAPOSTILA DE EXEMPLO (Esta é só uma reprodução parcial do conteúdo)
APOSTILA DE EXEMPLO (Esta é só uma reprodução parcial do conteúdo) 1 Índice Aula 1...3 Introdução... 3 Formatações de tabela... 4 Função HOJE... 6 Função SE... 6 Exercícios... 7 Exercício de Fixação...
Leia maisProjuris Enterprise Visão Geral da Arquitetura do Sistema
Projuris Enterprise Visão Geral da Arquitetura do Sistema Março/2015 Página 1 de 17 Projuris Enterprise Projuris Enterprise é um sistema 100% Web, com foco na gestão de contencioso por empresas ou firmas
Leia maisApostilas OBJETIVA Atendente Comercial / Carteiro / Op. Triagem e Transbordo CORREIOS - Concurso Público 2015 2º CADERNO. Índice
2º CADERNO Índice Pg. Microsoft Office: Excel 2010... Exercícios pertinentes... 02 63 Microsoft Office: Power Point 2010... Exercícios pertinentes... 104 146 Internet e Intranet. Conceitos básicos, navegadores
Leia maisHIBERNATE EM APLICAÇÃO JAVA WEB
HIBERNATE EM APLICAÇÃO JAVA WEB Raul Victtor Barbosa Claudino¹, Ricardo Ribeiro Rufino¹ ¹Universidade Paranaense (Unipar) Paranavaí PR Brasil victtor.claudino@gmail.com, ricardo@unipar.br Resumo: Este
Leia maisO Processo de Engenharia de Requisitos
UNIVERSIDADE ESTADUAL PAULISTA INSTITUTO DE BIOCIÊNCIAS, LETRAS E CIÊNCIAS EXATAS DEPARTAMENTO DE CIÊNCIAS DE COMPUTAÇÃO E ESTATÍSTICA O Processo de Engenharia de Requisitos Engenharia de Software 2o.
Leia maisBACHARELADO EM SISTEMAS DE INFORMAÇÃO EaD UAB/UFSCar Sistemas de Informação - prof. Dr. Hélio Crestana Guardia
O Sistema Operacional que você usa é multitasking? Por multitasking, entende-se a capacidade do SO de ter mais de um processos em execução ao mesmo tempo. É claro que, num dado instante, o número de processos
Leia maisManual do Usuário. Protocolo
Manual do Usuário Protocolo Índice de capítulos Parte I - Processos............................... 01 1 - Buscar................................ 01 2 - Listar................................ 02 3 - Abertura..............................
Leia maisUNICE Ensino Superior Linguagem de Programação Ambiente Cliente Servidor.
UNICE Ensino Superior Linguagem de Programação Ambiente Cliente Servidor. Modelo Cliente/Servidor Por HIARLY ALVES Fortaleza - CE Apresentação. O mais famoso tipo de arquitetura utilizada em redes de computadores
Leia maisProfa. Daniela Barreiro Claro
Profa. Daniela Barreiro Claro Modelar é criar representações do mundo real A modelagem relacional pode ser representada via MER (Modelo de Entidade Relacionamento) O MER define estruturas e restrições
Leia maisDisciplina: Unidade III: Prof.: E-mail: Período:
Encontro 08 Disciplina: Sistemas de Banco de Dados Unidade III: Modelagem Lógico de Dados Prof.: Mario Filho E-mail: pro@mariofilho.com.br Período: 5º. SIG - ADM Relembrando... Necessidade de Dados Projeto
Leia maisUsando o Conference Manager do Microsoft Outlook
Usando o Conference Manager do Microsoft Outlook Maio de 2012 Conteúdo Capítulo 1: Usando o Conference Manager do Microsoft Outlook... 5 Introdução ao Conference Manager do Microsoft Outlook... 5 Instalando
Leia maisModelagem de Dados UNIDADE DE REVISÃO E RECUPERAÇÃO
Modelagem de Dados UNIDADE DE REVISÃO E RECUPERAÇÃO Organizamos esta unidade para orientá-lo na revisão dos conteúdos trabalhados ao longo da disciplina. Siga as orientações desta apresentação, reveja
Leia mais1. Domínio dos Atributos
Structure Query Language SQL Guilherme Pontes lf.pontes.sites.uol.com.br 1. Domínio dos Atributos Por domínio, ou tipo, pode-se entender como a maneira como determinado atributo (ou campo, se tratando
Leia mais6 Conclusões e próximos passos
8 6 Conclusões e próximos passos Este capítulo é divido em duas seções. A primeira descreve as principais conclusões sobre o trabalho realizado. Na segunda seção é mostrado um conjunto de oportunidades
Leia maisSimulado Banco de Dados I Bimestre 1 Capítulo 1 Projeto Lógico de Banco de Dados
Simulado Banco de Dados I Bimestre 1 Capítulo 1 Projeto Lógico de Banco de Dados 01) Defina com suas próprias palavras: a) Banco de Dados b) Sistema Gerenciador de Banco de Dados c) Sistema de Banco de
Leia maisPLANO DE CONTINGÊNCIA DE BANCO DE DADOS
PLANO DE CONTINGÊNCIA DE BANCO DE DADOS Pedro Henrique Jussani 1, Luiz Fernando Braga Lopes 1 1 Universidade Paranaense (UNIPAR) Paranavaí PR Brasil pedrohenriquejussani@hotmail.com, lfbraga@unipar.br
Leia mais2 Ferramentas Utilizadas
2 Ferramentas Utilizadas Esta dissertação utiliza vários outros trabalhos para implementar os mecanismos de adaptação abordados. Essas ferramentas são descritas nas seções seguintes. 2.1 Lua Lua [7, 8]
Leia maisDesenvolvendo 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 maisPrincipais Comandos SQL Usados no MySql
Principais Comandos SQL Usados no MySql O que é um SGBD? Um Sistema Gerenciador de Banco de Dados (como no Brasil) ou Sistema Gestor de Base de Dados (SGBD) é o conjunto de programas de computador (softwares)
Leia mais