Mudanças entre as edições de "Padrão de Desenvolvimento - Banco de Dados"
(Criou página com '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, estrangei...') |
|||
(5 revisões intermediárias por 2 usuários não estão sendo mostradas) | |||
Linha 1: | Linha 1: | ||
+ | [[Ambiente Desenvolvedor|'''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. | ||
+ | <br/><br/> | ||
+ | [[Arquivo:IMG_3691.jpg|700px|thumb|nenhum]] | ||
+ | <br/><br/> | ||
== NOMENCLATURA == | == NOMENCLATURA == | ||
Linha 26: | Linha 31: | ||
| COMMENT ON COLUMN OWNER.FUNCIONARIO.FUNC_NR_CPF IS ‘Número de cadastro de pessoa física’; | | COMMENT ON COLUMN OWNER.FUNCIONARIO.FUNC_NR_CPF IS ‘Número de cadastro de pessoa física’; | ||
|} | |} | ||
− | |||
=== TABELAS === | === TABELAS === | ||
Linha 68: | Linha 72: | ||
''IDENTIFICADOR'' MMCP | ''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. | ||
+ | |||
Linha 81: | Linha 92: | ||
Para definição da sigla do tipo de dado utilize como referência a tabela abaixo: | Para definição da sigla do tipo de dado utilize como referência a tabela abaixo: | ||
− | |||
− | |||
{| class="wikitable" style="color:black; background-color:#F7F3F7;" cellpadding="10" | {| class="wikitable" style="color:black; background-color:#F7F3F7;" cellpadding="10" | ||
Linha 128: | Linha 137: | ||
|Coluna que armazenará valores do tipo data. | |Coluna que armazenará valores do tipo data. | ||
Exemplo: PROD_DT_VENCIMENTO | Exemplo: PROD_DT_VENCIMENTO | ||
+ | |- | ||
+ | |HR | ||
+ | |DATE | ||
+ | TIMESTAMP | ||
+ | |Coluna que armazenará valores do tipo hora. | ||
+ | Exemplo: AVAL_HR_INICIAL | ||
|} | |} | ||
− | |||
=== CONSTRAINTS === | === CONSTRAINTS === | ||
Linha 136: | Linha 150: | ||
==== CHAVE PRIMÁRIA ==== | ==== CHAVE PRIMÁRIA ==== | ||
− | A chave primária deve ser criada utilizando o prefixo “PK” + Identificador da tabela. | + | 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:''' | '''Exemplo:''' | ||
Linha 145: | Linha 159: | ||
''CHAVE PRIMÁRIA'' PK_PESS | ''CHAVE PRIMÁRIA'' PK_PESS | ||
+ | |||
+ | ''ÍNDICE CHAVE PRIMÁRIA'' PK_PESS | ||
==== CHAVE ESTRANGEIRA ==== | ==== CHAVE ESTRANGEIRA ==== | ||
− | A chave estrangeira deve ser criada utilizando o prefixo “FK” + Identificador da tabela | + | 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:''' | '''Exemplo:''' | ||
Linha 185: | Linha 201: | ||
=== ÍNDICES === | === Í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 conforme já definido. | + | 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. |
Edição atual tal como às 11h20min de 26 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.
Índice
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; |