Nomenclatura Geral
Regras de nomenclatura aplicáveis a todos os elementos (tabelas, colunas, índices, etc) do
modelo de dados:
• usar somente letras, números e o caracter sublinhado;
• limitar o tamanho ao máximo de 30 caracteres;
• utilizar apenas letras minúsculas;
• palavras internas devem ser separadas pelo caractere sublinhado;
• suprimir as preposições;
• utilizar apenas palavras no singular.
Tabelas
• Não utilizar verbos para designar nomes de tabelas, priorizar o uso de substantivos:
processo
espelho_pauta
• Para tabelas que implementam relacionamentos (n x n) utilizar o prefixo rel seguido dos nomes das tabelas envolvidas separados por sublinhado:
rel_processo_parte
Se o relacionamento expressar um conceito forte do sistema então o nome deste conceito pode ser utilizado:
administrador_sistema (e não rel_usuario_sistema)
• Tabelas que representam conjuntos de valores relacionados a uma determinada entidade, devem conter um prefixo indicativo do tipo do conjunto seguido do nome da entidade:
tipo_dependente
grau_dependente
Colunas
Para chaves primárias seqüenciais utilizar o prefixo id seguido do nome da tabela:
id_pedido
Para chaves primárias naturais (simples ou compostas) utilizar o prefixo id, o nome da tabela e o nome da coluna:
(chave simples)
id_servidor_cpf
(chave composta)
id_pedido_codigo
id_pedido_data
Para chaves primárias que fazem uso de chaves estrangeiras, manter a nomenclatura da chave estrangeira igual a da chave primária de origem. Aconselha-se que as chaves estrangeiras sejam posicionadas antes dos demais campos que compõem a chave primária, isto permite uma melhor identificação visual das chaves estrangeiras que compõem uma chave primária. Chave primária da tabela dependente:
id_servidor
id_dependente
.
.
.
Chave primária da tabela tarefa (dependente de processo e atividade):
id_processo
id_atividade
id_tarefa
.
.
.
Chaves primárias cujo conteúdo é numérico devem possuir um tipo de dado numérico e sem decimais.
Os nomes das chaves estrangeiras devem ser iguais ao nome da chave primária de origem.
Prefixos recomendados:
sin_ campo sinalizador que aceita apenas os valores S ou N
sta_ status multi-valorado. Ex.: S=Servidor, M=Magistrado, T=todos
dta_ data
dth_ data/hora
din_ dinheiro
Para exclusão lógica utilizar o nome de campo:
sin_ativo
Tipo de Dado
Quanto ao tipo de dado usado na representação, aconselha-se, para maior portabilidade, a escolha de um dos tipos principais definidos pelo padrão SQL-99 (ou SQL3):
Tipo | Parâmetro | Significado |
integer | - | Números inteiros com sinal, o número de bits utilizado na representação é dependente da implementação (geralmente 32 bits). |
smallint | - | Números inteiros pequenos com sinal, o número de bits utilizado na representação é dependente da implementação (geralmente 16 bits). |
numeric | [(precisão [,decimais])] |
Números decimais com precisão fixa. Ao criar uma coluna do tipo numeric é necessário especificar o comprimento total do número e o número de casas decimais. Este tipo é recomendado para representação de moedas. Muitos bancos de dados possuem um tipo money (não padronizado) que, na maioria das vezes, é um campo numeric com precisão e decimais específicos. |
decimal | [(precisão [,decimais])] |
Semelhante ao numeric, entretanto deve possuir uma precisão maior permitindo mais casas decimais. |
float | [(precisão)] | Números com precisão única em ponto flutuante. A faixa de valores e a precisão da representação dependem da implementação. |
double | - | Números com precisão dupla em ponto flutuante. A faixa de valores e a precisão da representação dependem da implementação, mas é sempre igual ou melhor do que o tipo float. |
blob | [(tamanho)] | Usado para armazenagem de qualquer dado em formato binário. O significado do parâmetro tamanho depende da implementação do banco, podendo ser medido em Kb, Mb ou até Gb. |
char | [(tamanho)] | Usado na representação de seqüências de caracteres de tamanho fixo. Tenha cuidado com o parâmetro tamanho – para maior portabilidade, evite comprimentos superiores a 1000 caracteres. |
varchar | [(tamanho)] | Usado na representação de seqüências de caracteres de tamanho variável (geralmente com tamanho até 4 Kb). |
clob | [(tamanho)] |
Semelhante ao tipo blob só que aplicado a caracteres (geralmente para textos maiores que 4 Kb). |
date | - | Um valor de data no formato YYYY-MM-DD. A faixa de valores para o ano pode variar de 1 a 9999). |
time | [(precisão)] | Um valor de hora no formato hh:mm:ss.nnn. O parâmetro precisão indica as frações de segundo representadas, e é dependente da implementação (geralmente variando entre 0 e 6). |
timestamp | [(precisão)] | Data e hora no formato YYYY-MM-DD hh:mm:ss.nnn. O parâmetro precisão indica as frações de segundo representadas, e é dependente da implementação (geralmente variando entre 0 e 6). |
boolean | - | Valor lógico booleano (verdadeiro/falso). |
Restrições de Integridade
Chave Primária
Utilizar o prefixo pk seguido do nome da entidade:
pk_servidor
Chave Alternativa
Utilizar o prefixo ak seguido do nome da entidade e do nome do(s) campo(s) que a compõem:
ak_servidor_nome
Chave Estrangeira
Utilizar o prefixo fk seguido do nome da entidade que possui a chave estrangeira e do nome da entidade à qual a chave faz referência:
fk_servidor_lotacao
Índice
Para índices utilizar o prefixo i(01-99) seguido do nome da entidade.
i01_processo
i02_processo
.
.
.
i99_processo
Sequência
Utilizar o prefixo seq seguido do nome do objeto ao qual a seqüência atende:
seq_dependente
seq_registro
Observação: O uso deste recurso, bem como de campos do tipo auto-incremento, não é recomendado pois afeta negativamente a portabilidade do sistema.
Aconselha-se a criação de uma tabela auxiliar para geração de seqüências, com estrutura
igual a descrita abaixo:
CREATE TABLE infra_sequencia (
nome_tabela varchar(30) NOT NULL,
qtd_incremento integer NOT NULL,
num_atual integer NOT NULL,
num_maximo integer NOT NULL,
CONSTRAINT pk_infra_sequencia PRIMARY KEY (nome_tabela) );
Stored Procedures
Utilizar o prefixo sp seguido por uma descrição do que a stored procedure faz
sp_gera_fonetica_nome_parte
Observação: O uso deste recurso não é recomendado pois afeta negativamente a portabilidade do sistema.
Triggers
Utilizar os prefixos ti (insert) tu (update) ou td (delete) seguido do nome da tabela:
ti_requisicao_pagamento
tu_requisicao_pagamento
td_requisicao_pagamento
Para cada trigger deve existir uma stored procedure associada que recebe como parâmetro
os campos da tabela que necessitam validação ou atualização:
sp_ti_requisicao_pagamento
sp_tu_requisicao_pagamento
sp_td_requisicao_pagamento
Observação: O uso deste recurso não é recomendado pois afeta negativamente a portabilidade do sistema.
Rules
axasUtilizar os prefixos rs (select), ri (insert), ru (update) ou rd (delete) seguido do nome da
tabela:
rs_processo
Nomenclatura Geral
Regras de nomenclatura aplicáveis a todos os elementos (tabelas, colunas, índices, etc) do
modelo de dados:
• usar somente letras, números e o caracter sublinhado;
• limitar o tamanho ao máximo de 30 caracteres;
• utilizar apenas letras minúsculas;
• palavras internas devem ser separadas pelo caractere sublinhado;
• suprimir as preposições;
• utilizar apenas palavras no singular.
Tabelas
• Não utilizar verbos para designar nomes de tabelas, priorizar o uso de substantivos:
processo
espelho_pauta
• Para tabelas que implementam relacionamentos (n x n) utilizar o prefixo rel seguido dos nomes das tabelas envolvidas separados por sublinhado:
rel_processo_parte
Se o relacionamento expressar um conceito forte do sistema então o nome deste conceito pode ser utilizado:
administrador_sistema (e não rel_usuario_sistema)
• Tabelas que representam conjuntos de valores relacionados a uma determinada entidade, devem conter um prefixo indicativo do tipo do conjunto seguido do nome da entidade:
tipo_dependente
grau_dependente
Colunas
Para chaves primárias seqüenciais utilizar o prefixo id seguido do nome da tabela:
id_pedido
Para chaves primárias naturais (simples ou compostas) utilizar o prefixo id, o nome da tabela e o nome da coluna:
(chave simples)
id_servidor_cpf
(chave composta)
id_pedido_codigo
id_pedido_data
Para chaves primárias que fazem uso de chaves estrangeiras, manter a nomenclatura da chave estrangeira igual a da chave primária de origem. Aconselha-se que as chaves estrangeiras sejam posicionadas antes dos demais campos que compõem a chave primária, isto permite uma melhor identificação visual das chaves estrangeiras que compõem uma chave primária. Chave primária da tabela dependente:
id_servidor
id_dependente
.
.
.
Chave primária da tabela tarefa (dependente de processo e atividade):
id_processo
id_atividade
id_tarefa
.
.
.
Chaves primárias cujo conteúdo é numérico devem possuir um tipo de dado numérico e sem decimais.
Os nomes das chaves estrangeiras devem ser iguais ao nome da chave primária de origem.
Prefixos recomendados:
sin_ campo sinalizador que aceita apenas os valores S ou N
sta_ status multi-valorado. Ex.: S=Servidor, M=Magistrado, T=todos
dta_ data
dth_ data/hora
din_ dinheiro
Para exclusão lógica utilizar o nome de campo:
sin_ativo
Tipo de Dado
Quanto ao tipo de dado usado na representação, aconselha-se, para maior portabilidade, a escolha de um dos tipos principais definidos pelo padrão SQL-99 (ou SQL3):
Tipo | Parâmetro | Significado |
integer | - | Números inteiros com sinal, o número de bits utilizado na representação é dependente da implementação (geralmente 32 bits). |
smallint | - | Números inteiros pequenos com sinal, o número de bits utilizado na representação é dependente da implementação (geralmente 16 bits). |
numeric | [(precisão [,decimais])] |
Números decimais com precisão fixa. Ao criar uma coluna do tipo numeric é necessário especificar o comprimento total do número e o número de casas decimais. Este tipo é recomendado para representação de moedas. Muitos bancos de dados possuem um tipo money (não padronizado) que, na maioria das vezes, é um campo numeric com precisão e decimais específicos. |
decimal | [(precisão [,decimais])] |
Semelhante ao numeric, entretanto deve possuir uma precisão maior permitindo mais casas decimais. |
float | [(precisão)] | Números com precisão única em ponto flutuante. A faixa de valores e a precisão da representação dependem da implementação. |
double | - | Números com precisão dupla em ponto flutuante. A faixa de valores e a precisão da representação dependem da implementação, mas é sempre igual ou melhor do que o tipo float. |
blob | [(tamanho)] | Usado para armazenagem de qualquer dado em formato binário. O significado do parâmetro tamanho depende da implementação do banco, podendo ser medido em Kb, Mb ou até Gb. |
char | [(tamanho)] | Usado na representação de seqüências de caracteres de tamanho fixo. Tenha cuidado com o parâmetro tamanho – para maior portabilidade, evite comprimentos superiores a 1000 caracteres. |
varchar | [(tamanho)] | Usado na representação de seqüências de caracteres de tamanho variável (geralmente com tamanho até 4 Kb). |
clob | [(tamanho)] |
Semelhante ao tipo blob só que aplicado a caracteres (geralmente para textos maiores que 4 Kb). |
date | - | Um valor de data no formato YYYY-MM-DD. A faixa de valores para o ano pode variar de 1 a 9999). |
time | [(precisão)] | Um valor de hora no formato hh:mm:ss.nnn. O parâmetro precisão indica as frações de segundo representadas, e é dependente da implementação (geralmente variando entre 0 e 6). |
timestamp | [(precisão)] | Data e hora no formato YYYY-MM-DD hh:mm:ss.nnn. O parâmetro precisão indica as frações de segundo representadas, e é dependente da implementação (geralmente variando entre 0 e 6). |
boolean | - | Valor lógico booleano (verdadeiro/falso). |
Restrições de Integridade
Chave Primária
Utilizar o prefixo pk seguido do nome da entidade:
pk_servidor
Chave Alternativa
Utilizar o prefixo ak seguido do nome da entidade e do nome do(s) campo(s) que a compõem:
ak_servidor_nome
Chave Estrangeira
Utilizar o prefixo fk seguido do nome da entidade que possui a chave estrangeira e do nome da entidade à qual a chave faz referência:
fk_servidor_lotacao
Índice
Para índices utilizar o prefixo i(01-99) seguido do nome da entidade.
i01_processo
i02_processo
.
.
.
i99_processo
Sequência
Utilizar o prefixo seq seguido do nome do objeto ao qual a seqüência atende:
seq_dependente
seq_registro
Observação: O uso deste recurso, bem como de campos do tipo auto-incremento, não é recomendado pois afeta negativamente a portabilidade do sistema.
Aconselha-se a criação de uma tabela auxiliar para geração de seqüências, com estrutura
igual a descrita abaixo:
CREATE TABLE infra_sequencia (
nome_tabela varchar(30) NOT NULL,
qtd_incremento integer NOT NULL,
num_atual integer NOT NULL,
num_maximo integer NOT NULL,
CONSTRAINT pk_infra_sequencia PRIMARY KEY (nome_tabela) );
Stored Procedures
Utilizar o prefixo sp seguido por uma descrição do que a stored procedure faz
sp_gera_fonetica_nome_parte
Observação: O uso deste recurso não é recomendado pois afeta negativamente a portabilidade do sistema.
Triggers
Utilizar os prefixos ti (insert) tu (update) ou td (delete) seguido do nome da tabela:
ti_requisicao_pagamento
tu_requisicao_pagamento
td_requisicao_pagamento
Para cada trigger deve existir uma stored procedure associada que recebe como parâmetro
os campos da tabela que necessitam validação ou atualização:
sp_ti_requisicao_pagamento
sp_tu_requisicao_pagamento
sp_td_requisicao_pagamento
Observação: O uso deste recurso não é recomendado pois afeta negativamente a portabilidade do sistema.
Rules
axasUtilizar os prefixos rs (select), ri (insert), ru (update) ou rd (delete) seguido do nome da
tabela:
rs_processo
ri_processo
ru_processo
rd_processo
Para cada rule, se existir uma stored procedure associada utilizar:
Observação: O uso deste recurso não é recomendado pois afeta negativamente a
portabilidade do sistema.
Nomenclatura Geral
Regras de nomenclatura aplicáveis a todos os elementos (tabelas, colunas, índices, etc) do
modelo de dados:
• usar somente letras, números e o caracter sublinhado;
• limitar o tamanho ao máximo de 30 caracteres;
• utilizar apenas letras minúsculas;
• palavras internas devem ser separadas pelo caractere sublinhado;
• suprimir as preposições;
• utilizar apenas palavras no singular.
Tabelas
• Não utilizar verbos para designar nomes de tabelas, priorizar o uso de substantivos:
processo
espelho_pauta
• Para tabelas que implementam relacionamentos (n x n) utilizar o prefixo rel seguido dos nomes das tabelas envolvidas separados por sublinhado:
rel_processo_parte
Se o relacionamento expressar um conceito forte do sistema então o nome deste conceito pode ser utilizado:
administrador_sistema (e não rel_usuario_sistema)
• Tabelas que representam conjuntos de valores relacionados a uma determinada entidade, devem conter um prefixo indicativo do tipo do conjunto seguido do nome da entidade:
tipo_dependente
grau_dependente
Colunas
Para chaves primárias seqüenciais utilizar o prefixo id seguido do nome da tabela:
id_pedido
Para chaves primárias naturais (simples ou compostas) utilizar o prefixo id, o nome da tabela e o nome da coluna:
(chave simples)
id_servidor_cpf
(chave composta)
id_pedido_codigo
id_pedido_data
Para chaves primárias que fazem uso de chaves estrangeiras, manter a nomenclatura da chave estrangeira igual a da chave primária de origem. Aconselha-se que as chaves estrangeiras sejam posicionadas antes dos demais campos que compõem a chave primária, isto permite uma melhor identificação visual das chaves estrangeiras que compõem uma chave primária. Chave primária da tabela dependente:
id_servidor
id_dependente
.
.
.
Chave primária da tabela tarefa (dependente de processo e atividade):
id_processo
id_atividade
id_tarefa
.
.
.
Chaves primárias cujo conteúdo é numérico devem possuir um tipo de dado numérico e sem decimais.
Os nomes das chaves estrangeiras devem ser iguais ao nome da chave primária de origem.
Prefixos recomendados:
sin_ campo sinalizador que aceita apenas os valores S ou N
sta_ status multi-valorado. Ex.: S=Servidor, M=Magistrado, T=todos
dta_ data
dth_ data/hora
din_ dinheiro
Para exclusão lógica utilizar o nome de campo:
sin_ativo
Tipo de Dado
Quanto ao tipo de dado usado na representação, aconselha-se, para maior portabilidade, a escolha de um dos tipos principais definidos pelo padrão SQL-99 (ou SQL3):
Tipo | Parâmetro | Significado |
integer | - | Números inteiros com sinal, o número de bits utilizado na representação é dependente da implementação (geralmente 32 bits). |
smallint | - | Números inteiros pequenos com sinal, o número de bits utilizado na representação é dependente da implementação (geralmente 16 bits). |
numeric | [(precisão [,decimais])] |
Números decimais com precisão fixa. Ao criar uma coluna do tipo numeric é necessário especificar o comprimento total do número e o número de casas decimais. Este tipo é recomendado para representação de moedas. Muitos bancos de dados possuem um tipo money (não padronizado) que, na maioria das vezes, é um campo numeric com precisão e decimais específicos. |
decimal | [(precisão [,decimais])] |
Semelhante ao numeric, entretanto deve possuir uma precisão maior permitindo mais casas decimais. |
float | [(precisão)] | Números com precisão única em ponto flutuante. A faixa de valores e a precisão da representação dependem da implementação. |
double | - | Números com precisão dupla em ponto flutuante. A faixa de valores e a precisão da representação dependem da implementação, mas é sempre igual ou melhor do que o tipo float. |
blob | [(tamanho)] | Usado para armazenagem de qualquer dado em formato binário. O significado do parâmetro tamanho depende da implementação do banco, podendo ser medido em Kb, Mb ou até Gb. |
char | [(tamanho)] | Usado na representação de seqüências de caracteres de tamanho fixo. Tenha cuidado com o parâmetro tamanho – para maior portabilidade, evite comprimentos superiores a 1000 caracteres. |
varchar | [(tamanho)] | Usado na representação de seqüências de caracteres de tamanho variável (geralmente com tamanho até 4 Kb). |
clob | [(tamanho)] |
Semelhante ao tipo blob só que aplicado a caracteres (geralmente para textos maiores que 4 Kb). |
date | - | Um valor de data no formato YYYY-MM-DD. A faixa de valores para o ano pode variar de 1 a 9999). |
time | [(precisão)] | Um valor de hora no formato hh:mm:ss.nnn. O parâmetro precisão indica as frações de segundo representadas, e é dependente da implementação (geralmente variando entre 0 e 6). |
timestamp | [(precisão)] | Data e hora no formato YYYY-MM-DD hh:mm:ss.nnn. O parâmetro precisão indica as frações de segundo representadas, e é dependente da implementação (geralmente variando entre 0 e 6). |
boolean | - | Valor lógico booleano (verdadeiro/falso). |
Restrições de Integridade
Chave Primária
Utilizar o prefixo pk seguido do nome da entidade:
pk_servidor
Chave Alternativa
Utilizar o prefixo ak seguido do nome da entidade e do nome do(s) campo(s) que a compõem:
ak_servidor_nome
Chave Estrangeira
Utilizar o prefixo fk seguido do nome da entidade que possui a chave estrangeira e do nome da entidade à qual a chave faz referência:
fk_servidor_lotacao
Índice
Para índices utilizar o prefixo i(01-99) seguido do nome da entidade.
i01_processo
i02_processo
.
.
.
i99_processo
Sequência
Utilizar o prefixo seq seguido do nome do objeto ao qual a seqüência atende:
seq_dependente
seq_registro
Observação: O uso deste recurso, bem como de campos do tipo auto-incremento, não é recomendado pois afeta negativamente a portabilidade do sistema.
Aconselha-se a criação de uma tabela auxiliar para geração de seqüências, com estrutura
igual a descrita abaixo:
CREATE TABLE infra_sequencia (
nome_tabela varchar(30) NOT NULL,
qtd_incremento integer NOT NULL,
num_atual integer NOT NULL,
num_maximo integer NOT NULL,
CONSTRAINT pk_infra_sequencia PRIMARY KEY (nome_tabela) );
Stored Procedures
Utilizar o prefixo sp seguido por uma descrição do que a stored procedure faz
sp_gera_fonetica_nome_parte
Observação: O uso deste recurso não é recomendado pois afeta negativamente a portabilidade do sistema.
Triggers
Utilizar os prefixos ti (insert) tu (update) ou td (delete) seguido do nome da tabela:
ti_requisicao_pagamento
tu_requisicao_pagamento
td_requisicao_pagamento
Para cada trigger deve existir uma stored procedure associada que recebe como parâmetro
os campos da tabela que necessitam validação ou atualização:
sp_ti_requisicao_pagamento
sp_tu_requisicao_pagamento
sp_td_requisicao_pagamento
Observação: O uso deste recurso não é recomendado pois afeta negativamente a portabilidade do sistema.
Rules
Utilizar os prefixos rs (select), ri (insert), ru (update) ou rd (delete) seguido do nome da tabela:
rs_processo
ri_processo
ru_processo
rd_processo
Para cada rule, se existir uma stored procedure associada utilizar:
sp_rs_processo
sp_ri_processo
sp_ru_processo
sp_rd_processo
Observação: O uso deste recurso não é recomendado pois afeta negativamente a portabilidade do sistema.
ri_processo
ru_processo
rd_processo
Para cada rule, se existir uma stored procedure associada utilizar:
Observação: O uso deste recurso não é recomendado pois afeta negativamente a
portabilidade do sistema.