Éverton Alves de Oliveira. Banco de Dados Distribuído no Desenvolvimento de Aplicações Comerciais

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

Download "Éverton Alves de Oliveira. Banco de Dados Distribuído no Desenvolvimento de Aplicações Comerciais"

Transcrição

1 Éverton Alves de Oliveira Banco de Dados Distribuído no Desenvolvimento de Aplicações Comerciais Londrina 2006

2 Éverton Alves de Oliveira Banco de Dados Distribuído no Desenvolvimento de Aplicações Comerciais Monografia apresentada ao Curso de Pós- Graduação em Engenharia de Software e Banco de Dados da Universidade Estadual de Londrina, como requisito parcial à obtenção do título de Especialista. Orientador: Prof. Ms. Daniel dos Santos Kaster Londrina 2006 I

3 Éverton Alves de Oliveira Banco de Dados Distribuído no Desenvolvimento de Aplicações Comerciais Monografia apresentada ao Curso de Pós- Graduação em Engenharia de Software e Banco de Dados da Universidade Estadual de Londrina, como requisito parcial à obtenção do título de Especialista. COMISSÃO EXAMINADORA Prof. Ms. Daniel dos Santos Kaster Universidade Estadual de Londrina Prof. Ms. Rodolfo Miranda de Barros Universidade Federal do Rio de Janeiro Prof. Ms. Fábio Cezar Martins Universidade Estadual de Londrina Londrina, de de 2007 II

4 DEDICATÓRIA Dedicado à minha família que me apoiou e a amigos que me incentivaram e contribuíram para tornar possível mais esta etapa de aprendizado em minha trajetória. III

5 OLIVEIRA, Éverton A.: Banco de Dados Distribuído no Desenvolvimento de Aplicações Comerciais Monografia (Especialização em Engenharia de Software e Banco de Dados) - Universidade Estadual de Londrina. RESUMO A tecnologia de Banco de Dados Distribuído une as tecnologias de redes de comunicação e banco de dados, dando origem a um poderoso sistema distribuído que tem como principais finalidades proporcionar maior segurança e disponibilidade dos dados e tornar possível a integração de dados entre empresas geograficamente distantes e que utilizam diferentes estruturas de armazenamento de dados. No capítulo introdutório deste trabalho são apresentados de forma sintetizada os conceitos que constituem as bases para a compreensão desta tecnologia. Os capítulos subseqüentes irão aprofundar os conceitos de fragmentação e replicação de dados, apresentar estratégias de fragmentação e abordar os desafios da tecnologia no que se refere a transações e consultas distribuídas. Por fim, é apresentado um estudo de caso que demonstra a implementação de um sistema de banco de dados distribuído aplicando os conceitos estudados. Palavras-chave: Banco de dados, fragmentação, replicação, distribuição, site. IV

6 OLIVEIRA, Éverton A.: Distributed Database in Development of Commercial Applications Monografia (Especialização em Engenharia de Software e Banco de Dados) - Universidade Estadual de Londrina. ABSTRACT The technology of Distributed Database unites the technologies of communication networks and databases, creating a powerful distributed system which its main purpose is to provide more safety and readiness of the data and turn possible the integration of data among companies geographically distant which use different structures of data storage. In the introduction chapter of this article, the concepts are presented in a synthesized way that constitutes the bases for the understanding of this technology. The next chapters will deepen the fragmentation concepts and response of data, present fragmentation strategies and approach the challenges of the technology in what refers to transactions and distributed queries. Finally, it is presented a study case that demonstrates the implementation of a system of distributed database applying the studied concepts. Keywords: Database, fragmentation, replication, distribution, site. V

7 SUMÁRIO 1. INTRODUÇÃO OBJETIVOS Objetivo geral Objetivos específicos JUSTIFICATIVA PRESSUPOSTOS SISTEMAS DE BANCO DE DADOS DISTRIBUÍDOS PROMESSAS DE SBDDS Independência de dados Transparência de rede Transparência de replicação Transparência de fragmentação Quem deve proporcionar transparência? Confiabilidade em transações distribuídas FATORES DE COMPLICAÇÃO Processamento distribuído de consultas Controle distribuído da concorrência Gerenciamento distribuído de impasses Bancos de dados heterogêneos PROJETO DE BANCO DE DADOS DISTRIBUÍDO RAZÕES PARA A FRAGMENTAÇÃO GRAU DE FRAGMENTAÇÃO ALTERNATIVAS DE FRAGMENTAÇÃO Fragmentação horizontal Fragmentação vertical REGRAS DE FRAGMENTAÇÃO ALOCAÇÃO PROCESSAMENTO DE CONSULTAS DISTRIBUÍDAS TRANSFORMAÇÃO DE CONSULTA LOCALIZAÇÃO DE DADOS DISTRIBUÍDOS TRANSAÇÕES DISTRIBUÍDAS PROPRIEDADES DE TRANSAÇÕES CONTROLE DE TRANSAÇÕES DISTRIBUÍDAS CONTROLE DISTRIBUÍDO DA CONCORRÊNCIA Algoritmos baseados em bloqueios Algoritmos baseados em timbre de hora Gerenciamento de impasses Algoritmos otimistas para controle de concorrência CONFIABILIDADE DE SGBDS DISTRIBUÍDOS...36 VI

8 6.1 PROTOCOLOS DE EFETIVAÇÃO Efetivação em duas fases Efetivação em três fases ESTUDO DE CASO CONCEITOS BÁSICOS CONFIGURANDO SERVIDORES CRIANDO O BANCO DE DADOS CRIANDO PUBLICAÇÕES CONFIGURANDO ASSINATURAS CONCLUSÃO REFERÊNCIAS BIBLIOGRÁFICAS...49 VII

9 LISTA DE ABREVIATURAS SBDD SGBD SQL ACID 2PC 3PC Sistema de Banco de Dados Distribuído Sistema Gerenciador de Bancos de Dados Structured Query Language Atomicidade, consistência, isolamento e durabilidade two-phase commit three-phase commit VIII

10 LISTA DE FIGURAS Figura 1.1: Modelagem do banco de dados da Instituição financeira...17 Figura 4.1: Modelo de fragmentação do banco dados...34 Figura 4.2: Estratégia 1 de processamento de consulta...35 Figura 4.3: Estratégia 2 de processamento de consulta...35 Figura 7.1: Banco de dados fragmentado e replicado...52 IX

11 LISTA DE TABELAS Tabela 3.1: Fragmentação horizontal da relação CLIENTE...26 Tabela 3.2: Fragmentação horizontal da relação CONTA...27 Tabela 3.3: Fragmentação vertical da relação CONTA...28 Tabela 3.4: Comparação entre alternativas de replicação...30 Tabela 7.1: Dicionário de dados do banco de dados Instituição Financeira...56 X

12 1. Introdução O maior objetivo de um sistema bancos de dados é manter a integridade dos dados e não centralizá-los. Os Sistemas de Bancos de Dados Distribuídos (SBDDs) são a união de duas tecnologias que podem ser consideradas de propósitos opostos dentro da computação: o sistema de bancos dados, que visa promover a integração dos dados operacionais de um empreendimento e proporcionar acesso centralizado, e as redes de comunicação, que promove um modo de trabalho que se opõem a todos os esforços de centralização. Um banco de dados distribuído constitui de um conjunto de bancos de dados logicamente inter-relacionados, distribuídos em diversos servidores através de uma rede de comunicação. Cada servidor armazena uma parte do banco de dados e é desejável que uma determinada partição dos dados esteja armazenada em mais de um local. Uma vez que cada servidor não opera sobre o banco de dados inteiro, mas apenas sobre parte dele, obtém-se maior performance na manutenção dos dados. Quando uma consulta ao banco de dados necessita de dados que estão presentes em diversos sites, é possível distribuir a consulta de modo que cada site processe uma parte dela, fazendo uso de processamento paralelo, o que também contribui para o ganho de performance. E ainda, o fato de uma partição de dados estar replicada em mais de um site, proporciona maior disponibilidade dos dados no sistema, pois ainda que ocorra uma falha em um dos sites, os dados armazenados por ele podem ser encontrados em outro local. A tecnologia de Banco de Dados Distribuídos não é popularmente utilizada por ser de difícil implementação. Todas as dificuldades enfrentadas em um sistema de banco de dados centralizado são potencializadas em um contexto distribuído, pois como se trata de um sistema distribuído através de uma rede, existem os problemas relacionados à comunicação e ao tráfego da rede. Outro agravante é o fato de existirem cópias de uma determinda porção de dados em diversos locais, o que proporciona maior dificuldade na manutenção da consistência entre todas as réplicas, pois uma única transação pode estar sendo executada em diversos sites e atualizando várias réplicas de um mesmo fragmento de dados. 1

13 1.1 Objetivos Objetivo geral O objetivo deste trabalho é introduzir os conceitos básicos para a compreensão da tecnologia de bancos de dados distribuídos, bem como apresentar um caso de sua utilização e a aplicação dos conceitos apresentados Objetivos específicos Relacionar as propostas da tecnologia de banco de dados distribuído; Definir os conceitos básicos de fragmentação e replicação de dados; Apresentar os conceitos e a complexidade de transações e consultas no contexto distribuído; Apresentar um estudo de caso de implementação da tecnologia de banco de dados distribuído utilizando o Microsoft SQL Server Justificativa A tecnologia de bancos de dados distribuídos é uma solução utilizada tipicamente por grandes corporações, nas quais a total segurança e disponibilidade dos seus dados são fatores críticos. O conhecimento desta tecnologia pode oferecer ao profissional de computação a possibilidade de desenvolver sistemas comerciais voltados para empresas constituídas de diversas unidades filiais e/ou setores, distanciados geograficamente, e que visam integração de seus dados. 1.3 Pressupostos Considera-se o prévio conhecimento das tecnologias de bancos de dados e redes de computadores no contexto de desenvolvimento de sistemas computacionais. 2

14 Esta monografia está organizada da seguinte forma: o capítulo 2 apresenta resumidamente os conceitos básicos, as propostas e os desafios a serem enfrentado pela tecnologia de Banco de Dados Distribuídos. O capítulo 3 aprofunda os conceitos de fragmentação e replicação de dados bem como as técnicas existentes. O capítulo 4 trata do processamento distribuído de consultas, seguido do capítulo 5 que aborda as características e dificuldades das transações distribuídas. O capítulo 6 descreve os protocolos de efetivação de transações distribuídas e por fim, o capítulo 7 demonstra utilizando o SGDB Microsoft SQL Server 2000 um estudo de caso de utilização desta tecnologia, empregando os conceitos apresentados. 3

15 2. Sistemas de Banco de Dados Distribuídos O termo processamento distribuído talvez seja o termo mais excessivamente utilizado em informática nos últimos anos para se referir a sistemas tão diversos quanto sistemas de multiprocessadores, processamento de dados distribuídos e redes de computadores. Será considerada uma definição de processamento distribuído de um modo que leva a compreensão do que é um sistema de banco de dados distribuído. A definição funcional usada para um sistema de computação distribuída estabelece que ele consiste em diversos elementos autônomos de processamento que estão interconectados por uma rede de computadores que cooperam entre si na execução de suas tarefas [Özsu, M.; Valduriez, 2001]. Mas o que pode ser distribuído em um sistema de computação distribuída? Um dos itens que pode ser distribuído é a lógica de processamento. De fato, a definição de um sistema de computação distribuída dada anteriormente pressupõe implicitamente que a lógica de processamento ou os elementos de processamento são distribuídos. Outra distribuição possível é feita de acordo com a função. Várias funções de um sistema de computador poderiam ser delegadas a diversas peças de hardware ou software. Um terceiro modo de distribuição possível é de acordo com os dados. Os dados usados por vários aplicativos podem ser distribuídos em diversos locais (sites) de processamento. Por fim, o controle pode ser distribuído. O controle da execução de várias tarefas poderia ser distribuído, em lugar de ser executado por um único sistema de computador. Do ponto de vista de banco de dados distribuídos, esses modos de distribuição são todos necessários e importantes [Özsu, M.; Valduriez, 2001]. Outra pergunta importante a ser feita é: por que distribuir? Todavia, pode-se afirmar que a motivação fundamental por trás do processamento distribuído é ser capaz de dividir os problemas computacionais em fragmentos menores atribuindo-os a grupos de software distintos, que funcionem em computadores diferentes e produzam um sistema que atue sobre vários elementos de processamento, mas que possam colaborar de forma eficaz para a execução de uma tarefa comum. 4

16 Essa abordagem apresenta duas vantagens fundamentais sob um ponto de vista de economia. Primeiro, a computação distribuída proporciona um método econômico para se conseguir maior poder de computação, empregando-se vários elementos de processamento de maneira ótima. A segunda razão econômica é que a dissolução dos problemas em grupos menores atuando de forma mais ou menos autônoma talvez torne possível disciplinar o custo de desenvolvimento de software [Özsu, M.; Valduriez, 2001]. Os sistemas de banco de dados distribuídos também devem ser vistos dentro dessa estrutura e tratados como ferramentas que podem tornar o processamento distribuído mais fácil e eficiente e sem dúvida ajudar na tarefa de desenvolver software distribuído. Pode-se definir um banco de dados distribuído como uma coleção de vários bancos de dados logicamente inter-relacionados, distribuídos por uma rede de computadores, e é gerenciado por um sistema de software chamado sistema gerenciador de bancos de dados distribuídos (SGBDD) que tem o objetivo de tornar a distribuição transparente para o usuário. O conceito de transparência neste contexto se refere à separação entre a semântica de nível mais alto de um sistema e questões de implementação de nível mais baixo. Em outras palavras, um sistema transparente deve ser capaz de ocultar do usuário os detalhes de implementação [Özsu, M.; Valduriez, 2001]. 2.1 Promessas de SBDDs Para iniciar a compreensão dos conceitos que envolvem a tecnologia de sistemas de bancos de dados distribuídos e suas propostas, será utilizado um pequeno exemplo. Uma instituição financeira possui agências nas cidades A, B e C, ela necessita manter um banco de dados de seus clientes, suas contas correntes e das movimentações financeiras realizadas diariamente. Para isso, utiliza um banco de dados formado pelas relações CLIENTE, CONTA e MOVIMENTO, inter-relacionadas conforme a figura abaixo: 5

17 Figura 1.1: Modelagem do banco de dados da Instituição Financeira Se todos estes dados estivessem armazenados em um SGBD centralizado e fosse necessário realizar uma consulta que mostrasse o nome e saldo da conta corrente de todos os clientes cujas contas correntes sofreram movimentações no dia 06/01/2006, estes dados poderiam ser obtidos através da seguinte consulta SQL: SELECT DISTINCT CLIENTE.NOME, CONTA.SALDO FROM CLIENTE, CONTA, MOVIMENTO WHERE MOVIMENTO.DATA = '06/01/2006' AND MOVIMENTO.AGENCIA = CONTA.AGENCIA AND MOVIMENTO.CONTA = CONTA.NUMERO_CONTA AND CLIENTE.CODIGO_CLIENTE = CONTA.CODIGO_CLIENTE Porém, data a natureza distribuída dos negócios da instituição financeira, é preferível, sob essas circunstâncias, que os dados referentes às contas correntes da agência localizada na cidade A estejam armazenadas na cidade A, os dados referentes às contas correntes da agência localizada na cidade B estejam armazenadas na cidade B e assim por diante. Desse modo, cada uma das relações deve ser particionada e cada uma das partições armazenadas em um local diferente. Isso é conhecido como fragmentação. Além disso, talvez seja preferível duplicar alguns desses dados em outros locais por razões de desempenho e confiabilidade, utilizando assim o recurso conhecido como replicação. O resultado é um banco de dados distribuído que é fragmentado e replicado. O acesso totalmente transparente significa que os usuários ainda podem formular a consulta da 6

18 maneira especificada anteriormente, sem qualquer preocupação com a fragmentação, a localização ou a replicação dos dados, e deixar a cargo do sistema a resolução dessas questões [Silberschatz, A.; Korth, H.; Sudarshan, S., 1999]. Para um sistema lidar de maneira adequada com esse tipo de consulta sobre um banco de dados distribuído, fragmentado e replicado, ele precisa ser capaz de lidar com vários tipos diferentes de transparências Independência de dados A independência de dados se refere à imunidade de aplicativos do usuário a mudanças na definição na organização de dados, e vice-versa. É uma forma fundamental de transparência que procuramos dentro de um SGDB, é também o único importante dentro do contexto do SGDB centralizado [Özsu, M.; Valduriez, 2001]. A definição de dados pode ocorrer em dois níveis. Em um nível a estrutura lógica dos dados é especificada, conhecida como definição do esquema, e no outro nível a estrutura física dos dados é definida, referido como a descrição dos dados físicos. Portanto, são considerados dois tipos de independência de dados: independência de dados lógica e independência de dados física. A independência de dados lógica se refere à imunidade de aplicativos do usuário a mudanças na estrutura lógica do banco de dados. Em geral, se um aplicativo do usuário opera sobre um subconjunto dos atributos de uma relação, ela não deve ser afetada mais tarde quando novos atributos forem acrescentados à mesma relação [Özsu, M.; Valduriez, 2001]. A independência de dados física lida com a ocultação dos detalhes da estrutura de armazenamento em relação aos aplicativos do usuário. Quando um aplicativo do usuário é escrito, ele não deve se preocupar com os detalhes da organização física dos dados. Os dados poderiam estar organizados em tipos de discos diferentes, partes deles poderiam estar organizados de maneiras diferentes, ou poderiam até mesmo estar distribuídos em hierarquias de memória distintas. O aplicativo não deve se envolver com estas questões porque, conceitualmente, não há nenhuma diferença nas operações executadas sobre os dados [Özsu, M.; Valduriez, 2001]. 7

19 2.1.2 Transparência de rede Em sistemas de bancos de dados centralizados, o único recurso disponível que precisa ser isolado do usuário é o dado. Contudo, em um ambiente de gerenciamento de banco de dados distribuído a rede é um segundo recurso que precisa ser administrado quase da mesma maneira. É desejável que o usuário esteja protegido contra os detalhes operacionais da rede e, se possível, ocultar até mesmo a existência de uma rede, ter meios uniformes pelos quais os serviços sejam acessados e exigir que o usuário não tenha que especificar onde os dados estão localizados. Esse tipo de transparência é referido como transparência de rede ou transparência de distribuição [Özsu, M.; Valduriez, 2001] Transparência de replicação Em geral, por razões de desempenho, confiabilidade e disponibilidade, é desejável poder distribuir os dados de forma replicada pelas máquinas de uma rede. Tal replicação ajuda ao desempenho, pois, requisitos do usuário distintos e conflitantes podem ser acomodados com maior facilidade. Por exemplo, os dados comumente acessados por um usuário podem ser localizados mais próximos dele, assim como de outro usuário com os mesmos requisitos de acesso. Além disso, se uma máquina falhar, uma cópia dos dados ainda estará disponível na rede. É claro que esta é uma descrição muito simplificada da situação. Na verdade, a decisão de replicar ou não os dados e de quantas cópias existirão dependerá em um grau considerável dos aplicativos do usuário, pois a replicação causa problemas na atualização do banco de dados [Özsu, M.; Valduriez, 2001]. A questão relacionada com a transparência que precisa ser examinada neste ponto é se os usuários devem estar cientes da existência de cópias, ou se o sistema deve tratar o gerenciamento de cópias enquanto o usuário deve agir como se houvesse uma única cópia dos dados. Obviamente que é preferível não se envolver com a manipulação de cópias e com a obrigação de especificar se uma certa ação pode e/ou deve ser executada sobre várias cópias Transparência de fragmentação É desejável dividir cada relação de um banco de dados em fragmentos menores, e tratar cada fragmento como um objeto de banco de dados separado (isto é, outra relação). 8

20 Isso é feito normalmente por motivos de desempenho, disponibilidade e confiabilidade. Além disso, a fragmentação pode reduzir os efeitos negativos da replicação, pois cada réplica não é a relação completa, mas apenas um subconjunto dessa relação, desse modo, é exigido menos espaço, e menos itens de dados precisam ser administrados. Há dois tipos gerais de alternativas de fragmentação. Em um caso, chamado de fragmentação horizontal, uma relação é particionada em um conjunto de sub-relações, cada uma das quais tem um subconjunto das tuplas (linhas) da relação original. A segunda alternativa é a fragmentação vertical, na qual cada sub-relação é definida sobre um subconjunto dos atributos (colunas) da relação original [Özsu, M.; Valduriez, 2001]. A questão fundamental de se lidar com a transparência de fragmentação está relacionada com o processamento de consultas, pois existe o problema de manipular consultas do usuário que foram especificadas sobre relações inteiras, mas que agora têm de ser executadas em sub-relações Quem deve proporcionar transparência? É muito importante perceber que níveis razoáveis de transparência dependem de vários componentes dentro do ambiente de gerenciamento de dados. A transparência de rede pode ser tratada facilmente pelo sistema operacional distribuído como parte de suas responsabilidades de oferecer transparência de replicação e de fragmentação. O SGBD deve ser responsável por oferecer um nível elevado de independência de dados, juntamente com a transparência de replicação e fragmentação. Por fim, a interface do usuário pode admitir um nível mais alto de transparência, não apenas em termos de um método de acesso uniforme aos recursos de dados dentro de uma linguagem, mas também em termos de construções de estrutura que permite ao usuário lidar com objetos em seu ambiente, em vez de se concentrar em detalhes de descrição do banco de dados [Özsu, M.; Valduriez, 2001] Confiabilidade em transações distribuídas Os SGBDs distribuídos são planejados para melhorar a confiabilidade, pois têm componentes replicados e, portanto, eliminam pontos únicos de falha. A falha de um único site ou falha de um link de comunicação que torne um ou mais sites inacessíveis não são suficientes para deixar inativo o sistema inteiro. No caso de um banco de dados distribuído, 9

21 isso significa que alguns dados podem estar inacessíveis, mas, com cuidado apropriado, é possível que os usuários tenham permissão para acessar outras partes do banco de dados distribuído [Silberschatz, A.; Korth, H.; Sudarshan, S., 1999]. Uma transação é uma unidade básica de computação consistente e confiável, formada por uma seqüência de operações de bancos de dados executadas como uma ação atômica [Özsu, M.; Valduriez, 2001]. Isso significa dizer que esta seqüência de várias operações é executada como se fosse uma única operação, e se parte desta operação não puder ser executada, nada será executado, permanecendo o banco de dados em seu último estado de consistência. Ela tem o objetivo de garantir que o banco de dados deixe um estado de consistência somente para entrar em outro estado de consistência, mesmo quando várias destas transações são executadas de forma concorrente, e até mesmo quando ocorrem falhas (atomicidade de falha). Examinando uma transação baseada no exemplo da instituição financeira discutida anteriormente, considera-se que um aplicativo aumente o limite de crédito em 5% em todas as contas que possuem saldo superior a dois mil reais. É desejável encapsular esta operação dentro dos limites de uma transação. Caso ocorra uma falha durante a execução deste programa, o SGBD deverá ser capaz de determinar, ao ocorrer a recuperação, onde o programa foi interrompido e de continuar com sua operação ou começar tudo de novo. Por outro lado, caso não ocorram falhas, e outro usuário executar uma consulta para calcular a média dos limites de crédito das contas correntes enquanto a ação original de atualização estiver em andamento, o resultado calculado estará incorreto. Neste caso o sistema deve ser capaz de sincronizar a execução concorrente desses dois programas. A transação anterior será executada nas cidades A, B e C. Com suporte total para transações distribuídas, os aplicativos dos usuários devem acessar uma única imagem lógica do banco de dados e confiar no SGBD distribuído para assegurar que suas solicitações serão executadas corretamente, independente do que acontecer no sistema. Isto significa que os aplicativos do usuário não precisarão se preocupar com a coordenação de seus acessos a banco de dados locais individuais, nem terão de se preocupar com a possibilidade de falhas de sites ou links de comunicação durante a execução de suas transações. 10

22 2.2 Fatores de complicação Os problemas encontrados em sistemas de bancos de dados impõem uma complexidade adicional em um ambiente distribuído, pois, os dados podem ser replicados em um ambiente distribuído. Não é essencial que todo site na rede contenha uma cópia do banco de dados, só é essencial que existe mais de um local em que o banco de dados esteja presente. Conseqüentemente, o sistema de banco de dados distribuído é responsável por escolher uma das cópias dos dados solicitados para acesso em caso de recuperação, e assegurar que o efeito de uma atualização se refletirá em todas as cópias existentes desse item de dado [Özsu, M.; Valduriez, 2001]. Outro agravante encontrado em um ambiente distribuído é em caso de falhas em alguns sites ou links de comunicação enquanto uma atualização estiver em andamento. O sistema deverá assegurar que os efeitos se refletirão nos dados residentes nos sites defeituosos, tão logo o sistema possa se recuperar da falha. Como cada site não pode ter informações instantâneas sobre as ações que estão ocorrendo nos outros sites no momento, a sincronização de transações em vários sites é consideravelmente mais difícil que no caso de um sistema centralizado, caracterizando mais um ponto crítico em sistemas de bancos de dados distribuídos Processamento distribuído de consultas Para um SBDD o problema do processamento de consultas está em como decidir sobre uma estratégia para a execução de cada consulta através da rede da maneira mais econômica, considerando a distribuição dos dados, os custos de comunicação e a falta de informações suficientes disponíveis no local Controle distribuído da concorrência No controle da concorrência em um contexto distribuído é necessário não apenas se preocupar com a integridade de um único banco de dados, como ocorre em um sistema centralizado, mas também com a consistência de várias cópias do banco de dados. Para isso, duas classes gerais de controle de concorrência são consideradas, o controle pessimista e o controle otimista [Özsu, M.; Valduriez, 2001]. 11

23 O primeiro, sincroniza a execução de solicitações do usuário antes de iniciar a execução, e o segundo, executa as solicitações e depois verifica se a execução comprometeu a consistência do banco de dados. Duas primitivas básicas que podem ser usadas com ambas as abordagens são o bloqueio, que se baseia na exclusão mútua de acesso a itens de dados, e o uso de timbre de hora, no qual as transações são executadas em alguma ordem. Existem variações desses esquemas, bem como algoritmos híbridos que tentam combinar os dois mecanismos básicos [Özsu, M.; Valduriez, 2001] Gerenciamento distribuído de impasses O problema de impasses em SBDDs tem natureza muito semelhante ao encontrado em sistemas operacionais. A competição entre usuários pelo acesso a um conjunto de dados pode resultar em um impasse, se o mecanismo de sincronização se basear em bloqueios Bancos de dados heterogêneos Normalmente, bancos de dados distribuídos heterogêneos surgem quando há a necessidade de integrar SGBDs já existentes autônomos e centralizados. A heterogeneidade pode ocorrer de várias formas nos sistemas distribuídos, variando desde a heterogeneidade de hardware e diferenças em protocolos de interligação de redes até variações em gerenciadores de dados, como linguagens de consulta e protocolos de gerenciamento de transações [Özsu, M.; Valduriez, 2001]. 12

24 3. Projeto de banco de dados distribuído O projeto de sistema de computadores distribuídos inclui decisões sobre a disposição dos dados e programas pelos sites de uma rede de computadores, como também o possível projeto da própria rede. No caso de SGBDs distribuídos, a distribuição dos aplicativos inclui dois itens: a distribuição do software de SGBD distribuído e a distribuição dos programas aplicativos que funcionam nele. Neste caso, considera-se que existe uma cópia do software do SGBD distribuído em cada site e que a localização dos programas não é relevante. Além disso, considera-se que a rede já foi projetada ou que será projetada posteriormente, de acordo com as decisões relativas ao banco de dados distribuído. Portanto, o que deve ser considerado primordialmente em projeto de banco de dados distribuído é localização dos dados [Özsu, M.; Valduriez, 2001]. 3.1 Razões para a fragmentação Sob um ponto de vista de distribuição de dados, não há nenhuma razão real para a fragmentar dados. Afinal, em sistemas de arquivos distribuídos a distribuição é realizada sobre arquivos inteiros. Com relação à fragmentação, a questão mais importante é a unidade apropriada de distribuição. Uma relação não é uma unidade adequada, por várias razões. Primeiro, em geral as visões de aplicativos são subconjuntos de relações. Portando, o caráter local de acessos de aplicativos não é definido sobre relações inteiras, mas sim sobre seus subconjuntos. Segundo, sendo a relação inteira a unidade de distribuição e os aplicativos que têm visões definidas sobre uma dada relação residem em sites diferentes, podem ser seguidas duas alternativas. Ou a relação não é replicada e é armazenada em um único site, o que resultaria em um volume desnecessariamente alto de acessos remotos aos dados. Ou então ela é replicada em todos ou alguns sites onde residem os aplicativos, o que geraria problemas na execução de atualizações. 13

25 Por fim, a decomposição de uma relação em fragmentos, sendo cada um deles tratado como uma unidade, permite que várias transações sejam executadas de forma concorrente. Além disso, a fragmentações de relações em geral resulta na execução paralela de uma única consulta, dividindo-a em conjunto de subconsultas que operam sobre fragmentos. Além disso, é necessário também mencionar as desvantagens da fragmentação. Se os aplicativos têm requisitos conflitantes que impedem a decomposição das relações em fragmentos mutuamente exclusivos, esses aplicativos cujas visões são definidas sobre mais de um fragmento podem sofrer degradação de desempenho. O segundo problema está relacionado com o controle semântico de dados semânticos, especificamente com verificação de integridade. Como resultado da fragmentação, os atributos que participam de uma dependência podem ser decompostos em diferentes fragmentos, os quais poderiam ser alocados em sites diferentes. Nesse caso, até mesmo a tarefa mais simples de verificação de dependência resultaria em uma busca por dados em diversos sites [Özsu, M.; Valduriez, 2001]. 3.2 Grau de fragmentação O grau de fragmentação a que um banco de dados deve ser submetido representa uma decisão importante que afeta o desempenho do processamento de consultas. O grau de fragmentação vai de um extremo de nenhuma fragmentação a outro extremo, que seria fragmentação até o nível de tuplas individuais (no caso de fragmentação horizontal) ou até o nível de atributos individuais (no caso de fragmentação vertical). Considerando os efeitos adversos de unidades de fragmentação muito grandes ou muito pequenas, conforme analizado anteriormente, é necessário encontrar um nível adequado de fragmentação que mantenha um compromisso com os dois extremos. Tal nível só pode ser definido em relação aos aplicativos que atuarão sobre o banco de dados [Özsu, M.; Valduriez, 2001]. 14

26 3.3 Alternativas de fragmentação As instâncias de relações são essencialmente tabelas, a assim a questão é encontrar modos alternativos de dividir uma tabela em tabelas menores. Existem duas alternativas para isso: dividir a tabela horizontalmente ou verticalmente Fragmentação horizontal A fragmentação horizontal particiona uma relação em suas tuplas. Portanto, cada fragmento tem um subconjunto das tuplas da relação. Um fragmento pode ser obtido como uma seleção sobre a relação global, ou seja, é usado um predicado para construir o fragmento. Para ilustrar a utilização desta modalidade de fragmentação será utilizado o exemplo da instituição financeira estudado anteriormente, considerando que a instituição financeira possui agências nas cidades de São Paulo, Curitiba e Porto Alegre: Exemplo 1: Deseja-se que os dados da relação CLIENTE estejam particionados de modo que cada fragmento possua os dados da cidade correspondente. A tabela 3.1 apresenta essa fragmentação: CLIENTE codigo_cliente nome fisica_juridica cpf_cnpj cidade 1 Pedro da Silva fisica Curitiba 2 Francisco de Almeida fisica São Paulo 3 Maria Aparecia da Silva fisica São Paulo 4 Luiz Carlos Barbosa fisica Curitiba 5 Roberto César Xavier fisica Porto Alegre CLIENTE 1 codigo_cliente nome... cidade 1 Pedro da Silva Curitiba 4 Luiz Carlos Barbosa Curitiba CLIENTE 2 codigo_cliente nome... cidade 2 Francisco de Almeida São Paulo 3 Maria Aparecia da Silva São Paulo CLIENTE 3 codigo_cliente nome... cidade 5 Roberto César Xavier Porto Alegre Tabela 3.1: Fragmentação horizontal da relação CLIENTE 15

27 Exemplo 2: Deseja-se que as contas correntes com saldo superior a R$ ,00 residam na cidade de São Paulo, as contas correntes com saldo superior a R$ 5.000,00 até R$ ,00 residem em Curitiba, e as contas corrente com saldo até R$ 5.000,00 residam em Porto Alegre. A tabela 3.2 mostra essa situação: CONTA agencia numero_conta codigo_cliente data_abertura limite_credito saldo data_encerra mento /03/ , , /08/ , , /05/ , , /06/ , , /09/ , ,00 CONTA 1 agencia numero_conta codigo_cliente... limite_credito saldo , , , ,00 CONTA 2 agencia numero_conta codigo_cliente... limite_credito saldo , ,00 CONTA 3 agencia numero_conta codigo_cliente... limite_credito saldo , , , ,00 Tabela 3.2: Fragmentação horizontal da relação CONTA Fragmentação vertical A fragmentação vertical de uma relação produz fragmentos que contém um subconjunto dos atributos da relação, bem como sua chave primária. O objetivo da fragmentação vertical é particionar uma relação em um conjunto de relações menores, de tal modo que muitos dos aplicativos do usuário possam atuar apenas sobre um fragmento, diminuindo a quantidade de acessos a páginas [Navathe et al., 1984]. Também é possível identificar as sub-relações mais ativas e inseri-las em um subsistema de memória mais rápido, nos casos em que as hierarquias de memórias são administradas [Eisner e Severance, 1976]. 16

28 Exemplo: A relação CONTA é particionada de modo que os atributos cadastrais sejam separados do saldo e limite de crédito. Desta forma os dados referentes a abertura e encerramento de contas podem ser administrados por um determinado setor e os dados financeiros podem estar sendo manipulados por outro setor da organização, separados geograficamente. A tabela 3.3 demonstra esse tipo de fragmentação: CONTA 1 agencia numero_conta limite_credito saldo , , , , , , , , , ,00 CONTA 2 agencia numero_conta codigo_cliente data_abertura data_encerramento /03/ /08/ /05/ /06/ /09/2002 Tabela 3.3: Fragmentação vertical da relação CONTA 3.4 Regras de fragmentação As regras a seguir em conjunto irão assegurar que o banco de dados não sofrerá nenhuma mudança semântica durante a fragmentação. Completeza. Se uma instância da relação R é decomposta em fragmentos, cada item de dado que pode ser encontrada em R também pode ser encontrada em um ou mais de seus fragmentos. Esta propriedade garante que os dados de uma relação global serão mapeados em fragmentos sem perdas [Grant, 1984]. No caso de fragmentação horizontal, o ítem de dado se refere a tuplas enquanto que na fragmentação vertical, se refere a um atributo da relação R [Özsu, M.; Valduriez, 2001]. Reconstrução. Se uma relação R é decomposta em fragmentos, deve ser possível definir um operador relacional que aplicado sobre os fragmentos retorne a relação original. 17

29 Este operador será diferente para cada forma de fragmentação, porém, é importante que ele possa ser identificado [Özsu, M.; Valduriez, 2001]. Disjunção. Se uma relação R é decomposta horizontalmente em fragmentos, e o item de dados está em Rj, ele não está em qualquer outro fragmento diferente de Rj. Se a relação R é decomposta verticalmente, os atributos de sua chave primária normalmente se repetem em todos os seus fragmentos. Assim, no caso de particionamento vertical, a disjunção só é definida sobre os atributos que não fazem parte da chave primária de uma relação [Özsu, M.; Valduriez, 2001]. 3.5 Alocação O problema da alocação de recursos através dos nós de uma rede de computadores envolve encontrar a distribuição ótima do conjunto de fragmentos entre o conjunto de sites disponíveis. O caráter ótimo pode ser definido com relação às medidas Custo mínimo e Desempenho. A função de custo consiste no custo do armazenamento, consulta e atualização em todos os sites onde um determinado fragmento possa estar armazenado e também no custo da comunicação de dados. Com relação ao desempenho, a estratégia de alocação é projetada para minimizar o tempo de resposta e maximizar o throughput (vazão) do sistema em cada site. Em outras palavras, deve-se procurar um esquema de alocação que responda às consultas do usuário em tempo mínimo e mantém mínimo o custo do processamento. Supondo-se que o banco de dados seja fragmentado de forma apropriada, é necessário decidir sobre a alocação dos fragmentos aos vários sites da rede. As razões para a replicação são a confiabilidade e a eficiência de consultas somente leitura. Se houver várias cópias de um item de dados, haverá uma chance de que alguma cópia dos dados esteja acessível em algum lugar, mesmo quando ocorrerem falhas do sistema. Além disso, consulta somente leitura que acessam os mesmos itens de dados poderão ser executadas em paralelo, pois existirão cópias em vários sites. Por outro lado, a execução de consultas de atualização causa problemas, porque o sistema tem de garantir que todas as cópias dos 18

30 dados serão atualizadas de forma adequada. Portanto, a decisão sobre replicação é um compromisso que depende da proporção entre consultas somente de leitura e consultas de atualização. Essa decisão afeta quase todos os algoritmos e funções de controle de SGBDs distribuídos [Özsu, M.; Valduriez, 2001]. Um banco de dados não replicado (em geral chamado de banco de dados particionado) contém fragmentos alocados a sites, e só existe uma única cópia de qualquer fragmento na rede. Em caso de replicação, o banco de dados existe por inteiro em cada site (banco de dados totalmente replicado) ou os fragmentos estão distribuídos pelos sites (banco de dados parcialmente replicado). A tabela 3.4 compara essas três alternativas de replicação em relação a diversas funções dos SGBDs distribuídos. Replicação total Replicação parcial Particionamento Processamento de consultas Gerenciamento de diretórios Fácil Fácil ou não existente Mesmo grau de dificuldade Mesmo grau de dificuldade Controle de concorrência Moderado Difícil Fácil Confiabilidade Muito alta Alta Baixa Realidade Aplicação possível Realista Aplicação possível Tabela 3.4: Comparação entre alternativas de replicação 19

31 4. Processamento de consultas distribuídas Ao ocultar os detalhes de baixo nível a respeito da organização física dos dados, as linguagens de bancos de dados relacionais (SQL) permitem a expressão de consultas complexas de modo conciso e simples. Em particular, para construir a resposta à consulta, o usuário não especifica exatamente o procedimento a ser seguido, ficando esta tarefa a cargo de um módulo do SGBD chamado processador de consultas, que terá o trabalho de realizar a otimização da consulta, pois ele é capaz de explorar uma grande quantidade de informações úteis a respeito do banco de dados [Özsu, M.; Valduriez, 2001]. A principal função de um processador de consultas relacionais é transformar uma consulta de alto nível em uma consulta equivalente de nível mais baixo, que implementa a estratégia de execução para a consulta. A transformação deve alcançar tanto a correção quanto a eficiência. Pelo fato de muitas estratégias de execução serem transformações corretas da mesma consulta de alto nível, aquela que otimiza (minimiza) o consumo de recursos deve ser a escolhida. Tendo em vista que, em termos computacionais, o problema não pode ser manipulado com um grande número de relações [Ibaraki e Kameda, 1984], em geral é reduzido a escolha de uma solução próxima da solução ótima. O problema do processamento de consultas em um ambiente distribuído é muito mais difícil que em um ambiente centralizado, porque um número maior de parâmetros afeta o desempenho de consultas distribuídas. Em particular, as relações envolvidas em uma consulta distribuída podem ser fragmentadas e/ou replicadas, induzindo assim os custos de sobrecarga de comunicação. Além disso, se forem acessados muitos sites, o tempo de resposta da consulta poderá se tornar muito alto. O papel de um processador de consultas distribuídas é mapear uma consulta de alto nível sobre um banco de dados distribuído em uma seqüência de operações de bancos de dados sobre fragmentos da relação, escolhendo os melhores sites para processar dados e, possivelmente, o modo como os dados devem ser transformados [Özsu, M.; Valduriez, 2001]. O grande desafio do processamento de consultas em um banco de dados distribuído está em elaborar a melhor estratégia para obter o resultado esperado, considerando que: 20

32 As relações envolvidas na consulta podem não estar presentes no site originário da consulta; As relações envolvidas na consulta podem estar fragmentadas em vários sites; Os fragmentos de uma relação envolvida na consulta podem estar replicados em vários sites; Algum site onde residem os fragmentos de uma relação pode estar inoperante em dado momento. Nestas condições, algumas perguntas devem ser respondidas com o objetivo de obter a melhor estratégia de execução: Quais fragmentos de uma relação estão envolvidos na consulta? Onde está localizada a réplica de um fragmento envolvido de modo que o custo de obtenção de resposta seja o menor possível? O site considerado ideal para obtenção de um fragmento envolvido está operante? Caso não esteja, qual site é a melhor alternativa? É evidente que a execução de uma consulta, por mais simples que seja, assume um grau de complexidade muito maior em um ambiente distribuído, se comparado a um ambiente centralizado. Em um sistema de banco de dados distribuído, o custo total a ser minimizado inclui os custos de CPU, E/S e comunicação. Os dois primeiros são os únicos fatores considerados pelos SGBDs centralizados. O componente de custo de comunicação talvez seja o fator mais importante considerado pelos bancos de dados distribuídos, portanto, o objetivo da otimização de consultas distribuídas se reduz ao problema de minimizar o custo de comunicação de forma geral, a expensas de processamento local, ainda que os ambientes modernos de processamento distribuído utilizam redes de comunicação muito rápidas, cuja largura de banda é comparada a largura de banda de discos. A vantagem é que a otimização local pode ser feita de forma independente, com o uso dos métodos conhecidos para sistemas centralizados. O custo de comunicação é o tempo necessário para a troca de dados entre os sites que participam da execução da consulta. Esse custo é incidente no 21

33 processamento de mensagens (formatação/desformatação) e na transmissão dos dados pela rede de comunicação [Özsu, M.; Valduriez, 2001]. 4.1 Transformação de consulta Ao executar uma consulta extremamente simples como: obter todas as tuplas da relação CONTA, seu processamento não é trivial em um contexto distribuído, uma vez que a relação pode estar fragmentada, replicada ou de ambas as formas. Se a relação CONTA for replicada, é necessário escolher de qual réplica obter o resultado. Se nenhuma replica for fragmentada, basta escolher a replica cujo custo de transmissão seja menor. Entretanto, se uma réplica for fragmentada, a escolha não será fácil, pois será necessário efetuar diversas junções e uniões para reconstrução da relação CONTA. Nesse caso, o número de estratégias possíveis para uma consulta, aparentemente trivial, pode ser grande [Silberschatz, A.; Korth, H.; Sudarshan, S., 1999]. Desenvolvendo o exemplo da instituição financeira utilizado, são apresentadas a seguir duas estratégias de execução em um ambiente distribuído para a consulta: obter o código e o nome do cliente, o saldo da conta corrente e o valor total das movimentações de todas as contas correntes com saldo superior a R$ 5.000,00 e que realizaram movimentações no período de 01/01/2006 a 31/01/2006. Será considerado que o banco de dados é distribuído através dos sites residentes nas cidades de São Paulo, Curitiba e Porto Alegre e que o site residente em Curitiba é originário da consulta. Conforme ilustrado na figura 4.1, as relações CONTA e CLIENTE estão fragmentadas de modo que cada site concentre os dados das cidades correspondentes, enquanto que a relação MOVIMENTO está totalmente replicada em cada um dos sites existentes. 22

34 Site 1 (São Paulo) CLIENTE 1 CONTA 1 MOVIMENTO Site 3 (Porto Alegre) CLIENTE 3 CONTA 3 MOVIMENTO Site 2 (Curitiba) CLIENTE 2 CONTA 2 MOVIMENTO Figura 4.1: Modelo de fragmentação do banco dados forma: A consulta apresentada poderia ser expressa através da linguagem SQL da seguinte SELECT CLIENTE.CODIGO_CLIENTE, CLIENTE.NOME, CONTA.SALDO, SUM(MOVIMENTO.VALOR) FROM CLIENTE, CONTA, MOVIMENTO WHERE CLIENTE.CODIGO_CLIENTE = CONTA.CODIGO_CLIENTE AND CONTA.AGENCIA = MOVIMENTO.AGENCIA AND CONTA.NUMERO_CONTA = MOVIMENTO.NUMERO_CONTA AND CONTA.SALDO > 5000 AND MOVIMENTO.DATA BETWEEN '01/01/2006' AND '31/01/2006' GROUP BY CLIENTE.CODIGO_CLIENTE, CLIENTE.NOME, CONTA.SALDO A primeira estratégia explora o fato de que as relações CONTA E CLIENTE são fragmentadas da mesma forma, a fim de obter um subconjunto resultante do processamento local em cada site e transferir este subconjunto para o site de origem da consulta (vide figura 4.2). 23

35 Site 1 (São Paulo) R 1 = Processamento local Site 3 (Porto Alegre) R 3 = Processamento local Site 2 (Curitiba) R 2 = Processamento local R = R 1 U R 2 U R 3 Figura 4.2: Estratégia 1 de processamento de consulta A segunda estratégia centraliza os dados necessários no site de origem da consulta antes de realizar o processamento, conforme representado na figura 4.3. Site 1 (São Paulo) CLIENTE 1 CONTA 1 Site 3 (Porto Alegre) CLIENTE 3 CONTA 3 Site 2 (Curitiba) CLIENTE = CLIENTE 1 U CLIENTE 2 U CLIENTE 3 CONTA = CONTA 1 U CONTA 2 U CONTA 3 MOVIMENTO R = Processamento local Figura 4.3: Estratégia 2 de processamento de consulta 24

36 Evidentemente a primeira estratégia se mostra mais eficiente, pois explora a capacidade de processamento distribuído do sistema e reduz o tráfego de rede ao transportar para o site de origem da consulta apenas os dados resultantes da consulta realizada localmente, enquanto que na segunda estratégia, todos os dados das relações CLIENTE e CONTA são concentrados no site dois, para só então realizar o processamento sobre uma maior massa de dados. Dentre as diversas técnicas utilizadas para otimização de consultas distribuídas, a apresentada anteriormente caracteriza-se pelo uso de semijunções na qual tem a principal finalidade de reduzir o tamanho da relação operando de uma junção. 4.2 Localização de dados distribuídos Na execução de uma consulta sobre um banco de dados distribuído existe uma fase da preparação da consulta responsável por resolver o problema da localização dos dados, que constitui em transformar uma consulta expressa sobre relações globais em um consulta sobre fragmentos físicos. A localização utiliza informações armazenadas no esquema de fragmentos. A fragmentação é definida por meio de regras de fragmentação, que podem ser expressas como consultas relacionais. Uma relação global pode ser reconstruída pela aplicação das regras de reconstrução e pela derivação de um programa de álgebra relacional cujos operandos são os fragmentos. Isso se denomina programa de localização. Uma forma ingênua de localizar uma consulta distribuída é gerar uma consulta em que cada relação global é substituída por seu programa de localização. Exemplo: A função de fragmentação horizontal distribui a relação CONTA com base em predicados de seleção da seguinte forma: CONTA 1 = Contas com saldo menor que R$ 5.000,00 CONTA 2 = Contas com saldo de R$ 5.000,00 a R$ ,00 CONTA 3 = Contas com saldo superior a R$ ,00 25

37 O programa de localização para a relação CONTA fragmentada horizontalmente é a união dos fragmentos: CONTA = CONTA 1 U CONTA 2 U CONTA 3 Assim, a forma genérica de qualquer consulta especificada sobre CONTA é obtida substituindo-a por (CONTA 1 U CONTA 2 U CONTA 3 ). As seleções sobre os fragmentos que têm uma qualificação que contradiz a qualificação da regra de fragmentação geram relações vazias. Estas seleções devem ser ignoradas gerando uma consulta reduzida. Exemplo: A consulta para obter as contas-correntes com saldo inferior a R$ ,00 poderia ser expressa através do seguinte comando SQL: SELECT * FROM CONTA WHERE SALDO < 10000,00 É fácil detectar que o predicado de seleção (SALDO < 10000,00) contradiz o predicado de CONTA 3, produzindo assim uma relação vazia. A consulta reduzida é simplesmente aplicada sobre a união de CONTA 1 e CONTA 2. 26

Bancos de dados distribuídos Prof. Tiago Eugenio de Melo tiagodemelo@gmail.com. http://www.tiagodemelo.info

Bancos de dados distribuídos Prof. Tiago Eugenio de Melo tiagodemelo@gmail.com. http://www.tiagodemelo.info Bancos de dados distribuídos Prof. Tiago Eugenio de Melo tiagodemelo@gmail.com Última atualização: 20.03.2013 Conceitos Banco de dados distribuídos pode ser entendido como uma coleção de múltiplos bds

Leia mais

BANCO DE DADOS DISTRIBUÍDOS e DATAWAREHOUSING

BANCO DE DADOS DISTRIBUÍDOS e DATAWAREHOUSING BANCO DE DADOS DISTRIBUÍDOS e DATAWAREHOUSING http://www.uniriotec.br/~tanaka/tin0036 tanaka@uniriotec.br Bancos de Dados Distribuídos Conceitos e Arquitetura Vantagens das Arquiteturas C/S (em relação

Leia mais

Projeto de Banco de Dados Distribuído Proj o e j to t o de d B a B nc n o o d e d Da D do d s o D i D str t ibu b í u do d s

Projeto de Banco de Dados Distribuído Proj o e j to t o de d B a B nc n o o d e d Da D do d s o D i D str t ibu b í u do d s Projeto de Alcides Pamplona alcides.pamplona@gmail.com Conteúdo Revisão de Conceitos Arquitetura Distribuída Fragmentação Horizontal Fragmentação Vertical 1 Definição de Banco de Dados Distribuído Um Banco

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

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

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

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

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

MÓDULO 8 ARQUITETURA DOS SISTEMAS DE BANCO DE DADOS

MÓDULO 8 ARQUITETURA DOS SISTEMAS DE BANCO DE DADOS MÓDULO 8 ARQUITETURA DOS SISTEMAS DE BANCO DE DADOS Quando falamos em arquitetura, normalmente utilizamos esse termo para referenciar a forma como os aplicativos computacionais são estruturados e os hardwares

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

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

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS. Aula 1. Prof. Rafael Dias Ribeiro. M.Sc. MODELAGEM DE DADOS PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS Aula 1 Prof. Rafael Dias Ribeiro. M.Sc. @ribeirord 1 Objetivos: Apresenta a diferença entre dado e informação e a importância

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

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Modelo Cliente-Servidor: Introdução aos tipos de servidores e clientes Prof. MSc. Hugo Souza Iniciando o módulo 03 da primeira unidade, iremos abordar sobre o Modelo Cliente-Servidor

Leia mais

Evolução. Tópicos. Bancos de Dados - Introdução. Melissa Lemos. Evolução dos Sistemas de Informação Esquemas Modelos. Características de SGBDs

Evolução. Tópicos. Bancos de Dados - Introdução. Melissa Lemos. Evolução dos Sistemas de Informação Esquemas Modelos. Características de SGBDs 1 Bancos de Dados - Introdução Melissa Lemos melissa@inf.puc-rio.br Tópicos Evolução dos Sistemas de Informação Esquemas Modelos Conceitual Lógico Características de SGBDs 2 Evolução tempo Programas e

Leia mais

Multiplexador. Permitem que vários equipamentos compartilhem um único canal de comunicação

Multiplexador. Permitem que vários equipamentos compartilhem um único canal de comunicação Multiplexadores Permitem que vários equipamentos compartilhem um único canal de comunicação Transmissor 1 Receptor 1 Transmissor 2 Multiplexador Multiplexador Receptor 2 Transmissor 3 Receptor 3 Economia

Leia mais

Arquitetura dos Sistemas de Informação Distribuídos

Arquitetura dos Sistemas de Informação Distribuídos Arquitetura dos Sistemas de Informação Distribuídos Quando se projeta um sistema cuja utilização é destinada a ser feita em ambientes do mundo real, projeções devem ser feitas para que o sistema possa

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

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Aula 13 Gerência de Memória Prof.: Edilberto M. Silva http://www.edilms.eti.br Baseado no material disponibilizado por: SO - Prof. Edilberto Silva Prof. José Juan Espantoso Sumário

Leia mais

BANCO DE DADOS AULA 02 INTRODUÇÃO AOS BANCOS DE DADOS PROF. FELIPE TÚLIO DE CASTRO 2015

BANCO DE DADOS AULA 02 INTRODUÇÃO AOS BANCOS DE DADOS PROF. FELIPE TÚLIO DE CASTRO 2015 BANCO DE DADOS AULA 02 INTRODUÇÃO AOS BANCOS DE DADOS PROF. FELIPE TÚLIO DE CASTRO 2015 NA AULA PASSADA... 1. Apresentamos a proposta de ementa para a disciplina; 2. Discutimos quais as ferramentas computacionais

Leia mais

Programaçã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 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 mais

SQL APOSTILA INTRODUÇÃO A LINGUAGEM SQL

SQL 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 mais

As principais características da abordagem de um banco de dados versus a abordagem de processamento de arquivos são as seguintes:

As principais características da abordagem de um banco de dados versus a abordagem de processamento de arquivos são as seguintes: SGBD Características do Emprego de Bancos de Dados As principais características da abordagem de um banco de dados versus a abordagem de processamento de arquivos são as seguintes: Natureza autodescritiva

Leia mais

Módulo 15 Resumo. Módulo I Cultura da Informação

Módulo 15 Resumo. Módulo I Cultura da Informação Módulo 15 Resumo Neste módulo vamos dar uma explanação geral sobre os pontos que foram trabalhados ao longo desta disciplina. Os pontos abordados nesta disciplina foram: Fundamentos teóricos de sistemas

Leia mais

Disciplina de Banco de Dados Introdução

Disciplina de Banco de Dados Introdução Disciplina de Banco de Dados Introdução Prof. Elisa Maria Pivetta CAFW - UFSM Banco de Dados: Conceitos A empresa JJ. Gomes tem uma lista com mais ou menos 4.000 nomes de clientes bem como seus dados pessoais.

Leia mais

Introdução Banco de Dados

Introdução Banco de Dados Introdução Banco de Dados Vitor Valerio de Souza Campos Adaptado de Vania Bogorny Por que estudar BD? Os Bancos de Dados fazem parte do nosso dia-a-dia: operação bancária reserva de hotel matrícula em

Leia mais

Módulo 4. Construindo uma solução OLAP

Módulo 4. Construindo uma solução OLAP Módulo 4. Construindo uma solução OLAP Objetivos Diferenciar as diversas formas de armazenamento Compreender o que é e como definir a porcentagem de agregação Conhecer a possibilidade da utilização de

Leia mais

Roteiro. BCC321 - Banco de Dados I. Conceitos Básicos. Conceitos Básicos. O que é um banco de dados (BD)?

Roteiro. BCC321 - Banco de Dados I. Conceitos Básicos. Conceitos Básicos. O que é um banco de dados (BD)? Roteiro BCC321 - Banco de Dados I Luiz Henrique de Campos Merschmann Departamento de Computação Universidade Federal de Ouro Preto luizhenrique@iceb.ufop.br www.decom.ufop.br/luiz Conceitos Básicos Banco

Leia mais

GBD PROF. ANDREZA S. AREÃO

GBD 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 mais

CONCURSO PÚBLICO ANALISTA DE SISTEMA ÊNFASE GOVERNANÇA DE TI ANALISTA DE GESTÃO RESPOSTAS ESPERADAS PRELIMINARES

CONCURSO PÚBLICO ANALISTA DE SISTEMA ÊNFASE GOVERNANÇA DE TI ANALISTA DE GESTÃO RESPOSTAS ESPERADAS PRELIMINARES CELG DISTRIBUIÇÃO S.A EDITAL N. 1/2014 CONCURSO PÚBLICO ANALISTA DE GESTÃO ANALISTA DE SISTEMA ÊNFASE GOVERNANÇA DE TI RESPOSTAS ESPERADAS PRELIMINARES O Centro de Seleção da Universidade Federal de Goiás

Leia mais

CAPÍTULO 2. BANCOS DE DADOS DISTRIBUÍDOS

CAPÍTULO 2. BANCOS DE DADOS DISTRIBUÍDOS CAPÍTULO 2. BANCOS DE DADOS DISTRIBUÍDOS Este capítulo inicia com uma proposta para estruturação da descrição de bancos de dados distribuídos, que estende aquela sugerida pela ANSI/SPARC os centralizados.

Leia mais

FACULDADE INTEGRADAS DE PARANAÍBA ADMINISTRAÇÃO DE EMPRESAS. Bancos de Dados Conceitos Fundamentais

FACULDADE INTEGRADAS DE PARANAÍBA ADMINISTRAÇÃO DE EMPRESAS. Bancos de Dados Conceitos Fundamentais FACULDADE INTEGRADAS DE PARANAÍBA ADMINISTRAÇÃO DE EMPRESAS Bancos de Dados Conceitos Fundamentais Tópicos Conceitos Básicos Bancos de Dados Sistemas de Bancos de Dados Sistemas de Gerenciamento de Bancos

Leia mais

Prof.: Roberto Franciscatto. Capítulo 1.2 Aspectos Gerais

Prof.: Roberto Franciscatto. Capítulo 1.2 Aspectos Gerais Sistemas Operacionais Prof.: Roberto Franciscatto Capítulo 1.2 Aspectos Gerais Estrutura do Sistema Operacional Principais Funções do Sistema Operacional Tratamento de interrupções e exceções Criação e

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

Bancos de Dados III. Replicação de Dados. Rogério Costa rogcosta@inf.puc-rio.br. Replicação

Bancos de Dados III. Replicação de Dados. Rogério Costa rogcosta@inf.puc-rio.br. Replicação Bancos de Dados III Replicação de Dados Rogério Costa rogcosta@inf.puc-rio.br 1 Replicação Processo de criar e manter réplicas de versões dos objetos da base de dados (como tabelas) em um ambiente de banco

Leia mais

Faculdade Lourenço Filho - ENADE 2011-1

Faculdade Lourenço Filho - ENADE 2011-1 1. Quando se constrói um banco de dados, define-se o modelo de entidade e relacionamento (MER), que é a representação abstrata das estruturas de dados do banco e seus relacionamentos. Cada entidade pode

Leia mais

Banco de Dados. Uma coleção de dados relacionados [ELMASRI/NAVATHE]

Banco de Dados. Uma coleção de dados relacionados [ELMASRI/NAVATHE] 1/6 Banco de Dados O que é um Banco de Dados? Uma coleção de dados relacionados [ELMASRI/NAVATHE] Conjunto de dados integrados que tem por objetivo atender a uma comunidade específica [HEUSER] Um conjunto

Leia mais

IFPE. Disciplina: Sistemas Operacionais. Prof. Anderson Luiz Moreira

IFPE. Disciplina: Sistemas Operacionais. Prof. Anderson Luiz Moreira IFPE Disciplina: Sistemas Operacionais Prof. Anderson Luiz Moreira SERVIÇOS OFERECIDOS PELOS SOS 1 Introdução O SO é formado por um conjunto de rotinas (procedimentos) que oferecem serviços aos usuários

Leia mais

Notas da Aula 17 - Fundamentos de Sistemas Operacionais

Notas da Aula 17 - Fundamentos de Sistemas Operacionais Notas da Aula 17 - Fundamentos de Sistemas Operacionais 1. Gerenciamento de Memória: Introdução O gerenciamento de memória é provavelmente a tarefa mais complexa de um sistema operacional multiprogramado.

Leia mais

Sistema de Bancos de Dados. Conceitos Gerais Sistema Gerenciador de Bancos de Dados

Sistema de Bancos de Dados. Conceitos Gerais Sistema Gerenciador de Bancos de Dados Sistema de Bancos de Dados Conceitos Gerais Sistema Gerenciador de Bancos de Dados # Definições # Motivação # Arquitetura Típica # Vantagens # Desvantagens # Evolução # Classes de Usuários 1 Nível 1 Dados

Leia mais

Introdução. Banco de dados. Por que usar BD? Por que estudar BD? Exemplo de um BD. Conceitos básicos

Introdução. Banco de dados. Por que usar BD? Por que estudar BD? Exemplo de um BD. Conceitos básicos Introdução Banco de Dados Por que usar BD? Vitor Valerio de Souza Campos Adaptado de Vania Bogorny 4 Por que estudar BD? Exemplo de um BD Os Bancos de Dados fazem parte do nosso dia-a-dia: operação bancária

Leia mais

Banco de Dados I. Introdução. Fabricio Breve

Banco de Dados I. Introdução. Fabricio Breve Banco de Dados I Introdução Fabricio Breve Introdução SGBD (Sistema Gerenciador de Banco de Dados): coleção de dados interrelacionados e um conjunto de programas para acessar esses dados Coleção de dados

Leia mais

Banco de Dados. Introdução. João Eduardo Ferreira Osvaldo Kotaro Takai. jef@ime.usp.br DCC-IME-USP

Banco de Dados. Introdução. João Eduardo Ferreira Osvaldo Kotaro Takai. jef@ime.usp.br DCC-IME-USP Banco de Dados Introdução João Eduardo Ferreira Osvaldo Kotaro Takai jef@ime.usp.br DCC-IME-USP Importância dos Bancos de Dados A competitividade das empresas depende de dados precisos e atualizados. Conforme

Leia mais

Arquitetura de Banco de Dados

Arquitetura 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 mais

SISTEMAS OPERACIONAIS CAPÍTULO 3 CONCORRÊNCIA

SISTEMAS OPERACIONAIS CAPÍTULO 3 CONCORRÊNCIA SISTEMAS OPERACIONAIS CAPÍTULO 3 CONCORRÊNCIA 1. INTRODUÇÃO O conceito de concorrência é o princípio básico para o projeto e a implementação dos sistemas operacionais multiprogramáveis. O sistemas multiprogramáveis

Leia mais

Introdução ao Modelos de Duas Camadas Cliente Servidor

Introdução ao Modelos de Duas Camadas Cliente Servidor Introdução ao Modelos de Duas Camadas Cliente Servidor Desenvolvimento de Sistemas Cliente Servidor Prof. Esp. MBA Heuber G. F. Lima Aula 1 Ciclo de Vida Clássico Aonde estamos? Page 2 Análise O que fizemos

Leia mais

Sistemas de Informação I

Sistemas de Informação I + Sistemas de Informação I Dimensões de análise dos SI Ricardo de Sousa Britto rbritto@ufpi.edu.br + Introdução n Os sistemas de informação são combinações das formas de trabalho, informações, pessoas

Leia mais

14/09/2008. Curso Superior de Tecnologia em Bando de Dados Disciplina: Projeto de Banco de Dados Relacional II Prof.: Fernando Hadad Zaidan

14/09/2008. Curso Superior de Tecnologia em Bando de Dados Disciplina: Projeto de Banco de Dados Relacional II Prof.: Fernando Hadad Zaidan Faculdade INED Curso Superior de Tecnologia em Bando de Dados Disciplina: Projeto de Banco de Dados Relacional II Prof.: Fernando Hadad Zaidan Unidade 2.2 1 2 Material usado na montagem dos Slides Bibliografia

Leia mais

http://aurelio.net/vim/vim-basico.txt Entrar neste site/arquivo e estudar esse aplicativo Prof. Ricardo César de Carvalho

http://aurelio.net/vim/vim-basico.txt Entrar neste site/arquivo e estudar esse aplicativo Prof. Ricardo César de Carvalho vi http://aurelio.net/vim/vim-basico.txt Entrar neste site/arquivo e estudar esse aplicativo Administração de Redes de Computadores Resumo de Serviços em Rede Linux Controlador de Domínio Servidor DNS

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

Prof. Antonio Almeida de Barros Jr. Prof. Antonio Almeida de Barros Junior

Prof. 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 mais

Revisão de Banco de Dados

Revisão de Banco de Dados Revisão de Banco de Dados Fabiano Baldo 1 Sistema de Processamento de Arquivos Antes da concepção dos BDs o registro das informações eram feitos através de arquivos. Desvantagens: Redundância e Inconsistência

Leia mais

Sistemas de Banco de Dados Aspectos Gerais de Banco de Dados

Sistemas de Banco de Dados Aspectos Gerais de Banco de Dados Sistemas de Banco de Dados Aspectos Gerais de Banco de Dados 1. Conceitos Básicos No contexto de sistemas de banco de dados as palavras dado e informação possuem o mesmo significado, representando uma

Leia mais

GBC043 Sistemas de Banco de Dados. Introdução. Ilmério Reis da Silva ilmerio@facom.ufu.br www.facom.ufu.br/~ilmerio/sbd UFU/FACOM

GBC043 Sistemas de Banco de Dados. Introdução. Ilmério Reis da Silva ilmerio@facom.ufu.br www.facom.ufu.br/~ilmerio/sbd UFU/FACOM GBC043 Sistemas de Banco de Dados Introdução Ilmério Reis da Silva ilmerio@facom.ufu.br www.facom.ufu.br/~ilmerio/sbd UFU/FACOM Página 2 Definição BD Def. Banco de Dados é uma coleção de itens de dados

Leia mais

Considerações no Projeto de Sistemas Cliente/Servidor

Considerações no Projeto de Sistemas Cliente/Servidor Cliente/Servidor Desenvolvimento de Sistemas Graça Bressan Graça Bressan/LARC 2000 1 Desenvolvimento de Sistemas Cliente/Servidor As metodologias clássicas, tradicional ou orientada a objeto, são aplicáveis

Leia mais

? O SQL SERVER é um sistema de gerenciamento de banco de dados relacional que foi desenvolvido inicialmente pela Microsoft em parceria com a Sybase.

? O SQL SERVER é um sistema de gerenciamento de banco de dados relacional que foi desenvolvido inicialmente pela Microsoft em parceria com a Sybase. ? O SQL SERVER é um sistema de gerenciamento de banco de dados relacional que foi desenvolvido inicialmente pela Microsoft em parceria com a Sybase.? Desde de 1994, a Microsoft lança versões do SQL SERVER

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

SERVIÇO DE ANÁLISE DE REDES DE TELECOMUNICAÇÕES APLICABILIDADE PARA CALL-CENTERS VISÃO DA EMPRESA

SERVIÇO DE ANÁLISE DE REDES DE TELECOMUNICAÇÕES APLICABILIDADE PARA CALL-CENTERS VISÃO DA EMPRESA SERVIÇO DE ANÁLISE DE REDES DE TELECOMUNICAÇÕES APLICABILIDADE PARA CALL-CENTERS VISÃO DA EMPRESA Muitas organizações terceirizam o transporte das chamadas em seus call-centers, dependendo inteiramente

Leia mais

ADMINISTRAÇÃO DOS RECURSOS DE DADOS

ADMINISTRAÇÃO DOS RECURSOS DE DADOS Capítulo 7 ADMINISTRAÇÃO DOS RECURSOS DE DADOS 7.1 2003 by Prentice Hall OBJETIVOS Por que as empresas sentem dificuldades para descobrir que tipo de informação precisam ter em seus sistemas de informação?

Leia mais

Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri. Banco de Dados Processamento e Otimização de Consultas

Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri. Banco de Dados Processamento e Otimização de Consultas Processamento e Otimização de Consultas Banco de Dados Motivação Consulta pode ter sua resposta computada por uma variedade de métodos (geralmente) Usuário (programador) sugere uma estratégia para achar

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

Bancos de Dados. Conceitos F undamentais em S is temas de B ancos de Dados e s uas Aplicações

Bancos de Dados. Conceitos F undamentais em S is temas de B ancos de Dados e s uas Aplicações Conceitos F undamentais em S is temas de B ancos de Dados e s uas Aplicações Tópicos Conceitos Básicos Bancos de Dados Sistemas de Bancos de Dados Sistemas de Gerenciamento de Bancos de Dados Abstração

Leia mais

MRP II. Planejamento e Controle da Produção 3 professor Muris Lage Junior

MRP II. Planejamento e Controle da Produção 3 professor Muris Lage Junior MRP II Introdução A lógica de cálculo das necessidades é conhecida há muito tempo Porém só pode ser utilizada na prática em situações mais complexas a partir dos anos 60 A partir de meados da década de

Leia mais

Conteúdo. Disciplina: INF 02810 Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo

Conteúdo. Disciplina: INF 02810 Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo Universidade Federal do Espírito Santo Centro Tecnológico Departamento de Informática Disciplina: INF 02810 Prof.: (monalessa@inf.ufes.br) Conteúdo 1. Introdução 2. Processo de Software 3. Gerência de

Leia mais

INTRODUÇÃO. Diferente de Bando de Dados

INTRODUÇÃO. Diferente de Bando de Dados INTRODUÇÃO Diferente de Bando de Dados 1 INTRODUÇÃO DADOS São fatos conhecidos que podem ser registrados e que possuem significado. Ex: venda de gasolina gera alguns dados: data da compra, preço, qtd.

Leia mais

Banco de Dados Distribuídos

Banco de Dados Distribuídos Banco de Dados Distribuídos Emmanuel Filho¹, Maria Cristina C. Rodrigues¹ Nayguron Henrique de S. Barreto¹, Wilton de Serpa Monteiro¹ ¹ Tecnologia em Análise e Desenvolvimento de Sistemas do Instituto

Leia mais

Manual AGENDA DE BACKUP

Manual AGENDA DE BACKUP Gemelo Backup Online DESKTOP Manual AGENDA DE BACKUP Realiza seus backups de maneira automática. Você só programa os dias e horas em que serão efetuados. A única coisa que você deve fazer é manter seu

Leia mais

Bancos de Dados Paralelos. Alunos: ALLAN ROGER BELLO WILLIAN DIAS TAMAGI

Bancos de Dados Paralelos. Alunos: ALLAN ROGER BELLO WILLIAN DIAS TAMAGI Bancos de Dados Paralelos Alunos: ALLAN ROGER BELLO WILLIAN DIAS TAMAGI INTRODUÇÃO (SGBD) Sistema Gerenciador de Banco de Dados é um software que permite criar, manter e manipular bancos de dados para

Leia mais

TRANSMISSÃO DE DADOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com

TRANSMISSÃO DE DADOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com - Aula 5-1. A CAMADA DE TRANSPORTE Parte 1 Responsável pela movimentação de dados, de forma eficiente e confiável, entre processos em execução nos equipamentos conectados a uma rede de computadores, independentemente

Leia mais

Tabela de roteamento

Tabela de roteamento Existem duas atividades que são básicas a um roteador. São elas: A determinação das melhores rotas Determinar a melhor rota é definir por qual enlace uma determinada mensagem deve ser enviada para chegar

Leia mais

AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: davidmr@ifce.edu.br CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0

AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: davidmr@ifce.edu.br CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0 AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: davidmr@ifce.edu.br CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0 SUMÁRIO 1 Conceitos Básicos... 3 1.1 O que é Software?... 3 1.2 Situações Críticas no desenvolvimento

Leia mais

O que é Gerenciamento de Redes de Computadores? A gerência de redes de computadores consiste no desenvolvimento, integração e coordenação do

O que é Gerenciamento de Redes de Computadores? A gerência de redes de computadores consiste no desenvolvimento, integração e coordenação do O que é Gerenciamento de Redes de Computadores? A gerência de redes de computadores consiste no desenvolvimento, integração e coordenação do hardware, software e usuários para monitorar, configurar, analisar,

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

1. CONCEITOS BÁSICOS DE BD, SBD E SGBD

1. CONCEITOS BÁSICOS DE BD, SBD E SGBD Introdução 1. CONCEITOS BÁSICOS DE BD, SBD E SGBD A importância da informação para a tomada de decisões nas organizações tem impulsionado o desenvolvimento dos sistemas de processamento de informações.

Leia mais

MANUAL DO USUÁRIO SORE Sistema Online de Reservas de Equipamento. Toledo PR. Versão 2.0 - Atualização 26/01/2009 Depto de TI - FASUL Página 1

MANUAL DO USUÁRIO SORE Sistema Online de Reservas de Equipamento. Toledo PR. Versão 2.0 - Atualização 26/01/2009 Depto de TI - FASUL Página 1 MANUAL DO USUÁRIO SORE Sistema Online de Reservas de Equipamento Toledo PR Página 1 INDICE 1. O QUE É O SORE...3 2. COMO ACESSAR O SORE... 4 2.1. Obtendo um Usuário e Senha... 4 2.2. Acessando o SORE pelo

Leia mais

Engenharia de Requisitos

Engenharia de Requisitos Engenharia de Requisitos Introdução a Engenharia de Requisitos Professor: Ricardo Argenton Ramos Aula 08 Slide 1 Objetivos Introduzir a noção de requisitos do sistema e o processo da engenharia de requisitos.

Leia mais

Capítulo 4 - Roteamento e Roteadores

Capítulo 4 - Roteamento e Roteadores Capítulo 4 - Roteamento e Roteadores 4.1 - Roteamento Roteamento é a escolha do módulo do nó de origem ao nó de destino por onde as mensagens devem transitar. Na comutação de circuito, nas mensagens ou

Leia mais

MÓDULO 7 Modelo OSI. 7.1 Serviços Versus Protocolos

MÓDULO 7 Modelo OSI. 7.1 Serviços Versus Protocolos MÓDULO 7 Modelo OSI A maioria das redes são organizadas como pilhas ou níveis de camadas, umas sobre as outras, sendo feito com o intuito de reduzir a complexidade do projeto da rede. O objetivo de cada

Leia mais

Sistemas de Gerenciamento de Banco de Dados

Sistemas de Gerenciamento de Banco de Dados Sistemas de Gerenciamento de Banco de Dados A U L A : C R I A Ç Ã O D E B A N C O D E D A D O S - R E Q U I S I T O S F U N C I O N A I S E O P E R A C I O N A I S P R O F. : A N D R É L U I Z M O N T

Leia mais

Arquitetura de Computadores. Sistemas Operacionais IV

Arquitetura de Computadores. Sistemas Operacionais IV Arquitetura de Computadores Sistemas Operacionais IV Introdução Multiprogramação implica em manter-se vários processos na memória. Memória necessita ser alocada de forma eficiente para permitir o máximo

Leia mais

SISTEMAS DISTRIBUIDOS

SISTEMAS DISTRIBUIDOS 1 2 Caracterização de Sistemas Distribuídos: Os sistemas distribuídos estão em toda parte. A Internet permite que usuários de todo o mundo acessem seus serviços onde quer que possam estar. Cada organização

Leia mais

ADMINISTRAÇÃO DOS RECURSOS DE DADOS

ADMINISTRAÇÃO DOS RECURSOS DE DADOS 7 ADMINISTRAÇÃO DOS RECURSOS DE DADOS OBJETIVOS Por que as empresas sentem dificuldades para descobrir que tipo de informação precisam ter em seus sistemas de informação ão? Como um sistema de gerenciamento

Leia mais

Admistração de Redes de Computadores (ARC)

Admistração de Redes de Computadores (ARC) Admistração de Redes de Computadores (ARC) Instituto Federal de Educação, Ciência e Tecnologia de Santa Catarina - Campus São José Prof. Glauco Cardozo glauco.cardozo@ifsc.edu.br RAID é a sigla para Redundant

Leia mais

DIMENSIONANDO PROJETOS DE WEB-ENABLING. Uma aplicação da Análise de Pontos de Função. Dimensionando projetos de Web- Enabling

DIMENSIONANDO PROJETOS DE WEB-ENABLING. Uma aplicação da Análise de Pontos de Função. Dimensionando projetos de Web- Enabling DIMENSIONANDO PROJETOS DE WEB-ENABLING Uma aplicação da Análise de Pontos de Função Dimensionando projetos de Web- Enabling Índice INTRODUÇÃO...3 FRONTEIRA DA APLICAÇÃO E TIPO DE CONTAGEM...3 ESCOPO DA

Leia mais

Sistemas Operacionais. Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com

Sistemas Operacionais. Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Sistemas Operacionais Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Introdução Um sistema operacional é um programa que atua como intermediário entre o usuário e o hardware de um computador. O propósito

Leia mais

Hoje é inegável que a sobrevivência das organizações depende de dados precisos e atualizados.

Hoje é 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 mais

Modelos. Comunicação com clientes

Modelos. Comunicação com clientes Material baseado nas notas de aula: Maria Luiza M. Campos IME/2005 Carlos Heuser - livro Projeto de Banco de Dados CasaNova / PUC/RJ Prof. MSc. Edilberto Silva edilms@yahoo.com Sistemas de Informação Brasília/DF

Leia mais

Universidade Paulista

Universidade Paulista Universidade Paulista Ciência da Computação Sistemas de Informação Gestão da Qualidade Principais pontos da NBR ISO/IEC 12207 - Tecnologia da Informação Processos de ciclo de vida de software Sergio Petersen

Leia mais

Projeto de Arquitetura

Projeto de Arquitetura Projeto de Arquitetura Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 11 Slide 1 Objetivos Apresentar projeto de arquitetura e discutir sua importância Explicar as decisões de projeto

Leia mais

Sistemas Operacionais. Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com

Sistemas 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 mais

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software PROCESSO DE DESENVOLVIMENTO DE SOFTWARE Introdução Modelos de Processo de Desenvolvimento de Software Os modelos de processos de desenvolvimento de software surgiram pela necessidade de dar resposta às

Leia mais

ATIVIDADES DE LINHA E DE ASSESSORIA

ATIVIDADES DE LINHA E DE ASSESSORIA 1 ATIVIDADES DE LINHA E DE ASSESSORIA SUMÁRIO Introdução... 01 1. Diferenciação das Atividades de Linha e Assessoria... 02 2. Autoridade de Linha... 03 3. Autoridade de Assessoria... 04 4. A Atuação da

Leia mais

SISTEMA GERENCIADOR DE BANCO DE DADOS

SISTEMA 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 mais