You are on page 1of 6

Projeto de Banco de Dados

DOMÍNIOS

Réryka Rubia

Domínios

 O firebird faz uso de domínios em banco de


dados. Na verdade, todo e qualquer campo
definido em tabelas do firebird tem um
domínio associado.

 Mesmo quando você não especifica um


domínio para um campo, o firebird cria
automaticamente.

1
Domínios

 Domínios podem ser muito útil para o DBA.


Com ele podemos manipular tipos
semelhantes de dados, que serão
encontrados em diversas tabelas de um
banco de dados.
 Um exemplo básico e muito comum é definir
um domínio para associar aos campos que
receberão valores monetários.

Domínios

 Na listagem abaixo, podemos ver um


exemplo de definição de um domínio com
essa função:

 CREATE DOMAIN D_MONEY AS


NUMERIC(9,2)
DEFAULT 0.00
CHECK ( VALUE >= 0.00 );

2
Domínios

 Neste caso definimos uma domínio


chamado D_MONEY, que especifica
um tipo NUMERIC(9,2), que por padrão
assume o valor 0.00 ( default 0.00 ), e que
não aceita valores negativos ( CHECK
VALUE >= 0.00 )

Domínios

 Um outro uso comum para domínios é simular um


campo lógico (BOOLEAN), já que no firebird ainda
não temos esse tipo de dado. A listagem abaixo
apresenta o comando para definição desse tipo de
domínio:

 CREATE DOMAIN D_BOOLEAN AS


CHAR(1)
DEFAULT ‘’F”
NOT NULL
CHECK ( VALUE IN ( ‘T’, ‘F’));

3
Domínios

 Nesse caso, estamos definindo um domínio


chamado D_BOOLEAN, que especifica o tipo de
dado CHAR(1), que aceitará os valores T(rue)
ou F(alse) (CHECK ( VALUE IN ( ‘T’ , ’F’))),
assumindo ‘F’ ( DEFAULT ‘F’).

Domínios

 Agora já que temos definidos os domínios


D_MONEY e D_BOOLEAN, podemos criar
uma tabela no banco de dados com campos
que utilizam esses domínios.

 Segue um exemplo.

4
Domínios

 CREATE TABLE TAB_CONTAS_PAGAR


(
DOCUMENTO VARCHAR(12) NOT NULL,
COD_FORNECEDOR SMALLINT NOT NULL,
DT_EMISSAO DATE,
DT_VCTO DATE,
VALOR D_MONEY,
JUROS D_MONEY,
DESCONTO D_MONEY,
QUITADO D_BOOLEAN,
PRIMARY KEY(DOCUMENTO)
);

Domínios

 A grande vantagem de uso de domínios é


que se houver necessidade de alterar o tipo
de dados associado ao domínio, todos os
campos que fazem uso desse domínio serão
atualizados automaticamente.
 Um exemplo prático seria a mudança do
numero de casas decimais de 2 para 4 no
valores monetários. Nesse caso, basta
alterar a definição do domínio, trocando de
NUMERIC(9,2) para NUMERIC(9,4)

5
Domínios

 O Comando SQL ficaria dessa forma:

 ALTER DOMAIN D_MONEY TYPE


NUMERIC(9,4);

Domínios

 Conclusão: A definição de domínios


específicos pode ajudar e muito na
manutenção do banco de dados e não traz
qualquer desvantagem, tanto a nível de
performance como implementação. Faça
bom uso dos domínios e você só terá a
ganhar com isso.

You might also like