Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
13-03-2013
Pgina 1
Relatrio de Projecto de base de dados distribudas submetidos como parte dos requisitos para avaliao na disciplina de Tecnologia de Base de Dados. Ministrada pelo Professor Mestre Paulo Silva
Realizado por: Jos Edumildo Oliveira Borges Aidil Clcia Brito Andrade
Pgina I
ndice 1. Introduo ................................................................................................................ 1 1.1. 1.2. 2. 2.1. 3. 3.1. 3.1.1. 3.1.2. 3.1.3. 3.1.4. 3.2. 3.2.1. 3.2.2. 3.2.3. 3.3. 3.4. 3.5. 4. 5. Motivao ......................................................................................................... 1 Vantagens da base de dados distribudas ...................................................... 1
Descrio do projecto .............................................................................................. 2 Diagrama de relacionamento para a base de dados de entrada de pedidos ... 2 Implementao ........................................................................................................ 4 Implementao do sistema de base de dados distribudos (SGBDD) ................... 4 Base de Dados distribudas em rede com dois computadores domsticos ........ 5 Configurando o ambiente ................................................................................... 7 Criando uma nova regra no Windows firewall. ................................................. 7 Conexo com uma instncia local do SQL Server ............................................ 8 Configurao do SGBD Microsoft SQL SERVER 2012 ...................................... 8 Viso geral do modelo de publicao de replicao no SQL Server 2012 ........ 9 Replicao no Microsoft SQL Server 2012 ................................................. 10 Configurando o SQL server para a replicao. ............................................ 11
Fragmentao....................................................................................................... 30 Transparncia de fragmentao ........................................................................... 31 Comunicao entre servidores ............................................................................. 32 Concluso ............................................................................................................... 33 Bibliografia ............................................................................................................ 34
Pgina II
NDICE DE FIGURA
FIGURA 1. DIAGRAMA DE RELACIONAMENTO PARA BASE DE DADOS DE ENTRADA DE PAGAMENTO --- 3 FIGURA 2. SITE PUBLISHER E SITE SUBSCRIBER-------------------------------------------------------------------- 5 FIGURA 3. REDE COM DOIS COMPUTADORES ----------------------------------------------------------------------- 5 FIGURA 4. PING ENTRE DOIS COMPUTADORES ---------------------------------------------------------------------- 6 FIGURA 5. CONEXO DA MAQUINA VIRTUAL E REAL ------------------------------------------------------------- 6 FIGURA 6. SQL SERVER CONFIGURATION MANAGER ------------------------------------------------------------- 7 FIGURA 7. PROTOCOLO TCP/IP ACTIVADO. ------------------------------------------------------------------------- 7 FIGURA 8. WINDOWS FIREWALL -------------------------------------------------------------------------------------- 8 FIGURA 9. CONEXO LOCAL E REMOTO ----------------------------------------------------------------------------- 8 FIGURA 10. PUBLICAO E REPLICAO NO SQLSERVER. ------------------------------------------------------- 9 FIGURA 11. CONFIGURANDO A DISTRIBUIO NO PUBLISHER ------------------------------------------------- 11 FIGURA 12. CONFIGURANDO A DISTRIBUIO DO PUBLISHER ------------------------------------------------- 12 FIGURA 13. CONFIGURANDO A DISTRIBUIO NO PUBLISHER ------------------------------------------------- 12 FIGURA 14. CONFIGURANDO A DISTRIBUIO NO PUBLISHER ------------------------------------------------- 13 FIGURA 15. CONFIGURANDO A DISTRIBUIO NO PUBLISHER ------------------------------------------------- 13 FIGURA 16. DISTRIBUIDOR CRIADO COM SUCESSO --------------------------------------------------------------- 14 FIGURA 17. CRIAR PUBLICAO E DEFINIR ARTIGOS------------------------------------------------------------- 15 FIGURA 18. NOVA PUBLICAO -------------------------------------------------------------------------------------- 15 FIGURA 19. PUBLICAO DA BASE DE DADOS --------------------------------------------------------------------- 16 FIGURA 20. TIPO DE PUBLICAO------------------------------------------------------------------------------------ 17 FIGURA 21. ARTIGOS PUBLICADOS ---------------------------------------------------------------------------------- 18 FIGURA 22. ADICIONANDO FILTRO AO ARTIGO (EXEMPLO 1) -------------------------------------------------- 19 FIGURA 23. ADICIONADO FILTRO AO ANTIGO (EXEMPLO 2) ---------------------------------------------------- 19 FIGURA 25. PUBLICAO CRIADA COM SUCESSO ----------------------------------------------------------------- 22 FIGURA 26. PUBLICAO PRODUTO_STOCK ----------------------------------------------------------------------- 22 FIGURA 27.CRIANDO UMA ASSINATURA NA PUBLICAO TRANSACIONAL --------------------------------- 24 FIGURA 28. PGINA PUBLICAO ------------------------------------------------------------------------------------ 25 FIGURA 29. LOCAL DO DISTRIBUTION AGENT --------------------------------------------------------------------- 25 FIGURA 30. PAGINA ASSINANTE ------------------------------------------------------------------------------------- 26 FIGURA 31. CONECTANDO AO SERVIDOR --------------------------------------------------------------------------- 27 FIGURA 32. CONFIGURANDO O SUBSCRIBERS --------------------------------------------------------------------- 27 FIGURA 33.SEGURANA DO DISTRIBUTION AGENT -------------------------------------------------------------- 28 FIGURA 34.SUBSCRIPTION CRIADO COM SUCESSO ---------------------------------------------------------------- 29 FIGURA 35. VALIDANDO A ASSINATURA E MEDINDO A LATNCIA -------------------------------------------- 30 FIGURA 36. TABELA REGISTO DE CLIENTE DE SO VICENTE--------------------------------------------------- 30 FIGURA 37. TABELA REGISTO DE CLIENTE DE PRAIA ----------------------------------------------------------- 31 FIGURA 38. TRANSPARNCIA DE FRAGMENTAO DA TABELA CLIENTE ------------------------------------ 32 FIGURA 39. CRIAR LINKED SERVER ---------------------------------------------------------------------------------- 32 FIGURA 40 CRIAR PERMISSO ----------------------------------------------------------------------------------------- 32
Pgina III
1. Introduo
O presente trabalho, intitulada base de dados distribudas, que consiste em mltiplos servidores, cada um responsvel pelos seus dados. Estes dados podem ser acedidos utilizando uma rede e, apesar de estarem fisicamente distribudos, devem apresentar-se ao utilizador logicamente integrados, como se estivessem num nico servidor. Este trabalho que se traduz num modelo de implementao distribuda da base de dados, elaborado no mbito da disciplina de Tecnologia de Bases de Dados, leccionado no Curso de Engenharia de Sistemas e informtica, por meio do qual se pretende que seja analisado e apresentado decises justificadas no que diz respeito pertinncia da implementao distribuda e ainda dever ser analisado e apresentado todos os aspectos referentes fragmentao dos dados e replicao para os diferentes sites.
1.1. Motivao Por se tratar de um tema em que temos pouco conhecimento prtico, aproveitamos desta oportunidade para escolher sistemas de bases de dados distribudos com o propsito de entender este processo. Nada melhor do que um trabalho prtico onde se poder criar um sistema de Base de dados distribudos. Desta forma teremos uma noo real do seu funcionamento.
Transparncia na gesto dos dados distribudos uma nica base de dados logicamente integrada2. Confiabilidade: eliminando pontos nicos de falhas provendo assim maior disponibilidade e confiabilidade. 3 Partilha dos dados e autonomia local.4
2. Descrio do projecto
A empresa ABC de vendas de equipamento electrnico pretende uma base de dados distribudas que controla o estoque e pedidos de vendas. Essa empresa opera na ilha de So Vicente, na cidade da Praia e cidade de Assomada com controlo local dos recursos de computao. No entanto realiza o processamento de clientes em So Vicente, Praia e Assomada e o controlo de estoque em So Vicente e Praia. A distribuio da base de dados segue as localidades geogrficas dos negcios da empresa. Deste modo os dados de pedidos de clientes so divididos entre Praia, So Vicente e Assomada, ao passo que a tabela com dados de produtos so devidas entre Praia e So Vicente. A razo desta implementao so os seguintes: Um exemplo de consulta global quando se verifica se h quantidade suficiente de produto nos stios (So Vicente, Praia) de estoque para atender a uma venda. Um exemplo de transao global um formulrio de entrada de pedido que insere registros nas tabelas pedido e linha_pedido em uma localidade e actualiza a tabela produto no stio de estoque mais prximo. Tambm saber qual o stio de estoque que deve ter a prioridade de abastecimento.
Tabela Cliente:- a tabela utilizada para armazenar os dados referentes aos clientes.
http://www.slideshare.net/SirleiQueiroz/banco-de-dados-distrbuidos-bdd acessado em 12-04-2012 s 16h 15 ibidem 4 http://www.di.ubi.pt/~pprata/sdtf/Ti_DBdistribuidasGoncaloRicardo.pdf Base de dados distribudas Pgina 2
Tabela Produto:- a tabela utilizada para armazenar os dados referentes aos produtos. Tabela pedido:- a tabela utilizada para armazenar os dados referentes aos pedidos efectuados pelo cliente. Tabela linha_pedido: a tabela utilizada para armazenar os itens de pedidos e produtos. Tabela stock:- tabela utilizada para armazenar informaes referentes aos produtos em stock.
Cliente PK cli_id Cli_nome Cli_cidade Cli_residencia Cli_Nif Cli_regiao Produto PK Pro_ID Pro_nome Pro_referencia Pro_preco Categoria
Pedido PK pedid_id Dataped valorped cli_id Linha_pedido PK,FK2 PK,FK1 Pro_ID pedid_id qtdePed PK Stock Stok_id qtd_stProd NumDeposito Pro_ID
FK1
FK1
Pgina 3
3. Implementao
Nesta seco apresentado a implementao do sistema de base de dados de entrada de pedidos de venda de equipamento electrnico e configurao do Microsoft SQL Server 2012 Management Studio na replicao dos dados.
Pgina 4
Publisher Subscriber
Internet
Praia So Vicente
Subscriber
Assomada
BD
BD
Pgina 5
A figura abaixo mostra o teste de conexo entre dois computador domsticos atravs do ping efectuado.
Pgina 6
Pgina 7
Publicador - o editor uma instncia da base de dados que disponibiliza dados para outros locais por meio de replicao. O publicador pode ter uma ou mais publicaes, cada uma definindo um conjunto de objectos relacionado de forma lgica e os dados para replicar. Distribuidor - uma instncia da base de dados que actua como um repositrio para replicao de dados especficos associados a um ou mais publicadores. Cada publicador associado a uma nica base de dados, (conhecido como uma base de dados de distribuio) ao Distribuidor. A base de dados de distribuio armazena os dados de status de replicao, metadados sobre a publicao e, em alguns casos, actua como uma fila para mover dados do publicador para os assinantes. Em muitos casos, uma nica instncia de servidor de base de dados actua como Publicador e Distribuidor. Isto conhecido como um Distribuidor local. Quando o distribuidor e o publicador esto configurados em instncias separadas de servidor da base de dados, o distribuidor conhecido como Distribuidor remoto. Assinantes - Um Assinante uma instncia de base de dados que recebe dados replicados. Um Assinante pode receber dados de diversos Publicadores e
publicaes. Dependendo do tipo de replicao escolhida, o Assinante tambm pode passar as alteraes de dados de volta ao Publicador ou republicar os dados para outros Assinantes. Artigo - Um artigo identifica um objecto da base de dados que includo em uma publicao. Uma publicao pode conter tipos diferentes de artigos, incluindo tabelas,
Base de dados distribudas Pgina 9
exibies, procedimentos armazenados e outros objectos. Quando as tabelas so publicadas como artigos, os filtros podem ser usados para restringir as colunas e linhas dos dados enviados aos Assinantes. Publicao - Uma publicao uma coleco de um ou mais artigos de um banco de dados. O agrupamento de diversos artigos em uma publicao facilita especificar um conjunto de objectos de banco de dados logicamente relacionado e os dados que so replicados como uma unidade. Assinatura - Uma assinatura uma solicitao para uma cpia de uma publicao a ser distribuda a um Assinante. A assinatura define qual publicao ser recebida, onde e quando. Existem dois tipos de assinatura: push e pull.
3.2.2. Replicao no Microsoft SQL Server 2012 A replicao um conjunto de tecnologias para copiar e distribuir dados e objectos de uma base de dados para outra e, em seguida, a sincronizao das bases de dados para manter a consistncia. Usando a replicao, possvel distribuir dados para diferentes locais e para utilizadores remotos e mveis atravs de redes locais e de longa distncia, conexes discadas, conexes sem-fio e a Internet. O SQL Server 2012 possui trs tipo de replicao descrito abaixo: A replicao transaccional (Transactional replication) normalmente usada em cenrios de servidor para servidor que requerem alta taxa de transferncia, incluindo: Melhoria da escalabilidade e disponibilidade; Armazenamento de dados data warehouse e relatrios; Integrao de dados de vrios sites; Integrao de dados heterogneos e descarregamento de processamento em lote. A replicao de mesclagem (merge replication) projetada principalmente para aplicativos mveis ou de servidor distribudo que possuem possveis conflitos de dados. Os cenrios comuns incluem: Troca de dados com usurios mveis; Aplicativo de POS (ponto de vendas) para o consumidor e integrao dos dados de vrios sites.
Base de dados distribudas Pgina 10
A replicao de instantneo (Snapshot replication) usada para fornecer o conjunto inicial de dados para replicao transacional e de mesclagem.
3.2.3. Configurando o SQL server para a replicao. Depois de apresentar o conceito dos tipos de replicaes, agora apresenta-se a configurao de replicao. Neste projecto utilizou a replicao transaccional (Transactional replication) que permite que cada um dos assinantes trabalhe de forma autnoma. Para implementar a replicao o SQL Server utiliza trs tipos de site: Publicador, Distribuidor, Assinante. O site publicador refere-se ao servidor que contm os dados de origem a serem replicados, e Assinante refere-se ao servidor de destino. As figuras que se seguem mostram como foi publicada a base de dados entrada de pedido.
As figuras onze a quinze mostram a configuraes do distribuidor para a replicao, neste caso escolheu a prpria mquina publicador para ser distribuidor. No entanto seguiu-se o wizard.
Pgina 11
Escolheu o local onde ficaro os Snapshots gerados pela nossa publicao, necessrio que seja em um directrio publicado no IIS para que se possa obter acesso via rede interna ou mesmo pela internet.
Pgina 12
Pgina 13
A figura desaseis (16) mostra a realizao das configuraes de distribuio para a replicao com sucesso, a partir de agora apresenta-se o processo de publicao propriamente dito.
Primeiro Conectou-se ao Publicador no SQL Server Management Studio e expandiu o n do servidor. Posteriormente expandiu-se a pasta Replicao, clicou com o boto direito do rato na pasta Publicaes Locais e clicou em Nova Publicao. O Assistente de Configurao de Publicao foi inicializado. Conforme demostra a figura dezassete (17). De seguida na pgina Base de Dados de Publicao figura dezanove (19), seleccionou BDlojadistribuido. Na pgina de Tipos de Publicao figura vinte (20),
Pgina 15
Pgina 16
A figura vinte e um (21) mostra o artigo publicado, seleccionou-se a tabela produto e stock porque esto relacionados. No entanto escolheu essas tabelas para ser publicado, pois um site pode vender produto que est localizado noutro site. Tambm o site assinante tem a possibilidade de saber a quantidade de produto dos outros sites.
Pgina 17
A figura vinte de dois (22) mostra o filtro do artigo, os sites assinates s tero acesso aos produtos de categorias eletrodomestico.
Pgina 18
Pgina 19
Pgina 20
Pgina 21
Aps a publicao criada com sucesso, agora poder receber assinantes (figura 26)
Pgina 22
Nesta seco ser descrito os passos seguidos para criar uma assinatura na publicao transaccional. Conectou-se ao Publicador no SQL Server Management Studio, expandiu o n do servidor e depois expandiu a pasta Replication. Na pasta Local Publications, clicou com o boto direito do rato na publicao BDlojaDistribuido:Produto_stock figura vinte e sete (27) e clicou em New Subscriptions. O Assistente para Nova Assinatura iniciado. Na pgina Publicao, seleccionou Produto_stock figura vinte e oito (28) e clicou em Next. Na pgina Local do Distribution Agent figura vinte e nove (29), seleccionou Run all agents at the Distributor e clicou em Avanar. Na pgina Assinantes figura trinta (30), o nome da instncia do Assinante no estava exibido, clicou em Add Subscriber, e clicou em Add SQL Server Subscriber, digitou o nome da instncia do Assinante na caixa de dilogo Conectar ao Servidor e em seguida clicou em Conectar figura trinta e um (31). Na pgina Assinantes, seleccionou o nome da instncia do servidor do Assinante e seleccionou a base de Dados BDsaovicente figura trinta e dois (32), sob Banco de Dados de Assinatura. Na caixa de dilogo Segurana do Distribution Agent figura trinta e trs (33) clicou no boto de reticncias (), para, definir segurana. Clicou em Concluir para aceitar os valores padro nas pginas remanescentes e concluir o assistente.
Pgina 23
Pgina 24
Pgina 25
Pgina 26
Pgina 27
Pgina 28
Pgina 29
3.3. Fragmentao
Neste projecto utilizou a fragmentao horizontal na tabela cliente afim que cada site tenha uma tabela de registo de clientes somente com os clientes da sua cidade, com excepo de publicador (no caso PRAIA, que possui todos os dados). A fragmentao pode ser melhor compreendida com as figuras trinta de seis (36) e trinta e sete (37).
Pgina 30
Portanto atravs deste conceito aplicado podemos entender melhor o comportamento e caracteristicas de um base de dados distribuidas.
3.4. Transparncia de fragmentao A transparncia de fragmentao permite aos utilizadores formular consultas e transaes sem conhecer os fragmentos, as localizaes. No entanto essa transparncia facilita a manipulao de dados, porque atravs dela possivel referenciar todas as bases de dados de uma maneira menos trabalhosa onde o utilizador poder consultar os dados remoto como se fosse local. A figura trinta e oito (38) mostra o exemplo desta consulta. Fez-se a consulta na tabela clientes de So Vicente e uniu com a tabela clientes da Praia.
Pgina 31
3.5. Comunicao entre servidores Para realizar a comunicao entre os servidores participantes na replicao de dados no SQL Server preciso realizar trs operaes. Primeiro necessrio criar um linked server, depois adicionar um login para se conectar no servidor e por ltimo criar uma permisso para aceder os dados no servidor remoto. A figura trinta e nove (39) mostra o exemplo da criao de linked server e a figura quarenta (40) mostra como criar uma permisso para aceder aos dados no servidor remoto.
Pgina 32
4. Concluso Atravs deste projecto foi possvel adquirir um maior conhecimento prtico sobre base de dados distribuda e entender melhor o funcionamento de um sistema distribudo. Conclumos que a tcnica de replicao e fragmentao de dados pode ser distribudo e replicados apenas os dados relevantes para cada rea de negcio da empresa. A diferena de base de dados centralizados em relao a base de dados distribudos est no posicionamento das bases de dados, onde no BD distribudos as base de dados esto divido pelos sites e ligado atravs da rede de computador e no BD centralizado a base de dados est em nico local. O desenvolvimento de BD distribudo mais complexo leva mais tempo para manuteno, e requer um custo alto em manuteno. importante ter em conta a segurana de redes. Ao terminar este trabalho temos um sentimento de conquista por termos superados todos os desafios que surgiram no caminho e ter-se conseguido montar a nossa base de dados distribudo.
Pgina 33
5. Bibliografia
ERIC TERUO SHIBAYAMA Estudo Comparativo entre Bancos de Dados Distribudos em linha disponvel http://www2.dc.uel.br/nourau/ consultado em 06-05-2013
Microsoft (2013) Developer's Guide (Replication) [Em linha] disponvel http://msdn.microsoft.com/en-US/sqlserver/default.aspx consultado em 06-05-2013 Microsoft (2013). Replication Tutorials [em linha] disponvel http://msdn.microsoft.com/en-us/library/aa337389.aspx consultado em 19-05-2013 Devmedia (2013) O que banco de dados distribudo [em linha] disponvel http://www.devmedia.com.br/o-que-e-um-banco-de-dados-distribuido/24762. consultado em 12-04-2012 as 16h Silva, Jarciano, Banco de Dados Distribuidos [em linha] disponivel http://www.slideshare.net/SirleiQueiroz/banco-de-dados-distrbuidos-bdd acessado em 12-042012 s 16h 15 Amodor, Gonalo (2013) Bases de dados Distribudas [em linha] disponvel http://www.di.ubi.pt/~pprata/sdtf/Ti_DBdistribuidasGoncaloRicardo.pdf acessado em 12-042012 s 17h 15
Pgina 34