Boa noite, Seja bem vindo - Sexta-Feira, 18 de Maio de 2012 - Aracaju - SE  

Voltar ao site
Blog mantido por: Clailson de Almeida
BLOGS - ENERGIA
BLOGS - BIOTECNOLOGIA
BLOGS - TIC
BLOG - Clailson de Almeida
23
Junho
Tamanho da fonte
Postado por: Clailson de Almeida          Categoria: Técnico Geral
 

Estamos de volta. Bom, nesta última parte sobre padronização no banco de dados, falaremos sobre um assunto que é desconhecido por muitos: o uso de domínio como tipo de dado.

Domínios são essencialmente tipos de dados com restrições (constraints), que podem ser uma checagem de valores (check constraints), uma verificação de campos NOT NULL ou atribuição de um valor DEFAULT.

A utilização de domínios, como tipo de dado, é útil para manter as restrições, que são comuns à várias colunas, em um só lugar, facilitando a manutenção dos mesmos. Por exemplo, podemos ter várias colunas de email que possuem uma checagem para validar o endereço. Podemos então criar um domínio para esta situação, no lugar de colocar esta restrição para cada coluna.

Lembrando que, apesar do comando CREATE DOMAIN seguir o padrão SQL ANSI, nem todos os SGBDs dão suporte a ele. O Oracle, por exemplo, não possui este comando. O equivalente no Oracle é o comando CREATE TYPE.

No PostgreSQL, a criação de um domínio é feita pelo comando abaixo.

CREATE DOMAIN name [ AS ] data_type
[ DEFAULT expression ]
[ constraint [ ... ] ]


onde constraint é:

[ CONSTRAINT constraint_name ]
{ NOT NULL | NULL | CHECK (expression) }



No exemplo abaixo, utilizando os campos de email para demonstrar o uso do domínio.

-- tabela antes de utilizar o domínio
CREATE TABLE tb_pessoa (
id_pessoa SERIAL PRIMARY KEY,
ds_email_1 varchar(50),
ds_email_2 varchar(50),
ds_email_3 varchar(50),
CONSTRAINT tb_pessoa_ds_email_1_check CHECK (ds_email_1 ilike '%@%.com' or ds_email_1 ilike '%@%.com.br'),
CONSTRAINT tb_pessoa_ds_email_2_check CHECK (ds_email_2 ilike '%@%.com' or ds_email_2 ilike '%@%.com.br'),
CONSTRAINT tb_pessoa_ds_email_3_check CHECK (ds_email_3 ilike '%@%.com' or ds_email_3 ilike '%@%.com.br')
);

-- criação do domínio
create domain email varchar(50) check (value ilike '%@%.com' or value ilike '%@%.com.br');

-- tabela depois de utilizar o domínio
CREATE TABLE tb_pessoa (
id_pessoa SERIAL PRIMARY KEY,
ds_email_1 email,
ds_email_2 email,
ds_email_3 email
);


Abaixo estão algumas sugestões de domínios.

Nome
Descrição
Data Type
Check Constraint
Valor Default

ativo

Indica se o registro está ativo ou não

CHAR(1)

VALUE IN ('S','N')

'S'

boleano

Indica se o registro está em uma determinada condição, definida pela coluna

CHAR(1)

VALUE IN ('S','N')

 

data_hora

Usado em campos de data

TIMESTAMP

 

 

varchar15

Usado em descrições ou nomes de até 15 caracteres

VARCHAR(15)

 

 

varchar30

Usado em descrições ou nomes de até 30 caracteres

VARCHAR (30)

 

 

varchar50

Usado em descrições ou nomes de até 50 caracteres

VARCHAR(50)

 

 

varchar100

Usado em descrições ou nomes de até 100 caracteres

VARCHAR(100)

 

 

varchar200

Usado em descrições ou nomes de até 200 caracteres

VARCHAR (200)

 

 

id

Usado em identificadores de tabelas, onde o código é gerado automaticamente pelo banco.

INT4

 

 

inteiro

Usado em campos de quantidades ou outro campo que necessite usar um número inteiro

INT4

 

 

numérico

Usado em campos de valores monetários ou outro campo que necessite usar um número decimal

NUMERIC (12,2)

 

 

Comentários(0)
« anterior [1] próximo »

Comentários 0 comentários  
  1 DE 0    
1 DE 0    
Comentários 0 comentários  
 
Deixe um comentário!  
AVISO: Os comentários são de responsabilidade de seus autores e não representam a opinião do Portal do SERGIPITEC e só serão publicados após a aprovação da equipe do Portal do SERGIPITEC. É vedada a inserção de comentários que violem a lei, a moral e os bons costumes ou violem direitos de terceiros. O Portal do SERGIPITEC poderá retirar, sem prévia notificação, comentários postados que não respeitem os critérios impostos neste aviso ou que estejam fora do tema da matéria comentada.
 
Sobre o Autor

Clailson de Almeida

Graduado em Tecnologia em Processamento de Dados e pós-graduado em Administração de Banco de Dados pela UNIT. Já atuou como desenvolvedor WEB, com forte utilização de Java. Trabalhou 2 anos como Analista de Sistemas e possui experiência no desenvolvimento com  SGBDs Oracle, SQL Server e PostgreSQL, sendo que, deste último, tem 6 anos de utilização, sendo 4 anos e meio como DBA. Atualmente trabalha na Infox Tecnologia da Informação, como gerente da divisão de banco de dados. Possui certificação PostgreSQL, pela Pearson Vue, com o título de “PostgreSQL CE 8 Silver". Realiza consultoria especializada em banco de dados e ministra cursos e treinamentos em PostgreSQL. Está estudando atualmente para a certificação OCA Oracle.

Busca
Categorias
Todas (8)
INSTITUCIONAL
EMPREENDIMENTOS
SERVIÇOS
BIOTECNOLOGIA
ENERGIA
TIC
   
O Parque
Quem somos?
Onde estamos?
Destaques
Doc. Organizacionais
Faça parte da SergipeTec
Resultado
Fale Conosco
Webmail
Empreendimentos
Instituições
Parceiros
 
NIT
Editais
Licitações
Eventos
Blogs
Galeria de Imagens
Videoteca
C3 Bio
Biofábrica
Notícias
 
C3 Energia
Probiose
Notícias
 
C3 TI
Fábrica de Teste
Notícias
 
 

 

 

Av. Dr. Carlos Rodrigues da Cruz, n° 826. Centro Administrativo Gov. Augusto Franco - Bloco "B", Térreo / Bairro Capucho / Aracaju-SE / CEP 49080-190 / Tel / Fax: (79) 3259-0186
Copyright 2010 SergipeTec.org.br - Todos os direitos reservados