1. Os nomes de atributos/colunas devem ser atribuídos de forma a caracterizar a individualidade do dado no contexto do CNJ e não apenas no ambiente da aplicação. 

2. Todos os nomes utilizados devem obedecer a uma estrutura composta de dois elementos básicos:

  • Classe do dado;
  • Objeto(s), com ou sem qualificador(es). O qualificador poderá ser posicionado imediatamente após a classe do dado ou após o objeto, objetivando o melhor significado do dado.

3. Na definição dos elementos básicos constituintes dos nomes de atributos/colunas devem ser consideradas as observações da Tabela 1. Exemplos de nomes de atributos/colunas podem ser vistos na Tabela 2 .

4. Na composição do nome de atributo/coluna deve ser utilizada somente a abreviatura de sua classe obtida do Glossário de Classes (vide Tabela 3). Os tipos de dados da Tabela 3 servem como referência, devendo ser adequados ao caso específico quando não forem coerentes com os dados que serão armazenados.

5. Quando da criação de um nome de atributo/coluna, devem ser evitadas as seguintes anomalias:

  • nomes distintos para dados iguais;
  • nomes iguais para dados distintos;
  • nomes que não retratam o significado do dado;
  • nomes demasiadamente longos ou curtos;
  • abreviaturas fora de critérios estabelecidos nesta norma.

6. Caso haja mais de 30 caracteres, devem ser seguidos os critérios de abreviação definidos no item Regras específicas para criação de nomes.

7. Em modelos multidimensionais, para a composição de nomes de atributos/colunas que sejam provenientes do operacional, desde que sejam redundantes e somente em tabelas fato, deve ser incluída como infixo a sigla nat logo após a sigla que identifica a classe do dado.

Exemplo:

NUM_NAT_PROTOCOLO

8. As tabelas consideradas críticas (ou seja, àquelas que, de acordo com as características da aplicação e necessidades do usuário demandante são consideradas críticas e necessitam ser auditadas) devem incluir colunas de auditoria com os nomes e tipos de dados especificados na Tabela 4.

9. Em modelos multidimensionais, as tabelas de dimensão consideradas críticas (ou seja, àquelas que, de acordo com as características da aplicação e necessidades do usuário demandante são consideradas críticas e necessitam ser auditadas) devem conter colunas de auditoria adicionais, com os seguintes nomes e tipos de dados especificados na Tabela 5.

Tabela 1

Tabela 1 - Elementos básicos para composição de nomes de atributos.

Classe do dado

Identifica a natureza do dado. Deve ser obrigatoriamente a primeira palavra na estrutura e constar no Glossário de Classe (vide Tabela 3 ). A classe deve ser única no nome do atributo/campo, isto é, não poderá haver nome de atributo/campo iniciado com duas classes. Exemplos de classes: código, número, data, valor, nome, etc.

Objeto

Retrata a entidade, o relacionamento, o arquivo ou o registro, ao qual o dado pertence. Na estrutura do nome de atributo/coluna, sua existência é obrigatória e pode ocorrer mais de uma vez. Quando necessário, para atender ao limite de tamanho do nome (máximo de 30 caracteres), o(os) objeto(s) poderá(ão) ser abreviado(s), tomando-se o devido cuidado com a perda de significado. Exemplo de objetos: servidor, processo, ministro, departamento.

Qualificador

Detalha e completa o significado do dado, caracterizando, seja a classe, seja(m) o(s) objeto(s) que compõem um nome de atributo/campo. Quando se refere a um objeto, o qualificador geralmente é identificado como um atributo de uma entidade ou de um relacionamento entre entidades. Haverá situações em que somente um qualificador é suficiente para individualizar um dado, assim como haverá casos em que o qualificador é dispensável. Exemplos de qualificadores: atual, inicial, final, parcial, último, primeiro, etc.

Tabela 2

Tabela 2 – Exemplos de nomes de atributos/campos.

Nome do dado

Classe do dado

Objeto

Qualificador

NUM_PROCESSO_VINCULADOR

NUM

PROCESSO

VINCULADOR

FLG_JUSTICA_GRATUITA

FLG

JUSTICA_GRATUITA

-

DAT_ULT_JULGAMENTO

DAT

JULGAMENTO

ULTIMO

Tabela 3

Tabela 3 – Glossário de Classes.

Classe

Abrev.

Tipo de dado

Utilização/Exemplos

Arquivos e documentos binários

Campo longo binário

BIN

MySQL: BLOB

Oracle: BLOB

PostgreSQL: BYTEA

Para dados binários longos de até 4 gigabytes.

Exemplos:

BIN_ASSINATURA_DIGITAL

BIM_ARQUIVO_ELETRONICO

Imagem

IMG

MySQL: LONGBLOB

Oracle: BLOB

PostgreSQL: BYTEA

Para dados que armazenam imagens.

Exemplos:

IMG_FOTOGRAFIA_MINISTRO

IMG_PRODUTO

Dados textuais ou cadeias de caracteres

Campo longo textual

DOC

MySQL: LONGTEXT

Oracle: CLOB

PostgreSQL: TEXT

MySQL: para dados textuais longos.

Oracle: para dados textuais longos de até 4 gigabytes.

Exemplos:

DOC_ATA_DISTRIBUICAO

DOC_DECISAO

Código

COD

MySQL: VARCHAR(X)

Oracle: VARCHAR2(X)

PostgreSQL: CHARACTER VARYING(X)

Para conjuntos de símbolos alfanuméricos organizados intencionalmente de modo a denotar objetos. Veja também a utilização/exemplo da classe de dado sigla.

Exemplos:

COD_TIPO_JULGAMENTO

COD_SETOR

COD_CPF

COD_CEP

Descrição

DSC

MySQL: VARCHAR(X)

Oracle: VARCHAR2(X)

PostgreSQL: CHARACTER VARYING(X)

Para dados descritivos de objetos ou situações.

Exemplos:

DSC_CLASSE

DSC_CATEGORIA_PROCESSO

Nome

NOM

MySQL: VARCHAR(X)

Oracle: VARCHAR2(X)

PostgreSQL: CHARACTER VARYING(X)

Para palavra ou expressão que designa, por extenso ou abreviadamente, um objeto concreto ou abstrato.

Exemplos:

NOM_PESSOA

NOM_MAE

Sigla

SIG

MySQL: VARCHAR(X)

Oracle: VARCHAR2(X)

PostgreSQL: CHARACTER VARYING(X)

Para classificar um modo particular de código. Distingue-se dos outros tipos de código pelo fato de ser formada por um processo de redução de palavras ou expressões.

Exemplos:

SIG_CLASSE

SIG_USUARIO

Texto

TXT

MySQL: TEXT(X) ou LONGTEXT

Oracle: VARCHAR2(X)

PostgreSQL: TEXT

Para dados textuais diversos que não se enquadrem em outras categorias.

Obs.: classes textuais mais específicas como NOM , DSC e DOC devem ser preferidas, sempre que apropriadas.

Exemplos:

TXT_COMPLEMENTO

TXT_COMENTARIO

TXT_DISPOSITIVO_LEGAL

XML

XML

MySQL: LONGTEXT

Oracle: CLOB(X) ou XMLTYPE

PostgreSQL: XML

Para domínios de dados que irão armazenar documentos XML.

Exemplos:

XML_CONFIGURACAO

XML_CABECALHO

Dados temporais

Hora

HR

MySQL: TIME

Oracle: não tem um tipo de dado somente para hora.

PostgreSQL: TIME

Para dados referentes a data, data com a hora, hora ou somete o ano.

Exemplos:

DAT_INCLUSAO

DAT_ENTRADA_PROTOCOLO

DAT_RECEBIMENTO_DESTINO

HR_INICIO_FUNCIONAMENTO

NUM_ANO_BASE

NUM_MES_BASE

Data e data-hora

DAT

MySQL: DATE ; DATETIME

Oracle: DATE

PostgreSQL: DATE ou TIMESTAMP

Mês

NUM

MySQL: INT(2)

Oracle: NUMBER(2)

PostgreSQL: NUMERIC(2)

Ano

NUM

MySQL: YEAR

Oracle: NUMBER(X)

PostgreSQL: NUMERIC(X)

Dados numéricos

Dígito verificador

DV

MySQL: INT(X)

Oracle: NUMBER(X)

PostgreSQL: NUMERIC(X)

Para dados de controle sobre um dado, utilizados para crítica.

Exemplos:

DV_PROCESSO

DV_AGENCIA_PAGAMENTO

Número

NUM

MySQL: INT(X)

Oracle: NUMBER(X)

PostgreSQL: NUMERIC(X)

Para dado numérico que individualiza ou caracteriza um objeto.

Exemplos:

NUM_TITULO_ELEITOR

NUM_PROCESSO

NUM_PROTOCOLO

Percentual

PERC

MySQL: INT(X[,X])

Oracle: NUMBER(X[,X])

PostgreSQL: NUMERIC(X[,X])

Para dados que expressam uma proporção sob a forma de percentual.

Exemplos:

PERC_MULTA

PERC_ADICIONAL_PAGO

Quantidade

QTD

MySQL: INT(X[,X])

Oracle: NUMBER(X[,X])

PostgreSQL: NUMERIC(X[,X])

Para dados que exprimem uma contagem ou medida quantificadora.

Exemplos:

QTD_JUNTADA_LINHA

QTD_APENSO

QTD_DIA_AUSENCIA

QTD_DIA_FERIAS

Sequencial

SEQ

MySQL: INT(10)

Oracle: NUMBER(10)

PostgreSQL: INTEGER(10)

Para dados numéricos sequenciais que são gerados automaticamente.

Obs.: exclusivamente em modelos multidimensionais deve ser utilizada a sigla ID.

Exemplos:

SEQ_CUSTA_PROCESSUAL

SEQ_AGENDAMENTO_PROCESSO

Valor

VLR

MySQL: DEC(X,Y)

Oracle: NUMBER(X,Y)

PostgreSQL: NUMERIC(X,Y)

Para dados numéricos que expressam quantias em dinheiro.

Exemplos:

VLR_CUSTA_PROCESSUAL

VLR_IMPETRANTE_EXCEDENTE

VLR_DEDUCAO_LEGAL

Alternativas lógicas

Flag

FLG

MySQL: CHAR(1) ou INT(1)

Oracle: VARCHAR2(1) ou NUMBER(1)

PostgreSQL: CHARACTER(1) ou NUMERIC(1) ou BOOLEAN

Para dados que indicam status ou possibilidades lógicas – sim ou não; 0 (falso) ou 1 (verdadeiro).

Obs.: exclusivamente em modelos multidimensionais deve sempre ser utilizado o tipo NUMBER(1) e são admitidos os seguintes valores de domínio: 0 (falso); 1 (verdadeiro); -1 (não-informado); ou -2 (não se aplica).

Exemplos:

FLG_BAIXADO

FLG_ADVOGADO

FLG_ATIVO

Opções de classificação ou tipificação

Tipo

TIP

MySQL: CHAR(X) quando armazenar letras; INT(X) quando armazenar números.

Oracle: VARCHAR2(X) quando armazenar letras; NUMBER(X) quando armazenar números.

PostgreSQL: CHARACTER VARYING(X) quando armazenar letras; NUMERIC(X) quando armazenar números.

Para dados de classificação ou tipificação cujos domínios não possuam uma tabela de relacionamento que contenha suas descrições. A descrição dos domínios deve ser explicitada no comentário do atributo.

Obs.: a utilização de uma tabela é recomendada e deve sempre ser avaliada. Esta classe deve ser usada exclusivamente para domínios de dados estáveis e pouco numerosos.

Exemplos:

TIP_JULGAMENTO

TIP_CONFIDENCIALIDADE

TIP_ENDERECO

Tabela 4

Tabela 4 – Colunas de auditoria.

Nome da coluna

Tipo de dado

Comentário

USU_INCLUSAO

MySQL:VARCHAR(30)

Oracle:VARCHAR2(30)

PostgreSQL:CHARACTER VARYING(X)

Coluna alimentada por uma trigger de auditoria ou por uma função controlada pela própria aplicação com o login do usuário que efetuou a inclusão do registro. Esta coluna é alimentada uma única vez, somente na inclusão do registro.

DAT_INCLUSAO

MySQL: DATETIME

Oracle: DATE

PostgreSQL: DATE

Coluna alimentada por uma trigger de auditoria ou por uma função controlada pela própria aplicação com a data que o registro foi incluído. Esta coluna é alimentada uma única vez na inclusão do registro.

USU_ALTERACAO

MySQL: VARCHAR(30)

Oracle: VARCHAR2(30)

PostgreSQL:CHARACTER VARYING(X)

Coluna alimentada por uma trigger de auditoria ou por uma função controlada pela própria aplicação com o login do usuário que efetuou a alteração do registro. Esta coluna é alimentada todas as vezes que o usuário efetuar uma alteração no registro.

DAT_ALTERACAO

MySQL: DATETIME

Oracle: DATE

PostgreSQL: DATE

Coluna alimentada por uma trigger de auditoria ou por uma função controlada pela própria aplicação com a data que o registro foi alterado. Esta coluna é alimentada toda vez que ocorrer alteração no registro.

Tabela 5

Tabela 5 – Colunas de auditoria adicionais para tabelas de dimensão.

Nome da coluna

Tipo de dado

DAT_MOVIMENTO

MySQL: DATETIME

Oracle: DATE

PostgreSQL: DATE

ID_MOVIMENTO

MySQL: INT(10)

Oracle: NUMBER(10)

PostgreSQL: NUMERIC(10)

FLG_OPERACIONAL_ATIVO

MySQL: INT(1)

Oracle: NUMBER(1)

PostgreSQL: NUMERIC(1)

Marcadores:
Criado por GEOFLAVIA GUILARDUCCI DE ALVARENGA em 16/01/2019, 17:31
    

Tips

You can click on the arrows next to the breadcrumb elements to quickly navigate to sibling and children pages.

Need help?

If you need help with XWiki you can contact: