Pular para conteúdo

Padrões e Normas

MANUAL DE PADRÕES E NORMAS PARA ADMINISTRAÇÃO DE DADOS


Versão beta 0.3


01. INTRODUÇÃO

A administração de dados (AD) tem como foco principal padronizar as nomenclaturas de objetos em banco de dados para garantir transparência e uniformidade na evolução do legado. Isso significa que novos objetos criados devem seguir os padrões estabelecidos no Manual de Padrões e Normas para Administração de Dados, a fim de garantir a integridade das informações e facilitar a manutenção dos objetos existentes. A uniformização também reduz a complexidade dos sistemas e mitigam riscos de desentendimento entre os envolvidos no processo de desenvolvimento de novas aplicações.


02. OBJETIVO

O objetivo deste documento é estabelecer regras de nomenclatura para criar objetos em um banco de dados, de modo, a padronizar a criação de objetos e seus atributos para todas as áreas e clientes, facilitando atividades como organização e manutenção futura das estruturas de dados. Os objetos incluem tabelas, colunas, procedimentos armazenados, gatilhos, funções, entre outros, que armazenam dados alfanuméricos ou espaciais.


03. MODELAGEM

Modelar implica em construir modelos de dados com os seguintes objetivos: - Representar o ambiente observado; - Documentar e normalizar; - Fornecer processos de validação; - Observar processos de relacionamentos entre objetos.

Abaixo estão apresentados os principais objetos de banco de dados:


03.1. Entidade

Uma entidade pode ser definida como qualquer coisa do mundo real, abstrata ou concreta, na qual se deseja guardar informações (Tabela, File, etc.). Exemplos: Item, produto, nota fiscal, Contrato, Vendas, etc.


03.2. Atributo

Um atributo é tudo o que se pode relacionar como propriedade da entidade (coluna, campo, etc.). Exemplos: nome, cpf, descrição, etc.

  • Atributo obrigatório - É aquele que para uma instância da entidade ou relacionamento deve possuir um valor. (NOT NULL)
  • Atributo opcional - É aquele que para uma instância da entidade ou do relacionamento pode possuir um valor. (NULL)

03.3. Relacionamento

Ao criar modelos geralmente temos diversas entidades cada uma com diversos atributos que podem se relacionar entre si. Um relacionamento pode ser entendido como uma associação entre instâncias de Entidades devido a regras de negócio. Normalmente ocorre entre instâncias de duas ou mais Entidades, podendo ocorrer entre instâncias da mesma Entidade (auto relacionamento).


03.4. Cardinalidade

A Cardinalidade indica quantas ocorrências de uma Entidade participam no mínimo e no máximo do relacionamento.

  • Cardinalidade Mínima - Define se o relacionamento entre duas entidades é obrigatório ou não.
  • Cardinalidade Máxima - Define a quantidade máxima de ocorrências da Entidade que pode participar do Relacionamento (Deve ser maior que zero).

Cardinalidade quanto ao relacionamento:

  • Cardinalidade UM para UM - Temos o lado opcional e o lado obrigatório. A chave primária se desloca em direção ao lado opcional.
  • Cardinalidade UM para N - Leva a chave primária do lado UM para o lado N. Neste caso o atributo recebe o nome de chave estrangeira.
  • Cardinalidade N para N - Leva para o modelo lógico a necessidade de definição de mais uma entidade. (Associativa).

03.5. Chave

Os tipos de chave são classificados da seguinte forma:


03.5.1. Chave Primária

Atributo capaz de identificar exclusivamente cada ocorrência de uma entidade. Também conhecido como Primary Key (PK). Exemplos: Código do Cliente, Código do Produto etc.

Características de uma Chave Primária:

  • Não pode haver duas ocorrências de uma mesma entidade com o mesmo conteúdo na Chave Primária;
  • A chave primária não pode ser composta por atributo opcional (nulo);
  • Cada atributo identificador da chave deve possuir um tamanho reduzido;
  • Não deve conter informação volátil.

03.5.2. Chave Estrangeira

Uma chave estrangeira é um campo que aponta para a chave primária de outra tabela ou da mesma tabela. Também conhecido como Foreign Key (FK). Esse tipo de atributo não permite exclusão, modificação e/ou inserção de dados em tabelas que estejam dependentes umas das outras, o que requer modificadores especiais, como cascade, por exemplo.


03.5.3. Chave Única

Esta chave é definida pela Constraint única, garantindo que um atributo ou um conjunto de atributos não possam ser duplicados na mesma tabela.

Podemos considerar que uma chave primaria é um tipo de constraint única. Lembrando que uma tabela pode ter apenas uma chave primária, porém diversas constraints únicas.


03.6. Restrições (Constraint)

A constraint de validação determina um conjunto de valores permitidos para uma determinada coluna na tabela. Essas constraints são definidas explicitamente no DDL (data definition language) de uma tabela com expressões Booleanas similares a cláusula WHERE do SQL. Constraint de validação é forçada em qualquer inserção ou atualização da coluna. Caso a inserção ou atualização da coluna não esteja de acordo com a definição da constraint, a mesma não será executada.


03.7. Normalização

Normalização é o conjunto de regras que visa minimizar as anomalias de modificação dos dados e dar maior flexibilidade em sua utilização. Para normalizar uma determinada entidade precisamos aplicar as formas normais, a saber:


03.7.1. Primeira Forma Normal

Se todos os domínios básicos contiverem somente valores atômicos (não contiver grupos repetitivos). Para atingir esta forma normal devemos eliminar os grupos de repetição. A chave primária da nova entidade será obtida pela concatenação da chave primária da entidade inicial e a do grupo repetitivo.


03.7.2. Segunda Forma Normal

Se , somente se, ela estiver na primeira e todos os atributos não chave forem totalmente dependentes da chave primária (dependente de toda a chave e não apenas de parte dela). A chave primária da nova entidade será o atributo do qual os atributos removidos são funcionalmente dependentes.


03.7.3. Terceira Forma Normal

Se somente estiver na segunda e todos os atributos não chave forem dependentes não transitivos da chave primária (cada atributo for funcionalmente dependente apenas dos atributos componentes da chave primária ou se todos os seus atributos não chave forem independentes entre si). A chave primária da nova entidade será o atributo do qual os atributos removidos são funcionalmente dependentes


4. CONVENÇÃO BÁSICA PARA NOMENCLATURA DE OBJETOS DE BANCOS DE DADOS

Os objetos de banco de dados devem obedecer aos seguintes critérios básicos no que diz respeito à nomeação de objetos:

  • É obrigatório o uso de caracteres alfanuméricos apenas;
  • É obrigatório o uso de letras SOMENTE maiúsculas, devendo estabelecer qual deles será utilizado e manter em todas as desdobras de atividades;
  • Para determinado nome que é composto por mais de uma palavra, é obrigatório utilizar o caractere underscore (“_”), separador universal, como separador entre cada palavra;
  • É obrigatório o uso de palavras no singular, sendo, substantivos e adjetivos.
  • Não uso de acentuação gráfica e nem de caracteres especiais (tais como @, #, $, %, &, etc.);
  • Não utilize preposições, artigos, conectivos (o, a, de...) etc;
  • O uso de acrônimos e/ou abreviações e/ou siglas é permitido e aconselhado;
  • Os acrônimos devem seguir a convenção nacional, como por exemplo, CEP, CPF, etc;
  • As abreviaturas podem ser criadas por meio de aplicativos, softwares ou páginas geradoras de acrônimos, tal como: https://michaelis.uol.com.br/moderno-portugues/como-consultar/abreviaturas/ ⧉.
  • Arquivos de cargas temporárias, mas com tabela física, deve ser utilizado com o prefixo e caractere underscore (“TT_”). No caso será subentendido que essa tabela não será uitilizada por processos relacionais e que será/deverá ser excluída em breve, assim que os dados forem portados à estrutura de destino.

4.1 Nomenclatura de objeto de banco de dados

Abaixo estão apresentados tópicos referentes aos padrões de nomenclatura de objetos de banco de dados.


4.1.1 Prefixos e Sufixo de tipos de objetos

O prefixo e o sufixo tem o propósito de classificar os objetos em grupos conforme a categoria desses. Portanto, todos os objetos são identificados por intermédio de uma sigla (prefixo/sufixo) que indicará o tipo de objeto, conforme informado na tabela de especificação de nomenclatura de objetos de banco de dados (Tabela 1). Desta forma, os objetos criados possuirão uma sigla com o propósito de classifica- los conforme a sua natureza de objeto. Utilize o seguinte formato para nomenclatura de nomes de objetos: Formação 1: [prefixo de tipo de objeto] ++ [substantivo com valor semântico] Ex: tb_municipio Formação 2: [prefixo de tipo de objeto] ++ [substantivo com valor semântico] +_+ [sufixo com sequencia numérica cardinal] ou [sufixo de tipo de objeto]

Ex: ixperf_responsavel_legal_01, tb_responsavel_legal_seq, tb_responsavel_legal_temp


4.1.1.1 Regras específicas de formação de nomenclatura dos objetos

Além da convenção básica (ver tópico 4) para nomenclatura de objetos, as regras abaixo devem ser seguidas:

  • É obrigatório o uso do prefixo ou sufixo de tipo de objeto na formação do nome do objeto;
  • Números também podem ser utilizados, desde que não iniciem a denominação (também chamado “complemento denominativo sequencial”) do objeto;
  • Evite nomes extensos, utilizando, na medida do possível, trinta caracteres, contudo, verifique atentamente se as abreviações não resultarão em interpretações dúbias quanto ao valor semântico do objeto dentro do sistema;
  • Abrevie o nome do objeto, caso necessário, conservando a facilidade de identificação de seu conteúdo; Exemplo: ao invés de vegetal.tb_divisao_agropecuaria prefira utilizar vegetal.tb_agropecuaria.
  • Agrupe por negócio criando esquemas: Exemplo: rh.tb_pessoa, diaria.tb_solicitacao.

Tabela1_banco_MITH Tabela2_banco_MITH Tabela3_banco_MITH


4.1.2. Regras específicas para nomenclatura de tabelas

Além da convenção básica para nomenclatura de objetos de banco de dados (ver tópico 3), as regras abaixo devem ser seguidas: - Os nomes de tabelas devem ser alusivos aos dados que serão armazenados, - O substantivo utilizado na nomenclatura deverá possuir valor semântico; Ex: tb_guia_transito_animal - Recomenda-se que a tabela tenha um acrônimo que será usado em scripts - views, procedures – para redução de tamanho; Ex: gta

SELECT gta.* FROM gta.tb_guia_transito_animal AS gta WHERE ...


4.1.3. Regras específicas para nomenclatura de atributos (campos) de tabelas

Em geral, as inserções de atributos (campos) utilizará as seguintes regras para nomenclatura de atributos: É obrigatório o uso da sigla identificadora (Tabela 2 Tabela de especificação de nomenclatura de atributos do tipo Constraints) como prefixo na formação do nome do atributo; Formação 1: [sigla identificadora ] +_+ [complemento/finalidade]

  • atributo Nome requisitante = nm_requisitante

4.1.3.1. Regras específicas para atributos do tipo Constraints

Além da convenção básica para nomenclatura de objetos de banco de dados (ver tópico 3) e das siglas identificadoras de tipos de atributos (ver Anexo 1) as inserções de Constraints utilizarão as seguintes regras para nomenclatura de atributos:

  • Toda chave estrángeira deverá conter um índice para cobertura de acesso Vide: Tabela 1 Tabela de especificação de nomenclatura de objetos de banco de dados

  • Não compor chave primária utilizando colunas string/texto

  • Adotar uma única coluna numérica sequencial própria ou herdada
  • As chaves primarias deverão ser compostas pelo nome da entidade que contém a chave primaria da seguinte forma:
  • As chaves estrangeiras sempre deverão ser compostas da seguinte forma:

A tabela a seguir estabelece as Constraints que deverão receber o sufixo na composição do nome do atributo:

Tabela4_banco_MITH


4.2 Siglas de tipos de atributo

As siglas de tipos de atributo auxiliam na organização e na rápida identificação da natureza ou categoria dos atributos. A organização (ou facilidade de interpretação do atributo) dá-se pela uniformização do tipo de um atributo, conforme dois exemplos abaixo: “nm” – nome, utilizado para qualquer tipo de atributo que se encaixe na categoria de “atributo de nomeação”: nm_pessoa; “dt” – data, para atributos de datas sem hora, não específicas: dt_vencimento;


4.3 Siglas identificadoras de tipo padrão de atributo

As siglas identificadoras de tipo de atributo devem, obrigatoriamente, ser uma das relacionadas no Anexo 1. A lista pode ser expandida conforme necessidade, desde que a sugestão de novo tipo de atributo seja aprovada e formalizada para os gestores e equipe.


5. RELATÓRIO DE CLASSES DE OBJETOS – RCO

O Relatório de Classes de Objetos – RCO tem por finalidade explicar as nomenclaturas das classes e suas descrições (dicionário de dados), atributos, tipos de dados que definirão os tipos de informações que podem ser inseridas em um determinado campo (int, double, char, varchar, bit, date e boolean. etc), tipo de geometria adotado para representar a classe de objeto e elementos herdados de outras classes. Desta forma, todas as tabelas criadas terão um RCO correspondente às classes criadas da seguinte forma:

Tabela5_banco_MITH


5.1 Listas de domínios das classes de objetos

O domínio enumera um conjunto de valores que possuem determinadas propriedades em comum. A lista de domínio das classes de objetos tem por objetivo identificar e descrever os conjuntos de domínios utilizados, assim sendo, a lista de domínio irá se referir ao conjunto de todos os valores possíveis para um determinado atributo.

Normalmente usado para preencher combos de opções, listas de até 7 registros, ou pouco mais.

Tabela: Tipo de Dominio
Valor Nome (único) Descrição
1 STATUS Possibilidades de Status
2 SEXO Gênero de Nascimento
Tabela: Tipo de Dominio
Valor Tipo Domínio Nome (único) Descrição
101 1 STATUS_ATIVO Status de registro Ativo
102 1 STATUS_INATIVO Status de registro Inativo
103 1 STATUS_CANCELADO Status de registro Cancelado
201 2 SEXO_MASCULINO Sexo Masculino
202 2 SEXO_FEMININO Sexo Feminino

Anexo 1 Lista de siglas identificadoras de tipo padrão de atributos

No quadro a seguir, é apresentado o padrão de nomenclatura de colunas de tabelas de banco de dados, obrigatoriamente, deve ser um dos relacionados na da tabela abaixo:

RELAÇÃO DAS SIGLAS IDENTIFICADORAS DE TIPOS DE ATRIBUTO- DOMÍNIOS: FÍSICO E SEMÂNTICO
Sigla Descrição Utilização recomendada
id Identificador / Identifier Restrito ao campo de autonumeração / sequence ou campo com função semelhante
nm Nome Representar designição p/ pessoa ou objeto de negócio, com valos significativo no sitema
sg Sigla Indicativo de conteúdo mnemônico que representa abreviação relacionada, normalmente, a uma descrição
tp Tipo Itens específicos, não necessariamente tabulados em domínios, tais como operação, aplicação, uso, categoria
vl Valor Valor monetário ou relacionado, mesmo que sem casasdecimais
nu Número Itens numéricos de qualquer tipo: int, float, long
dt Data Atributo de data que armazena apenas a data sem hora. (DD/MM/AA) , sempre que possível, utilize tipo date
dh Datetime Data/hora universal. Data e hora completa. Considerar que no cloud é necessário levar em consideração o UTC.
dd Dia Atributo de data cuja parte significativa é o dia, pode sertipo texto no formato DD
aa Ano Atributo de data cuja parte significativa é o ano, pode ser tipo texto no formato AAAA
hh Hora Atributo cuja parte significativa a hora, pode ser tipo texto no formato 00:00:00
im Imagem Figuras, croquis, fotos
cd Código Chaves secundárias ou campos de chaves candidata. Sempre que possível, utilize tipo numérico ou char para este tipo de atributo. Também podendo representar identificador de tabela legado / exportado em sistemas parelelos on antecessores.
ds Descrição Exposição genérica que caracteriza item ou campo relacionado.
end Endereço Endereço ou Logradouro
qt Quantidade Quantitativos diversos, independente dos tipos
ar Área Indica o valor de uma área
pm Perimetro Indica o valor do perímetro cat Categoria Indica a categoria a qual pertence um objeto, elemento, unidade, entidade, indivíduo
gp Grupo Indica o grupo a qual pertence um objeto, elemento, unidade, entidade, indivíduo
cl Classe Indica a classe a qual pertence um objeto, elemento, unidade, entidade, indivíduo
flag Sim/não (bit) Quando apenas pode ser sim ou não em determinada situação. Usar bit(1), 0 para não e 1 para sim.
cs Classificador Classifica possibilidades que indicam uma condição ou circunstância, não necessariamente tabulada em domínio. Usado para multiplas opções, tipo cs_situacao [RA: Rascunho, EA: Em Ateste, AT: Atestada, RE: Reprovada, UT: Utilizada, RM: Removida], em detrimento ao uso de domínio.
coordx/coordy Coordenada Informação de uma coordenada do Sistema de coordenadas X/Y ou UTM , sendo X coordenada Este e Y coordenada Norte.
geom Geometria Caracteriza toda informação relacionada à geometria dos elementos do objeto geoespacial.
proc Processo Indica o número do processo ao qual pertence um objeto, elemento, unidade, entidade, indivíduo
zon Zoneamento Indica o nome da divisão de uma área, em unidades individualizadas, segundo suas características específicas (de ordem ecológica, econômica, política, social etc.)
m2 Metro Quadrado Indica a unidade padrão de área adaptada para o Sistema Internacional de Unidades, e derivada da unidade básica metro.
ha Hectares Indica uma unidade de medida de área equivalente a 100 (cem) ares ou a 10.000 (dez mil) metros quadrados.

6. Referências Bibliográficas

Referências utilizadas para a elaboração deste processo.

1. ANAC\ - Agência Nacional de Águas Superintendência de Gestão da Informação. Regras e Padrões para Nomenclatura de Objetos Versão 2.04. 2009.\ 2. IBRAM\ - Instituto Brasília Ambvienta. MANUAL DE PADRÕES E NORMAS PARA ADMINISTRAÇÃO DE DADOS Versão 2.00. 2017.\