ns-serif'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'">Sincronização de dados entre SQL Server Compact Edition e SQL Server 2008;
· Replicação;
· Merge.
Qual a finalidade?
· Neste artigo veremos os conceitos envolvidos na replicação de dados para depois configurar uma replicação. Com a base conceitual dada neste artigo, o leitor estará apto a configurar replicações de dados em diversos cenários.
Quais situações utilizam esses recursos?
· No dia-a-dia dos desenvolvedores a replicação/merge é usada sempre que existe a necessidade de sincronizar dados que podem ser alterados tanto em um cliente quanto em um servidor.
Resumo do DevMan
Quando temos a necessidade de criar aplicações embarcadas, devemos ter em mente a necessidade da elaboração de uma política de sincronização dos dados.
A elaboração desta política é fundamental para a integridade das informações, e deve ser cuidadosamente elaborada.
Embora existam outros métodos de sincronização de informações entre um banco de dados SQL CE e um SQL Server 2008, neste artigo abordaremos a Replicação Merge, mostrando os cenários onde ela é a melhor escolha, suas vantagens e desvantagens em relação aos outros métodos e como é feita a sua configuração.
Quando existe a necessidade de usar um repositório de informações off-line, o arquiteto da solução deve projetar os métodos para sincronizar a base de dados off-line com a base de dados on-line.
Esta atitude é indispensável para o sucesso da aplicação, pois mais perigoso que não ter dados, é ter dados incorretos ou desatualizados. Quando o mesmo conjunto de informações é alterado em vários lugares diferentes, se não existir uma estratégia de sincronização eficaz e eficiente então temos nossos dados desatualizados e as informações não são confiáveis. Por isso é necessário ter muito cuidado na elaboração de um plano para sincronização de dados.
Neste artigo falarei sobre a Replicação Merge. Em minha opinião, este meio de sincronização é o mais complexo, porém é o mais eficiente quando o cenário inclui diversos clientes e as alterações nos dados são feitas tanto no cliente quanto no servidor. Entenda cliente como a base de dados Microsoft SQL Compact Edition e servidor como a base de dados Microsoft SQL Server 2008.
O que é o SQL Compact Edition?
É uma base de dados compacta que pode ser usada em aplicações embarcadas e também em aplicações desktop. Uma base de dados SQL CE é armazenada em um arquivo com a extensão .sdf e neste arquivo temos todo o conteúdo do banco de dados, que pode ter até 4 Gb de dados.
Para manipular uma base de dados SQL CE, podemos criar uma aplicação usando o Visual Studio e instalar esta aplicação em um desktop ou dispositivo mobile, podemos também usar o SQL Server Management Studio.
O engine do SQL CE é a tecnologia que proporciona o armazenamento, processamento e segurança dos dados. Os componentes do engine do SQL CE são o Processador de Consultas e a Engine de Armazenamento.
A Engine de Armazenamento é responsável por:
· Gerenciar o arquivo onde o banco de dados é armazeado e o espaço usado por ele;
· Construir e ler as páginas que são usadas para armazenar os dados;
· Gerenciar os buffers de dados e todo o I/O para arquivos físicos;
· Gerenciar as transações e usar locking para controlar o acesso concorrente à linhas e schemas do banco de dados;
· Garantir as propriedades ACID das transações (Atomicidade, Consistência, Isolamento e Durabilidade)
· Criar e manter a estrutura de índices;
· Oferecer suporte à Integridade Referencial.
O processador de consultas é responsável por fazer o parse, compilar, otimizar e executar os comandos disparados contra a base de dados. Ele é quem executa os comandos SQL e retorna o resultado da consulta. O processador de consultas é responsável também por automaticamente criar as estatísticas sobre a distribuição de valores em índices.
Métodos de sincronização dos dados
Para decidir qual método de sincronização de dados iremos usar, é necessário conhecer todos os métodos disponíveis e de acordo com as suas características escolher o mais adequado à sua necessidade.
Neste tópico conheceremos as características de cada um dos métodos de sincronização disponívies para as tecnologias que iremos usar (SQL CE e SQL Server 2008).
RDA – Remote Data Access
Através do RDA é possível enviar e buscar dados de uma tabela do SQL Server. Podemos usar o RDA também quando, através do dispositivo móvel, queremos emitir comandos contra a nossa base de dados on-line.
Um aspecto que eu acho muito interessante no RDA é a possibilidade de rastrear todas as alterações que foram realizadas em uma determinada tabela, para posteriormente a aplicação desenvolvida enviar os dados para uma tabela do SQL Server.
Devemos optar pelo RDA quando não existe a necessidade de resolver conflitos, sem esquecer que provavelmente nas próximas versões do SQL CE o RDA deixe de existir!
Merge Replication
Usamos este método de sincronização, quando os dados são alterados no cliente e no servidor, e neste caso podem ocorrer conflitos que devem ser resolvidos para efetivar a sincronização.
A Figura 1 ilustra um cenário onde a replicação merge pode ser usada.
Figura 1. Cenário onde a replicação Merge é usada