8. Utilizando Domínios, Tabelas e Índices

8. Utilizando Domínios, Tabelas e Índices com Firebird e InterBase

8. Utilizando Domínios, Tabelas e Índices

Neste capítulo conheceremos e aprenderemos a criar domínios (Domain), tabelas (Tables) e índices (Indexes) para os bancos de dados InterBase e Firebird. Antes de abordarmos as características e funcionalidades do Domain, precisamos conhecer e compreender os tipos de dados suportados pelo IB/FB.

O objetivo principal desse capítulo é mostrar os tipos de dados suportados para criação de Domains e Tables, como também abordar a sintaxe e características para criar os Domains, Tables e Indexes dentro do banco de dados.

Tipos de dados

Bancos de dados, como falamos anteriormente, armazenam dados dentro de tabelas, na forma de linhas e colunas. Cada coluna (ou campo) armazena uma informação de algum tipo, onde, em cada linha de uma tabela podemos ter várias colunas formando uma linha (ou registro) contendo diversas informações, sendo cada uma de um tipo especifico.

Uma coluna pode armazenar diversos tipos de dados diferentes, como texto, número, data, hora, data/hora, além de outros. Quando você cria uma coluna em uma tabela, ou um domínio a ser utilizado na definição de suas tabelas, você precisa especificar um tipo de dado que essa coluna armazenará.

Dependendo do tipo informado, você precisa ainda especificar algum parâmetro adicional, como tamanho ou sub-tipo. Tanto o InterBase como o Firebird suportam diversos tipos de dados numéricos, de texto (fixo ou variável), relacionados a tempo (data, hora, data e hora) e do tipo BLOB, os quais podem armazenar qualquer tipo de dados binário, como por exemplo, arquivos de vídeo, imagem e som.

Tipos de dados Texto

O IB/FB possuem dois tipos básicos para armazenamento de dados no formato texto: Char e VarChar.

Character (Char)

Esse tipo de dado, define um tamanho fixo para a coluna (campo) de 1 a 32.767 bytes. Normalmente, esse tipo de dado é utilizado em colunas que sempre serão utilizadas para armazenar informações de tamanho fixo pré-definido. Sintaxe: Char (tamanho) ou  Character (tamanho). Exemplo:

 

CEP CHAR(8),

SEXO CHAR(1)

 

Para definir campos do tipo Char, você pode também utilizar o tipo NCharacter, ou NChar (National Char). Definindo uma coluna utilizando o tipo NChar, essa coluna terá as mesmas características possuídas pelo tipo Char, porém ela será pré-definida com o Character Set  ISO8859_1. Exemplo:

 

CREATE TABLE PESSOA (

  CEP NCHAR(8),

  SEXO NCHAR(1));

 

O exemplo anterior é equivalente a:

 

CREATE TABLE PESSOA (

  CEP CHAR(8) CHARACTER SET ISO8859_1,

  SEXO CHAR(10) CHARACTER SET ISO8859_1);

 

VarChar

Esse tipo de dado define um tamanho variável para a coluna (campo) de 1 até 32.765 bytes. Colunas especificadas utilizando esse tipo de dado não são preenchidas com espaços em branco caso o valor inserido nelas não atinja o tamanho especificado na definição da coluna. Em outras palavras, quando inserimos informações que são mais curtas que o tamanho especificado na criação da coluna, esse valor não é preenchido com espaços em branco.

Normalmente, colunas do tipo VarChar são utilizadas para armazenar informações de tamanho variável, como endereço, nome ou cidade, por exemplo. Sintaxe: VarChar (tamanho) ou Character Varying (tamanho) ou ainda Char Varying (tamanho). Exemplo:

 

ENDERECO VARCHAR(80),

BAIRRO VARCHAR(30)

 

Obs: Você pode também utilizar o tipo NVarchar, o qual é similar ao tipo VarChar para definir suas colunas. A única diferença é que utilizando esse tipo, é pré-definido para a coluna o Character Set ISO8859_1.

Utilizando Character Set

Vimos no capítulo anterior que quando criamos um banco de dados, especificamos um Character Set padrão para ser utilizado pelas colunas do tipo texto (Char, VarChar e BLOB sub type text).

Quando criamos um domínio ou uma coluna do tipo texto é utilizado, por padrão, o Character Set definido na criação do banco de dados. Caso seja necessário, você pode estar substituindo o Character Set padrão utilizado pelo banco de dados por um específico para a coluna durante a sua criação. Para a língua portuguesa, o Character Set mais recomendado é o WIN1252, pois o mesmo suporta os acentos e caracteres utilizados pelo português.

Tipos de dados Numéricos

O IB/FB fornecem diversos tipos de dados para armazenamento de informações numéricas. Você pode definir colunas para armazenar apenas números inteiros, números fracionários ou ainda números com uma precisão pré-definida.

Smallint

Pode armazenar números inteiros entre 32.768 à 32.767. Esse tipo de dado utiliza 2 bytes para fazer o armazenamento da informação;

Integer

Pode armazenar números inteiros (sem casas decimais) entre –2.157.483.648 à 2.147.483.647. Esse tipo de dado utiliza 4 bytes para fazer o armazenamento da informação;

Float

É utilizado para armazenar números com até 7 casas decimais. Caso um número com mais de 7 casas decimais seja incluído em uma coluna especificada como Float, as casas que sobressaírem a sétima posição serão truncados. Campos do tipo Float utilizam 4 bytes para fazer o armazenamento do número;

Double Precision

Pode armazenar números com até 15 casas. Esse tipo de dado requer 8 bytes para fazer o armazenamento do número.

Nota: Para colunas do tipo Float e Double Precision, o ponto decimal aparece dentro da coluna.

Numeric e Decimal

Podem armazenar valores com ponto decimal, ou não, com um tamanho fixo pré-definido. Sintaxe: Numeric (precisão, escala) ou Decimal (precisão, escala). Exemplo:

 

" [...] continue lendo...