Buscar

Administrando e armazenando dados no SQL Server 2003

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 29 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 29 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 29 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Administrando e armazenando dados 
SQL server 2005
Modulo 01 – Introdução
Bem vindo ao curso administrando e armazenado dados. Este é o segundo curso sobre Microsoft sql server 2005. Este curso coniste em dois módulos, relacionados ao lado. 
Criando e alterando um banco de dados – neste modulo você aprenderá a criar e alterar um banco de dados. 
Administrando dados – neste modulo você aprenderá sobre tipos de dados fornecidos pelo sistema e definidos pelo usuário e também a criar e alterar uma tabela, bem como inserir e alterar dados.
Estudo de caso
Para entender os diferentes conceitos do sql server 2005 será apresentado o estudo de caso da empresa Presco, Inc. a presco produz garradas de vidro de tamanhos e capacidades diferentes. Os clientes desta organização são fabricantes de cosméticos, produtos farmacêuticos e refrigerantes. 
Ciclo comercial
Demonstração do ciclo comercial da presco, começando com a obtenção de matéria prima e terminando com a venda de produtos finais aos clientes. 
Ferramentas de instruções
Para a melhor compreensão de alguns termos será usado o recurso de hipertexto. 
Acima são exibidas as ferramentas de instruções usadas nos módulos. 
Animações interativas
Para melhor compreensão de alguns conceitos e recursos você verá, através de animações, como funcionam os tópicos abordados de modo pratico. Essas ilustrações são acionadas através do mouse. 
MODULO 2 – criando e alterando um banco de dados
As organizações necessitam de meios rápidos confiáveis de armazenar e acessar dados. O banco de dados fornece esses meios, e nesse tópico você aprenderá a cria-lo. Atualmente, as operações do rh da presco são realizadas manualmente. Com o aumento do numero de contratados, a recuperação de dados de um determinado funcionário consome muito tempo. A gerencia da presco decidiu automatizar essas operações e designou John, o analista de sistemas, para realizar a tarefa. Para isso, ele precisará criar um banco de dados. 
Avaliando o tamanho do banco de dados
Antes de criar um banco de dados, é necessário avaliar seu tamanho. O tamanho do banco de dados é medido em unidades de armazenamento que o sql server 2005 usa para gerenciamento dos dados. No sql server paginas e extents são as unidades fundamentais de armazenamento de dados. 
Diferentes tipos de paginas
Uma pagina é um bloco de endereços virtuais contínuos, na memoria, que tem um comprimento fixo. No sql server, a pagina é a menor unidade de armazenamento de dados, que tem o tamanho de 8 kilobytes. O sql server permite armazenar diferentes tipos de dados em diferentes tipos de paginas que estão listadas ao lado. 
Dados – uma pagina de dados armazena a informação registrada pelo usuário. Por exemplo, quando você registra detalhes do empregado na tabela emp_mast, a informação fica armazenada na pagina de dados. No entanto, informação de texto e imagem não é armazenada em uma pagina de dados. 
Texto / imagem – uma pagina de texto / imagem é usada para armazenar grandes quantidade de informação, como imagens e grandes quantidades de texto. Uma pagina de texto / imagem pode armazenar informações de ate 2GB.
Índice – uma pagina de índice é criada quando você cria um índice em uma tabela. Um índice é um objeto de banco de dados que permite acesso rápido aos dados. Quando você cria um índice, os dados de uma tabela são ordenados e uma pagina é criada. Uma pagina índice facilita o acesso rápido aos dados.
Mapa de alocação global – paginas de mapa de alocação global mantem registros das extents que estão alocadas e aquelas que ainda estão disponíveis. Extents são unidades de espaço de armazenamento de dados alocados a um objeto banco de dados quando ele é criado. 
Mapa índice de alocação – este tipo de pagina mantem registro do objetivo para o qual uma extent foi alocada. Por exemplo, ela é usada para armazenar informação sobre uma tabela ou índice para o qual uma extent foi alocada. 
Pagina de espaço livre – esta pagina mantem registro do espaço livre de todas as paginas de um banco de dados. Cada pagina de espaço livre mantem registro dos espaços disponíveis de no máximo 8000 paginas no banco de dados.
Mapa de alocação diferencial – esta pagina mantem registro das extents que tenham sido modificadas desde a ultima cópia de segurança completa do banco de dados.
Mapa de mudança em massa – este tipo de pagina é usada em operações registradas em massa (bulk logged). Operações registradas em massa permitem a transferência de dados em massa. Por exemplo, você pode usar o comando BULK INSERT para copiar grandes quantidades de informações de um arquivo de texto para um banco de dados sql server.
Mapa de alocação global compartilhada – esta pagina mantem registro de paginas que são atualmente usadas para extents mistas e tem pelo menos uma pagina não usada.
EXTENTS
Uma extent é uma unidade de espaço de armazenamento de dados, alocada a um objeto banco de dados quando ele é criado. Ela consiste em 8 paginas continuas. Uma pagina tem o tamanho de 8 kilobytes e uma extent pode conter 64 kilobytes de dados.
Tipos de extents
O sql server fornece dois tipos de extents: uniforme e mista. 
Uma extent uniforme é alocada para um único objeto banco de dados. Por exemplo, se uma tabela esta alocada para uma extent uniforme, todas as oito paginas da extent contem dados somente daquela tabela.
Uma extent mista é alocada para mais de um objeto banco de dados. Por exemplo, duas tabela e um índice podem compartilhar uma extent mista. Uma extent mista pode ser dividida por no máximo oito objetos, cada objeto usando uma pagina.
Como calcular tamanho do banco de dados
Para calcular o tamanho de uma tabela, você precisa determinar;
O numero de uma tabela
O tamanho das colunas de comprimento fixo e comprimento variável
O tamanho da coluna de bitmap nulo
O tamanho de colunas de comprimento variável em uma linha
O tamanho da linha
O numero de linhas por pagina
O numero de linhas livres, se um índice agrupado (clustered) esta anexado a tabela
O numero de paginas necessárias para armazenar as linhas em uma tabela
A quantidade de espaço necessário para armazenar os dados na tabela
Passos para calcular o tamanho do banco de dados – numero de linhas
O primeiro passo para estimar o tamanho de uma tabela é determinar seu numero aproximado de linhas. Por exemplo, se o numero de empregados de uma organização é 100, a tabela deve ter pelo menos 100 linhas.
Para calcular o tamanho de uma tabela, determinar;
O numero de linhas de uma tabela
O tamanho das colunas de comprimento fixo e comprimento variável
O tamanho da coluna de bitmap nulo
O tamanho de coluna de comprimento fixo e comprimento variável em uma linha
O tamanho da linha
O numero de linhas por pagina
O numero de linhas livres, se um índice agrupado (clustered) esta anexado a tabela
O numero de paginas necessário as para armazenar as linhas em uma tabela
A quantidade de espaço necessário para armazenar os dados na tabela
Tamanho das colunas
Depois de determinar o numero de linhas em uma tabela, você precisa calcular o tamanho das colunas de comprimento fixo e de comprimento variável. O tamanho de uma coluna depende do tipo de dado e do comprimento especificado no momento da criação da tabela. 
Os tipos de dados são o formato predefinido para armazenar e recuperar dados de uma tabela. Por exemplo, tipo texto, numero, data etc.
Tamanho do bitmap nulo
Além disso, você também precisa calcular o tamanho do bitmap nulo em uma coluna. O bitmap nulo é o espaço disponível em uma coluna de comprimento fixo. Você pode calcular esse espaço usando a formula exibida na imagem abaixo.
Tamanho de colunas de comprimento variável
No próximo passo, você precisa determinar o espaço exigido para armazenar as colunas de comprimento variável dentro de uma linha. Por exemplo, se em uma linha você tem duas colunas de comprimento variável, você precisa calcular o espaço para as duas colunas individualmente. Você calcula esse espaçousando a formula exibida na imagem abaixo:
Tamanho da linha
Depois, você precisa determinar o tamanho da linha. A formula para determinar o tamanho da linha é exibida na imagem abaixo. O numero 4 é o valor do cabeçalho da linha.
Linhas por pagina
Depois de determinar o tamanho da linha, você tem que estimar as linhas por pagina. O gráfico mostra a formula para calcular o numero de linhas por pagina. O numero 8.096 representa o numero de bytes livres em uma pagina. 
Linhas livres com índice agrupado (clustered)
Você também deve calcular o numero de linhas livres, se um índice agrupado (clustered) esta anexado a uma tabela. Note que a tabela usa o parâmetro fill fator (fator de preenchimento). O fill fator define o espaço livre disponível em uma pagina no momento da criação do índice. 
Armazenando linhas
No passo seguinte, você deve determinar o numero de paginas necessárias para armazenar linhas em uma tabela. O gráfico exibe a formula para calcular o numero de paginas.
Armazenando dados em uma tabela
Finalmente, você precisa calcular o espaço necessário para armazenar dados em uma tabela. A formula é exibida na imagem abaixo. O numero 8.192 na formula representa o total de bytes por pagina.
Tipos de arquivos de banco de dados
Você viu como determinar o tamanho de um banco de dados. Agora você verá como criar um banco de dados. Para criar um banco de dados, o sql server usa um conjunto de arquivos de sistema operacional. Esses arquivos podem ser classificados como primários, secundário ou arquivos de registro de transações (transation log). Você também pode referir-se a esses arquivos como arquivos banco de dados ou arquivos de dados. 
Arquivos primários – um arquivo de dados primário é o primeiro arquivo de dados criado quando você cria um banco de dados. O arquivo de dados primário contem a informação de inicialização, como tipo de dados definido pelo usuário e procedimentos armazenados no sistema. Ele também contem todos os objetos banco de dados e tabelas de sistema. 
O arquivo de dados primário também contem apontadores para arquivos de dados secundários e arquivos de registo de transações (transaction log). Os apontadores no arquivo de dados primário são usados para referir-se aos arquivos de dados secundários e arquivos de registro de transações. Pode haver somente um arquivo de dados primário para um banco de dados. Como padrão, o arquivo de dados primário tem uma extencao .mdf.
Tamanho dos arquivos
O tamanho dos arquivos primário, secundário de log (de registro de transações) aumenta a medida que a quantidade de dados do banco de dados cresce. No entanto procurar por dados específicos em um grande numero de arquivos pode consumir tempo. Então, para melhorar o desempenho do banco de dados é aconselhável agrupar os arquivos em grupos lógicos chamados filegroups. 
Filegroup
Reúne um ou mais arquivos de banco de dados que formam uma única unidade. Os arquivos de um filegroup podem estar gravados em diferentes discos rígidos. Mas, um arquivo pode ser parte de um único filegroup. Por exemplo, os arquivos, file1.ndf, file2.ndf e file3.ndf podem estar gravados nas unidades de disco b, d e d, respectivamente, e atribuídos ao filegroup fgroup1. Então, para melhorar o desempenho de um banco de dados, você pode criar uma tabela especificamente no filegroup fgroup1. Quando você desenvolve uma query no filegroup, ela será distribuída pelos três discos e, assim o desempenho do banco de dados melhorará. 
Tipos de filegroup
O sql server 2005 oferece três tipos de filegroups: primário, secundário e padrão. Você cria arquivos e filegroups ao criar um banco de dados. Existem certas orientações para planejar arquivos e filegroups em um banco de dados. 
Orientações para projetar arquivos e filegroups em um bando de dados
Um filegroup pode ser anexado somente a um banco de dados
Um arquivo pode fazer parte somente de um filegroup
Dados e informações de registro de transações (log) não pode ser armazenados em um mesmo arquivo
Arquivos de registro de transações (log files) não podem fazer parte de um filegroup
Criando banco de dados
No sql server 2005 você pode criar um banco de dados de três maneiras. 
Usando o create database wizard – assistente de criação de banco de dados é uma ferramenta fácil de ser usada, que ajuda a criar um banco de dados. O wizard mostra opções que você pode usar para criar um banco de dados.
Usando o enterprise manager – fornee uma interface gráfica para criar um banco de dados. Este método é um pouco mais rápido que o wizard, pois ele não detalha a criação de um banco de dados passo a passo como no caso do wizard.
Usando código transact- SQL – um grande banco de dados pode levar horas para ser criado e todas as outras transações no sql server podem se tornar mais lentas. Apesar de o enterprise manager e o wizard serem métodos eficazes de criar um banco de dados, eles não permitem que você agendar a criação de um banco de dados. Usando o código transact- sql você pode agendar a criação do bando de dados para depois das horas do expediente.
Sintaxe para criação de um banco de dados
Você pode usar o comando create database para criar um banco de dados. A sintaxe desse comando é exibida na imagem abaixo. 
Database_name – é usado para especificar o nome de um banco de dados. Pode ser ate 128 caracteres. Não pode criar vários banco de dados com o mesmo nome dentro de um servidor.
On – indica que o caminho par armazenar os arquivos banco de dados é definido explicitamente. O parâmetro filespec especifica as características do arquivo, como nome, localização e tamanho dos arquivos banco de dados.
Primary – especifica que o arquivo sendo criado é o arquivo primário. Se você não especifica o parâmetro primary, o parâmetro arquivo criado em um banco de dados é o arquivo primary.
Log on – o parâmetro log on índice que o caminho para armazenamento de arquivos log (de registro de transações) é explicitamente definido. O parâmetro log on é seguido por um parâmetro filespec, que é usado para definir as propriedades do arquivo, como nome, localização e tamanho dos arquivos log. Se você não especifica o parâmetro log on, um arquivo log é criado automaticamente com um tamanho de 25% da soma dos tamanhos de todos os arquivos de dados no banco de dados.
For load – o parâmetro for load fornece compatibilidade com versões anteriores do sql server 2005.
For attach – o parâmetro for attach é usado para anexar arquivos banco de dados a outro sql server. Você pode usar esse parâmetro se quiser copiar o mesmo banco de dados em um servidor novo, sem recria-lo. Você também pode usar este parâmetro se o servidor em que o banco de dados existe tiver pouco espaço no disco rígido, e você precisa expandir o arquivo existente.
Comando create database
Observer que na sintaxe do comando create database existe um parâmetro chamado filespec. Esse parâmetro é usado para especificar as propriedades do arquivo, como tamanho, tamanho máximo que o arquivo pode atingir e seu incremento de crescimento. Os parâmetros do filespec são exibidos abaixo.
Name – você usa o parâmetro name para especificar o nome logico de um arquivo. Um arquivo pode ser identificado pelo seu nome logico ou pelo seu nome físico. O nome logico é aquele que você usar para se referir ao arquivo. O nome físico é usado pelo sql server 2005 para referir-se ao arquivo e especifica o caminho do arquivo. Por exemplo, o nome logico de um arquivo chamado new_data será new_data e nome físico será c:\data\new_data
Filename – você usa o parâmetro filename para especificar o nome físico de um arquivo. Um arquivo pode ser identificado tanto pelo seu nome logico quanto pelo seu nome físico. O nome logico é aquele que você usa para se referir ao arquivo. O nome de arquivo físico é usado por sql server 2005 para referir-se ao arquivo e especifica o caminho do arquivo. O nome do arquivo físico especifica o caminho do arquivo.
Size – você usa o parâmetro size para especificaro tamanho de um arquivo. O tamanho de um arquivo pode ser especificado em kilo bytes (KB), mega bytes (MB), Giga bytes (GB) ou Tera bytes (TB). O tamanho mínimo de um arquivo deve ser de 512kb. Se o tamanho do arquivo não for especificado, sql server designa o valor padrão de 1 MB para o arquivo.
Maxsize – usa esse parâmetro para especificar o tamanho máximo que um arquivo pode atingir. se vvocênao especificar o arquivo pode crescer ate que todo o espaço do disco rígido seja esgotado.
Filegrowth – usa o comando para especificar o crescimento para o arquivo. Você pode especificar o parâmetro filegrowth em KB, MB, ou porcentagem (%). Por padrão, o incremento para o filegrowth pode ser 64kb.
Estudo de caso – planejando o crescimento do banco de dados
Atualmente, o numero de funcionários da presco é 4000. Para armazenar esses registros, John supõe que o tamanho do arquivo primário seja de 10MB. Como o numero de funcionários esta aumentando, John planeja especificar um índice de incremento para o crescimento do banco de dados de 10%. 
Exemplo de crescimento de banco de dados
A ordem para criar o banco de dados do RH com o sistema de arquivos padrão é exibida. O tamanho do arquivo primário será de 10MB e o arquivo primário pode crescer ate 10%.
Apresentando o management studio
Também pode ser usado para criar um banco de dados.
Criando um banco de dados com o management studio
Desempenho do banco de dados
Com o aumento do numero de transações e registros, o desempenho do banco de dados diminui. Para manter o desempenho em nível ótimo, você precisa alterar o tamanho dos arquivos de dados e colocar os dados logicamente em diferentes discos rígidos.
Alterar o tamanho do banco de dados implica tanto em expandir quanto em reduzir seu tamanho.
Expandindo banco de dados
Você expande um banco de dados aumentando o tamanho do arquivo primário, adicionando um arquivo secundário ou um arquivo log.
Estudo de caso – banco de dados Purchase
um dos clientes da presco decidiu lançar um novo refrigerante. Como resultado, o cliente estabeleceu um pedido adicional de 15.000 garrafas, para atender a demanda, a presco precisa adquirir matéria prima adicional. Atualmente presco armazena detalhes de encomendas no banco de dados purchase. As tabelas incluídas no banco de dados são exibids abaixo. O tamanho do banco de dados é de 20MB e há espaço suficiente no servidor, para armazenar novos registros
O comando ALTER DATABASE
Para expandir o tamanho de um banco de dados, você usa o comando ALTER DATABASE. A sintaxe para o comando ALTER DATABASE é exibida ao lado. Para saber mais sobre seus parâmetros.
Parâmetros
ADD FILE – você usa o parâmetro add file para especificar um novo arquivo que esta sendo adicionado a um banco de dados. Você pode adicionar arquivos secundários ao banco de dados para expandir o tamanho do banco de dados.
FILEGROUP – usa para especificar o filegroup a que novo arquivo esta sendo adicionado. Este é um parâmetro opcional. Se você não especifica o parâmetro filegroup, por padrão, todos os arquivos são atribuídos ao filegroup padrão.
ADD LOG FILE – usa para especificar que um arquivo log esta sendo adicionado ao banco de dados.
REMOVE FILE – usa para apagar um arquivo e remover todas as entradas do arquivo das tabelas do sistema. Você só pode apagar um vazio.
ADD FILEGROUP – usa para adicionar um filegroup a um banco de dados. Você pode adicionar um filegroup para criar grupos lógicos para arquivos, o que facilita o acesso rápido aos dados e melhora o desempenho do banco de dados. 
REMOVE FILEGROUP – usa para apagar um filegroup especificado do banco de dados. Você não pode apagar um filegroup se o filegroup não estiver vazio.
MODIFY FILE – usa para modificar propriedades do arquivo, como nome, tamanho, crescimento do arquivo e tamanho máximo do arquivo especificado. Você pode modificar somente uma propriedade por vez. Por exemplo, quando você modifica o nome do arquivo, você não pode modificar o tamanho do arquivo simultaneamente.
MODIFY NAME – usa para alterar o nome do banco de dados.
MODIFY FILEGROUP – especifica o nome do filegroup que precisa ser modificado. Usando este parâmetro você pode modificar filegroup_name e filegroup_property podem ser READONLY, READ WRITE E DEFAULT.
Estudo de caso – aumentando o tamanho dos arquivos
Como existe espaço suficiente no servidor para acomodar os novos registros, John decide aumentar o tamanho do arquivo primário em 5MB. Além disso, o numero de transações no banco de dados será maior. Para acomodar esse aumento de transações, John decide ainda aumentar o arquivo transaction log (registro de transações) em 2MB. O tamanho dos arquivos primário e transaction log atualmente são de 5MB e 2 MB, respectivamente.
Estudo de caso – exemplo de expansão dos arquivos
O comando para alterar o banco de dados purchase é exibido na imagem abaixo. Quando ele for executado, o sql server 2005 alterará o tamanho do arquivo primário para 10MB e o tamanho do arquivo transaction log para 4MB.
Expandindo o banco de dados usando o management studio
Você também pode expandir o tamanho de um banco de dados usando o management studio. Siga as orientações da apresentação e veja como a expansão é realizada. Nota: ao utilizar o management studio, o botão direito do mouse deve ser acionado. Entretanto, na animação utilize o botão esquerdo, pois o direto trará informações sobre o software utilizado (flash).
Reduzindo o banco de dados
Você pode precisar reduzir o tamanho do banco de dados se o espaço do disco ocupado por ele for maior que o necessário. Essa redução é realizada para melhorar o desempenho do banco de dados. 
Estudo de caso – maneiras de reduzir um banco de dados
A presco planejou expandir suas operações no canada. Por isso, a gerencia decidiu contratar mais 500 funcionarios. Para acomodar os novos registros, John aumentou o tamanho do banco d dados em 5MB. No entanto, o plano de expansão não se materializou. Agora, John precisa reduzir o tamanho do banco de dados. Você pode reduzir um banco de dados de duas maneiras. 
Reduzindo banco de dados – todos os arquivos
Para reduzir você usa o comando DBCC SHRINKDATABASE. Quando se reduz um banco de dados, não pode diminui-lo para um tamanho menor que o especificado no momento de sua criação. Por exemplo, se o tamanho do banco de dados especificado foi 10MB no momento da criação, o banco de dados não pode ser reduzido para um tamanho menor que 10MB.
O comando DBCC SHRINKDATABASE
A sintaxe do comando DBCC SHRINKDATABASE para redução do tamanho do banco de dados é exibida abaixo. 
DATABASE_NAME – especificar o nome do banco de dados que você quer reduzir.
TARGET_PERCENT – especificar a porcentagem desejada de espaços livres no banco de dados, depois do banco de dados ter sido reduzido. A porcentagem que você especifica para reduzir o banco de dados não diminui o tamanho do banco de dados para um valor abaixo do tamanho especificado no momento da criação do banco de dados.
NOTRUNCATE – usa para reter o espaço físico que ficou disponível depois de apagar o arquivo. Quando você especifica o parâmetro NOTRUNCATE o espaço físico de armazenagem liberado não pode ser usado pelo sistema operacional para alocar outros objetos banco de dados. Com isso, você pode realocar o espaço para armazenar dados, sempre que necessário.
TRUNCATEONLY – usa para liberar o espaço de armazenagem que ficou disponível para o sistema operacional, ao reduzir o banco de dados. TRUNCATEONLY reduz o arquivo para a ultima extent, diminuindo assim o tamanho do arquivo sem mover os dados do arquivo. O target_percent é ignorado quando especificado com TRUNCATEONLY.
Reduzindo banco de dados – arquivos individuais
Pode reduzir arquivos individuais em um banco de dados com o comando DBCC SHRINKFILE.
O comando DBCC SHRINKFILE
A sintaxe para o comando DBCC SHRINKFILE é exibida abaixo. 
Estudo de caso – reduzindo banco de dados
Como a expansãodo projeto no canada não foi materializada, John precisa reduzir o banco de dados para melhorar o seu desempenho. O tamanho atual do banco de dados é de 100MB. Os dados contidos no banco de dados ocupam 81MB do espaço de armazenagem. Como John precisa reduzir o banco de dados em 10MB ele decide usar o comando DBCC SHRINKFILE. 
Estudo de caso – exemplo de redução de banco de dados
O comando para reduzir o tamanho do banco de dados é exibido abaixo. Como John precisa reduzir o banco de dados para 90MB e o banco de dados já contem 81MB, reduzir o banco de dados para 90MB significaria 9MB d espaço livre no banco de dados. Já que 9MB é de 10% do tamanho do banco de dados, John decide especificar a redução para 10%.
Alterando do banco de dados
Além do comando transact-SQL, você pode usar o management studio para reduzir o arquivo. 
Reduzindo o banco de dados usando o management studio
Você viu como alterar o tamanho de um banco de dados usando o comando transact-sql e management studio. Usando esta informação você pode alterar o tamanho do banco de dados para otimizar o espaço do disco rígido.
Exercício
Resumo I
No tópico criando banco de dados, você aprendeu que:
A unidade fundamental de armazenagem de dados em banco de dados de sql server é uma pagina.
Baseado no tipo de dados que uma pagina guarda, ela pode ser dividida em varias categorias.
Uma extent é uma unidade básica de espaço alocada em um banco de dados.
Extents são de dois tipos;
Uniforme e mista
Antes de criar um banco de dados, você precisa avaliar o espaço de armazenamento de dados
Filegroups (grupos de arquivos) permitem a você reunir arquivos dentro de grupos para administração e apresentação.
Filegroups podem ser três tipos: primário, secundário, padrão.
No sql transact, você usa o comando create database para criar o banco de dados.
Resumo II
No tópico alterando dados você aprendeu que:
Você altera um banco de dados usando – transact sql e management studio
Em transact sql você usa o comando alter database para alterar banco de dados
Você também pode alterar o tamanho do banco de dados: 
Aumentando o tamanho do banco do dados
Reduzindo o tamanho de um banco de dados
Você usa o comando alter database para aumentar o tamanho de um banco de dados
Você usa o comando shrink database para reduzir o tamanho de um banco de dados
Você usa o comando shrink file para reduzir o tamanho de um arquivo
MODULO 03 – ADMINISTRANDO DADOS
Banco de dados – criando objetos
Depois de criar um banco de dados, você pode criar seus objetos, como tabelas e views. Estes objetos armazenam dados como números, datas e textos. Você define o tipo de dado que deve ser armazenado em um objeto. 
Estudo de caso – classificação tipo de dados
John precisa armazenar as informações exibidas abaixo. Para armazena-las ele precisa criar uma tabela. Antes de criar a tabela, ele precisa identificar os tipos de dados e o comprimento para as colunas.
Estudo de caso – administrando dados
John identificou que o campo do numero de seguro social existe em diversas tabelas. A administração quer que esse campo não fique vazio e que receba um máximo de 25 caracteres. Portanto, John precisa manter consistência no tipo de dado que será inserido nesse campo. 
Tipos de dados
São formatos pré definidos para armazenar dados de uma tabela. Os tipos de dados estão armazenados na tabela de sistema systypes. O sql server 2005 suporta os tipos de dados fornecidos pelo sistema e os definidos pelo usuário. 
Tipos de dados – fornecidos pelo sql server
Você especifica o tipo de dado com base no conteúdo que vai inserir em uma coluna, a partir dos tipos de dados disponíveis no sql server 2005. Por exemplo, você pode especificar o tipo de dado como numérico para uma coluna que armazena números (CPF) e como alfa numérico para uma coluna que armazena caracteres (endereço). 
Tipo de dado – inteiro
O sql server oferece quatro tipos de dados que armazenam valores inteiros. 
BIGINT – você pode usar o tipo de dado bigint para armazenar valores de -9223372036854775808 a 9223372036854775807. Este tipo de dado armazena o dobro dos dados armazenados no tipo de dado inteiro. Isto é porque o tipo de dado bigint armazena dados em 8 bytes.
INT – você pode usar o tipo de dado int para armazenar valores entre -2147483648 e 214748347. Este tipo de dado inteiro ocupa 4 bytes de espaço em disco rígido e é usado para armazenar grandes números usados em cálculos matemáticos ou científicos.
SMALLINT – você usa o tipo de dado smallint para armazenar -32768 e 32767. Este tipo de dado inteiro usa 2 bytes de espaço em disco rígido e é usado para armazenar números que são menores que os armazenados no tipo de dado int.
TINYINT – você usa o tipo de dado tinyint para armazenar valores entre 0 e 256. O tipo de dado tinyint usa um byte para armazenar dados.
Tipo de dado – numérico
O sql server 2005 oferece dois tipos de dados numéricos que podem armazenar números de ponto flutuante (não podem ser arredondados) os tipos de dados numéricos estão exibidos.
Decimal – você pode usar o tipo de dado decimal para armazenar os valores numéricos exatos que podem armazenar 38 digitos. Este tipo de dado não arredonda o valor e usa parâmetros da precisao e escala. Precisao é o total de dígitos que uma coluna pode armazenar. Por padrão, o valor de precisao é de 28, embora a precisao possa receber um máximo de 38 digitos. Escala é a conta de dígitos a direita do ponto decimal.
Numérico – você pode usar o tipo de dado decimal para armazenar os valores numéricos exatos que podem armazenar 38 digitos. Este tipo de dado não arredonda o valor e usa parâmetros da precisao e escala. Precisao é o total de dígitos que uma coluna pode armazenar. Por padrão, o valor de precisao é 28, embora a precisao possa receber um máximo de 38 digitos. Escala é a conta de dígitos a direita do ponto decimal. Este tipo de dado é um sinônimo para o tipo de dado decimal.
Tipo de dado – monetário
Os tipos de dados monetários oferecidos pelo sql server 2005 estao exibidos abaixo. Os dados armazenados neste tipo de dado sempre terão 4 digitos a direita do ponto decimal. 
MONEY – você usa o tipo de dado Money para armazenar valores monetários de -922.337.203.585.477,5808 ate 922.337.203685.477,5807. Este tipo de dado ocupa 8 bytes de espaço de armazenamento.
SMALLMONEY – você usa o tipo de dado Money para armazenar valores monetários de -214.748,3548 ate 214.748,3647. Este tipo de dado ocupa 4 bytes de espaço de armazenamento.
Tipo de dado – numérico aproximado
Os tipos de dados numéricos aproximados oferecidos pelos sql server 2005 estao listados abaixo. Você pode arredondar o dado numérico armazenado neste tipo de dado. Para aprender sobre cada um, clique sobre ele. 
FLOAT – você usa o tipo de dado float (ponto flutuante) para armazenar números de precisao flutuante de 1.798+308 ate -1.798+308.
REAL – você usa o tipo de dado real para armazenar valores de -3.408+38 ate 3.408+38.
Tipos de dado – data
Os tipos de dado de data fornecidos pelo sql server 2005 são usados para armazenar valores de data e hora. Os tipos de dado de data são exibidos abaixo. 
DATETIME – você usa o tipo de dado datetime para armazenar data e hora de 1 de janeiro de 1753 ate 31 de dezembro de 9999. Este tipo de dado tem uma precisao de três centésimos de segundo, ou 3.33 milissegundos. Você deve usar este tipo de dado quando você precisa armazenar valores específicos para data e hora. Por exemplo, em cálculos científicos, precisao em dados de data e hora é essencial. Em tais situações, você deve usar o tipo de dado data.
SMALLDATETIME – você usa o tipo de dado smalldatetime para armazenar data e hora de 1 de janeiro de 1900 ate 6 de junho de 2079. Você pode usar este tipo de dado para valores que não precisam ser tao específicos quanto os valores armazenados pelo tipo de dado datetime. 
Tipo de dados – string de caracteres
O sql server oferece vários tipos de dados paraarmazenar caracteres com comprimento fixo ou variável. Os tipos de dados de caracter são exibidos abaixo. 
CHAR – você usa o tipo de cada char para armazenar dados de caracter de comprimento fixo não Unicode com um comprimento máximo de 8.000 caracteres.
VARCHAR – você usa o tipo de dado varchar para armazenar dados de comprimento variável não Unicode com um máximo de 8000 caracteres. Por exemplo, você pode usar varchar para a coluna do nome do funcionário, porque o numero de caracteres no nome de cada funcionário será diferente.
TEXT – você usa o tipo de dado text para armazenar dados de comprimento variável não Unicode com um comprimento máximo de 2.147.493.647 caracteres. Este tipo de dado pode armazenar grandes quantidades de texto. Os dados de texto não são armazenados na tabela. Em vez disso, a tabela armazena apontadores para as paginas que contem os dados.
Tipo de dado – string Unicode
O tipo de dado string Unicode oferecido pelo sql server 2005 armazena dados em diferentes idiomas, como árabe, inglês ou grego, definindo um esquema comum de codificação para caracteres usados nesses idiomas. O tipo de dado string Unicode pode armazenar ate 65.536 caracteres, em comparação com um conjunto de caracteres padrão do Windows que armazena 256 caracteres. Alem disso, o tipo de dado Unicode pode representar mais números de dados diferentes que os tipos de dados char ou varchar. Isto porque o tipo de dado Unicode usa 2 bytes por caracter. 
NCHAR – você usa o tipo de dado nchar para armazenar um máximo de 4000 caracteres. Nchar é um tipo de dado Unicode de comprimento fixo.
NVACHAR – você usa o tipo de dado nvanchar para armazenar dados Unicode de comprimento variável. Ela tem um comprimento máximo de 4000 caracteres. Este tipo de dado é similr o nchar. Entretanto, ele ocupa menos espaço quando o numero de caracteres é menor que o comprimento especificado.
NTEXT – você usa o tipo de dado ntext para armazenar dados Unicode de comprimento variável. Ele tem um comprimento máximo 1.073.741.823 caracteres.
Tipos de dado – string binaria
Os tipos de dados de strings binarias oferecidos pelo sql server 2005 são usados para armazenar valores binários. Os tipos de dados de strings são exibidos abaixo. 
Binary – você usa o tipo de dado binary para armazenar dados binários de comprimento fixo com um comprimento máximo de 8.000 bytes.
Varbinary – utiliza para armazenar dados binários de comprimento variável com comprimento máximo de 8.000 bytes.
Image – usa este tipo de dado para armazenar dados binários de comprimento máximo de 2.147.483.467 bytes. Este tipo de dado é usado geralmente para armazenar dados com arquivos de imagens JPEG ou GIF.
Tipos de dados – especiais
Os tipos de dados que não pertencem a nenhuma categoria especifica estão agrupados nos tipos de dados especiais. Os tipos de dados especiais estão listados abaixo.
Tipos de dados – fornecidos pelo usuário
Além dos tipos de dados fornecidos pelo sistema, o sql server 2005 oferece tipos de dados diferentes definidos pelo usuário. Você usa estes tipos de dados para garantir consistência em diferentes tabelas dentro do mesmo banco de dados. Por padrão, um tipo de dado definido pelo usuário esta disponível apenas no banco de dados no qual ele é criado. Entretanto, para tornar o tpo de dado globalmente disponível, você pode defini-lo no banco de dados modelo. Além disso, tipos de dados definidos pelos usuários diferenciam maiúsculas e minúsculas.
Aplicação dos dados fornecidos pelo usuário
Você deve usar tipos de dados definidos pelo usuário apenas quando precisar armazenar a mesma coluna em diversas tabelas. Você deve garantir que estas colunas tenham um tipo de dado e comprimento idênticos. Além disso, você pode especificar se a coluna pode conter valores nulos. 
Comando armazenado – sp_addtype
Você cria um tipo de dado definido pelo usuário usando o comando armazenado no sistema sp_addtype. Além do comando armazenado, você usa o tipo de dado fornecido pelo sistema para criar um tipo de dado definido pelo usuário. A sintaxe para o comando armazenado no sistema sp_addtype esta abaixo. 
@typename – especificar o nome do novo tipo de dado definido pelo usuário o tipo de dado definido pelo usuário pode conter um máximo de 30 caracteres. Além disso, ele não pode conter caracteres especiais, como # e $. Este parâmetro é obrigatório.
@phystype – especificar o tipo de dado fornecido pelo sistema sobre o qual o tipo de dado definido pelo usuário para armazenar números, você precisa especificar o parâmetro @phystype como numérico. Este é um parâmetro obrigatório.
@nulltype – usado para especificar se o tipo de dado pode ser NULL. Este é um parâmetro opcional e por padrão o valor do parâmetro é NOT NULL. 
@owner – usado para especificar o dono do tipo de dado. Quando você não especifica este parâmetro, o sql server 2005 pega o usuário atual como dono do tipo de dado.
Estudo de aso – dados definidos para tabela emp_detalhes
O quadro exibe os tipos de dados identificados para a tabela emp_detalhes. Como o código de funcionário na presco, inc. é um valor inteiro, John decide usar o tipo de dado interger para a coluna emp_code. As colunas nome de empregado (emp_name) e endereço (address) podem armazenar letras e números. Portanto, John decide usar o tipo de dado varchar para defini-las. John também decide usar o tipo de dado char para as colunas departamento (emp_dept) e função (designation) porque ambas irão armazenar dados de comprimento fixo. John identificou que o tipo de dado datatime será usado para a coluna data de admissão (data_of_joining).
Estudo de caso – procedimento de armazenamento no sistema
John precisa garantir que a coluna numero de seguro social contenha dados consistentes. Então, ele decide criar um tipo de dado definido pelo usuário usando social_security_no como nome do tipo de dado. Uma vez que a coluna pode conter números e caracteres especiais, ele decide usar o tipo de dado varchar. O comando execute é usado para criar o tipo de dado definido pelo usuário. 
Criando tabela
Para acessar dados rapidamente em um banco de dados, eles devem estar organizados em uma estrutura especifica chamada tabela. Uma tabela armazena os dados em linhas (registros) e colunas (campos).
Comando create table
Para criar uma tabela, você usará o comando CREATE TABLE . Para saber sobre mais os parâmetros desse comando.
Table_name – usado para especificar o nome da tabela. O parâmetro owner.table_name deve ser único em um banco de dados. O proprietário de uma tabela é o usuário que entrou no sql server 2005 e tem permissão para criar uma tabela. Entretanto, ao especificar o proprietário. O sql server 2005 atribui automaticamente a tabela ao usuário a tabela ao usuário que entrou no sql server 2005. Por exemplo, um banco de dados pode ter duas tabelas com os nomes John.sales e Mary.sales. no entanto, o banco de dados não pode ter duas tabelas com o nome John.sales, isso porque duas tabelas não podem ter o mesmo proprietário.
Column_name – usado para especificar o nome de uma coluna. Entretanto, você não especifica o nome da coluna em colunas criadas com um tipo de dado timestamp. Isso porque o nome da coluna timestamp automaticamente se o tipo de dado da coluna for timestamp.

Outros materiais