UNIVERSIDADE DO EXTREMO SUL DE SANTA CATARINA UNESC
PARACELSO DE OLIVEIRA CALDAS
BANCO DE DADOS II
CRICIMA (SC), MARO DE 2014
________________________________________________________________________________ Paracelso de Oliveira Caldas 2 SUMRIO 1 Introduo .............................................................................................................................3 1.1 Histrico 3 1.2 Site 3 1.3 Banco de Dados ............................................................................................................................4 1.3.1 Dados 4 1.3.2 Banco de Dados .........................................................................................................................5 1.3.3 SGBD 6 1.3.4 Bancos de Dados Centralizados .............................................................................................7 1.3.5 Bancos de Dados Cliente-Servidor ..........................................................................................7 1.3.6 Bancos de Dados Paralelos ....................................................................................................8 1.3.7 Bancos de Dados Mltiplos ......................................................................................................8 1.3.8 Bancos de Dados Distribudos ................................................................................................9 1.3.9 Armazenamento ...................................................................................................................... 10 1.3.10 Transparncia de Rede ....................................................................................................... 11 1.2.11 Processamento de Consultas Distribudas ....................................................................... 11 1.2.12 Modelo de Transaes Distribudas ................................................................................... 12 1.3.13 Protocolos de Efetivao ..................................................................................................... 13 1.3.14 Seleo de Coordenador ..................................................................................................... 13 1.3.15 Controle de Concorrncia.................................................................................................... 14 1.3.16 Tratamento de Impasses...................................................................................................... 14 1.4 Por que usar Bancos de Dados Distribudos ....................................................................... 15 1.5 Arquitetura de sistemas de banco de dados ......................................................................... 16 1.5.1 Arquitetura Genrica dos SGBD Distribudos ..................................................................... 17 1.5.1.1 Sistemas cliente/servidor ................................................................................................... 19 1.5.1.2 Sistemas distribudos no-hierrquicos ........................................................................... 21 1.5.1.3 Sistemas de Vrios Bancos de Dados Distribudos (SVBDs) ......................................... 23 1.6 Tipos de SGBD Distribudos................................................................................................... 24
________________________________________________________________________________ Paracelso de Oliveira Caldas 3
1 Introduo
1.1 Histrico Os bancos de dados, nos dias de hoje, so essenciais para todos os ramos de negcios ver figura 01. Eles so usados para manter registros internos, apresentar dados a consumidores e clientes na World Wide Web e fornecer suporte a muitos outros processos comerciais. Da mesma forma, os bancos de dados so encontrados no ncleo de muitas investigaes cientficas. Eles representam os dados reunidos por astrnomos, por investigadores do genoma humano e por bioqumicos que exploram as propriedades medicinais de protenas, alm de muitos outros cientistas.
Figura 01 Abrangncia dos bancos de dados O poder dos bancos de dados vem de um corpo de conhecimento e tecnologia que se desenvolveu ao longo de varias dcadas e encarnado em um tipo de software especializado chamado sistema de gerenciamento de bancos de dados ou SGBD ou, em termos mais coloquiais, um sistema de banco de dados. 1.2 Site Os computadores de um sistema de banco de dados distribudo recebem diversos nomes, como sites ou ns, figura 07 abaixo, dependendo do contexto
________________________________________________________________________________ Paracelso de Oliveira Caldas 4 no qual so inseridos. Nesta disciplina usar-se- preferencialmente o termo site (local, stio) para enfatizar a distribuio fsica desses sistemas.
Figura 07 Sites em sistemas distribudos
1.3 Banco de Dados
1.3.1 Dados As matrias primas com que os computadores trabalham so os dados. O computador recebe nossas informaes processa-as com extrema velocidade e preciso, nos gera uma nova informao atravs da qual podemos tomar decises, solucionar problemas e desempenhar nossas atividades do dia a dia. Os dados referem-se informaes organizadas, que podem ser obtidas do resultado da experincia ou observao de outras informaes as quais para serem usadas precisam serem armazenadas. Estes dados podem referir-se a nmeros, palavras, imagens, medies ou observaes em diferentes reas.
________________________________________________________________________________ Paracelso de Oliveira Caldas 5 O armazenamento destes dados, primitivamente, usava local e objetos como os apresentados nas figuras 02 e 03 abaixo. Convm lembrar o imenso espao necessrio para tal armazenamento.
Figura 02 Dados em Armrio Figura 03 Dados a Granel
1.3.2 Banco de Dados Um sistema de bancos de dados apenas um sistema computadorizado de armazenamento de registros. O banco de dados pode, ele prprio, ser visto como o equivalente eletrnico, figura 04, de um armrio de arquivamento, figura 05. Em outras palavras, um repositrio ou recipiente para uma coleo de arquivos de dados computadorizados.
Figura 05 Armrio de Arquivamento Figura 04 Banco de Dados
________________________________________________________________________________ Paracelso de Oliveira Caldas 6 Os usurios do sistema podero executar diversas operaes sobre tais arquivos por exemplo: Acrescentar novos arquivos, vazios, ao banco de dados; Inserir novos dados em arquivos existentes; Buscar dados de arquivos existentes; Alterar dados em arquivos existentes; Eliminar dados de arquivos existentes; Remover arquivos existentes do banco de dados. Resumindo, um sistema de banco de dados basicamente um sistema computadorizado de armazenamento de registros; isto , um sistema computadorizado cujo propsito geral armazenar informaes e permitir ao usurio buscar e atualizar essas informaes quando solicitado. As informaes em questo podem ser quaisquer coisas que tenha significado para o individuo ou a organizao a que o sistema deve servir em outras palavras, tudo o que seja necessrio para auxiliar no processo geral de tomada de decises de negcios desse individuo ou dessa organizao. 1.3.3 SGBD Um Sistema Gerenciador de Banco de Dados (SGBD) constitudo por um conjunto de dados associados a um conjunto de programas para acesso a esses dados, figura 06 abaixo. O conjunto de dados, comumente chamado banco de dados, contm informaes sobre uma empresa em particular. O principal objetivo de um SGBD proporcionar um ambiente tanto conveniente quanto eficiente para a recuperao e armazenamento das informaes do banco de dados.
Figura 06 Sistema Gerenciador de Bancos de Dados - SGBD
________________________________________________________________________________ Paracelso de Oliveira Caldas 7 Sistemas de bancos de dados so projetados para gerir grandes volumes de informaes. O gerenciamento de informaes a definio dos mecanismos para a manipulao dessas informaes. Ainda, um sistema de banco de dados deve garantir a segurana das informaes armazenadas contra eventuais problemas com o sistema, alm de impedir tentativas de acesso no autorizadas. Se os dados so compartilhados por diversos usurios, o sistema deve evitar a ocorrncia de resultados anmalos. A importncia da informao na maioria das organizaes que estabelece o valor do banco de dados tem determinado o desenvolvimento de um grande conjunto de conceitos e tcnicas para a administrao eficaz desses dados.
1.3.4 Bancos de Dados Centralizados
Sistemas de banco de dados centralizados so aqueles executados sobre um nico sistema computacional que no interagem com outros sistemas. Tais sistemas podem ter a envergadura de um sistema de banco de dados de um s usurio executado em um computador pessoal at sistemas de alto desempenho em sistemas de grande porte. Um sistema computacional genrico moderno consiste em uma ou poucas CPUs e dispositivos de controle que so conectados por meio de um bus comum que proporciona acesso a memria compartilhada. Dividiu-se em dois modos a forma pela qual os computadores so usados: por um sistema de um nico usurio e sistemas multiusurios. Computadores pessoais e estaes de trabalho caem na primeira categoria. Um sistema monousurio tpico uma unidade de trabalho de uma nica pessoa, com uma nica CPU e um ou dois discos rgidos, com um sistema operacional que pode dar suporte a apenas um nico usurio. Um sistema multiusurio tpico, por outro lado, possui um nmero maior de discos e rea de memria, podendo ter diversas CPUs e um sistema operacional multiusurio. Atende a um grande nmero de usurios que esto conectados ao sistema por meio de terminais. Tais sistemas so freqentemente chamados de sistema servidor.
1.3.5 Bancos de Dados Cliente-Servidor
Como os computadores pessoais tm se tornado mais rpidos, mais poderosos e baratos, h uma tendncia de seu uso nos sistemas centralizados. Terminais conectados a sistemas centralizados esto sendo substitudos por computadores pessoais. Simultaneamente, interfaces, com o usurio, usadas
________________________________________________________________________________ Paracelso de Oliveira Caldas 8 funcionalmente para manuseio direto com sistemas centralizados esto sendo adequadas ao trato com computadores pessoais. Como resultado, sistemas centralizados atualmente agem como sistemas servidores que atende a solicitaes de sistemas clientes, da o sistema cliente- servidor.
1.3.6 Bancos de Dados Paralelos Sistemas paralelos imprimem velocidade ao processamento e I/O por meio do uso em paralelo de diversas CPUs e discos. Equipamentos paralelos esto se tornando bastante comuns, fazendo com que os seus estudos sejam tambm cada vez mais importantes. O direcionamento das atenes para os sistemas de bancos de dados paralelos prov da demanda de aplicaes que geram consultas em bancos de dados muito grandes (da ordem de terabytes isto 10 12 bytes) ou que tenham de processar um volume enorme de transaes por segundo (da ordem de milhares de transaes por segundo). Sistema de banco de dados centralizados e cliente-servidor no so poderosos o suficiente para tratar desse tipo de aplicao. No processamento paralelo, muitas operaes so realizadas simultaneamente, ao contrrio do processamento serial, nos quais os passos do processamento so sucessivos. Um equipamento paralelo de granulao-grossa consiste em poucos e poderosos processadores; um paralelismo intensivo ou de granulao- fina usa milhares de pequenos processadores.
1.3.7 Bancos de Dados Mltiplos
Nos ltimos anos, desenvolveram-se novas aplicaes trabalhando com dados de diversos bancos de dados preexistentes localizados em ambientes ou sites heterogneos de hardware e software. preciso uma camada de software adicional, em um nvel superior ao banco de dados existente, para tratar as informaes localizadas em bancos de dados heterogneos. Essa camada de software chamada de sistema de banco de dados mltiplos (multidatabase) ou Sistemas de bancos de dados distribudos heterogneos. Os bancos de dados heterogneos caracterizam-se por serem sistemas de bancos de dados locais que podem empregar modelos lgicos diferentes e diferentes linguagens de definio e manipulao de dados; podem tambm diferir em seus mecanismos de controle de concorrncia e gerenciamento de transaes. Um sistema de banco de dados mltiplo cria a iluso de integrao lgica do banco de dados sem exigir uma integrao fsica correspondente.
________________________________________________________________________________ Paracelso de Oliveira Caldas 9 1.3.8 Bancos de Dados Distribudos
O suporte completo para bancos de dados distribudos implica que uma nica aplicao deve ser capaz de operar de modo transparente sobre dados dispersos em uma variedade de bancos de dados diferentes, gerenciados por vrios SGBDs diferentes, em execuo em uma variedade de mquinas diferentes, admitidos por uma variedade de sistemas operacionais diferentes e conectados entre si por uma variedade de redes de comunicaes diferentes onde de modo transparente significa que a aplicao opera de um ponto de vista lgico como se os dados fossem todos gerenciados por um nico SGBD, funcionando em uma nica mquina. Explicar-se- o que um banco de dados distribudo, porque esses bancos de dados esto se tornando cada vez mais importantes e quais so alguns dos problemas tcnicos que surgem na rea de bancos de dados distribudos. Um sistema de banco de dados distribudo consiste em uma coleo de sites, interligados atravs de algum tipo de rede de comunicaes, em que: Cada site ele prprio um site completo do sistema de banco de dados; Porm, os sites concordam em atuarem juntos, de modo que um usurio em qualquer site pode ter acesso a dados em qualquer lugar da rede, exatamente como se os dados estivessem armazenados no site do prprio usurio. Decorre que o assim chamado banco de dados distribudo na verdade uma espcie de banco de dados virtual, cujas partes componentes esto fisicamente armazenadas em vrios bancos de dados reais distintos em vrios sites distintos (na verdade, a unio lgica desses bancos de dados reais). Cada site um site do sistema de banco de dados por si mesmo. Em outras palavras, cada site tem seus prprios bancos de dados locais reais, seus prprios usurios locais, seu prprio SGBD local e software de gerenciamento de transaes (inclusive seu prprio software para bloqueio, registro, recuperao, etc.), e seu prprio gerente de comunicaes de dados local (gerente DC) Em particular, um dado usurio pode executar operaes sobre dados no seu site local exatamente como se esse site no participasse de modo algum do sistema distribudo.O sistema de banco de dados distribudo pode, portanto, ser considerado como um tipo de parceria entre SGBDs individuais locais nos sites locais individuais; um novo componente de software em cada site logicamente uma extenso do SGBD local- fornece as necessrias funes da parceria e a combinao desse novo componente com o SGBD
________________________________________________________________________________ Paracelso de Oliveira Caldas 10 existente que constitu aquilo que se costuma chamar sistema de gerenciamento de banco de dados distribudo. A enorme proliferao de redes remotas (WANs Wide rea Networks) proporciona a possibilidade de distribuio geogrfica.
1.3.9 Armazenamento Considerando uma relao qualquer armazenada em um banco de dados. H diversos enfoques para o armazenamento dessa relao em um banco de dados distribudo: Replicao. O sistema mantm rplicas idnticas (cpias) da relao. Cada rplica armazenada em diferentes sites, resultando na replicao dos dados, ilustrado na figura 09 a seguir. A alternativa para a replicao armazenar somente uma cpia da relao.
Figura 09 Replicao Fragmentao. A relao dividida em vrios fragmentos. Cada fragmento armazenado em um site diferente. A fragmentao divide- se em: fragmentao horizontal (fragmentos de relaes) e fragmentao vertical (fragmentos de colunas), figura 10.
Figura 10 Fragmentao vertical.
________________________________________________________________________________ Paracelso de Oliveira Caldas 11 Replicao e fragmentao. A relao dividida em vrios segmentos, e o sistema mantm diversas rplicas de cada fragmento, figura 11.
Figura 11 Fragmentao vertical com replicao
1.3.10 Transparncia de Rede Viu-se que uma relao pode ser armazenada de diversas formas em um banco de dados distribudo. essencial que o sistema minimize a necessidade de que o usurio saiba onde est armazenada a relao. Dessa forma, o sistema pode esconder detalhes relativos distribuio dos dados na rede. Chama-se isso de transparncia de rede definida como o grau de desconhecimento que os usurios do sistema podem manter em relao ao armazenamento dos dados dentro de um sistema distribudo. Consideram-se os principais objetivos da transparncia sob a tica de: Denominao dos dados; Replicao dos itens de dados; Fragmentao dos itens de dados; Localizao das rplicas e fragmentos. O sistema de banco de dados deve criar um conjunto de nomes alternativos ou aliases para os itens de dados. Um usurio pode referir-se a um item de dado por meio de um nome simples, que ser transformado pelo sistema no nome completo correspondente. O mapeamento dos aliases para translao aos nomes reais pode ser armazenado em cada site. Com os alises o usurio mantm-se independente da localizao fsica. Analogamente as rplicas e fragmentos requerem aliases.
1.2.11 Processamento de Consultas Distribudas H diversos mtodos para o processamento de uma consulta. Examinar-se- algumas tcnicas para escolha de uma estratgia para o processamento de uma consulta que minimize o tempo total para apresentao do resultado. Para
________________________________________________________________________________ Paracelso de Oliveira Caldas 12 os sistemas centralizados, o primeiro critrio para mensurao do custo de uma estratgia em particular o nmero de acessos a disco. Nos sistemas distribudos, se devem considerar diversos outros problemas, sendo que os principais critrios so: O custo de transmisso de dados na rede. O ganho potencial de desempenho diante do fato de que diversos sites podem processar partes da consulta em paralelo. O custo relativo de transferncia de dados na rede e de transferncia de dados entre discos varia significativamente, dependendo do tipo de rede e da velocidade dos discos. Assim, no se podem focalizar somente os custos relativos aos dos discos ou da rede. Deve-se achar o melhor tradeoff (equilbrio) entre ambos.
1.2.12 Modelo de Transaes Distribudas Uma transao uma unidade de execuo de programa que acessa e, possivelmente, atualiza vrios itens de dados. Uma transao, geralmente, o resultado da execuo de um programa de usurio escrito em uma linguagem de manipulao de dados de alto nvel ou em uma linguagem de programao (por exemplo, SQL, COBOL, C ou Pascal), e delimitada por declaraes (ou chamadas de funo) da forma begin transaction e end transaction. A transao consiste em todas as operaes ali executadas, entre o comeo e o fim da transao. O acesso a diversos itens de dados em um sistema distribudo normalmente acompanhado de transaes que tm de preservar as propriedades: Atomicidade, Consistncia, Isolamento e Durabilidade (ACID). Atomicidade. Ou todas as operaes da transao so refletidas corretamente no banco de dados ou nenhuma o ser. Consistncia. Garante que a execuo de uma transao concorrente mantenha preservada a consistncia do banco de dados. Isolamento. Embora diversas transaes possam ser executadas de forma concorrente, o sistema garante que, para todo par de transaes Ti e Tj, Ti tem a sensao de que Tj terminou sua execuo antes de Ti comear, ou que Tj comeou sua execuo aps Ti terminar. O isolamento garante tambm que o resultado de cada transao somente disponibilizado aps o trmino da transao.
________________________________________________________________________________ Paracelso de Oliveira Caldas 13 Durabilidade. Aps a transao terminar com sucesso, as mudanas que ela faz no banco de dados persistem, at mesmo se houver falhas no sistema. H dois tipos de transaes que se deve considerar. As transaes locais, que so aquelas que mantm acesso e atualizam somente a base de dados local; e as transaes globais, que so aquelas que mantm acesso e atualizam diversas bases locais. As transaes locais devem garantir as propriedades ACID. Entretanto, no caso das transaes globais, essa tarefa bem mais complicada, j que diversos sites podem participar de sua execuo. Uma falha em um desses sites ou uma falha de comunicao entre sites pode resultar em erros de processamento.
1.3.13 Protocolos de Efetivao Protocolo - Conjunto de regras, padres e especificaes tcnicas que regulam a transmisso de dados entre computadores por meio de programas especficos, permitindo a deteco e correo de erros. Para garantir a atomicidade, todos os sites envolvidos na execuo de uma transao T devem concordar com o trmino da transao. preciso que T seja efetivada em todos os sites ou ento ser abortada em todos eles. Para assegurar que isso ocorra, o coordenador da transao T precisa executar um protocolo de efetivao (commit protocol). Entre os mais simples e mais utilizados protocolos de efetivao est o protocolo de efetivao em duas fases (two-phase commit protocol 2PC). O protocolo de 2PC funciona como segue: a primeira fase de preparao na qual so enviadas mensagens aos sites para saber se eles votam commit, e a segunda fase faz a confirmao da transao. Outra alternativa o protocolo de efetivao em trs fases (three-phase commit protocol 3PC), que elimina algumas desvantagens do 2pc, embora seja mais complexo e aumente o overhead. O funcionamento do 3PC idntico ao 2PC exceto que possui uma fase intermediria chamada pr-commit que confirma os sites vote-commit independentemente de ter recebido todas as respostas.
1.3.14 Seleo de Coordenador Alguns dos algoritmos de efetivao exigem o uso de um coordenador. Se o coordenador falha devido a uma falha do site no qual est sendo executado, o sistema poder continuar a execuo somente reiniciando um novo coordenador em outro site. Isso poder ser feito por meio da manuteno de um backup do coordenador, que estar pronto a assumir a responsabilidade do coordenador se este falhar. Ou o sistema poder escolher um novo
________________________________________________________________________________ Paracelso de Oliveira Caldas 14 coordenador depois que o original falhou. O algoritmo que determina onde a cpia do coordenador ser reiniciada chamado de algoritmo de eleio. Os diversos algoritmos de eleio diferem, normalmente, em virtude da configurao da rede e servem para definir um novo coordenador.
1.3.15 Controle de Concorrncia Controle de concorrncia o controle das interaes entre transaes simultneas para garantir a no-interferncia ou isolamento dessas transaes que esto sendo executadas concomitantemente. O objetivo fundamental do controle de concorrncia em bancos de dados assegurar que a execuo concorrente de transaes no resulte em uma perda da consistncia do banco de dados. Uma propriedade fundamental da transao o isolamento. Quando diversas transaes so executadas de modo concorrente em um banco de dados, a propriedade do isolamento pode no ser preservada. necessrio que o sistema controle a interao entre transaes concorrentes; esse controle alcanado por meio de uma larga gama de mecanismos chamado esquemas de controle de concorrncia. Controle de concorrncia fundamentalmente baseado no fato de que enquanto uma transao acessa a um item de dado, nenhuma outra transao pode modific-lo. Bloqueio a forma de garantir que enquanto um processo acessa um item de dado outro no o modifique. Em um ambiente distribudo o controle de concorrncia deve garantir que cada site participante da execuo do protocolo de efetivao satisfaa a atomicidade global da transao.
1.3.16 Tratamento de Impasses O tratamento de impasses a administrao de solicitaes de bloqueios e desbloqueios para itens de dados que esto armazenados em sites diferentes, considerando os diversos tipos de bloqueios. Transaes executadas de forma concorrente podem competir por recursos e assim alcanar um estado no qual existe um impasse: cada uma entre vrias transaes fica esperando por um recurso retido por uma das outras, e nenhuma delas pode progredir. Por exemplo, possvel que um impasse acontea, mesmo se somente um item de dado estiver sendo bloqueado. Considere um sistema com quatro sites e com replicao total. Suponha que as transaes T1 e T2 desejem bloquear o item de dado Q de modos exclusivo. A transao T1 pode ter sucesso no bloqueio do item de dado Q nos sites S1 e S3, enquanto a transao T2 pode conseguir
________________________________________________________________________________ Paracelso de Oliveira Caldas 15 o bloqueio de Q nos sites S2 e S4. Cada um deles precisar esperar para conseguir o terceiro bloqueio; ento, um impasse ocorreu. Felizmente, se pode evitar esses impasses de modo relativamente fcil, pedindo a todos os sites que solicitem bloqueios nas rplicas de um item de dados em uma mesma ordem predeterminada. 1.4 Por que usar Bancos de Dados Distribudos
A utilizao de bancos de dados distribudos justificada por vrias razes. Um sistema de bancos de dados distribudos envolve mltiplas localidades, conectadas juntas em uma espcie de redes de comunicaes, nas quais o usurio (usurio final ou programador de aplicao) de qualquer localidade pode acessar os dados armazenados em outro local. Cada localidade, por sua vez, pode ser considerada como um sistema de banco de dados individual ou particular: tem o seu prprio banco de dados e sua prpria funo DBA, seus prprios terminais e usurios, o seu prprio armazenamento local e a sua prpria CPU, rodando o prprio DBMS local (em geral). O mesmo tambm tem seu prprio gerenciador DC local, com a responsabilidade (entre outras coisas) de controlar a troca de mensagens com outras localidades integrantes do sistema distribudo. Da mesma forma, um banco de dados distribudo pode ser considerado a unio de um conjunto de banco de dados centralizados individualmente. A seguir, algumas razes do uso de bancos de dados distribudos: Autonomia Local. A empresa servida pelo sistema certamente distribuda de modo lgico (em divises, departamentos, projetos etc.) e provavelmente distribuda de modo fsico (em fbricas, usinas, laboratrios etc.). A distribuio do sistema permite aos grupos individuais dentro da organizao exercer um controle local sobre os seus prprios dados, com contabilidade local e, de maneira mais geral, que se tornem menos dependentes de um centro de processamento de dados remoto que, por definio, no ser to profundamente envolvido em assuntos puramente locais. Ao mesmo tempo, certamente, permite aqueles grupos locais o acesso aos dados de outras localidades, quando necessrio. Capacidade. Uma razo comum para a instalao de sistema distribudo , em primeiro lugar, simplesmente que no existe nenhuma mquina com capacidade adequada para uma determinada aplicao. Crescimento Incremental. Uma vez instalado, o sistema distribudo pode crescer melhor do que um sistema no distribudo: Quando a
________________________________________________________________________________ Paracelso de Oliveira Caldas 16 necessidade de expandi-lo, porque o volume de dados aumentou, ou o volume de processamento cresceu, deve ser mais fcil adicionar uma nova localidade ao sistema distribudo existente desde que as localidades sejam autnomas do que substituir um sistema centralizado j existente por outro maior. Confiana. Um sistema distribudo oferece maior confiana do que um sistema centralizado, visto que o mesmo no uma proposio de tudo ou nada O sistema continua a funcionar (a um nvel reduzido) em caso de avaria em localidade individual ou de ligao de comunicao individual entre as localidades. Disponibilidade. No caso da rplica de dados, a disponibilidade tambm aperfeioada, por que certo objeto de dado permanece disponvel medida que pelo menos uma cpia daquele objeto esteja disponvel. Eficincia. Os dados podem ser armazenados no sistema distribudo prximo ao seu local normal de uso, reduzindo, desta maneira, o tempo de resposta e os custos de comunicao (a maioria dos acessos local). Flexibilidade. Os dados, quando h modificaes nos padres de uso, podem ser dinamicamente movidos ou reproduzidos, ou as rplicas existentes podem ser eliminadas. Ademais, o paralelismo inerente nas redes de localidades mltiplas pode fornecer uma passagem de dados aperfeioada e, possivelmente, melhorar os tempos de resposta em certas situaes. 1.5 Arquitetura de sistemas de banco de dados A arquitetura em seu sentido coloquial contempla os detalhes para a construo de um objeto qualquer, conforme ilustra a figura 08 a seguir.
Figura 08 Arquitetura na construo civil
________________________________________________________________________________ Paracelso de Oliveira Caldas 17 A arquitetura de um sistema define a estrutura e organizao lgica de funcionamento de um sistema computacional. A arquitetura de um sistema de banco de dados fortemente influenciada pelo sistema bsico computacional sobre o qual o sistema de banco de dados executado. Aspectos da arquitetura de computadores como rede, paralelismo e distribuio tm influncia na arquitetura do banco de dados: Rede de computadores permite que algumas tarefas sejam executadas no servidor do sistema e outras sejam executadas no cliente. Essa diviso de trabalho tem levado ao desenvolvimento de sistemas de banco de dados cliente-servidor. Processamento paralelo em um sistema de computadores permite que atividades do sistema de banco de dados sejam realizadas com mais rapidez, reduzindo o tempo de resposta das transaes e, assim, aumentando o nmero de transaes processadas por segundo. A distribuio de dados pelos sites da rede ou pelos diversos departamentos de uma organizao permite que esses dados residam onde so gerados ou mais utilizados, mas, ainda assim, estejam acessveis para outros sites de outros departamentos. Dispor de diversas cpias de um banco de dados em diferentes sites tambm permite organizaes de grande porte manter operaes em seus bancos de dados mesmo quando um site afetado por um desastre natural, como inundaes, incndios ou terremotos. Sistemas de banco de dados distribudos tm se desenvolvido para tratar dados distribudos geogrfica ou administrativamente por diversos sistemas de banco de dados.
1.5.1 Arquitetura Genrica dos SGBD Distribudos A arquitetura em seu sentido coloquial contempla os detalhes para a construo de um objeto qualquer. A arquitetura de um sistema computacional define a estrutura e organizao lgica de funcionamento deste sistema. Isso significa que os componentes do sistema so identificados, a funo de cada componente especificada e os inter-relacionamentos e interaes entre esses componentes so definidos. Essa estrutura bsica tambm vlida para sistemas de computadores em geral e para sistemas de software em particular. A especificao da arquitetura de um sistema de software exige identificao dos vrios mdulos, com suas interfaces e seus inter-relacionamentos, em termos do fluxo de dados e de controle que atravessam o sistema. Sob uma perspectiva de engenharia de software, a tarefa de desenvolver mdulos individuais chamada programao no varejo ou programao em pequena escala, enquanto a tarefa de integr-los em um sistema completo chamada
________________________________________________________________________________ Paracelso de Oliveira Caldas 18 programao no atacado ou programao em grande escala. Tendo em vista se tratarem de SGBDs distribudos como sistemas de software em grande escala, pode-se definir sua arquitetura aplicando-se trs arquiteturas de referncia: sistemas cliente/servidor, SGBDs distribudos no hierrquicos e sistemas de vrios bancos de dados. Essas vises idealizadas de um SGBD,podem divergir em muitos dos sistemas comercialmente disponveis; porm, as arquiteturas serviro como uma estrutura bsica razovel, dentro da qual podero ser discutidas as questes relacionadas a SGBDs distribudos. Uma arquitetura de referncia criada com freqncia pelos desenvolvedores de padres, pois ela define com clareza as interfaces que precisam ser padronizadas. Para todas as finalidades prticas, o modelo de referncia pode ser imaginado como um modelo arquitetnico idealizado do sistema. Ele definido como uma estrutura conceitual cujo propsito dividir o trabalho de padronizao em fragmentos gerenciveis, e mostrar em um nvel geral como esses fragmentos esto relacionados uns com os outros. Um modelo de referncia ( e portanto uma arquitetura de sistema) pode ser descrito de acordo com trs abordagens diferentes: Baseado em componentes. Os componentes do sistema so definidos juntamente com os inter-relacionamentos entre eles. Desse modo, um SGBD consiste em vrios componentes, cada um dos quais fornece alguma funcionalidade. Sua interao ordenada e bem definida proporciona total funcionalidade de sistema. Baseado em funes. As diferentes classes de usurios so identificadas, e as funes que o sistema executar para cada classe so definidas. As especificaes de sistema dentro dessa categoria em geral determinam uma estrutura hierrquica para classes de usurios. Isso resulta em uma arquitetura de sistema hierrquico com interfaces bem definidas entre as funcionalidades de diferentes camadas. A vantagem a clareza com que os objetivos do sistema so especificados. Baseado em dados. Os diferentes tipos de dados so identificados, e especificada uma estrutura arquitetnica que define as unidades funcionais que percebero ou usaro dados de acordo com essas diferentes vises. Tendo em vista que os dados constituem o recurso central que um SGBD administra, essa abordagem (tambm referida como abordagem de lgica de dados) tida como a opo prefervel para atividades de padronizao. A vantagem da abordagem de dados a importncia central que ela associa ao recurso de dados. Isso
________________________________________________________________________________ Paracelso de Oliveira Caldas 19 significativo sob o ponto de vista do SGBD, porque o recurso fundamental que um SGBD administra so os dados. No final de 1972, o Computer and Information Processing Committee (X3) do ANSI (American National Standards Institute) estabeleceu um grupo de estudos sobre sistemas de gerenciamento de bancos de dados, sob os auspcios de seu SPARC (Standards Planning and Requirements Committee). O grupo props uma estrutura arquitetnica conhecida como arquitetura ANSI/SPARC, que se baseia na organizao dos dados. Ela reconhece trs vises de dados: a viso externa que a viso do usurio, poderia ser de um programador; a viso interna que a viso do sistema ou da mquina; e a viso conceitual que a viso do empreendimento. 1.5.1.1 Sistemas cliente/servidor Os SGBDs cliente/servidor entraram no cenrio da computao no incio da dcada de 1990 e tiveram um impacto significativo tanto na tecnologia de SGBDs quanto na forma como se realiza a computao. A idia geral simples e elegante: distinguir a funcionalidade que precisa ser fornecida e dividir essas funes em duas classes, funes de servidores e funes de clientes. Isso fornece uma arquitetura em dois nveis, que torna mais fcil gerenciar a complexidade dos SGBDs modernos e a complexidade da distribuio. O primeiro fator a observar que o servidor faz a maior parte do trabalho de gerenciamento de dados. Isso significa que todo o processamento e otimizao de consultas, gerenciamento de transaes e de armazenamento, so feitos no servidor. A arquitetura, descrita na figura 01 abaixo, bastante comum em sistemas relacionais, nos quais a comunicao entre os clientes e o(s) servidor(es) feita no nvel de instrues de SQL. Em outras palavras, o cliente repassa consultas SQL ao servidor, sem tentar compreend-las ou otimiz-las. O servidor faz a maior parte do trabalho e devolve ao cliente a relao resultante.
________________________________________________________________________________ Paracelso de Oliveira Caldas 20
Figura 01 Arquitetura cliente/servidor de referncia Existem diferentes tipos de arquiteturas cliente/servidor. O mais simples o caso em que apenas um servidor acessado por diversos clientes. Essa arquitetura se denomina vrios clientes-servidor nico. Sob uma perspectiva de gerenciamento de dados, isso no muito diferente dos bancos de dados centralizados, pois o banco de dados est armazenado em apenas uma mquina (o servidor), que tambm hospeda o software para gerenci-lo. Uma arquitetura cliente/servidor mais sofisticada aquela em que existem vrios servidores no sistema (a abordagem denominada vrios clientes-vrios servidores). Nesse caso, so possveis duas estratgias alternativas de gerenciamento: cada cliente gerencia sua prpria conexo com o servidor adequado, ou cada cliente conhece apenas seu servidor local, que ento se comunica com outros servidores conforme necessrio. Sob uma perspectiva de lgica de dados, os SGBDs cliente/servidor fornecem a mesma viso dos dados que os sistemas no-hierrquicos (ponto a ponto). Ou seja, eles do ao usurio a aparncia de um banco de dados logicamente nico, enquanto no nvel fsico os dados podem ser distribudos. Por conseguinte, a principal distino entre sistemas cliente/servidor e no-hierrquicos no se d no nvel de transparncia oferecido aos usurios e aos aplicativos, mas sim no
________________________________________________________________________________ Paracelso de Oliveira Caldas 21 paradigma de arquitetura utilizado para se chegar at esse nvel de transparncia.
1.5.1.2 Sistemas distribudos no-hierrquicos
Uma arquitetura no hierrquica ou de rede ou ponto a ponto aquela onde no existe um servidor central. Todos os computadores esto no mesmo nvel hierrquico e podem tanto compartilhar recursos (impressoras, arquivos, etc.) quanto acessar recursos compartilhados por outros computadores da rede. Um exemplo de rede no-hierrquica uma pequena rede ligada atravs de cabos de par tranado e hub que operam sob um sistema operacional qualquer. A organizao dos dados fsicos em cada mquina pode ser, e provavelmente , diferente. Isso significa que h necessidade de definir um esquema interno individual em cada site, o que se chama esquema interno local (EIL). A viso empresarial dos dados descrita pelo esquema conceitual global (ECG), que global porque descreve a estrutura lgica dos dados em todos os sites. Os dados em um banco de dados distribudo em geral esto fragmentados e replicados. Para lidar com esse fenmeno de fragmentao e replicao, a organizao lgica dos dados em cada site tem de ser descrita. Por conseguinte, h necessidade de uma terceira camada na arquitetura, o esquema conceitual local (ECL). Ento, o esquema conceitual global a unio dos esquemas conceitual locais. Por fim, o acesso de aplicativos do usurio e o acesso de usurios ao banco de dados so admitidos pelos esquemas externos (EEs), definidos como se estivessem localizados acima do esquema conceitual global. O modelo de arquitetura descrito na figura 02 abaixo fornece os nveis de transparncia analisados acima. A independncia dos dados admitida, pois o modelo uma extenso do ANSI/SPARC, que proporciona naturalmente tal independncia. As transparncias de localizao e replicao so admitidas pela definio dos esquemas conceituais local e global, e pelo mapeamento intermedirio. Por outro lado, a transparncia da rede aceita pela definio do esquema global. O usurio examina os dados, independentemente de sua localizao ou de qual componente local do sistema de banco de dados distribudo o servir. O SGBD distribudo converte consultas globais em grupos de consultas locais, as quais so executadas por componentes globais em grupos de consultas locais, as quais so executadas por componentes do SGBD distribudo em diferentes sites que se comunicam uns com os outros.
________________________________________________________________________________ Paracelso de Oliveira Caldas 22
Figura 02 Arquitetura de banco de dados distribudo de referncia Os componentes detalhados de um SGBD distribudo esto descritos a seguir. Um componente trata da interao com os usurios e outro lida com o armazenamento. O primeiro componente importante, que se chama processador do usurio, consiste em quatro elementos: O tratador da interface do usurio responsvel pela interpretao dos comandos do usurio medida que eles chegam, e pela formatao dos dados do resultado conforme eles so enviados ao usurio. O controlador de dados semnticos utiliza as restries de integridade e as autorizaes definidas como parte do esquema conceitual global, a fim de verificar se a consulta do usurio pode ser processada. O otimizador e decompositor de consultas globais determinam uma estratgia de execuo para minimizar uma funcao de custo e converte as consultas globais em consultas locais, usando os esquemas conceituais locais e globais. O monitor de execuo distribuda coordena a execuo distribuda da solicitao do usurio. O monitor de execuo tambm chamado gerenciador de transao distribuda. O segundo componente importante de um SGBD distribudo o processador de dados, que consiste em trs elementos: O otimizador de consulta local que, na realidade, atua como o seletor de caminho de acesso, responsvel pela escolha do melhor caminho de acesso para acessar qualquer item de dados; O gerenciador de recuperao local responsvel pela garantia de que o
________________________________________________________________________________ Paracelso de Oliveira Caldas 23 banco de dados local permanecer consistente, mesmo quando ocorrerem falhas; O processador de suporte runtime acessa fisicamente o banco de dados, de acordo com os comandos fsicos no escalonamento gerado pelo otimizador de consultas. O processador de suporte runtime a interface para o sistema operacional e contm o gerenciador de buffers (ou cache) do banco de dados, que responsvel por manter os buffers da memria principal e gerenciar os acessos aos dados. 1.5.1.3 Sistemas de Vrios Bancos de Dados Distribudos (SVBDs) As diferenas no nvel de autonomia entre os SVBDs distribudos e os SGBDs distribudos tambm se refletem em seus modelos de arquitetura. A diferena fundamental se relaciona definio do esquema conceitual global. No caso de SGBDs distribudos logicamente integrados, o esquema conceitual global define a viso conceitual do banco de dados inteiro; por outro lado, no caso de SVBDs distribudos, ele representa apenas a coleo de alguns dos bancos de dados locais que cada SVBD local quer compartilhar. Desse modo, a definio de um banco de dados global diferente em SVBDs e em SGBDs distribudos. No ltimo caso, o banco de dados global igual unio dos bancos de dados locais, enquanto no primeiro caso ele apenas um subconjunto da mesma unio. H at mesmo argumentos que se referem necessidade de existir ou no um esquema conceitual global em sistemas de vrios bancos de dados. Em um SVBD, o ECG definido integrando-se os esquemas externos de bancos de dados locais autnomos ou partes de seus esquemas conceituais locais. A figura 03 abaixo apresenta a arquitetura de SVBD com um ECG.
Figura 03 Arquitetura de SVBD com um ECG
________________________________________________________________________________ Paracelso de Oliveira Caldas 24 A concepo do esquema conceitual global em sistemas de vrios bancos de dados envolve a integrao dos esquemas conceituais locais ou dos esquemas externos locais. Uma diferena importante entre o projeto do EGC em SVBDs e em SGBDs distribudos integrados que nos primeiros o mapeamento de esquemas conceituais locais para um esquema global. Porm, nos ltimos, o mapeamento feito no sentido oposto. Isso ocorre porque o projeto no primeiro caso em geral um processo bottom-up, enquanto no ltimo caso ele normalmente um procedimento top-down. Alm disso, se existir heterogeneidade no sistema de vrios bancos de dados, ter de ser encontrado um modelo de dados cannico para definir o ECG. Um aplicativo pode ter um esquema externo local (EEL) definido sobre o esquema conceitual local, bem como um esquema externo global (EEG), definido sobre o esquema conceitual global. A filosofia bsica permitir que cada usurio acesse o banco de dados global (isto , dados de outros bancos de dados) por meio de um esquema externo definido com o uso da linguagem do SGBD local do usurio. Consultas sobre o banco de dados global so feitas com a utilizao da linguagem do SGBD local, mas em geral elas exigem algum processamento para serem mapeadas no esquema conceitual global. As arquiteturas de banco de dados federados, tambm no utilizam um esquema conceitual global.
1.6 Tipos de SGBD Distribudos A expresso sistema de gerncia de bancos de dados distribudos pode descrever vrios sistemas que se distinguem uns dos outros em muitos aspectos. A principal identidade que todos esses sistemas tm em comum o fato de que os dados e os softwares so distribudos em diversos sites conectados por alguma forma de sistema de rede de comunicao. Apresenta-se aqui apenas os tipos de SGBDs distribudos sem entrar nos critrios e fatores que tornam alguns desses sistemas diferentes. Homogneo o SGBDD que possui todos os servidores (ou SGBDs locais individuais) utilizando softwares idnticos e todos os usurios (clientes) utilizando software idnticos; Heterogneo o caso contrrio, ou seja, tanto SGBDs quanto clientes podem utilizar softwares diferentes. Em um SBDD heterogneo, um servidor pode ser um SGBD relacional, um outro pode ser um SGBD de rede e um terceiro pode ser um SGBD hierrquico; nesse caso, necessrio ter uma linguagem de sistema cannica e incluir tradutores de
________________________________________________________________________________ Paracelso de Oliveira Caldas 25 linguagem para verter sub-consultas da linguagem cannica na linguagem de cada servidor; SGBDD Federado (ou um sistema de mltiplos bancos de dados) o sistema em que cada servidor um SGBD centralizado independente e autnomo que tem seus prprios usurios locais, transaes locais e DBA e, portanto tem um grau muito elevado de autonomia local. A expresso sistema de banco de dados federado (SBDF) utilizada quando existe alguma viso ou esquema global da federao de bancos de dados que sejam compartilhados pelas aplicaes.