Escolar Documentos
Profissional Documentos
Cultura Documentos
i
Padrões para Banco de Dados Relacional
1 - Projeto Conceitual
Determina a implementação das informações no Modelo de Entidade e Relacionamento (MER) ou do
Modelo Dimensional (MD) na ferramenta Oracle Designer.
1.1 Colaboradores:
1.2 Homologação:
1.3.1 Container
Para o nome do container no Oracle Designer deverá ser utilizado o seguinte padrão:
SiglaSistema: Sigla do sistema composta por três letras e deverá ser validada e cadastrada junto a
GIT-SUPBD. O cadastro de siglas é feito na ferramenta WEBTOOLS.
Caso hajam informações relevantes para documentar sobre o container, colocar no campo "Comment".
SiglaSistema_Físico: Conterá o modelo lógico do sistema já contendo os objetos da forma como deverão ser
criados no modelo físico.
OU
SiglaSistema_DW_Físico: Para projetos de BI, conterá o modelo lógico do sistema já contendo os objetos
da forma como deverão ser criados no modelo físico.
Exemplos:
ARR_CONCEITUAL
ARR_DW_CONCEITUAL
MER_Sigla_Sistema_Descritivo
Onde:
SiglaSistema: Sigla do sistema composta por três letras e deverá ser validada e cadastrada junto a
GIT-SUPBD. O cadastro de siglas é feito na ferramenta WEBTOOLS.
Exemplos: MER_CGO_ORGANIZACAO_ADMINISTRATIVA
MER_CGO_PESSOA_JURIDICA
Exemplo: FT_SRH_REMUNERACAO_ORGAO
Para os casos nos quais os diagramas refiram-se exclusivamente à tabelas dimensões, utilizar o nome da
tabela dimensão principal ou final, em uma cadeia de relalcionamentos.
Exemplo: DM_SRH_RUBRICA
DM_NFE_NOTA_FISCAL_ELETRONICA
1.3.3 Entidades:
SiglaSistema_Descritivo
Onde:
SiglaSistema: Sigla do sistema composta por três letras e deverá ser validada e cadastrada junto a
GIT-SUPBD. O cadastro de siglas é feito na ferramenta WEBTOOLS.
Descritivo: Nome no singular que defina com clareza o significado da Entidade. Evitar colocar a
palavra TIPO no nome da entidade. Quando for realmente necessário, não usar nas colunas os
prefixos CODG e NUMR, usar o prefixo TIPO.
* MD - Modelo Dimensional*
SiglaSistema_DM_Descritivo OU SiglaSistema_FT_Descritivo
SiglaSistema: Sigla do sistema composta por três letras e deverá ser validada e cadastrada junto a
GIT-SUPBD. O cadastro de siglas é feito na ferramenta WEBTOOLS.
Descritivo: Nome no singular que defina com clareza o significado da Entidade. Evitar colocar a
palavra TIPO no nome da entidade. Quando for realmente necessário, não usar nas colunas os
prefixos CODG, NUMR E NOME.
• Não devem ser utilizados caracteres característicos da língua portuguesa como acentos e cedilha.
• Na formação dos nomes não devem ser utilizadas conjunções e preposições como de, da, do, para,
etc.
• Todas as palavras que compuserem os nomes das entidades deverão estar em letras maiúsculas.
• Não há obrigatoriedade de abreviar palavras mesmo que sejam maiores que dez (10) caracteres.
• Na parte descritiva as palavras devem ser definidas no singular.
• O nome da Entidade (SiglaSistema_Descritivo) não poderá exceder o limite de trinta (30) caracteres,
devido à limitações do banco de dados.
• Caso alguma palavra que compõe a parte descritiva necessite ser abreviada em decorrência do
tamanho limite de 30 caracteres, deverá ser utilizado o mnemônico da palavra, conforme padrão
adotado em Mnemônicos na aplicação WEBTOOLS
• No caso de abreviação, pode ser abreviada qualquer palavra que faça parte do nome da entidade
atentando para que o nome fique o mais significativo possível.
• Cada entidade deverá ter um Shortname único, independente do sistema ao qual pertença. O
Shortname será criado pela GIT-SUPBD e deverá ser definido baseado nas abreviações contidas em
Shortname de Colunas na aplicação WEBTOOLS. O shortname servirá como base para criação de
objetos relacionadas à entidade no banco de dados.
• Na definição da entidade os campos Name e Plural deverão ter o mesmo nome.
• Todas as entidades deverão ter sua descrição bem detalhada no campo TEXT na aba
DESCRIPTION. O campo NOTES, da mesma aba, também pode ser utilizado para acrescentar mais
informações que sejam relevantes sobre a entidade.
1.3.3.2 Atributos
AAAA_DESCRITIVO
Onde:
AAAA:
Abreviação indicando o tipo do campo conforme padrão definido. As abreviações utilizadas são:
CODG, NUMR, DATA, NOME, DESC, INFO, PERC, QTDE, STAT, TIPO, VALR, INDI, MATR, ID,
REFE, HORA, SIGL.
No final deste documento consta uma FAQ sobre quando utilizar cada uma dessas abreviações.
DESCRITIVO:
• Não devem ser utilizados caracteres característicos da língua portuguesa como acentos e cedilha.
GerenciasSTI?/GIT/SBD/BD/PadroesBdr revisão.21 − 16 Mar 2018 3
$LOGOIMAGE l l 13 Dec 2018 - 10:39
• Na formação dos nomes, não devem ser utilizadas conjunções e preposições como de, da, do, para,
etc.
• Todas as palavras que formam os nomes dos atributos deverão estar em letras maiúsculas.
• Se na parte descritiva do nome houver mais de uma palavra deverá ser utilizado o símbolo
underscore ( _ ) para separar as mesmas.
• Na parte descritiva as palavras devem ser definidas no singular.
• Toda palavra menor ou igual a dez (10) caracters que compuser a parte descritiva deverá ser utilizada
sem nenhum tipo de abreviação. Será permitido a abreviação de palavras até dez (10) caracteres
somente quando, apesar das abreviações possíveis haverem sido feitas, o nome total da coluna
continuar maior que trinta (30) caracteres. Nesse caso deverá ser abreviada da última para a primeira
palavra utilizando o padrão adotado em Shortname de Colunas , na aplicação WEBTOOLS.
• Toda palavra maior que dez (10) caracteres que compuser a parte descritiva deverá ser abreviada de
acordo com as abreviações constantes em Mnemônicos na aplicação WEBTOOLS.
• Os nomes das colunas não poderão exceder o limite de trinta (30) caracteres, devido à limitações do
banco de dados. Caso esse limite seja excedido, deve-se verificar a possibilidade de retirar alguma
palavra de forma que o significado do nome não seja prejudicado. Caso não seja possível retirar uma
palavra do nome, então deverão ser utilizadas abreviações mesmo nas palavras com até dez (10)
caracteres, começando a abreviar da última para a primeira palavra até que o tamanho fique igual ou
menor que 30 caracteres.
• Em caso de nomes que possuem siglas já conhecidas, deve ser utilizada a própria sigla para
composição do nome da coluna. (CFOP, CNAE, UF, CNPJ, etc.). Exemplo: CODG_UF ao invés de
CODG_UNIDADE_FEDERACAO.
• Todos os atributos deverão ter sua descrição bem detalhada no campo COMMENT do atributo.
1.3.4 Relacionamentos
A finalidade do relacionamento deve ser descrita no campo TEXT. Na geração do modelo lógico, essa
descrição deverá ser utilizada para descrever a coluna FK.
2 - Projeto Lógico
É gerado pelos Administradores de Dados da GIT-SUPBD a partir do MER homologado. Nesse
modelo os nomes de entidades e colunas criados no modelo conceitual serão mantidos. Novos
nomes devem ser criados somente para colunas chaves estrangeiras que possuem mais de um
relacionamento com uma mesma tabela.
Para os índices, Foreign Keys, Primary Keys, Unique Keys, Constaints, Views, Triggers e Sequences, os
shortnames deverão ser utilizados conforme descrito no item 3 Projeto Físico.
3 - Projeto Físico
Gerado pelos Administradores de Banco de Dados da GIT-SUPBD a partir do Projeto Lógico. O modelo
físico trata da criação de todos os objetos no banco de dados.
3.1.1 Tabelas:
Obrigatoriamente a tabela deve ter o mesmo nome que a tabela correspondente no modelo lógico.
3.1.2 Colunas
Obrigatoriamente a coluna deverá ter o mesmo nome que a coluna correspondente no modelo lógico.
3.1.3 View
SiglaSistema_Descritivo
Onde:
SiglaSistema: Sigla do sistema que utilizará a view, ou, sendo considerada corporativa, deverá ser utilizada a
sigla CGO.
Descritivo: Nome no singular que defina com clareza o significado da View. Não utilizar a palavra
VIEW para compor o nome.
• Os padrões para nomes de views devem seguir o mesmo descrito nesse documento nos itens 1.3.1 e
1.3.1.1.
• Todas as palavras que formam os nomes dos atributos deverão ser em letras maiúsculas e deverão
seguir os padrões definidos nos itens 1.3.1.2 e 1.3.1.3. Exceção somente quando for necessário criar
uma view com os nomes de colunas baseadas em tabelas com nomes em padrões antigos. Sempre
que possível, os nomes das colunas da view são os mesmos das colunas correspondentes das tabelas
origem.
3.1.3.2 Exemplos:
a) GEN_UNIDADE_OPERACIONAL_SEFAZ
Onde:
Onde:
ShortName_IdentificadorObjeto
Onde:
ShortName:
É o ShortName da tabela
IdentificadorObjeto:
Deverá ser informado a sigla PK identificando que é um objeto do tipo Primary Key.
• Toda tabela deverá ter uma PK, preferencialmente com uma única coluna. Se isso não for possível,
uma UK gerada através de auto incremento deverá ser criada para que possa atender aos requisitos de
histórico/auditoria.
3.1.4.2 Exemplo:
a)
Para o nome de Unique Key (chaves únicas) deverá ser utilizado o seguinte padrão:
ShortName9_IdentificadorObjeto
Onde:
ShortName:
É o ShortName da tabela.
9:
Um número seqüencial para identificar a Unique Key Constraint para o caso em que haja mais de
uma UK para a mesma tabela.
IdentificadorObjeto:
Deverá ser informado o sigla UK identificando que é um objeto do tipo Unique Key Constraint.
3.1.5.1 Exemplo:
ShortNameTabelaFilha_ShortNameTabelaPai9_IdentificadorObjeto
Onde:
ShortNameTabelaFilha:
ShortNameTabelaPai:
9:
Utilizado no caso de uma tabela filha ter mais de um relacionamento com uma mesma tabela pai. É um
número crescente para identificar a foreign key para a referida tabela.
IdentificadorObjeto:
Deverá ser informado a sigla FK identificando que é um objeto do tipo Foreign key.
3.1.6.1 Exemplo:
Para o nome das Check Constraints deverá ser utilizado o seguinte padrão:
ShortName_NomeColuna_IdentificadorObjeto
Onde:
ShortName:
É o ShortName da tabela;
NomeColuna:
IdentificadorObjeto:
Deverá ser informado a sigla CK identificando que é um objeto do tipo Check Constraint;
• Caso não seja possível manter aqui o nome completo da coluna devido a restrição de trinta caracteres
no nome total, então este deve ser abreviado seguindo o padrão definido no item 1.3.1.3, deste
documento.
• Para toda coluna associada a um domínio específico, deve ser criada uma Check Constraint seguindo
este mesmo padrão.
• Por via de regra, para os Modelos de Dados Dimensionais não há necessidade de criar Constraints ou
Domínios, a menos que seja explicitamente solicitado.
3.1.7.2 Exemplo:
PESSOA_TIPO_PESSOA_CK ->
3.1.8 Sequence
ShortName_IdentificadorObjeto
Onde:
ShortName:
É o ShortName da tabela.
IdentificadorObjeto:
• Sequences são criadas e associadas a colunas do tipo ID que são PKs ou UKs nas tabelas. A partir da
versão 12 do Oracle, não há necessidade de criação da sequence, basta informar que a coluna é
autoincremento e o próprio banco se encarregará de criar a sequence.
3.1.8.2 Exemplos:
3.1.9 Índices
ShortName9_IdentificadorObjeto
Onde:
ShortName:
É o ShortName da tabela;
9:
IdentificadorObjeto:
• No caso de índices para Primary Key e Unique key Constraint, não há necessidade da criação de um
objeto tipo IX, pois os objetos tipo PK ou UK já identificam os índices.
3.1.9.2 Exemplo:
a)
3.1.10 Triggers
ShortName9_IdentificadorObjeto
Onde:
ShortName:
É o ShortName da tabela.
9:
IdentificadorObjeto:
3.1.10.1 Exemplo:
IdentificadorObjeto_SiglaSistema _DESCRITIVO
Onde:
IdentificadorObjeto:
Deverá ser informada a sigla SP identificando que é um objeto do tipo Stored Procedure.
SiglaSistema:
Descritivo:
Nome no singular que defina com clareza o propósito do objeto. Caso haja mais de uma palavra no nome,
estas deverão ser separadas por underline ( _ ).
3.1.11.2 Exemplo:
IdentificadorObejto _DESCRITIVO
Onde:
IdentificadorObjeto:
Deverá ser informada a sigla SPF identificando que é um objeto do tipo Function.
Descritivo:
Nome no singular que defina com clareza o propósito do objeto. Caso haja mais de uma palavra no nome,
estas deverão ser separadas por underline ( _ )
3.1.12.2 Exemplo:
Quando usar cada uma dessas abreviações está mais relacionado à forma como o atributo é conhecido no
mundo real. Por exemplo: não é comum alguém falar código da matrícula do funcionário e sim número da
matrícula do funcionário. Da mesma forma, não é comum falar código do CPF e sim, número do CPF. Não
necessariamento NUMR tem que ser usado para colunas do tipo numérico.
Mais uma vez vale o bom senso em relação ao mundo real. O NOME nomeia uma pessoa, bairro, município,
país, estado, etc.. DESC é sempre usado para descrever alguma coisa e não nomear. Exemplo: descrição de
uma meta, um objetivo, um resultado, uma situação, um tipo, uma fórmula, etc. Podem aparecer casos em
que tenhamos na mesma entidade NOME e DESC. INFO é mais utilizado como uma observação ou um
complemento da informação.
PERC deve ser utilizado quando a informação a ser armazenada é somente um percentual de um determinado
valor. Apesar de um percentual ser um valor, a abreviação PERC fica mais significativa. VALR é utilizado
para todos os campos que indiquem valores e que não sejam somente um valor percentual. Podem ocorrer
casos em que um atributo iniciado com VALR ser alfanumérico.
TIPO é sempre utilizado em tabelas básicas de tipo de alguma coisa , exemplo: tipo de documento. Outra
utilização para TIPO é quando essa tabela básica for colocada no modelo de dados em forma de domínio de
um campo. STAT sempre indica situação de alguma coisa. Exemplo: situação cadastral (ativo, suspenso,
baixado), situação da remessa (enviada, recebida), situação do documento (aberto, fechado, bloqueado).
INDI sempre indica um indicador de SIM ou NÂO, ATIVO ou INATIVO, NACIONAL ou MUNICIPAL ou
ESTADUAL.
ID deve ser utilizado somente para atributos gerados automaticamente pelo banco de dados, para tal, sempre
estão associados a um objeto tipo Sequence e a outro tipo Trigger para o controle do autoincremento. A partir
da versão 12 do Oracle, não há necessidade da criação de sequence e trigger associados à coluna que inicia
por ID, basta informar que a coluna é utoincremento. Normalmente é o campo chave da entidade/tabela. Se o
autoincremento da coluna for controlado pela aplicação, seu nome deve começar com outro prefixo,
geralmente NUMR.
6 - REFE
Deve ser utilizado quando indicar uma referência ANO_MÊS, ou seja, não é uma data completa.
Campos desse tipo sempre são number(6).
7 - MATR
Deve sempre ser utilizado para indicar atributos que se referem a uma matrícula. Exemplo: matrícula do
funcionário, matrícula do aluno, etc.
8 - USER
Deve sempre ser utilizado para indicar atributos que se referem ao usuário de login na rede ou do banco de
dados.
9 - HORA
Deve sempre ser utilizado para indicar atributos que armazenarão a informação de hora, sem data. Campos
desse tipo devem ser NUMBER(6) e a informação armazenada no formato HHMMSS, onde:
HH - Hora, com dois dígitos. No caso de hora menor que 10, o zero à esquerda será suprimido por ser um
campo NUMBER. Assim, se for requisito que o zero apareça, a aplicação deverá fazer o devido tratamento.
Se houver necessidade de armazenar a informação até o nível de milisegundos, então deve ser utilizado o tipo
TIMESTAMP. Nomes de atributos do tipo TIMESTAMP devem começar com o prefixo DATA.
10 - Dúvidas?
Qualquer dúvida sobre qual a melhor abreviação a ser utilizada pode ser sanada com uma boa descrição sobre
a informação que será armazenada no campo.
Copyright © pelos autores contribuintes. Todo material nessa plataforma colaborativa é propriedade do
Estado de Goiás.
.............................................................................................................................................................................1
GerenciasSTI?/GIT/SBD/BD/PadroesBdr revisão.21 − 16 Mar 2018 12