Centenas de novos recursos e novidades foram inseridos nas capacidades do banco de dados do SQL Server 2005 (o nome técnico seria na “Máquina do Banco de dados do SQL Server 2005”, ou o termo em Inglês: “SQL Server 2005 Database Engine”). Como são muitas as novidades, vamos dividi-las em sub-categorias, para facilitar a apresentação das novidades.
Novidades no Desenvolvimento de Aplicações
Esta foi, na minha opinião, uma das áreas onde o SQL Server 2005 mais avançou e apresentou melhorias, em relação as versões anteriores. Na minha opinião, só a integração com o Framework .NET (que descreverei em mais detalhes logo a seguir), já vale o Upgrade. Com a integração com o Framework .NET, é possível criar objetos tais como triggers, stored procedures e tipos de dados definidos pelo usuário, usando qualquer linguagem suportada pelo framework .Net, tais como VB.NET, C#, Delphi.NET, etc. Este é um avanço considerável, ou seja, agora você não está limitado a somente usar o T-SQL, para a criação destes objetos. Com a integração com o .Net, os horizontes de desenvolvimento se ampliam, consideravelmente.
Outra excelente novidade é que estes objetos podem, facilmente, ser criados, usando o Visual Studio .NET – 2005 (ainda em versão Beta, enquanto eu escrevo este livro). Com o Visual Studio .NET, é extremamente simples a criação de objetos tais como triggers e stored procedures e a instalação destes objetos, para serem utilizados em um ou mais bancos de dados do SQL Server 2005. A seguir descrevo mais algumas importantes novidades, na área de desenvolvimento de aplicações com o SQL Server 2005:
- Acesso HTTP SOAP Nativo: Com o SQL Server 2005 é possível acessar os dados de um banco de dados, diretamente, usando o protocolo SOAP. Para isso, basta configurar o SQL Server 2005 para atuar como um endpoint de acesso SOAP, o qual é capaz de receber os pacotes SOAP e retornar os dados solicitados. Isso, por exemplo, permite acessar os dados de um banco de dados do SQL Server 2005, sem ter que usar um servidor Web tal com o IIS ou o Apache.
- Um novo tipo de dados - xml: Foi criado um novo tipo de dados, o qual é capaz de tratar diretamente com dados e documentos no formato XML.
- Criar Funções definidas pelo usuário, usando qualquer linguagem suportada pelo Framework .NET: Esta é uma conseqüência da integração com o framework .NET. Com o SQL Server 2000 foi introduzida a possibilidade do programador criar as suas próprias funções, em adição às funções já fornecidas pela linguagem Transact-SQL (T-SQL). Estas funções podem retornar um valor simples, ou até mesmo uma tabela. Por exemplo, você pode criar uma função para validação do DV do CPF ou do CNPJ, uma outra função para cálculo do Imposto de Renda e assim por diante. No SQL Server 2000, estas funções só podiam ser criadas usando o T-SQL. No SQL Server 2005, estas funções podem ser criadas, usando qualquer linguagem suportada pelo Framework .NET. Estas funções podem ser, facilmente criadas, usando o Visual Studo .NET 2005.
- Novas consultas para acesso a metadados: Os metadados são informações sobre os dados. Ou falando de uma maneira mais simples, são informações sobre a estrutura do banco de dados e das tabelas. Por exemplo, uma lista com o nome de todas as tabelas de um banco de dados é uma informação de metadados. Outro exemplo, uma lista de todos os campos de uma tabela, com informações sobre as propriedades de cada campo, também são informações de metadados. No SQL Server 2005 foram introduzidas dezenas de novas Views (consultas), as quais podem ser utilizadas para obter informações detalhadas sobre a estrutura de um banco de dados.
- Triggers associadas a alterações na estrutura do banco de dados: Nas versões anteriores do SQL Server, só era possível criar triggers associadas com alterações nos dados das tabelas de um banco de dados. Por exemplo, você poderia criar uma trigger associada ao campo Quantidade em estoque, da tabela Produtos no estoque, a qual fosse disparada sempre que o valor do campo quantidade for alterado. Esta trigger poderia receber como parâmetro, o código do produto que está tendo a sua quantidade em estoque alterada e verificar se o produto não atingiu o estoque mínimo. Se o estoque mínimo foi atingido, a trigger poderá gravar um registro, na tabela de Pedidos pendentes, para que seja feito um pedido do produto. A novidade no SQL Server 2005 é que é possível criar triggers que são disparadas quando são feitas alterações na estrutura do banco de dados. Por exemplo, quando as propriedades de um campo de uma tabela são alteradas, ou quando um novo campo é criado ou excluído, ou quando uma nova tabela é criada ou excluída e assim por diante. Com triggers que podem ser disparadas por alterações na estrutura do banco de dados, o desenvolvedor pode implementar um sistema de monitoramento bem mais eficaz, podendo inclusive criar triggers que não permitam que a estrutura de tabelas e/ou campos críticos sejam alteradas ou que tabelas e/ou campos críticos, sejam excluídos.
- Novos recursos da linguagem T-SQL: Muitos novos recursos e melhoramentos foram inseridos na linguagem T-SQL. Uma das novidades é a possibilidade de criar consultas recursivas. Um novo operador foi criado – operador APPLY, o qual facilita a combinação entre dados de duas ou mais tabelas, onde alguns campos são retornados a partir de uma tabela e, para cada valor da primeira tabela, são exigidos todos os registros correspondentes, na segunda tabela. Foram incluídos novos operadores PIVOT e UNPIVOT, os quais facilitam a transposição de linhas em colunas e vice-versa, em uma consulta de referência cruzada. O operador TOP, o qual é utilizado para retornar apenas um número especifico de registros ou um percentual do número total de registros de uma consulta, também foi melhorado no SQL Server 2005. Agora, além de números, você pode fornecer uma variável como valor do operador TOP, o qual utilizará o valor da variável. Esta mudança nos dá bem mais flexibilidade na utilização do operador TOP em rotinas de programação.
- Query Notification: Este é um recurso realmente valioso, principalmente para melhorar o desempenho das aplicações. Com este recurso é possível criar aplicações, as quais são capazes de manter em cache, o resultado de uma ou mais consultas. Além disso, o SQL Server 2005 pode ser configurado, para notificar a aplicação, sempre que houver alterações nos dados originais, de tal forma que o resultado da consulta seja atualizado no Cache, para evitar que dados desatualizados, sejam acessados. Este é um recurso realmente valioso e pode ter, nas aplicações, o mesmo efeito de desempenho, que um servidor de Cache de páginas Web, tem na velocidade de acesso a Internet.
- Outras novidades: Existem muitas outras novidades, no desenvolvimento de aplicações no SQL Server 2005, que por falta de espaço, não temos como descrever em detalhes neste livro. Mas você encontra informações detalhadas, sobre as seguintes novidades, no Books Online, o qual é o sistema de Ajuda, instalado com o SQL Server 2005: Iniciar -> Programas -> Microsoft SQL Server 2005 -> SQL Server Books Online. Clique em SQL Server Books Online -> What's New in SQL Server 2005 -> Database Engine Enhancements -> Database Engine Programmability Enhancements.
Novidades no Gerenciamento da Máquina de Banco de Dados do SQL Server 2005
Nesta área, encontramos as seguintes melhorias:
- Separação entre Usuários e Esquemas: Nas versões anteriores do SQL Server, cada objeto tinha um dono e este dono é que, por padrão, tinha permissões para fazer alterações na estrutura do objeto. No SQL Server 2005 todos os objetos fazem parte de um esquema (Schema) e um usuário ou grupo (roles) pode ser dono do esquema. Com isso, fica mais fácil gerenciar as permissões e garantir que um grupo de usuários possa atuar como dono de vários objetos, sendo dono do schema ao qual os objetos pertencem. Esta é uma importante inovação que também está relacionada a área de segurança. Eu irei detalhar esta novidade, no Capítulo 6, o qual será completamente dedicado ao gerenciamento de segurança no SQL Server 2005.
- Nova Cláusula - ATTACH_REBUILD_LOG: Esta nova cláusula permite configurar um banco de dados para ser usado em um outro servidor (chamamos isso de “atachar” o banco de dados), sem que seja preciso carregar todos os arquivos de LOG do Banco de dados. Um exemplo prático onde esta cláusula pode ser utilizada, seria em uma situação onde estamos querendo levar uma cópia de um banco de dados para um outro servidor, sendo que esta cópia será somente leitura. Neste caso, não é preciso carregar levar também todos os arquivos de log. Esta operação pode ser feita, usando a nova cláusula ATTACH_REBUILD_LOG.
- Outras novidades: Existem outras novidades, no gerenciamento da máquina de banco de dados do SQL Server 2005. Você encontra informações detalhadas, sobre estas novidades, no Books Online, o qual é o sistema de Ajuda, instalado com o SQL Server 2005: Iniciar -> Programas -> Microsoft SQL Server 2005 -> SQL Server Books Online. Uma vez aberto o Books online, clique em SQL Server Books Online -> What's New in SQL Server 2005 -> Database Engine Enhancements -> Database Engine Manageability Enhancements.
Novidades que melhoram o tempo de UpTime do SQL Server 2005
Nesta área, encontramos diversas melhorais, responsáveis por manter o SQL Server 2005 em funcionamento, minimizando o máximo possível interrupções e tempos de parada, devido a erros ou problemas de software ou hardware. A seguir apresento as principais novidades nesta área.
- Aumento no número de nós de cluster: Nas versões anteriores do SQL Server, eram suportados cluster com quatro nós, para as versões de 64 bits do SQL Server e de 2 nós, para as versões de 32 bits. Com o SQL Server 2005 são suportados 8 nós para as versões de 32 bits e 4 nós para as versões de 64 bits.
- Aumento no número de instâncias: A possibilidade de ter mais de uma instância, do SQL Server, no mesmo servidor, foi introduzida com o SQL Server 2000. No SQL Server 2000 o número máximo de instâncias, por servidor, estava limitado a 16. No SQL Server 2005, podemos ter até 50 instâncias, por servidor, para o SQL Server 2005 Enterprise Edition e até 16 instâncias para as demais edições do SQL Server 2005.
- Criação de servidores espelhados (Database Mirroring): Esta é uma novidade que eu realmente aprecio, pois é de grande utilidade. Com o SQL Server 2005 você pode configurar um servidor espelho de um servidor de produção. Quaisquer alterações que forem feitas no servidor de produção, serão repassadas, automaticamente, para o servidor espelho. Havendo qualquer problema com o servidor de produção, rapidamente o servidor espelho poderá ser ativado, para assumir o papel do servidor de produção. A grande vantagem do Database Mirroring é que o tempo de parada é bastante reduzido e o servidor espelho é sempre mantido atualizado.
- Instance Availability: Dedicated Administrator Connection (Conexão dedicada para o Administrador): Este é outro recurso de grande valor. Em determinadas situações, pode ocorrer de uma instância do SQL Server simplesmente congelar, trancar. Nestas situações, o servidor fica instável e pode ocorrer de você não conseguir se conectar usando as ferramentas de administração tradicionais, tais como o SQL Server Management Studio. Muitas vezes, o Administrador acaba reinicializando o Windows, para tentar normalizar a instância do SQL Server que está com problemas. Com o SQL Server 2005, você tem a opção de criar uma Dedicated Administrator Connection (Conexão dedicada para o Administrador), através da qual será possível diagnosticar e resolver problemas, mesmo em uma instância que esteja instável, não respondendo aos comandos e ferramentas tradicionais. Uma Dedicated Administrator Connection (Conexão dedicada para o Administrador) é como se fosse uma conexão de alta prioridade, para a qual o SQL Server 2005 “dá atenção” e responde, mesmo em situações extremas, com problemas graves. É um recurso realmente de grande utilidade.
- Hot-Add Memory (Adição de memória a quente): Com o SQL Server 2005, desde que o hardware do servidor dê suporte, evidentemente, você pode adicionar mais memória RAM, sem desligar o servidor. O SQL Server 2005 automaticamente reconhece e passa a utilizar a nova quantidade de memória disponível. Não é possível remover memória, sem desligar o servidor. Somente é possível adicionar memória, sem o desligamento do servidor.
- Database Snapshots: Com o SQL Server 2005 é possível criar um snapshot de um banco de dados e, se necessário, utilizar este snapshot para restaurar o banco de dados ao estado de quando o snapshot foi feito. Por exemplo, as nove horas você cria um snapshot de um banco de dados. Todos os dados e configurações do banco de dados e de todos os seus objetos, estarão gravadas no snapshot. Agora suponhamos que em torno de 9:05 você executou, por engano, comandos que fizeram uma verdadeira “bagunça” no banco de dados, excluindo tabelas e configurações vitais para o funcionamento do banco de dados. Você pode simplesmente utilizar o Snapshot criado as 9:00, para restaurar o banco de dados ao estado em que ele se encontrava as 9:00 horas, ou seja, antes de terem sido executados os comandos que “bagunçaram” o banco de dados. A vantagem do snapshot, em relação ao backup/restore é que o snapshot é bem mais fácil e rápido de ser utilizado, reduzindo com isso, o tempo de parada do banco de dados.
- Online Restores: Nas versões anteriores do SQL Server, era preciso concluir o restore de todo o banco de dados, antes que este pudesse ser colocado online e acessado pelos usuários. Com o SQL Server 2005, o banco é colocado online logo após o início do restore e os dados que já foram restaurados, já passam a estar disponíveis para os usuários. Isso também reduz o tempo de indisponibilidade do servidor, por ocasião do restore de um banco de dados.
- Outras novidades: Existem outras novidades, na melhoria do Uptime dos bancos de dados do SQL Server 2005. Você encontra informações detalhadas, sobre estas novidades, no Books Online, o qual é o sistema de Ajuda, instalado com o SQL Server 2005: Iniciar -> Programas -> Microsoft SQL Server 2005 -> SQL Server Books Online. Uma vez aberto o Books online, clique em SQL Server Books Online -> What's New in SQL Server 2005 -> Database Engine Enhancements -> Database Engine Availability Enhancements.
Outras Novidades da Máquina de Banco de Dados do SQL Server 2005.
Você encontra uma série de outras novidades, sobre a Máquina de Banco de Dados do SQL Server 2005, nos seguintes caminhos, dentro do Books Online:
- SQL Server Books Online -> What's New in SQL Server 2005 -> Database Engine Enhancements -> Database Engine XML Enhancements
- SQL Server Books Online -> What's New in SQL Server 2005 -> Database Engine Enhancements -> Database Engine Scalability and Performance Enhancements
- SQL Server Books Online -> What's New in SQL Server 2005 -> Database Engine Enhancements -> Database Engine International Enhancements
|