Categoria: Sem classificação

SQL 2011 – Sequences

Outra grande novidade do SQL Server 2011 são os objetos “sequence” (Sequencia), ja existem outros SGDBs onde este objeto ja é implementado a algumas versões, porem só nesta nova versão o mesmo foi introduzido ao SQL Server.

É comum ver em algumas modelagens de banco de dados os seguintes relacionamentos:

Até o SQL Server 2008, iste tipo de modelagem só era possivel de 3 maneiras:

  • Alterando-se as chaves primarias das tabelas Cliente e Funcionario para uma chave primaria composta.

Problema: Voce tera um campo a mais de PK em sua tabela, maior ocupação de espaço em disco, leitura e entendimento um pouco complicado.

  • Utilizando do datatype UNIQUEIDENTIFIER e a função NEWID().

Problema: O UNIQUEIDENTIFIER ira gerar um valor parecido com este: 534A9F7D-6CB7-44A2-9EA5-F6E08795D53E.

  • Utilizando por exemplo PK IDENTITY(1,2) (Numeros impares) para uma tabela e PK IDENTITY (2,2) (Numeros pares) para a outra tabela.

Problema: Dados confusos, principalmente se por algum motivo voce tiver que remover algum dado, ou alterar.

Pode haver lacunas, por exemplo, se voce inserir 3 linhas em uma tabela, e apenas 1 na outra, voce tera 2 lacunas em PK na tabela que recebeu menos dados.

 

Com o novo objeto sequence, este tipo de modelagem se torna mais facil tanto em sua implementação quanto em seu gerenciamento. Este objeto é criado pela seguinte sintaxe:

[sql] CREATE SEQUENCE Schema.SequenceName
AS INT
MINVALUE 0,
NO MAXVALUE,
START WITH 1,
INCREMENT BY 1
[/sql]

Considerações:

  • O nivel de permissionamento em relação aos objetos sequence continua igual em relação aos outros objetos, podendo ser diretamente ou por schema;
  • Por mais que voce possa definir um valor maximo e minimo, os limites de cada datatype na definição serão respeitados, por exemplo, na sequence criada acima, o range de valores possiveis é:-2^31 (-2,147,483,648) a 2^31-1 (2,147,483,647), que representa o menor e maior valor possivel para um dado INT respectivamente.

Voltando ao nosso modelo relacional, com o uso de sequence, o insert nas tabelas de Cliente e Funcionario seriam:

[sql] INSERT INTO Cliente VALUES (NEXT VALUE FOR Schema.SequenceName, ‘Fabrizzio’)
INSERT INTO Funcionario VALUES (NEXT VALUE FOR Schema.SequenceName, ‘Caputo’)
[/sql]

Vantagens da utilização de sequences:

  • Maior facilidade de implementação;
  • Não havera lacunas (Caso não haja erros ou deleções);
  • Possibilidade de gerenciamento do objeto sequence atraves do comando ALTER SEQUENCE;
  • Maior controle dos seus dados;
  • Facil manutenção;
  • Possibilidade de reserva de ranges;
  • Mais rapido que o IDENTITY.

Desvantagens:

  • Não trabalha por transação, ou seja:

[sql] CREATE dbo.SequenciaTeste
AS INT
START WITH 1,
INCREMENT BY 1
 
BEGIN TRAN
SELECT NEXT VALUE FOR dbo.SequenciaTeste
ROLLBACK TRAN
SELECT NEXT VALUE FOR dbo.SequenciaTeste
[/sql]

Resultado: 1 e 2, Ou seja, não foi feito o Rollback do valor da sequence. Portanto no caso de erro ou rollback da transação, voce perdeu este valor da sequencia, sera necessario insert manual do mesmo na tabela.

Sua infra na Nuvem!!!

A computação em nuvem permite às empresas pequenas e médias dar saltos rápidos sem gastar fortunas com infraestrutura.

Criada há seis anos, em Belo Horizonte, como uma pequena distribuidora de games para celular, a Samba Tech mudou seu foco de negócios em 2007 e passou a distribuir vídeos pela internet. Desde então, cresceu 300% e hoje mostra números que impressionam. São cerca de 150 000 vídeos distribuídos para mais de 100 países, 500 milhões de visualizações e 6 000 terabytes de tráfego por ano. A expectativa de faturamento para 2011 é de 15 milhões de reais e entre seus clientes estão o SBT, O Boticário e o portal R7, site de notícias da Rede Record, além de clubes de futebol como Atlético Mineiro e Internacional. Continue lendo

70% das escolas públicas urbanas do Brasil estão conectadas à internet em banda larga gratuita

Desde o seu lançamento, em abril de 2008, o Programa Banda Larga nas Escolas conectou 44.059 escolas públicas urbanas de todo o país à internet de alta velocidade. O número representa 67,91% de todas as 64.879 instituições abrangidas pelo projeto. De acordo com o último balanço divulgado pela Agência Nacional de Telecomunicações, 1.371 escolas foram conectadas no primeiro trimestre de 2010. Os balanços são fechados pela Anatel a cada três meses. Continue lendo