VENDAS: 1-800-867-1389

Federações no Banco de dados SQL do Azure

Atualizado: abril de 2014

Federações no Banco de dados SQL do Microsoft Azure (Banco de dados SQL do Azure) são a maneira de alcançar maior escalabilidade e gerenciar limitações de capacidade no nível do banco de dados do seu aplicativo. Uma ou mais mesas dentre de um banco de dados é particionada horizontalmente entre diversos bancos de dados chamados de membros da federação. Em geral, esse tipo de particionamento horizontal é chamado de ‘fragmentação’. Este tópico fornece uma visão geral das federações.

ImportantImportante
Para escalabilidade, flexibilidade e desempenhos ideais, considere a autofragmentação personalizada. Para obter mais informações sobre a autofragmentação, consulte Expandindo Bancos de dados SQL do Azure.

Federação é uma coleção de partições de banco de dados definidas por um esquema de distribuição da federação, conhecido como esquema da federação. O esquema da federação define uma chave de distribuição da federação, que determina a distribuição dos dados em partições dentro da federação. A chave de distribuição da federação deve ser um INT, BIGINT, UNIQUEIDENTIFIER ou VARBINARY (de até 900 bytes) e especifica um valor de intervalo. Pode haver somente um esquema e uma chave de distribuição para uma federação.

As partições do banco de dados dentro de uma federação são conhecidas como membros da federação, e cada membro abrange uma parte ou todo o intervalo de valores coberto pelo tipo de dados da chave de distribuição da federação. Tabelas federadas são tabelas distribuídas pelos membros da federação. Cada membro tem seu próprio esquema e contém as linhas da tabela federada correspondentes ao intervalo do membro da federação. A coleção de todas as linhas em um membro da federação correspondentes a um valor específico da chave da federação é denominada unidade de federação atômica. Cada membro da federação pode conter muitas unidades atômicas. Um membro da federação também pode conter tabelas de referência, que são tabelas que não tem ciência da federação. As tabelas de referência são totalmente contidas em um membro e, em geral, contêm informações de referência que são recuperadas em combinação com os dados federados.

Um membro da federação fornece uma separação física entre os dados que ele contém e os dados armazenados em outros membros. Cada membro da federação tem seu próprio esquema, que pode temporariamente divergir do esquema de outros membros devido ao processamento específico ao membro, como a execução de uma atualização sem interrupção do esquema em todos os membros.

Embora os membros da federação sejam fisicamente implementados como bancos de dados, eles são mencionados logicamente na camada de aplicativos como um intervalo dos valores da chave da federação. Por exemplo, um banco de dados membro da federação que contém linhas associadas aos valores 50 a 100 da chave da federação seria acessado logicamente especificando-se um valor da chave dentro desse intervalo, não o nome do banco de dados.

As federações são acessadas por meio de um banco de dados da raiz da federação, que representa o limite de aplicativos da federação. Funciona como o ponto de extremidade lógico para que os aplicativos se conectem a uma federação direcionando as conexões para o membro apropriado com base no valor da chave da federação especificado. Cada banco de dados de raiz contém várias federações, cada uma com seu próprio esquema de federação. Também pode conter dados globais, como usuários, senhas, funções ou outros dados específicos a aplicativos.

Os diagramas a seguir ilustram os modelos lógico e físico das federações:

Ao criar uma federação, uma das decisões mais importantes é em que valor criar a federação. O ideal é que você selecione uma chave que permita federar dados de várias tabelas relacionadas, para que as linhas relacionadas sejam armazenadas em conjunto. Por exemplo, no caso de um aplicativo com vários locatários, você pode selecionar o tenant_id. As linhas dentro de cada tabela federada que especifica o mesmo valor de tenant_id seria armazenada na mesma unidade atômica da federação.

Você também deve considerar como inserir novos registros de forma que todos os membros da federação sejam utilizados uniformemente, em vez de armazenar todos os novos registros em um membro. É necessário determinar como distribuir novos dados entre os membros da federação na camada do aplicativo.

Como há uma separação física dos dados contidos em diferentes membros da federação, e o Banco de Dados SQL não oferece suporte a operações de junção entre os bancos de dados, seu aplicativo deve implementar a lógica para unir dados de vários membros ou várias federações. Por exemplo, uma consulta que precise unir dados de duas federações precisaria executar consultas separadas em cada uma e unir os dados no aplicativo. O mesmo ocorre para agregar dados de vários fragmentos em uma única federação, como obter uma contagem de todas as linhas contidas na federação.

Uma nova especificação que descreve os recursos SQL adicionais para fragmentação de dados está disponível no Compromisso de especificação aberta da Microsoft. Para obter mais informações, consulte a especificação das Federações de Banco de dados SQL do Windows Azure.

Consulte também

Isso foi útil para você?
(1500 caracteres restantes)
Agradecemos os seus comentários
Mostrar:
© 2014 Microsoft