Mudanças entre as edições de "Padrão de Desenvolvimento - Banco de Dados"

De Redome
Ir para: navegação, pesquisa
m
Linha 1: Linha 1:
 +
[[Padrões de Desenvolvimento|'''Voltar''']]
 +
<br/><br/>
 
Padronização de nomenclatura de estrutura de dados e diretrizes para a criação de qualquer objeto no banco de dados tal como tabelas, colunas, chaves primárias, estrangeiras, índices, dentre outros.  
 
Padronização de nomenclatura de estrutura de dados e diretrizes para a criação de qualquer objeto no banco de dados tal como tabelas, colunas, chaves primárias, estrangeiras, índices, dentre outros.  
 
== NOMENCLATURA ==
 
== NOMENCLATURA ==

Edição das 14h37min de 4 de maio de 2021

Voltar

Padronização de nomenclatura de estrutura de dados e diretrizes para a criação de qualquer objeto no banco de dados tal como tabelas, colunas, chaves primárias, estrangeiras, índices, dentre outros.

NOMENCLATURA

CONSIDERAÇÕES GERAIS

Para a criação de qualquer objeto no banco de dados tenha em mente as seguintes premissas:

  • Escrever em maiúsculo;
  • Separe os nomes com underline;
  • Deve conter até 30 caracteres;
  • Não usar verbos;
  • Não utilizar palavras no plural;
  • Não usar preposições;
  • Não usar acentuação;

Os comentários das tabelas e colunas deverão ser preenchidos.

Exemplos:

COMMENT ON TABLE OWNER.FUNCIONARIO IS ‘Quadro de funcionários da companhia’;

 

COMMENT ON COLUMN OWNER.FUNCIONARIO.FUNC_NR_CPF IS ‘Número de cadastro de pessoa física’;

TABELAS

Visando facilitar a identificação dos objetos associados as tabelas, definiremos um identificador para cada tabela. Este identificador será utilizado na composição dos nomes das colunas, chaves primárias e estrangeiras.

O identificador pode conter até 4 caracteres e deverá ser único em todo o banco de dados. Caso as regras abaixo gerem um identificador que já foi utilizado no banco de dados, escolha outra forma coerente de criá-lo.

Se o nome da tabela possui apenas uma palavra, o identificador será as 4 primeiras letras.

Exemplo:

TABELA PESSOA

IDENTIFICADOR PESS


Se o nome da tabela for composto de duas palavras, o identificador será as duas primeiras letras de cada palavra.

Exemplo:

TABELA PESSOA_CONTATO

IDENTIFICADOR PECO


Se o nome da tabela for composto de três palavras, o identificador será as duas primeiras letras da primeira palavra e a primeira letra das demais palavras.

Exemplo:

TABELA PESSOA_CONTATO_TIPO

IDENTIFICADOR PECT


Se o nome da tabela possui quatro palavras ou mais, o identificador será as duas primeiras letras da primeira palavra e a primeira letra de duas das demais palavras, escolha as duas palavras consideradas mais significativas.

Exemplo:

TABELA MM_CONTRATO_VITALICIO_PLANO

IDENTIFICADOR MMCP

TABELAS TEMPORÁRIAS

As tabelas temporárias deverão ser criadas utilizando o prefixo "TEMP" a fim de facilitar a sua identificação no banco de dados.

VIEWS

As views deverão ser criadas utilizando o prefixo "VW" a fim de facilitar a sua identificação no banco de dados.


COLUNAS

Regras gerais:

  • Utilize um nome que identifique e individualize o dado dentro da tabela;
  • Dê nomes distintos para dados distintos;
  • Se a coluna armazena valores especifico de um domínio, adicione as possibilidades no comentário e se possível defina um valor default;

O nome da coluna deve ser formado do Identificador da tabela + Sigla do tipo de dado + Texto informativo (sempre que necessário).

Para definição da sigla do tipo de dado utilize como referência a tabela abaixo:

SIGLA TIPO DE DADO DESCRIÇÃO
ID NUMBER Coluna que armazenará a chave primária da tabela.

Exemplo chave simples: PESS_ID

No caso de chave composta cujas colunas são provenientes de outras tabelas, as colunas devem permanecer com os mesmos nomes da tabela de origem. Caso contrário, deve ser adicionado um texto informativo.

TX VARCHAR2 Coluna que armazenará um valor com caracteres alfanuméricos.

Exemplos: PESS_TX_NOME, ESTA_TX_SIGLA, PROD_TX_DESCRICAO

IN NUMBER

VARCHAR2

Coluna que armazenará um valor pertencente a um dominio especifico.

Exemplos:

PESS_IN_ATIVA (Valores: 0-Inativo, 1-Ativo)

PESS_IN_SEXO (Valores: F-Feminino, M-Masculino, I-Indefinido)

NR NUMBER Coluna que armazenará valores numéricos inteiros.

Exemplo: PESS_NR_IDENTIDADE

VL NUMBER Coluna que armazenará valores numéricos com possibilidade de casas decimais.

Exemplo: PROD_VL_PRECO

DT DATE

TIMESTAMP

Coluna que armazenará valores do tipo data.

Exemplo: PROD_DT_VENCIMENTO

HR DATE

TIMESTAMP

Coluna que armazenará valores do tipo hora.

Exemplo: AVAL_HR_INICIAL

CONSTRAINTS

CHAVE PRIMÁRIA

A chave primária deve ser criada utilizando o prefixo “PK” + Identificador da tabela. O índice associado a essa chave deverá levar o mesmo nome.

Exemplo:

TABELA PESSOA

COLUNA PESS_ID

CHAVE PRIMÁRIA PK_PESS

ÍNDICE CHAVE PRIMÁRIA PK_PESS


CHAVE ESTRANGEIRA

A chave estrangeira deve ser criada utilizando o prefixo “FK” + Identificador da tabela onde a chave estrageira será criada + Identificador da tabela de origem da chave estrangeira. Sendo que a coluna deve manter o mesmo nome da tabela de origem.

Exemplo:

TABELA PESSOA

COLUNA PESS_ID

TABELA FUNCIONARIO

COLUNA PESS_ID

CHAVE ESTRANGEIRA FK_FUNC_PESS


Se houver múltiplas chaves estrangeiras provenientes de uma mesma tabela, adicione um texto informativo apropriado ao final do nome da coluna e do identificador padrão da chave estrangeira.

Exemplo:

TABELA FUNCIONARIO

FK_FUNC_FUNC_GERENTE

FK_FUNC_FUNC_SUBSTITUTO


Deve ser criado um índice para cada chave estrangeira utilizando o prefixo “IN” + Identificador da chave estrangeira.

Exemplo:

IN_ FK_FUNC_PESS


ÍNDICES

O nome do índice deve ser formado pelo prefixo “IN” + Nome da coluna na tabela + Texto informativo (sempre que necessário). Exceto para chaves estrangeiras e primárias, conforme já definido.


SEQUENCE

O nome da sequence deve começar com o prefixo “SQ” + Nome da coluna na tabela que receberá o valor da sequence;

Exemplo:

TABELA PESSOA

COLUNA PESS_ID

SEQUENCE SQ_ PESS_ID


DIRETRIZES PARA UTILIZAÇÃO

Por questões de segurança a aplicação não irá se conectar ao banco de dados utilizando o usuário owner do schema, mas sim com um usuário exclusivo.

Sugestão:

SCHEMA/OWNER MODRED

USUÁRIO DA APLICAÇÃO MODRED_APLICACAO


PERMISSÃO

Para possibilitar ao usuário da aplicação a consulta e manipulação dos dados, devem ser atribuídas as devidas permissões para cada objeto criado no SCHEMA. Invés de atribuir automaticamente todas as permissões, faça uma análise crítica se cada uma delas realmente faz sentido para o objeto em questão.

Deverão ser criados dois ROLES, conforme explicado abaixo:

RMODRED_READ: todas as permissões de SELECT das tabelas devem ser atribuídas a este role;

RMODRED_WRITE: todas as permissões de INSERT, UPDATE e DELETE das tabelas e de SELECT das sequences devem ser atribuídas a este role;

O usuário da aplicação deve pertencer a ambos.

Exemplos:

GRANT SELECT ON MODRED.NOME_TABELA TO RMODRED_READ;

 

GRANT INSERT, UPDATE, DELETE ON MODRED.NOME_TABELA TO RMODRED_WRITE;

 

GRANT SELECT ON MODRED.NOME_SEQUENCE TO RMODRED_WRITE;

 

SINÔNIMO

Com o objetivo de remover a necessidade de informar o owner, também deverão ser criados sinônimos para os objetos.

Exemplos:

CREATE OR REPLACE SYNONYM MODRED_APLICACAO.NOME_TABELA FOR MODRED.NOME_TABELA;

 

CREATE OR REPLACE SYNONYM MODRED_APLICACAO.NOME_SEQUENCE FOR MODRED. NOME_SEQUENCE;