terça-feira, 31 de julho de 2012

Planejamento de um banco de dados (parte III)


  • Tipos de dados
    Antes de criar uma tabela deve-se definir os tipos de dados, pois estes especificam os tipos de informações que uma coluna pode conter, bem como a maneira como os dados são armazenados.
Segue abaixo tipos de dados (numérico, data e hora, sequência de caracteres, binários e integrados) suportados pelo SQL Server 2008.

Numérico
Tipos de dados
Descrição
Extensão
Int
Armazena números inteiros de -2.147.483.648 a 2.147.483.647
4 bytes
Tinyint
Armazena números inteiros de 0 a 255
1 byte
Smallint
Armazena números inteiros de -32.768 a 32.767
2 bytes
Bigint
Armazena números inteiros de -263 a 263 -1
8 bytes
Money
Armazena números financeiros de -922.337.203.685.477,5808 a 922.337.203.685.277,5807
8 bytes
Smallmoney
Armazena números financeiros de -214.748,3648 a 214.748,3647
4 bytes
Decimal (p,s)
Armazena valores decimais de precisão p e escala s. A precisão máxima é de 38 dígitos.
5-17 bytes
Numeric (p,s)
Funcionalmente equivalente a decimais

Float (n)
Armazena valores de ponto flutuantes com precisão de 7 dígitos (quando n=24) ou 15 dígitos (quando n=53)
4 bytes (quando n=24) ou 8 bytes(quando n=53)
Real
Funcionalmente equivalente a valor flutuante (24)


Obs.1: É melhor evitar fazer referência a colunas com tipo de dados float ou real em cláusulas WHERE em função de serem tipos de dados numéricos aproximados.

Obs.2: Em um caso de um valor inteiro que armazene valores entre 1 e 60 deve ser usado o tipo de dados tinyint e não int, pois desta forma haverá uma redução no consumo de espaço da coluna em 75%. 


sexta-feira, 20 de julho de 2012

Planejamento de um banco de dados (parte II)


2.1 Agrupar os dados relacionados em tabelas
Para criar um banco de dados relacional é preciso reunir todos os elementos que se deseja armazenar, lembrando que devemos sempre nos preocupar com a redundância.

Segue abaixo um exemplo com uma lista de atributos relativo a alocação de empregados em Projetos de consultoria:
  • Matrícula;
  • Nome do Empregado;
  • Endereço;
  • Código do projeto;
  • Título do projeto;
  • Horas trabalhadas.
Agora devemos organizar os atributos em Tabelas pensando, como disse acima, em evitar dados redundantes e na dificuldade de atualizar dados após uma alteração.

  • Seleção de chaves primárias:
Toda tabela em um banco de dados deve ter uma chave primária que identifique exclusivamente cada linha. Em resumo, basta que um atributo tenha a característica de ser único em relação a uma tabela para que seja chave candidata. Pode ser usado também a combinação de duas ou mais colunas como chave primária em uma tabela.

  • Relacionamento entre tabelas
Após a identificação da chave primária e da organização de atributos em tabelas pode-se fazer o relacionamento através da ligação entre uma tabela com chave primária e outra com a chave estrangeira. Normalmente a chave estrangeira em uma tabela contém o valor da chave primária na tabela relacionada.


Portanto neste caso a modelagem ficaria da seguinte forma (Utilizando o Diagrama de Banco de dados – SQL Server 2008):



Desta forma é possível saber por Empregado os projetos que participou e ainda as horas trabalhadas em cada um ou mesmo o total de horas gastas em todos os projetos. Se colocássemos o endereço na tabela de alocação, este deixaria de ser individualmente de cada trabalhador e passaria a ser do local onde o profissional teve sua alocação. Outra situação importante é a criação da tabela associativa TBALOCAÇÃO em função do atributo horas_trabalhadas pois somente desta forma é possível saber a quantidade de horas trabalhadas por um profissional em um determinado projeto. Nestes casos de associação a chave primária sempre será a concatenação das chaves primárias das tabelas que se associam formando uma chave primária composta.

quarta-feira, 11 de julho de 2012

Planejamento de um banco de dados (parte I)

  1. Criando um banco de dados relacional
Para não ter surpresas futuras o ideal antes de começar a implementar um projeto de banco de dados é pensar antecipadamente de forma escalonável para atender as novas necessidades de negócios que possam surgir. Também é importante identificar o que os usuários desejam que o novo sistema faça, além de identificar os problemas e limitações do sistema existente. Uma dica é reunir todos os documentos, como relatórios, controles pertencentes ao sistema atual e atas de reuniões com os usuários finais no início de seu planejamento e evitar ir direto a fase de concepção do projeto por achar que conhece bem o negócio.


Conceito para entendimento:
  • Banco de dados são sistemas de computador que armazenam e facilitam a inserção, recuperação e alteração desses dados;
  • Servidores de banco de dados: O Software de banco de dados é executado em servidores, pois estes computadores tem um hardware avançado para otimizar o desempenho do sistema para armazenamento de dados, cálculos e comunicação na rede. Fisicamente normalmente ficam em racks em centros de dados e seu acesso é remoto pois normalmente não possuem teclado e mouse.

    1.1 Identificando os objetos em um banco de dados relacional
Durante o processo de coleta de informações, deve-se identificar os objetos ou entidades principais que serão gerenciados pelo banco de dados. O objeto pode ser algo tangível, como uma pessoa ou um produto, ou pode ser um item mais intangível, como uma transação comercial, um departamento da empresa ou um período da folha de pagamentos. O modelo relacional organiza dados em uma série de tabelas relacionadas, que contém linhas e colunas. Cada coluna corresponde a um atributo (exemplo: nome) e cada linha corresponde a um registro (exemplo:José).


2 Modelando os objetos

Quando os objetos no sistema estiverem identificados, devemos registrá-los de um modo que represente o sistema visualmente, pois este modelo pode ser como uma referência durante implementação do banco de dados.

Para esse propósito, os desenvolvedores de banco de dados usam ferramentas de modelagem de dados para design de banco de dados como o ErWin, Oracle Designer ou o diagramas do MS SQL Server management studio. 



quarta-feira, 4 de julho de 2012

Microsoft SQL Server 2008 Express (Edição gratuita)

Microsoft SQL Server 2008 Express é um sistema de gerenciamento de dados que fornece um conjunto de recursos, proteção de dados e desempenho para clientes de aplicativos incorporados, aplicativos Web leves e armazenamentos de dados locais. Projetado para uma fácil implantação e prototipagem rápida, SQL Server 2008 Express está disponível sem nenhum custo, e o usuário está livre para redistribuí-lo com aplicações. 


Segue abaixo os requisitos do Sistema:



Sistemas operacionais suportados: Windows 7, Windows Server 2003 Service Pack 2, Windows Server 2008, Windows Server 2008 R2, Windows Vista Service Pack 1, Windows XP Service Pack 3
  • Sistemas 32-bit
    • Computador com processador Intel ou compatível processador de 1 GHz ou mais rápido (2 GHz ou mais rápido é recomendável. Apenas um único processador é suportado).
    • Mínimo de 256 MB de RAM (1 GB ou mais é recomendado)
    • 1GB de espaço livre no disco rígido
  • Sistemas de 64 bits
    • Processador de 1,4 GHz ou superior (2 GHz ou mais rápido é recomendável. Apenas um único processador é suportado).
    • Mínimo de 256MB de RAM (1 GB ou mais é recomendado)
    • 1 GB de espaço livre no disco rígido