Baixe o app para aproveitar ainda mais
Prévia do material em texto
20/11/2023, 07:54 Sistemas de banco de dados distribuídos https://stecine.azureedge.net/repositorio/00212ti/07590/index.html# 1/76 Sistemas de banco de dados distribuídos Prof. Sidney Nicolau Venturi Filho Descrição Você verá a interação dos sistemas distribuídos e dos sistemas de banco de dados, originando os sistemas de banco de dados distribuídos. Propósito Banco de dados distribuídos e sua utilização também na nuvem são uma tendência atual no mercado de TI, por isso, o conhecimento de seus fundamentos é essencial para o profissional da área. Preparação Antes de iniciar seu estudo, faça o download e realize a instalação do software VirtualBox. Objetivos Módulo 1 Distribuição em sistemas computacionais 20/11/2023, 07:54 Sistemas de banco de dados distribuídos https://stecine.azureedge.net/repositorio/00212ti/07590/index.html# 2/76 Reconhecer os sistemas distribuídos. Módulo 2 Sistemas de banco de dados Analisar os componentes de um sistema de banco de dados. Módulo 3 Banco de dados distribuídos BDD Identificar as características de sistemas gerenciadores de banco de dados distribuídos. Módulo 4 Arquitetura de BDD Identificar as arquiteturas de banco de dados distribuídos. Introdução A evolução da tecnologia de redes de computadores, associada à sua popularização, levou os profissionais de informática a buscarem uma forma de utilizá-la para facilitar o acesso aos dados pelas organizações. O esquema de banco de dados centralizado, então em voga, evoluiu para esquema de distribuição de dados gerando os chamados bancos de dados distribuídos (BDD), nosso objeto de estudo. Antes de começar, 20/11/2023, 07:55 Sistemas de banco de dados distribuídos https://stecine.azureedge.net/repositorio/00212ti/07590/index.html# 3/76 assista ao vídeo e entenda os conceitos básicos dos sistemas BDD. 1 - Distribuição em sistemas computacionais Ao �nal deste módulo, você será capaz de reconhecer os sistemas distribuídos. Fundamentos de sistemas distribuídos Neste vídeo, conheça o funcionamento de um sistema distribuído e entenda os fundamentos e as camadas desse sistema. 20/11/2023, 07:55 Sistemas de banco de dados distribuídos https://stecine.azureedge.net/repositorio/00212ti/07590/index.html# 4/76 Sistema distribuído Considere o seguinte cenário: dois usuários, Carlos e Pedro, jogam xadrez pela internet. Na mecânica do jogo, ocorrem os seguintes passos: 1. Carlos, utilizando o aplicativo instalado em seu notebook, define o lance a ser executado. 2. O aplicativo do notebook envia lance, utilizando a rede, para o servidor que controla o jogo. 3. O servidor recebe o lance de Carlos, realiza o seu processamento e o envia para o aplicativo de Pedro. 4. O aplicativo no smartphone de Pedro recebe o lance do servidor e o exibe para o usuário. 5. Pedro seleciona o lance que deseja realizar no aplicativo de seu celular. 6. O aplicativo do celular envia o lance, utilizando a rede, para o servidor que controla o jogo. 7. O servidor recebe o lance de Pedro, realiza o seu processamento e o envia para o aplicativo de Carlos. 8. O aplicativo no notebook de Carlos recebe o lance do servidor e o exibe para o usuário. E esses passos se repetem até o final do jogo. Veja! Exemplo de sistema distribuído. O cenário mostra um tipo de atividade muito comum nos dias de hoje, que é a integração de ações entre locais físicos diferentes, caracterizando um sistema distribuído. Praticamente tudo o que realizamos na internet, compras, consultas, jogos etc. é implementado utilizando este tipo de interação. 20/11/2023, 07:55 Sistemas de banco de dados distribuídos https://stecine.azureedge.net/repositorio/00212ti/07590/index.html# 5/76 Vamos analisar com um pouco mais de cuidado o funcionamento descrito. Observe que apesar de Carlos e Pedro estarem fisicamente distantes e de serem intermediados por um servidor, eles podem interagir como se estivessem juntos, no mesmo local e utilizando uma mesma máquina. Quantas vezes você não viu alguém compartilhar uma planilha, um documento de texto, via internet e realizar a sua edição junto com outro usuário como se estivessem na mesma máquina? É exatamente esta possibilidade que caracteriza os sistemas distribuídos. Vejamos a definição a seguir. Um sistema distribuído é um conjunto de computadores interligados via rede, mas, para o usuário final das aplicações executadas através deles, aparenta ser um sistema único. (TANEMBAUM; STEEN, 2008, n.p.) A definição deixa bem claro que apesar de cada um dos computadores envolvidos no sistema distribuídos ter o seu funcionamento independente dos outros, podendo inclusive serem totalmente diferentes, eles parecem ser para os usuários um único sistema, integrado e coeso. Para permitir essa ilusão, os diversos componentes precisam ser ligados por uma rede, que a partir de seus protocolos padronizados irá mascarar as diferenças de suas arquiteturas. Totalmente diferentes Como no exemplo, no qual temos o servidor, o notebook e o celular, cada um deles com sua própria arquitetura de hardware e software. Camadas de um sistema distribuído 20/11/2023, 07:55 Sistemas de banco de dados distribuídos https://stecine.azureedge.net/repositorio/00212ti/07590/index.html# 6/76 Um sistema distribuído pode, de forma simplificada, ser dividido em quatro camadas: Aplicativo ou serviço: o programa que fornece o serviço ou funcionalidade. Middleware: software localizado entre o sistema operacional e os aplicativos cuja função é gerenciar os dados e a comunicação entre as duas camadas, mascarando desta forma a heterogeneidade da plataforma utilizada. Exemplos: CORBA (Common Object Request Broker Architecture), Java RMI (Remote Method Invocation), Web services (serviços web), Microsoft DCOM (Distributed Component Object Model) e ISO/ITU-T RM-ODP (Reference Model for Open Distributed Processing). Sistema Operacional: Software de gerenciamento do hardware da máquina hospedeira. Computador e hardware de redes: componentes eletrônicos que permitem o funcionamento do equipamento utilizado. Uma plataforma para aplicativos e sistemas distribuídos é composta pelo software de nível mais baixo e pelo hardware que fornecem serviços para as camadas superiores. Exemplo: Intel x86/Windows, Intel x86/Solaris, Intel x86/Mac OS X, Intel x86/Linux e ARM/Symbian. Veja a seguir o esquema que mostra as camadas de um sistema distribuído! Camadas de um sistema distribuído. 20/11/2023, 07:55 Sistemas de banco de dados distribuídos https://stecine.azureedge.net/repositorio/00212ti/07590/index.html# 7/76 Tipos de sistemas computacionais Assista ao vídeo e conheça os tipos de sistemas computacionais, como os sistemas centralizados e os sistemas paralelos. No projeto de sistemas computacionais, um dos fatores que devemos levar em conta é o tipo de sistema que vamos projetar, pois este fator determina o custo, as técnicas e o esforço necessário para o seu desenvolvimento. Os sistemas podem ser agrupados em dois grandes tipos: centralizados e paralelos. Sistemas centralizados Este é o tipo mais antigo, no qual temos a figura de um grande computador central, o mainframe, que recebe e processa uma grande quantidade de informações. Exemplo de sistema centralizado. A mecânica de seu funcionamento consiste em o usuário acessar o mainframe e realizar a sua solicitação. O servidor, por sua vez, processa a requisição, acessa os recursos necessários e produz o resultado. Um exemplo de sistema centralizado muito utilizado é o de bancos, sendo esta a melhor opção devido à prioridade dada à segurança e escalabilidade. Em sua maioria, os bancos comerciais utilizam grandes mainframes centrais em suas redes de dados, que armazenam e processam os dados críticos. 20/11/2023, 07:55 Sistemas de banco de dados distribuídos https://stecine.azureedge.net/repositorio/00212ti/07590/index.html# 8/76 Sistemas paralelos Neste tipo de sistema, existem vários processamentos ocorrendoao mesmo tempo para produzir os resultados solicitados. Este processamento simultâneo das várias partes de uma aplicação pode ser realizado das seguintes formas: Em sistemas paralelos, uma aplicação que implica o upload de um arquivo pelo usuário pode ser dividida em duas partes processadas ao mesmo tempo, uma que faz a carga da imagem e outra que mostrará a barra de progresso do carregamento. Em comparação com sistemas centralizados, a arquitetura paralela é de gerenciamento mais difícil e necessita de implementação mais robusta em sua segurança. Os sistemas paralelos podem ser de dois tipos: Sistemas paralelos fortemente acoplados. Em uma máquina com vários processadores. Em várias máquinas interligadas por uma rede de comunicação de dados se comportando como um único computador. Em uma máquina com um único processador com vários núcleos, como nas CPUs mais modernas. 20/11/2023, 07:55 Sistemas de banco de dados distribuídos https://stecine.azureedge.net/repositorio/00212ti/07590/index.html# 9/76 Sistemas paralelos fracamente acoplados. Sistemas paralelos fortemente acoplados Um grande conjunto de sistemas computacionais corresponde a este tipo, como notebook, smartphones, desktops, estações de trabalho e máquinas servidoras, ou seja, qualquer tipo de computador equipado com mais de um processador ou, se tiver um único processador, que este possua em sua arquitetura mais de um núcleo. Resumindo Um sistema paralelo fortemente acoplado corresponde, praticamente, a todos os atuais equipamentos que utilizamos para realizar a execução de aplicativos. Em sistemas fortemente acoplados, a comunicação entre os processadores ocorre utilizando o barramento interno do equipamento e as várias CPUs/núcleos compartilham a memória principal (conhecida popularmente como RAM – do inglês, Random Access Memory) do equipamento. Como a arquitetura suporta vários processadores, ou núcleos, vários programas, ou partes diferentes de um mesmo programa, podem ser executados de forma simultânea. Sistemas paralelos fracamente acoplados Este tipo se aplica aos sistemas de maior escala, sempre conectados por rede de computadores. Ele é composto de máquinas distintas, podendo cada uma delas ser individualmente do tipo fortemente acoplada, que trabalham em conjunto, de forma coordenada, para realizar o processamento solicitado e produzir o resultado pretendido. Exemplos típicos deste tipo são os sistemas implementados na arquitetura cliente servidor e arquitetura ponto a ponto, de amplo uso tanto na internet como em redes privadas. Em relação aos sistemas fortemente acoplados, os fracamente acoplados possuem algumas vantagens e desvantagens, acompanhe! Arquitetura cliente servidor Essa é a arquitetura de rede mais conhecida e utilizada nos sistemas informatizados. Nela temos presente a figura do computador que fornece os serviços, denominado servidor, e do computador que demanda o uso do 20/11/2023, 07:55 Sistemas de banco de dados distribuídos https://stecine.azureedge.net/repositorio/00212ti/07590/index.html# 10/76 serviço, denominado cliente. É o caso que você está vivenciando neste momento, já que seu browser (o cliente) acessa o conteúdo deste estudo fornecido por um servidor de páginas web. Arquitetura ponto a ponto Também conhecida como arquitetura peer-to-peer, ou simplesmente P2P, tem como característica o fato de não existir a figura do servidor e do cliente de forma marcada. Todas as máquinas da rede podem eventualmente fornecer um serviço ou demandar o serviço oferecido por outra máquina. É o que ocorre, por exemplo, quando você compartilha uma foto utilizando o bluetooth com um amigo após ter pareado os seus celulares. Outro exemplo típico é baixar arquivos via torrent. A flexibilidade e a escalabilidade, sendo muito mais simples acrescentar mais poder computacional, pois basta realizar o acréscimo de novas máquinas. A velocidade de transferência de dados entre os processadores é muito menor, já que nenhuma rede consegue atingir a velocidade de transferência dos barramentos internos de uma máquina. Os sistemas distribuídos são enquadrados neste tipo, já que são compostos por várias máquinas, interligadas por uma rede de computadores, que trabalham em conjunto processando as requisições. Sistemas distribuídos e virtualização Conheça neste vídeo os sistemas distribuídos e virtualização e faça a sua implementação em uma máquina virtual. 20/11/2023, 07:55 Sistemas de banco de dados distribuídos https://stecine.azureedge.net/repositorio/00212ti/07590/index.html# 11/76 A virtualização, atualmente, é muito popular, particularmente nos ambientes corporativos. Seu grande objetivo é fornecer uma versão implementada via software das implementações de redes, armazenamento, hardware e aplicações. Quando virtualizamos o hardware de um computador, criamos a denominada máquina virtual (Virtual Machine – VM), que nos permite, por exemplo, instalar o Sistema Operacional Linux na VM a partir de um equipamento físico que utiliza o Windows. Este esquema permite ainda que em um único equipamento físico tenhamos várias máquinas virtuais, cada uma com o seu próprio sistema operacional. Saiba mais O hardware de um computador é composto por memória RAM, processador, placas de vídeo, placa de rede, disco rígido entre outros. Outra utilização muito comum é na criação de redes virtuais, nas quais se configura em uma mesma rede física várias virtuais, cada uma com uma configuração personalizada e adequada às necessidades dos usuários. A virtualização possui três componentes principais: Hospedeiro É a máquina física em que existem máquinas virtuais. Convidado São as máquinas virtuais ou computadores virtualizados. 20/11/2023, 07:55 Sistemas de banco de dados distribuídos https://stecine.azureedge.net/repositorio/00212ti/07590/index.html# 12/76 Veja a seguir a interação dos três componentes principais da virtualização e exemplos de como são compostos. Componentes da virtualização. Para o usuário, a virtualização é transparente, pois ele não tem como saber se está acessando de forma remota uma máquina virtual ou real, nem se a rede que o atende é virtual ou não. Arquitetura de virtualização O software que permite emular uma máquina física é, de maneira genérica, chamado de hypervisor, sendo responsável por desacoplar a máquina física da virtual, bem como alocar os recursos da máquina física, de acordo com a necessidade da máquina virtual. Camada de virtualização É o software que permite criar sistemas convidados sobre sistemas hospedeiros. 20/11/2023, 07:55 Sistemas de banco de dados distribuídos https://stecine.azureedge.net/repositorio/00212ti/07590/index.html# 13/76 As máquinas físicas são tipicamente chamadas de hosts (hospedeiros), e as máquinas virtuais, de guests (convidados), veja! Arquitetura da virtualização. Programas para criar máquinas virtuais Existem vários softwares nos quais é possível criar e administrar máquinas virtuais, e os mais populares são VirtualBox, VM Ware e Hyper-V Microsoft. Neste módulo, vamos utilizar o VirtualBox, fabricado pela Oracle. Esse software tem uma licença do tipo GNU General Public License (Licença Pública Geral GNU), GNU GPL ou simplesmente GPL. A licença GPL permite a utilização e o estudo do software de maneira livre para quaisquer fins. Instalação do VirtualBox Para fazer o download do instalador, faça uma pesquisa no Google! Pesquisa para download do VirtualBox. Na página acessada, escolha o programa adequado ao seu sistema operacional, no caso do nosso exemplo, o Windows. 20/11/2023, 07:55 Sistemas de banco de dados distribuídos https://stecine.azureedge.net/repositorio/00212ti/07590/index.html# 14/76 Download do VirtualBox. Após o download do instalador, devemos selecionar a opção Next. Download do VirtualBox. Agora devemos escolher quais elementos da instalação queremos e qual será o local de instalação. Nonosso caso, deixaremos tudo conforme o padrão. Após essas configurações, devemos selecionar “Next”. 20/11/2023, 07:55 Sistemas de banco de dados distribuídos https://stecine.azureedge.net/repositorio/00212ti/07590/index.html# 15/76 Download do VirtualBox. Se necessário, clique em Yes nas próximas telas e finalmente em Install. Download do VirtualBox. 20/11/2023, 07:55 Sistemas de banco de dados distribuídos https://stecine.azureedge.net/repositorio/00212ti/07590/index.html# 16/76 Download do VirtualBox. Download do VirtualBox. Criando uma máquina virtual Após a instalação, inicie o VirtualBox a acesse a tela de gerenciamento e clique em Novo. 20/11/2023, 07:55 Sistemas de banco de dados distribuídos https://stecine.azureedge.net/repositorio/00212ti/07590/index.html# 17/76 Criação de uma máquina virtual no VirtualBox. Dentro da opção Novo, podemos definir todas as configurações de nossa máquina virtual, como seu nome, sistema operacional, quantidade de memória RAM, capacidade de disco rígido, processamento, entre outras ou então utilizar o assistente conforme faremos neste exemplo. Para isso, defina o nome da máquina e selecione a imagem ISO do Sistema Operacional a ser utilizado, no caso o Ubuntu Server 22.04.1. A seguir, clique em Próximo. Criação de uma máquina virtual no VirtualBox. Na tela seguinte, clique novamente em Próximo. 20/11/2023, 07:55 Sistemas de banco de dados distribuídos https://stecine.azureedge.net/repositorio/00212ti/07590/index.html# 18/76 Criação de uma máquina virtual no VirtualBox. Defina o tamanho da memória RAM e a quantidade de CPUs e clique em Próximo. Criação de uma máquina virtual no VirtualBox. Defina o tamanho do disco rígido virtual a ser utilizado e mais uma vez clique em Próximo. Criação de uma máquina virtual no VirtualBox. Confira o sumário da instalação e, se estiver tudo correto, clique em Finalizar. Caso não, volte e faça as correções. 20/11/2023, 07:55 Sistemas de banco de dados distribuídos https://stecine.azureedge.net/repositorio/00212ti/07590/index.html# 19/76 Criação de uma máquina virtual no VirtualBox. Após a criação, a máquina irá aparecer na lista de VMs e, para inicializá- la, basta clicar em Iniciar. Na primeira execução, será realizada a instalação do S.O. antes da abertura. Nas demais, a máquina será aberta para uso. Criação de uma máquina virtual no VirtualBox. Sistemas distribuídos e computação em nuvem Assista ao vídeo e aprenda a criar uma instância de máquina virtual em provedor de serviço na nuvem, usando como exemplo o serviço de nuvem da Amazon Web Service (AWS). Modelos de serviço em nuvem A computação em nuvem é uma tendência muito forte nos dias de hoje e implica necessariamente utilizar virtualização em algum nível. Este modelo abarca três grandes camadas: a aplicação, a plataforma e a infraestrutura. Confira! 20/11/2023, 07:55 Sistemas de banco de dados distribuídos https://stecine.azureedge.net/repositorio/00212ti/07590/index.html# 20/76 Camadas de computação em nuvem. Cada uma dessas camadas determina o modelo de serviço oferecido pelo provedor, com o consequente nível de virtualização. Os modelos de serviço podem ser: O consumidor contrata o acesso a um hardware especificado. Em geral, os recursos de TI disponibilizados via IaaS não são previamente configurados e o consumidor terá a responsabilidade de instalar, configurar e manter os serviços de software de que precise. Consiste em um ambiente pronto para uso. Diferentemente do modelo IaaS, no PaaS os recursos de TI (ex.: softwares) já estão instalados e configurados. Um pacote de produtos e ferramentas são disponibilizados prontos para uso. Infraestrutura como um serviço (IaaS – Infrastructure as a Service) Plataforma como um serviço (PaaS – Platform as a Service) Software como um serviço (SaaS – Software as a Service) 20/11/2023, 07:55 Sistemas de banco de dados distribuídos https://stecine.azureedge.net/repositorio/00212ti/07590/index.html# 21/76 Quando um aplicativo executado na nuvem é disponibilizado como um serviço ou uma utilidade, então temos um típico cenário de SaaS. Existe um grande mercado de produtos de softwares que podem ser contratados. Ao usar o ambiente de nuvem para executar um aplicativo, o consumidor fica livre de todo o trabalho necessário para o gerenciamento e controle de servidores de armazenamento, sistemas operacionais, rede e hardware, entre outros. Agora vamos conferir um resumo das principais características e usuários de cada modelo de serviço. IaaS PaaS Você Gerencia/Controla Sistema Operacional Aplicações Bibliotecas e Componentes Aplicações Recursos Virtualizados Servidores Armazenamento Rede Servidores Armazenamento Rede Sistema Operacional Bibliotecas e Componentes Quem Utiliza Gerentes de Sistemas Desenvolvedore Serviços Máquinas Virtuais, CPU, Redes, Memória, etc. Desenvolviment Implantação, Integração e Tes Tabela: Modelos de Serviço na Computação em Nuvem Sidney Venturi. O serviço de nuvem da Amazon (AWS - Amazon Web Service) Em essência, a plataforma AWS é um dos diversos provedores de computação em nuvem disponíveis no mercado, e oferece serviços de 20/11/2023, 07:55 Sistemas de banco de dados distribuídos https://stecine.azureedge.net/repositorio/00212ti/07590/index.html# 22/76 armazenamento, rede, computação remota, e-mail, desenvolvimento de aplicativos móveis, e segurança. A AWS é disponibilizada por meio de dois produtos, o EC2 que é o serviço da Amazon, e o S3, que é o serviço de armazenamento. A AWS é considerada o provedor de nuvem líder de mercado, dado que possui a maior fatia do mercado de adoção de nuvens públicas (dados de 2019). Ela atende a gigantes mundialmente conhecidas, como Netflix, Instagram, Adobe, Siemens, Autodesk, Avianca Linhas Áreas, General Eletric, Gol Linhas Áreas, LG, McDonalds, Mercado Livre, Shell e Samsung. Aqui, focaremos no EC2 e ver como podemos criar um servidor Virtual na AWS. Criando uma conta no AWS A AWS é um serviço pago, porém disponibiliza alguns recursos gratuitos por tempo indeterminado e permite, ainda, que por um ano, respeitados alguns limites de consumo de recursos, você estude e teste as soluções disponibilizadas. Para poder utilizar os recursos, primeiramente você deve criar uma conta de acordo com os seguintes passos: Acesse o site da AWS, da Amazon, versão em português, e clique em Crie uma conta da AWS, conforme indicado. Criação de uma conta na AWS. Na tela seguinte, cadastre o seu e-mail e um nome para a sua conta e clique em Verificar endereço de e-mail indicados pelas setas amarelas na imagem. 20/11/2023, 07:55 Sistemas de banco de dados distribuídos https://stecine.azureedge.net/repositorio/00212ti/07590/index.html# 23/76 Criação de uma conta na AWS. Na tela seguinte, preencha o código de verificação enviado para o e-mail cadastrado e clique em Verificar. Criação de uma conta na AWS. A seguir, cadastre a senha do usuário raiz e clique em Continuar. 20/11/2023, 07:55 Sistemas de banco de dados distribuídos https://stecine.azureedge.net/repositorio/00212ti/07590/index.html# 24/76 Criação de uma conta na AWS. Preencha as informações de contato e clique em Continuar. Criação de uma conta na AWS. Informe os dados de faturamento e clique em Continuar. 20/11/2023, 07:55 Sistemas de banco de dados distribuídos https://stecine.azureedge.net/repositorio/00212ti/07590/index.html# 25/76 Criação de uma conta na AWS. Cadastre o seu telefone e clique mais uma vez em Continuar. 20/11/2023, 07:55 Sistemas de banco de dados distribuídos https://stecine.azureedge.net/repositorio/00212ti/07590/index.html# 26/76 Criação de uma conta na AWS. Confirme sua identidade. 20/11/2023, 07:55 Sistemas de banco de dados distribuídos https://stecine.azureedge.net/repositorio/00212ti/07590/index.html# 27/76 Criação de uma conta na AWS. Selecione Suporte Gratuito e conclua o cadastramento. Criação de umaconta na AWS. A seguir, na última tela, clique em Acesse o Console de Gerenciamento da AWS. 20/11/2023, 07:55 Sistemas de banco de dados distribuídos https://stecine.azureedge.net/repositorio/00212ti/07590/index.html# 28/76 Criação de uma conta na AWS. Criando sua primeira instância Para criar sua instância, que é como a AWS chama as máquinas virtualizadas, siga os seguintes passos: No console, clique em EC2. Criação de uma instância na AWS. 20/11/2023, 07:55 Sistemas de banco de dados distribuídos https://stecine.azureedge.net/repositorio/00212ti/07590/index.html# 29/76 No painel do EC2, selecione Executar instância. Criação de uma instância na AWS. A próxima tela é a de criação de instância que possui vários campos. Inicie preenchendo o nome do servidor. Criação de uma instância na AWS. Selecione, a seguir, o tipo de máquina virtual que você deseja. No exemplo, está sendo selecionado um servidor Windows. 20/11/2023, 07:55 Sistemas de banco de dados distribuídos https://stecine.azureedge.net/repositorio/00212ti/07590/index.html# 30/76 Criação de uma instância na AWS. Em Tipo de instância deixe o que foi sugerido. Criação de uma instância na AWS. Em Par de chaves, clique em Criar um novo par. As chaves serão necessárias para você poder acessar a instância posteriormente. Criação de uma instância na AWS. Escolha um nome para o par de chaves e clique em Criar par de chaves. 20/11/2023, 07:55 Sistemas de banco de dados distribuídos https://stecine.azureedge.net/repositorio/00212ti/07590/index.html# 31/76 Criação de uma instância na AWS. Após clicar, será feito o download em seu computador do arquivo de chave, salve-o em um lugar seguro para que depois você possa acessar a instância. Após o download da chave, deixe as outras opções como sugeridas e verifique o resumo da criação. Se estiver tudo correto, clique em Executar instância. 20/11/2023, 07:55 Sistemas de banco de dados distribuídos https://stecine.azureedge.net/repositorio/00212ti/07590/index.html# 32/76 Criação de uma instância na AWS. A instância será criada e inicializada. Criação de uma instância na AWS. Para ver todas as instâncias que você criou, clique no botão Visualizar todas as instâncias. 20/11/2023, 07:55 Sistemas de banco de dados distribuídos https://stecine.azureedge.net/repositorio/00212ti/07590/index.html# 33/76 Criação de uma instância na AWS. Falta pouco para atingir seus objetivos. Vamos praticar alguns conceitos? Questão 1 Amazon Elastic Compute Cloud é uma parte central da plataforma de cloud computing da Amazon.com, Amazon Web Services. O EC2 permite que os usuários aluguem computadores virtuais nos quais rodam suas próprias aplicações. Considerando a criação de uma instância na AWS EC2, marque a opção que representa o modelo de entrega de computação em nuvem trabalhado. Parabéns! A alternativa D está correta. O procedimento apresentado corresponde à criação de uma instância de um servidor Windows Server e representa um típico exemplo de IaaS – Infrastructure as a Service. O que fizemos A PaaS B SaaS C XaaS D IaaS E NaaS 20/11/2023, 07:55 Sistemas de banco de dados distribuídos https://stecine.azureedge.net/repositorio/00212ti/07590/index.html# 34/76 representa a ideia de que um servidor (hardware + software) on- premise seria substituído pela instância AWS EC2 criada. Questão 2 Um sistema de processamento distribuído é um sistema que interliga vários nós de processamento de maneira que um processo de grande consumo seja executado no nó "mais disponível", ou mesmo subdividido por vários nós. Os sistemas distribuídos podem ser divididos em quatro camadas: I. Sistema Operacional. II. Aplicativos e Serviços. III. Computador hardware de Rede. IV. Middleware. Constituem a chamada plataforma: Parabéns! A alternativa D está correta. A plataforma em sistemas distribuídos corresponde às características do hardware e do software mais próximo do A I e II. B II e III. C III e IV. D I e III. E I e IV. 20/11/2023, 07:55 Sistemas de banco de dados distribuídos https://stecine.azureedge.net/repositorio/00212ti/07590/index.html# 35/76 equipamento físico correspondendo ao sistemas operacional e aos equipamentos eletrônicos do computador e da rede. 2 - Sistemas de banco de dados Ao �nal deste módulo, você será capaz de analisar os componentes de um sistema de banco de dados. Dados e informação Conheça neste vídeo a diferença entre dados e informação e analise os componentes de um sistema de banco de dados. O que são dados? Segundo a definição de Ferreira et al. (1999, p. 602), dado é o “princípio em que se assenta uma discussão” ou o “elemento ou base para a formação de um juízo”. Tomando um ponto de vista mais filosófico, dado é “o que se apresenta à consciência como imediato, não construído ou não elaborado” (FERREIRA et al. 1999, p. 602). Essas definições são úteis para 20/11/2023, 07:55 Sistemas de banco de dados distribuídos https://stecine.azureedge.net/repositorio/00212ti/07590/index.html# 36/76 exemplificar o termo dado e situar sua definição de um ponto de vista mais humano. Dados numéricos. Computacionalmente falando, podemos definir dado como um valor armazenado e que por si só não quer dizer muita coisa. Uma lista de números, por exemplo, 10, 12, 20, 21, 23, 38 não nos fornecem nenhum significado, mas por assim dizer, são os dados obtidos e anotados de alguma forma. A necessidade de armazenar os dados precede a criação do conceito de sistemas de banco de dados. Antigamente, os dados eram armazenados em arquivos, normalmente eram associados a um único sistema de aplicação gerando, por consequência, redundância de dados quando os mesmos dados se faziam necessários em outros sistemas. Sistemas de informação Podem ser tecnicamente definidos como um conjunto de componentes que coletam, processam, armazenam e distribuem informações para suportar a tomada de decisão e o controle das operações de uma organização. Um sistema de informação contém informações sobre pessoas, lugares etc. de dentro da organização ou do ambiente externo à organização, com o qual a organização mantém constante intercâmbio. Há basicamente três níveis de intercâmbio de informações: Ambiente externo 20/11/2023, 07:55 Sistemas de banco de dados distribuídos https://stecine.azureedge.net/repositorio/00212ti/07590/index.html# 37/76 Podemos definir três atividades básicas em um sistema de informação, por meio das quais ele produz as informações necessárias para a tomada de decisão e controle das operações dentro da organização, veja! Entrada (input) Coleta os dados dentro da organização ou do ambiente externo para o processamento. Processamento Converte os dados coletados colocando-os em uma forma inteligível. Saída (output) Distribui as informações processadas para os usuários ou para outras atividades, ou armazena-os para futura utilização. Os sistemas de informação também necessitam de realimentação (feedback). A saída (output) retorna aos membros da organização para avaliação e correção dos dados coletados e processados. Organização Sistemas de informações 20/11/2023, 07:55 Sistemas de banco de dados distribuídos https://stecine.azureedge.net/repositorio/00212ti/07590/index.html# 38/76 Sistemas de informação. O desenvolvimento de sistemas de informações evoluiu de sistemas tradicionais para sistema de banco de dados ao longo do tempo. Tipos de sistemas de informação Confira no vídeo os tipos de sistemas de informação: sistemas tradicionais e sistemas de bancos de dados. Sistemas tradicionais São baseados no uso de arquivos que normalmente são associados a um único sistema de aplicação trazendo, por consequência, redundância de dados quando os mesmos dados se faziam necessários em outros sistemas. A maioria das organizações desenvolve sistemas de informação à medida que se tornam necessários, utilizando, cada um, o seu próprio conjunto de programas, arquivos e usuários. Podemosnotar que: Cada aplicação possui seus próprios arquivos de dados. Se uma aplicação compartilha dados com outras aplicações, esses dados devem ser duplicados. 20/11/2023, 07:55 Sistemas de banco de dados distribuídos https://stecine.azureedge.net/repositorio/00212ti/07590/index.html# 39/76 Qualquer alteração no modelo de dados implica em alterar o código da aplicação. Confira agora a estrutura de um sistema baseado em arquivo! Sistemas baseados em arquivos. O esquema apresentado acaba acarretando: Redundância de dados Trata-se da duplicação dos mesmos dados em dois ou mais arquivos. O problema com a redundância é que as mudanças ao serem feitas no arquivo de uma aplicação não são automaticamente realizadas nos arquivos das outras aplicações, gerando a falta de integridade dos dados. Dependência entre programas e dados Programas e dados desenvolvidos e organizados para uma aplicação são incompatíveis com os programas e dados organizados diferentemente para outro aplicativo. Os aplicativos tradicionais de banco de dados de arquivos são caracterizados por essa dependência. Custo excessivo em software Resultam da criação, documentação e acompanhamento de muitos arquivos e aplicações dif t 20/11/2023, 07:55 Sistemas de banco de dados distribuídos https://stecine.azureedge.net/repositorio/00212ti/07590/index.html# 40/76 Sistemas de banco de dados Um banco de dados é uma coleção de dados organizados de tal forma que possam ser acessados e utilizados por muitas aplicações diferentes. Ou seja, em vez de armazenar dados em arquivos separados para utilização, os dados são armazenados e organizados em um só local, permitindo compartilhamento e inter-relacionamento por múltiplos usuários. A fim de usar a abordagem de banco de dados para o gerenciamento de dados, foi necessário um software adicional – um sistema de gerenciamento de banco de dados (SGBD). O SGBD consiste em um grupo de programas que pode ser usado como uma interface entre o banco de dados e um usuário ou um banco de dados e um programa aplicativo. Veja! Sistemas baseados em banco de dados. Componentes de um sistema de banco de dados Note os seguintes componentes de um sistema: Componentes de um sistema de banco de dados. diferentes. 20/11/2023, 07:55 Sistemas de banco de dados distribuídos https://stecine.azureedge.net/repositorio/00212ti/07590/index.html# 41/76 Agora vejamos a descrição desse sistema a partir de Elmasri e Navathe (2011). Sistema de informações, computadorizado, que possibilita o armazenamento, manuseio, alteração e divulgação das informações armazenadas. Essas informações se fazem representar por dados organizados e formatados de maneira que sejam conhecidos e utilizados pelos usuários. Os programas são escritos em uma linguagem de front-end, possibilitando o acesso do usuário aos dados contidos no banco. Já as consultas representam as informações solicitadas pelo usuário ao banco de dados. Coleção de programas que permite aos usuários criarem e manipularem uma base de dados. Um SGBD é, assim, um sistema de software de propósito geral, que facilita o processo de definir, construir e manipular a base de dados de diversas aplicações. Módulo do SGBD responsável por determinar a forma de executar a consulta solicitada pelo usuário, via aplicação. Realiza a interpretação do comando (análise sintática, léxica e semântica) e elabora o plano de execução do comando, estabelecendo a forma de acessar fisicamente os dados. Sistema de banco de dados Programas aplicativos e consultas Sistema gerenciador de banco de dados (SGBD) Software para processar consultas/manipulação Software para acessar dados armazenados 20/11/2023, 07:55 Sistemas de banco de dados distribuídos https://stecine.azureedge.net/repositorio/00212ti/07590/index.html# 42/76 Módulo do SGBD responsável pelo controle do acesso físico aos dados. Conjunto de valores armazenados pelo banco de dados em seus arquivos. Armazena metadados, ou seja, informações referentes ao tipo e organização dos dados do banco. Abordagem de banco de dados Confira no vídeo os principais aspectos sobre as características e vantagens da abordagem de banco de dados. Características da abordagem de banco de dados Conheça cada característica dessa abordagem! Autoinformação Na abordagem banco de dados, o SGBD mantém não somente os dados, mas também a forma como são armazenados, contendo uma descrição completa do banco de dados. Essas informações são armazenadas no catálogo do SGBD, o qual contém informações como a estrutura de cada arquivo, o tipo e o formato de armazenamento de cada tipo de dado, restrições etc. A informação armazenada no catálogo Dados Catálogo 20/11/2023, 07:55 Sistemas de banco de dados distribuídos https://stecine.azureedge.net/repositorio/00212ti/07590/index.html# 43/76 é chamada de MetaDados. No processamento tradicional de arquivos, o programa que irá manipular os dados deve conter este tipo de informação, ficando limitado a manipular as informações que ele conhece. Utilizando a abordagem de banco de dados, a aplicação pode manipular diversas bases de dados diferentes. Separação entre programas e dados No processamento tradicional de arquivos, a estrutura dos dados está incorporada ao programa de acesso. Dessa forma, qualquer alteração na estrutura de arquivos implica a alteração no código fonte de todos os programas. Já na abordagem banco de dados, a estrutura é alterada apenas no catálogo, não havendo necessidade de alterar os programas. Abstração de dados O SGBD deve fornecer ao usuário uma representação conceitual dos dados, sem fornecer muitos detalhes de como as informações são armazenadas. Um modelo de dados é uma abstração de dados utilizada para fornecer esta representação conceitual utilizando conceitos lógicos como objetos, suas propriedades e seus relacionamentos. A estrutura detalhada e a organização de cada arquivo são descritas no catálogo. Múltiplas visões de dados Como um conjunto de informações pode ser utilizado por um conjunto diferenciado de usuários, é importante que esses usuários possam ter “visões” diferentes da base de dados. Uma “visão” é definida como um subconjunto de uma base de dados, formando desse modo, um conjunto “virtual” de informações. Vantagens da abordagem de banco de dados Conheça a seguir algumas vantagens dessa abordagem! Possibilita a eliminação de dados privativos de cada sistema. Os dados comuns a mais de um sistema são compartilhados, mantendo-se uma única informação, a ser consultada por vários sistemas. Redução ou eliminação de redundâncias Eliminação de inconsistências 20/11/2023, 07:55 Sistemas de banco de dados distribuídos https://stecine.azureedge.net/repositorio/00212ti/07590/index.html# 44/76 Por meio do armazenamento da informação em um único local com acesso descentralizado. A inconsistência acontece quando um mesmo campo tem valores distintos em sistemas diferentes. Exemplo, o estado civil de uma pessoa é solteiro em um sistema e casado em outro. Isso ocorre porque o campo em um sistema foi atualizado e no outro não. Quando o dado é armazenado em um único local e compartilhado pelos sistemas, esse problema não ocorre. Permite a utilização simultânea e segura de um dado por mais de uma aplicação ou usuário, independentemente da operação que esteja sendo realizada. Apenas deve ser observado o processo de atualização concorrente, para não gerar erros de processamento, atualizar simultaneamente, ou seja, o mesmo campo do mesmo registro. Os aplicativos são por natureza multiusuários. Definem, para cada usuário, o nível de acesso (leitura, leitura e gravação ou sem acesso) ao arquivo e/ou campo. Este recurso impede que pessoas não autorizadas utilizem ou atualizem determinado arquivo ou campo. Permite que os campos armazenados na base de dados sejam padronizados segundo um determinado formato (padronização de tabela, conteúdo de campos etc.),seguindo critérios com padrões preestabelecidos pela organização. Exemplo, para o campo "Sexo" somente será permitido armazenamento dos caracteres M ou F. Compartilhamento de dados Restrições de segurança Padronização dos dados Independência dos dados 20/11/2023, 07:55 Sistemas de banco de dados distribuídos https://stecine.azureedge.net/repositorio/00212ti/07590/index.html# 45/76 A recuperação das informações pelos programas de aplicação deve ser totalmente independente da maneira com que os dados estão fisicamente armazenados. Este conhecimento do formato de armazenamento do campo é totalmente transparente para o usuário. A independência dos dados permite que: Os programas de aplicação definam apenas os campos que serão utilizados, independente da estrutura interna dos arquivos. Ao incluir novos campos no arquivo, a manutenção seja feita apenas nos programas que utilizam esses campos, não sendo necessário alterar os demais programas. Obs.: Nos sistemas tradicionais, este tipo de operação requer a alteração no layout de todos os programas do sistema que utilizam o arquivo. Consiste em impedir que determinado código ou chave em uma tabela não tenha correspondência em outra. Exemplo, um código de determinada disciplina na tabela “Histórico Escolar” sem a sua descrição na tabela “Disciplina”. Arquitetura e usuários em sistemas de banco de dados Neste vídeo, conheça a arquitetura 3 esquemas, seus componentes, e identifique os principais usuários em sistemas de banco de dados. Arquitetura três esquemas Manutenção da integridade 20/11/2023, 07:55 Sistemas de banco de dados distribuídos https://stecine.azureedge.net/repositorio/00212ti/07590/index.html# 46/76 Visando facilitar o desenvolvimento de sistemas e realçar as vantagens da utilização de sistemas de banco de dados, foi criada a arquitetura três esquemas, cuja principal meta é separar as aplicações do usuário do banco de dados físico. Confira! Esquema interno Descreve a estrutura de armazenamento físico do banco de dados; utiliza um modelo de dados e descreve detalhadamente os dados armazenados e os caminhos de acesso ao banco de dados. Esquema conceitual Descreve a estrutura do banco de dados como um todo; é uma descrição global do banco de dados, que não fornece detalhes do modo como os dados estão fisicamente armazenados. Esquema externo Descreve as visões do banco de dados para um grupo de usuários; cada visão descreve quais porções do banco de dados um grupo de usuários terá acesso. Veja esta imagem e entenda melhor os tipos de esquema apresentados! Arquitetura 3 esquemas. Usuários de banco de dados A implantação e a utilização de um SGBD envolvem uma gama de profissionais em diferentes níveis e especialidades dentro de uma organização. De acordo com as bibliografias pesquisadas, foi possível 20/11/2023, 07:55 Sistemas de banco de dados distribuídos https://stecine.azureedge.net/repositorio/00212ti/07590/index.html# 47/76 localizar alguns profissionais e suas atividades em um banco de dados. Estes são os profissionais: Analista de sistema Determina especificações dos usuários funcionais na organização e define parte do projeto lógico do sistema de acordo com a necessidade do seu negócio ou departamento. Programador de aplicação Implementa as especificações avaliadas pelo analista de sistema produzindo programas escritos na linguagem hospedeira (por exemplo, Cobol, PL/SQL, C# etc.) e então, testam, depuram, documentam e mantêm estes programas. Projetista de banco de dados É responsável por identificar os dados a serem armazenados no banco de dados e escolher estruturas apropriadas para representar e armazenar tais dados. É responsabilidade destes projetistas obter requisitos necessários dos futuros usuários do banco de dados para que o projeto de banco de dados possa ser capaz de dar suporte a todos os níveis e departamentos da organização. Administrador de banco de dados Supervisiona e gerencia o compartilhamento dos usuários na utilização do banco de dados. O administrador de banco de dados é responsável por autorizar acesso ao banco de dados, coordenar e monitorar seu uso. Administrador de dados Tem o objetivo de gerenciar o Modelo de Dados Corporativo, contribuindo para assegurar a qualidade das informações, a 20/11/2023, 07:55 Sistemas de banco de dados distribuídos https://stecine.azureedge.net/repositorio/00212ti/07590/index.html# 48/76 integração dos sistemas, a retenção e a disseminação do conhecimento dos negócios. Falta pouco para atingir seus objetivos. Vamos praticar alguns conceitos? Questão 1 Sistemas de banco de dados são compostos por diversos componentes, cada um deles provendo uma funcionalidade específica e contribuindo para as características desejáveis do sistema. Nesse contexto, o componente do sistema que contribui para a característica da autoinformação é Parabéns! A alternativa B está correta. Segundo a característica da autoinformação, um banco de dados deve possuir metadados, ou seja, informações a respeito da estrutura de seus dados, armazenar essa estrutura é justamente a função do catálogo. A o SGBD. B o catálogo. C os aplicativos. D a base de dados. E o software para acessar dados armazenados. 20/11/2023, 07:55 Sistemas de banco de dados distribuídos https://stecine.azureedge.net/repositorio/00212ti/07590/index.html# 49/76 Questão 2 Os sistemas de banco de dados visam facilitar o desenvolvimento de sistemas e realçar as vantagens da sua utilização. Eles são organizados em uma arquitetura três esquemas. Nessa arquitetura, dependendo do tipo de usuário, um esquema será acessado. Quanto a essa situação, podemos afirmar que I. Administradores de banco de dados atuam no esquema interno. II. Desenvolvedores de aplicações atuam no esquema conceitual. III. Usuários comuns atuam no esquema conceitual. IV. Analistas de sistema atua no esquema interno. Estão corretas as afirmativas Parabéns! A alternativa A está correta. O administrador de banco de dados atua no esquema interno, o programador, no esquema conceitual, o analista de sistemas, no esquema conceitual e os usuários comuns, no esquema externo. Portanto, estão corretas as afirmativas I e II. A I e II. B II e III. C III e IV. D I e III. E I e IV. 20/11/2023, 07:55 Sistemas de banco de dados distribuídos https://stecine.azureedge.net/repositorio/00212ti/07590/index.html# 50/76 3 - Banco de dados distribuídos BDD Ao �nal deste módulo, você será capaz de identi�car as características de sistemas gerenciadores de banco de dados distribuídos. Características do SBDD Assista ao vídeo e conheça as características dos SBDD, veja os bancos de dados distribuídos e a motivação para o uso desses bancos. Bancos de dados distribuídos Um sistema de banco de dados distribuídos constitui um conjunto de dados que se encontra disperso em vários servidores diferentes, localizados fisicamente em sites, interligados por uma rede de comunicações. Neste tipo de sistema, cada local diferente deve suportar suas aplicações, bem como as aplicações globais que envolvam mais de um site ao mesmo tempo. 20/11/2023, 07:55 Sistemas de banco de dados distribuídos https://stecine.azureedge.net/repositorio/00212ti/07590/index.html# 51/76 Visão geral de um SBDD. Em um SBDD, temos dois tipos de banco de dados: Banco local Funciona de forma similar a um banco de dados centralizado que atende as demandas de informação dos usuários locais. Banco global Enxerga os diversos sites como partes de um todo e atende as demandas de informações de toda a organização. O BD local é gerenciado de forma autônoma em relação aos outros sites, faz uso do sistema operacional local e seu SGBD provê as seguintes facilidades básicas: Métodos de acesso Gerência de processos Gerência de memória 20/11/2023, 07:55 Sistemas de banco de dados distribuídos https://stecine.azureedge.net/repositorio/00212ti/07590/index.html# 52/76 Já o BD Global podeser visto como a coletividade dos BDs e corresponde à implementação do BDD, sendo o SGBD Global o responsável pela sua gerência, correspondendo a uma aplicação que funciona integrado ao sistema operacional de redes, pertencendo à camada de aplicação do modelo de referência OSI/ISO, tornando transparente todos os problemas de comunicação de dados e distribuição de recursos da rede de computadores. Neste esquema, cada site da rede possuirá, então, um SBGD local e uma cópia do SGBD global, caso armazene parte do banco, ou apenas o gerente de transações, caso não armazene parte do banco. O projeto de um BDD difere do processo de projeto tradicional de bancos de dados pelo acréscimo do planejamento de como realizar a distribuição dos dados com a utilização de duas técnicas básicas: Modelo de referência OSI/ISO Open Systems Interconection/ International Standards Organization – é uma arquitetura de rede voltada para facilitar a interconexão de redes de comunicação heterogêneas. Fragmentação As tabelas são divididas em vários fragmentos armazenados em sites diferentes. Há o particionamento do BD. Replicação O sistema mantém cópias da mesma tabela em sites diferentes, podendo essas cópias serem réplicas ou extratos. Mas qual seria a diferença entre réplica e extrato? Réplica é qualquer duplicação de dados onde se admite a atualização. Extrato é qualquer duplicação de dados que nunca será atualizada, ou seja, a cópia é planejada para operações somente de leitura. 20/11/2023, 07:55 Sistemas de banco de dados distribuídos https://stecine.azureedge.net/repositorio/00212ti/07590/index.html# 53/76 Motivação para uso de banco de dados distribuídos Tradicionalmente, os sistemas de banco de dados são utilizados de forma centralizada, ou seja, o banco reside em um único servidor que executa todas as consultas e acesso ao banco de dados. Este tipo de sistema apresenta normalmente alguns fatores a seu favor, particularmente a economia de escala, a facilidade de gerência do controle da segurança da integridade e da implantação de padrões. O desenvolvimento da tecnologia de redes de computadores, associado ao objetivo de tornar os dados mais facilmente disponíveis ao usuário final em aplicações geograficamente dispersas, levou ao desenvolvimento de soluções de distribuição de sistemas, incluindo os bancos de dados. Além disso, devemos levar em conta que sistemas centralizados apresentam vulnerabilidade maior a falhas e nem sempre permitem um crescimento gradativo da capacidade computacional instalada de forma simples e adequada. Em resumo, podemos afirmar que BDD são atrativos pelos seguintes fatores: Economia de escala O custo por unidade de trabalho decresce à medida que o tamanho do processador cresce (Lei de Grosch). A estrutura organizacional ou geográfica do empreendimento dá maior autonomia e responsabilidade local ao usuário, mas preservando uma visão unificada dos dados. O desenvolvimento de redes de comunicação de dados permitiu a interligação de muitos processadores independentes de forma confiável e com custo previsível. 20/11/2023, 07:55 Sistemas de banco de dados distribuídos https://stecine.azureedge.net/repositorio/00212ti/07590/index.html# 54/76 Sistema gerenciador de banco de dados distribuídos (SGBDD) Conheça neste vídeo o sistema gerenciador, veja seus tipos, as classes de usuários e as características dos SGBDDs. O que é um sistema de gerência de BDD? Os SGBDDs expandem as capacidades dos SGBD normais, de forma que o armazenamento de um banco de dados possa ser dividido em vários nós, interligados por uma rede de computadores, mantendo a visão integrada do banco global. Esses SGBDDs são atrativos com base nos seguintes pontos de vista: Do ponto de vista puramente econômico, o preço/performance de equipamentos de menor porte tem melhorado substancialmente, obliterando o argumento a favor de equipamentos de grande porte. Podem ser projetados de tal forma a melhorar a disponibilidade e confiabilidade do sistema por meio da replicação de dados, além de permitirem um crescimento modular da aplicação simplesmente acrescentando-se novos processadores e novos módulos do banco ao sistema. 20/11/2023, 07:55 Sistemas de banco de dados distribuídos https://stecine.azureedge.net/repositorio/00212ti/07590/index.html# 55/76 Administrativo Mesmo existindo compartilhamento global no uso, cada setor organizacional mantém o controle sobre os seus dados. Econômico Diminuem os custos de comunicações de longa distância associados ao acesso a um único nó central. Técnico Facilitam o crescimento modular do sistema e aumentam a confiabilidade por meio da replicação das partes críticas do banco em mais de um nó. E�ciência de acesso Por meio de um critério judicioso de particionamento e replicação, permitem colocar os dados próximos ao local onde são mais frequentemente usados. Apesar desses aspectos de atração, devemos levar em conta que a arquitetura de SBDD acarreta dificuldades de implementação sérios, aumento no custo do desenvolvimento, consumo de recursos e podem possuir um desempenho duvidoso. Tipos de SGBDs distribuídos Os SGBDs podem ser classificados em: Homogêneos: aparecem com maior frequência quando a aplicação a que se destinam não existia antes e se caracterizam pelo fato de os SGBDs locais serem semelhantes, ou seja, oferecem interfaces idênticas. Usam o mesmo modelo de dados e fornecem os mesmos serviços em diferentes nós. Heterogêneos: utilizados normalmente em organizações onde existem bancos departamentais e individuais que serão integrados por meio de redes de computadores, visando aproveitar o hardware e o software já existente. Interfaces idênticas 20/11/2023, 07:55 Sistemas de banco de dados distribuídos https://stecine.azureedge.net/repositorio/00212ti/07590/index.html# 56/76 Usam a mesma Linguagem de Definição de Dados (DDL) e Linguagem de Manipulação de Dados (DML). Modelo de dados Redes, hierárquico, relacional etc. Classe de usuários de um SGBD distribuído Além dos usuários que existem normalmente nos sistemas de banco de dados, em banco de dados distribuídos os usuários podem ser classificados em dois grandes grupos: Usuários locais Têm contato apenas com o banco de dados local ao nó, residindo e interagindo apenas com o SGBD local. Usuários globais Observam o banco de dados distribuído como um todo e acessam os dados por meio das interfaces do SGBD global. Veja a seguir alguns exemplos de usuários: Administrador do banco, ("database administrator") responsável pela definição e manutenção do banco. Analistas e programadores de aplicação, responsáveis pelo desenvolvimento de aplicações sobre o banco de dados. Usuários casuais, como gerentes, que usualmente não são programadores treinados e fazem uso do banco irregularmente. Usuários paramétricos, como caixas de banco, que fazem uso do banco de dados por meio de transações paramétricas pré- programadas. Características dos sistemas gerenciadores Em BDDs, as aplicações não precisam se preocupar em conhecer a distribuição dos dados pelos diversos BD locais nem precisam conhecer os detalhes dos caminhos de acesso aos servidores pela rede. Visando 20/11/2023, 07:55 Sistemas de banco de dados distribuídos https://stecine.azureedge.net/repositorio/00212ti/07590/index.html# 57/76 prover esta transparência para as aplicações, os SGBDDs devem possuir as seguintes características: Autonomia local Cada BD local deve ser proprietário de seus dados e realizar a sua gerência. Para os usuários locais, o acesso aos seus dados deve se comportar como se estivesse sendo utilizado um BD centralizado independente. Independência de replicação Os usuários não devem ter ciência de que os dados estão replicados, tornando transparente para eles as redundâncias existentes. Independência de fragmentação Os usuários não devem ter ciência da fragmentação existente nos dados, para eles deve existir umavisão única. Não dependência de um site central Nenhum site do sistema deve possuir autoridade sobre os demais, todos devem possuir uma cópia dos requisitos de segurança e do esquema do banco de dados. Operação contínua C d l l i t i j é 20/11/2023, 07:55 Sistemas de banco de dados distribuídos https://stecine.azureedge.net/repositorio/00212ti/07590/index.html# 58/76 Cada local possui autonomia, ou seja, é independente dos demais. No entanto, para que formem um sistema, devem cooperar entre si. Para tal, deve prover a confiabilidade e a disponibilidade. Independência de localização A localização dos BD e seus servidores na rede de computadores deve ser transparente para os usuários e aplicações. Processamento de consultas distribuídas As consultas realizadas pelos usuários que exijam o acesso a diferentes BD locais devem ser realizadas sob a supervisão automática pelo SGBDD Global. Gerência de transações distribuídas As alterações realizadas nos BD locais por uma transação devem ser, de forma consistente, tratada pelo SGBDD global de forma a garantir o controle de recuperação e o controle de concorrência. Independência de hardware As diferenças da arquitetura de hardware entre os diversos servidores devem ser transparentes para as aplicações. 20/11/2023, 07:55 Sistemas de banco de dados distribuídos https://stecine.azureedge.net/repositorio/00212ti/07590/index.html# 59/76 Con�abilidade Sistemas distribuídos devem continuar a funcionar em caso de falha em algum de seus componentes, ainda que com menor desempenho. Disponibilidade Devido à replicação os dados possuem uma maior disponibilidade pelas várias cópias dispersas em diferentes sites. Controle de recuperação Deve ser garantido que em um BDD a transação seja atômica (tudo ou nada) de forma similar ao que ocorre em sistemas de banco de dado centralizados. Independência de sistema operacional De forma similar ao hardware, uma aplicação deve poder acessar sistemas distintos sem restrições devido às suas diferenças de plataforma de software. Independência de rede Para os usuários e aplicações, a utilização dos protocolos de redes, incluindo a conversão entre as arquiteturas de diferentes redes, deve ser transparente. Independência de banco de dados Apesar de cada BD local poder utilizar um SGBD diferente, o armazenamento e a recuperação dos dados entre os diversos sites devem ser possíveis. 20/11/2023, 07:55 Sistemas de banco de dados distribuídos https://stecine.azureedge.net/repositorio/00212ti/07590/index.html# 60/76 Controle de concorrência Normalmente, realizado utilizando mecanismo de bloqueio de forma similar ao que ocorre em sistemas de banco de dado centralizados. Falta pouco para atingir seus objetivos. Vamos praticar alguns conceitos? Questão 1 Sistemas gerenciadores de banco de dados distribuídos possuem uma série de características importante para o seu funcionamento. Quanto a essas características, podemos afirmar que I. Os usuários e as aplicações não precisam saber a localização física dos servidores para poder acessar os dados. II. As aplicações e consultas precisam levar em conta as especificidades do hardware do servidor. III. Somente SGBD de um mesmo fabricante podem ser utilizados nos diversos sites do sistema. IV. Cada site deve possuir controle de seus próprios dados. Estão corretas as afirmativas A I e II. B II e III. C III e IV. D I e III. 20/11/2023, 07:55 Sistemas de banco de dados distribuídos https://stecine.azureedge.net/repositorio/00212ti/07590/index.html# 61/76 Parabéns! A alternativa E está correta. A afirmativa I está correta e corresponde à independência de localização. Já a afirmativa II está errada, pois viola a independência de hardware. A afirmativa III está errada, pois viola a independência de banco de dados. Por fim, a afirmativa IV está correta, correspondendo à autonomia local. Questão 2 Sistemas de banco de dados distribuídos, além da modelagem tradicional dos dados, implicam realizar o projeto de sua distribuição a partir de duas técnicas básicas: a fragmentação e a replicação. Quanto às referidas técnicas, podemos afirmar que: I. A distribuição de cópia das tabelas por vários sites caracteriza a fragmentação. II. Extratos de tabelas não podem ser atualizados. III. O particionamento de uma tabela caracteriza a sua replicação. Estão corretas a(s) as afirmativa(s): E I e IV. A Somente I. B Somente II. C Somente III. D I e II. E II e III. 20/11/2023, 07:55 Sistemas de banco de dados distribuídos https://stecine.azureedge.net/repositorio/00212ti/07590/index.html# 62/76 Parabéns! A alternativa B está correta. A I está errada porque a distribuição de copias das tabelas caracteriza a replicação, não a fragmentação. E a afirmação III está errada, pois o particionamento de uma tabela caracteriza a fragmentação e não a replicação. 4 - Arquitetura de BDD Ao �nal deste módulo, você será capaz de identi�car as arquiteturas de banco de dados distribuídos. Arquiteturas de bancos de dados centralizados x distribuídos Confira neste vídeo um paralelo entre arquiteturas centralizadas e arquiteturas distribuídas de banco de dados. Bancos de dados centralizados 20/11/2023, 07:55 Sistemas de banco de dados distribuídos https://stecine.azureedge.net/repositorio/00212ti/07590/index.html# 63/76 Os bancos de dados nasceram em um ambiente monolítico, ou seja, eram instalados, configurados e executados em um único computador central (mainframes). Em banco de dados centralizados, todos os acessos, consultas e transações são realizados em um único ponto, no servidor de banco de dados e isso significa que o equipamento deverá possuir recursos de hardware (memória, processador, armazenamento de massa etc.) para suportar toda a carga de processamento exigida pelas aplicações o que exige, normalmente, um equipamento caro e complexo. A fusão entre as tecnologias de redes de computadores e a dos bancos de dados permitiram e evolução desta arquitetura para a de bancos de dados distribuídos. Repare na imagem um computador acessando dois bancos de dados distintos. Computador acessando dois bancos na mesma máquina. Arquiteturas de distribuição matriz e �lial Uma forma de realizar a distribuição é o esquema matriz e filial, em que o grande concentrador de dados fica na matriz que opera o grande banco de dados da empresa, exigindo grandes investimentos em hardware e suporte. Nas filiais, ficam bancos menores somente com os dados necessários ao seu funcionamento. Quando uma filial necessita acessar dados da outra filial, é realizada uma comunicação com a matriz a quem caberá obter o resultado solicitado e enviá-lo ao requisitante. 20/11/2023, 07:55 Sistemas de banco de dados distribuídos https://stecine.azureedge.net/repositorio/00212ti/07590/index.html# 64/76 A imagem a seguir mostra um cenário onde as filiais somente podem se comunicar com a matriz e vice-versa, não sendo permitido as filiais se comunicarem entre si. Quando uma filial, por exemplo, filial1, necessita de dados da outra, a consulta deverá ser solicitada à matriz, que possui cópia de todos os dados das filiais. Caso a matriz ainda não tenha recebido os dados da filial2, solicitará a atualização de sua própria base de dados e responderá então a solicitação da filial1. Veja! Matriz e filial. Nessa arquitetura, a matriz possui todos os dados, inclusive os de todas as filiais, exigindo que quando uma filial realizar a atualização de algum dado, este também deve ser atualizado no banco de dados da matriz. Vamos imaginar a seguinte situação: A filial2 realiza uma venda de produtos que possui em seu estoque. Nesse caso, o sistema local realiza a transação efetivando a venda, atualiza seu banco de dados e solicita também a atualização dos dados na matriz. Porém, se a filial 2 não possui o produto solicitado em estoque, ela consulta a matriz para saber se existe o produto em alguma outra filial.A matriz então verifica que ele existe em seu estoque. Caso iti i f à fili l2 l d f 20/11/2023, 07:55 Sistemas de banco de dados distribuídos https://stecine.azureedge.net/repositorio/00212ti/07590/index.html# 65/76 A estrutura dos bancos de dados envolvidos deve ser muito similar, possuindo todos eles as mesmas tabelas e colunas. Veja a seguir algumas características! Vantagens As filiais não dependem da matriz para efetivar suas transações, o que permite realizá-las de forma bem rápida e eficiente. Se os links de comunicação com a matriz caírem, as filiais podem continuar a trabalhar normalmente e, ao ser restabelecida a rede, o banco da matriz poderá ser atualizado com as transações das filiais. Caso o banco da matriz sofra um desastre, ele pode ser recuperado a partir da concatenação dos bancos das filiais. Desvantagens Utiliza uma quantidade maior de servidores de banco de dados que o esquema centralizado, aumentando o custo com hardware e licenças de software. Necessário desenvolver rotinas de pesquisa nas filiais e, se necessário, na matriz. positivo, informa à filial2 que ela pode fazer a venda, atualizando os bancos da matriz e da filial2. Se a matriz não possui o produto, ela verifica se ele existe na filial1. Lembre-se de que a matriz possui todos os dados das filiais e, por consequência, as informações de estoque. Caso exista, informa a filial2 para realizar a venda e solicita à filial1 dar baixa no estoque atualizando assim os bancos das filiais e da matriz. 20/11/2023, 07:55 Sistemas de banco de dados distribuídos https://stecine.azureedge.net/repositorio/00212ti/07590/index.html# 66/76 Aumenta a necessidade de suporte das equipes de TI devido a existência de filiais. Arquiteturas de distribuição de base de dados Assista ao vídeo e faça uma comparação entre as arquiteturas de distribuição de bases de dados individuais e hierárquicas. Distribuição de bases de dados individuais Uma arquitetura mais flexível é a denominada distribuição de bases individuais. No qual todos os bancos são individuais e independentes, não existindo um banco de dados centralizador. Bases individuais. Saiba como ocorreria uma transação de vendas entre bancos de dados individuais e independentes! 20/11/2023, 07:55 Sistemas de banco de dados distribuídos https://stecine.azureedge.net/repositorio/00212ti/07590/index.html# 67/76 Note que toda essa comunicação somente é possível por existirem links de dados entre todas as lojas. Algumas vantagens desse tipo de transação são: Cada base de dados individual é autônoma e independente das outras, somente necessitando consulta às demais em casos muito específicos. Caso a rede de computadores seja interrompida, cada site continuará a trabalhar normalmente. Existem caminhos alternativos para acesso de um site para outro. Mas também há desvantagens, veja! A loja A deseja fazer uma venda. Se tiver o produto em seu estoque, realiza a venda e finaliza a transação atualizando o seu banco de dados. Se a loja A não tiver o produto em estoque, ela irá consultar todas as outras (B a E). Se uma delas, por exemplo C, possuir o produto A realiza a venda e os bancos de A e C são atualizados. 20/11/2023, 07:55 Sistemas de banco de dados distribuídos https://stecine.azureedge.net/repositorio/00212ti/07590/index.html# 68/76 Utiliza quantidade maior de servidores de banco de dados que o esquema centralizado, aumentando o custo com hardware e licenças de software. Será necessário desenvolver rotinas de pesquisa entre os diversos sites. São necessários links de maior velocidade para a ligação entre os sites. Aumenta a necessidade de suporte das equipes de TI devido a existência de vários sites. Distribuição de bases de dados hierárquicas O modelo de bases hierárquicas apresenta uma estrutura semelhante a uma “árvore de dados” e possui algumas regras específicas para busca de dados entre os elementos da estrutura hierárquica. Observe uma imagem de bases de dados hierárquicas. Bases hierárquicas. 20/11/2023, 07:55 Sistemas de banco de dados distribuídos https://stecine.azureedge.net/repositorio/00212ti/07590/index.html# 69/76 Essa arquitetura estabelece regras de comunicação entre os sites de forma que não é possível consultar dados em bancos de mesmo nível, mas somente no nível superior ou inferior. Vejamos agora o processamento de uma venda! Algumas vantagens dessa arquitetura são: Disciplina o acesso de uma base a outra diminuindo o fluxo geral de comunicações entre os sites, se comparado com as bases individuais. Considere que a loja C deseja fazer uma venda. Se ela possuir o produto em estoque, realiza a venda e atualiza o banco ao final da transação. Se C não possui o produto, ela consultará B. Se essa possuir o produto, a venda será realizada e os bancos de B e C serão atualizados. Se B não tiver o produto, poderá consultar D, no nível inferior ou A no nível superior. Neste exemplo, para que uma consulta seja realizada em F, será necessário que B inicie a consulta. A seguir A deverá consultar E e este finalmente consultará F. 20/11/2023, 07:55 Sistemas de banco de dados distribuídos https://stecine.azureedge.net/repositorio/00212ti/07590/index.html# 70/76 Redução da quantidade de links de comunicação de dados, se comparado com as bases individuais. Mas também há desvantagens, veja! Utiliza uma quantidade maior de servidores de banco de dados que o esquema centralizado, aumentando o custo com hardware e licenças de software. Será necessário desenvolver rotinas de pesquisa obedecendo a estrutura hierárquica. Pode gerar uma maior demora na efetivação da transação, devido ao fato de que o SGBDD necessita obedecer ao acesso hierárquico. Aumenta a necessidade de suporte das equipes de TI devido a existência de vários sites. Falta pouco para atingir seus objetivos. Vamos praticar alguns conceitos? Questão 1 Sistemas de banco de dados centralizados já eram empregados antes da implementação de banco de dados distribuídos. Na comparação entre o centralizado e a distribuição matriz e filial, 20/11/2023, 07:55 Sistemas de banco de dados distribuídos https://stecine.azureedge.net/repositorio/00212ti/07590/index.html# 71/76 podemos afirmar que o banco distribuído possui como vantagens: I. Um menor custo de hardware e licenças de software. II. Permitir o acesso mais rápido aos dados da base local. III. Utilizar rotinas simples de consultas aos dados. Qual(is) a(s) afirmativa(s) correta(s)? Parabéns! A alternativa B está correta. A afirmativa I está errada, pois como são utilizados vários servidores, o custo de licenças e hardware aumenta em comparação com o banco centralizado. A afirmativa II está correta. A afirmativa III está errada porque terão que ser desenvolvidas rotinas de consulta específicas para a arquitetura adotada (Matriz/Filial etc.), ao contrário de um banco centralizado cuja rotina de pesquisa é bem mais simples. Questão 2 Observe a distribuição ilustrada: A Somente I. B Somente II. C Somente III. D I e II. E II e III. 20/11/2023, 07:55 Sistemas de banco de dados distribuídos https://stecine.azureedge.net/repositorio/00212ti/07590/index.html# 72/76 Agora, considere que o banco de dados do site E necessita de um dado que existe no site B e analise a sentença: (1) Ele enviará a solicitação ao site A. porque (2) Na distribuição hierárquica, um site somente se comunica com os de seus níveis superiores ou inferiores. Sobre a sentença, podemos atestar que Parabéns! A alternativa A está correta. A as duas afirmações estão corretas e a segunda justifica a primeira. B as duas afirmações estão corretas e a segunda não justifica a primeira. C a primeira afirmação é correta e a segunda falsa. D a primeira afirmação é falsa e a segunda correta. E as duas afirmações são falsas. 20/11/2023, 07:55 Sistemas de banco de dados distribuídos https://stecine.azureedge.net/repositorio/00212ti/07590/index.html#73/76 Na distribuição de bases hierárquicas, o site de um nível somente pode se comunicar com os seus superiores e inferiores. A figura apresenta exatamente essa arquitetura. Portanto, o site E para solicitar dados de B, terá que enviar a solicitação ao site A. 20/11/2023, 07:55 Sistemas de banco de dados distribuídos https://stecine.azureedge.net/repositorio/00212ti/07590/index.html# 74/76 Considerações �nais Neste conteúdo, tivemos a oportunidade de entender o que são sistemas distribuídos, sistemas de banco de dados e como eles interagem, permitindo a criação de sistemas de banco de dados distribuídos (BDD). Vimos ainda as características de um sistema gerenciador de banco de dados distribuídos e alguns exemplos de arquitetura que podem ser aplicados à distribuição de dados. Pudemos praticar a virtualização por meio da criação de uma máquina virtual (Virtual Machine – VM). Esse esquema permite ainda que em um único equipamento físico tenhamos várias máquinas virtuais cada uma com o seu próprio sistema operacional. Finalmente, vimos a computação em nuvem, que implica necessariamente usar a virtualização em algum nível, onde criamos uma instância de máquina virtualizada. Podcast Ouça agora uma entrevista sobre os principais fundamentos de um sistema distribuído, virtualização para os sistemas distribuídos e características da abordagem de banco de dados. Explore + 20/11/2023, 07:55 Sistemas de banco de dados distribuídos https://stecine.azureedge.net/repositorio/00212ti/07590/index.html# 75/76 Pesquise o Azure, serviço de nuvem da Microsoft, e crie uma conta gratuita. Pesquise também sobre a nuvem do Google e crie uma conta gratuita. Utilizando sua conta da AWS, busque pelo RDS e como pode ser criado um banco totalmente gerenciado na nuvem da Amazon. Referências DATE, C. J. Introdução a Sistemas de Banco de Dados. 7. ed. Campus, 2000. COULOURIS, G.; DOLLIMORE, J.; KINDBERG, T. Sistemas Distribuídos: Conceitos e Projeto. 5. ed. Rio de Janeiro: Bookman, 2013. ELSMARI, R.; NAVATHE, S. Sistemas de Banco de Dados. 6. ed. São Paulo: Pearson, 2011. FERREIRA, A. B. H.; ANJOS, M.; FERREIRA, M. B. Novo Aurélio. Século XXI: o dicionário da língua portuguesa. 3. ed. Rio de Janeiro: Nova Fronteira, 1999. SIBERSCHATZ, A; KORTH, H.; SUDARSHAN, S. Sistemas de Banco de Dados 5. Ed. Rio de Janeiro: Elsevier, 2006. TANEMBAUM, A.; STEEN, M. Sistemas Distribuídos: Princípios e Paradigmas 2. ed. São Paulo: Pearson Prentice Hall, 2008. Material para download Clique no botão abaixo para fazer o download do conteúdo completo em formato PDF. Download material javascript:CriaPDF() 20/11/2023, 07:55 Sistemas de banco de dados distribuídos https://stecine.azureedge.net/repositorio/00212ti/07590/index.html# 76/76 O que você achou do conteúdo? Relatar problema
Compartilhar