Padronização de Nomenclatura para Banco de Dados

28
Padronização de Nomenclatura para Alan James

Transcript of Padronização de Nomenclatura para Banco de Dados

Page 1: Padronização de Nomenclatura para Banco de Dados

Padronização de Nomenclatura para

Alan James

Page 2: Padronização de Nomenclatura para Banco de Dados

2

Page 3: Padronização de Nomenclatura para Banco de Dados

3

Será que realmente é

precisopadronizar ?

Será que realmente é

precisopadronizar ?

Page 4: Padronização de Nomenclatura para Banco de Dados

4

E

Page 5: Padronização de Nomenclatura para Banco de Dados

5

Então por que ter trabalho em criar um padrão meu

Deus dú céu ? ? ? ! ! !

Então por que ter trabalho em criar um padrão meu

Deus dú céu ? ? ? ! ! !

Page 6: Padronização de Nomenclatura para Banco de Dados

6

Ôpá ! É Simples, para obter uma

maior produtividade e desempenho no

projeto.

Ôpá ! É Simples, para obter uma

maior produtividade e desempenho no

projeto.

Page 7: Padronização de Nomenclatura para Banco de Dados

7

Hmmm, legal ! Mas qual padrão

devo seguir ?

Hmmm, legal ! Mas qual padrão

devo seguir ?

Não “existe” nenhum !

Page 8: Padronização de Nomenclatura para Banco de Dados

Se não existe é só criar

um !

Se não existe é só criar

um !

8

Não existe um padrão e mesmo

assim quer padronizar ?

Desisto !

Não existe um padrão e mesmo

assim quer padronizar ?

Desisto !

Page 9: Padronização de Nomenclatura para Banco de Dados

9

Page 10: Padronização de Nomenclatura para Banco de Dados

10

lSO/lEC11179-5 – ISO90005

Page 11: Padronização de Nomenclatura para Banco de Dados

11

Page 12: Padronização de Nomenclatura para Banco de Dados

12

Código complicad

o

Código complicad

o

Difícil entendimento do BD

Difícil entendimento do BD

Difícil Manutenç

ão

Difícil Manutenç

ão

Repetição de

informações

Repetição de

informações

Perda de tempo

Perda de tempo

Desorganização

Desorganização

SQL  complicados de

entender

SQL  complicados de

entender

Dificuldade na construção de

SQL

Dificuldade na construção de

SQL

Documentação ruim

Documentação ruim

Não “passa”

credibilidade

Não “passa”

credibilidade

Page 13: Padronização de Nomenclatura para Banco de Dados

13

Demontra Maturidade da

Empresa / Funcionário

Demontra Maturidade da

Empresa / Funcionário

Código de fácil

entendimento

Código de fácil

entendimento

Fácil entendimento do BD

Fácil entendimento do BD

Boa documentaçã

o do BD

Boa documentaçã

o do BD

Facilidade na

manutenção

Facilidade na

manutenção

SQL de fácil

entendimento

SQL de fácil

entendimento

Redução de

custos

Redução de

custos

SQL menos

complexos

SQL menos

complexos

Sem redundância

de informações

Sem redundância

de informações

Maior qualidade no

Sistema / Software

Maior qualidade no

Sistema / Software

Códigos e lógicas mais

intuitivos

Códigos e lógicas mais

intuitivos

Page 14: Padronização de Nomenclatura para Banco de Dados

14

Base de dadosBase de dados

TabelasTabelas

RestriçõesRestrições

ColunasColunas ProceduresProcedures

TriggersTriggers AbreviaçõesAbreviações

ChavesChaves

Page 15: Padronização de Nomenclatura para Banco de Dados

15

Base de dados Procedures Triggers

nomeprojeto <NOME_PROCEDURE>.PRC 

<NOME_TRIGGER>.TRG 

nome_projeto

NOMEPROJETO

NOME_PROJETO

Nome_Projeto

Page 16: Padronização de Nomenclatura para Banco de Dados

TabelasComum N x N

CAD_PES_PESSOAS  CAD_PES_PESSOAS CAD_END_ENDERECOS 

CAD_PES_PESSOAS_ENDERECOS (resultado)

Aluno Pessoa_Fisica

DEPARTAMENTO

FuncionarioDepartamento

FuncionarioDerpartamento

tblPessoa

TB_JOGADOR

16

Page 17: Padronização de Nomenclatura para Banco de Dados

17

Colunas

Nome do atributo Identificação Tipo de dado utilizado

pes_nome CD Numérico

nome_pes DT Data

VL_VALOR_PARCELA DS String (caracteres)

pesNome (notação húngara)

NM String (caracteres)

NR Numérico

ST String (caracteres)

VL Numérico

Page 18: Padronização de Nomenclatura para Banco de Dados

18

Chaves / RestriçõesNome da chave Identificações

pessoa_idId_pessoa

PK_ID_PESSOAPESSOA_ID_PK

pessoaIdPk (notação húngara)

PK_

fk_funcionario_idfuncionario_id_fk

funcionarioIdFk (notação húngara)

FK_

idxCodigoPessoa (notação húngara)idx_nome_func

IDX_

UN_NUMERO_TEL UN_ (chave única)

NN_ (restrição não nulo)

CK_ (restrição tipo check)

Page 19: Padronização de Nomenclatura para Banco de Dados

19

Abreviação

Número de palavras

Norma Exemplo

1 Palavra Utilizar as 3 primeiras letras da palavra

Nome: PessoasAbreviatura: PES

2 Palavras Utilizar as 2 primeiras letras da primeira palavra e a 1ª letra da segunda

palavra

Nome: Pessoas FísicasAbreviatura: PEF

3 ou mais Palavras Utilizar a 1ª letra das duas primeiras palavras e

a 1ª letra da última palavra

Nome: Tipos Contrato Prestadores

Abreviatura: TCP

Page 20: Padronização de Nomenclatura para Banco de Dados

Escolha nomes sem ambiguidade, curtos, não usando mais que duas palavras. distingue tabelas facilmente. facilita nomear campos únicos assim como tabelas de

metadados.

Use nomes no singular, nunca plural. promove consistência com a nomenclatura de campos

de chave primárias e tabelas de metadados. garante ordenação alfabética de uma tabela antes de

suas tabelas de metadados ou relacionadas. evita confusão de regras de plural do português ou

inglês.20

Page 21: Padronização de Nomenclatura para Banco de Dados

Evite nomes com acrônimos, abreviados ou concatenados. provê arquitetura auto-documentável. facilita tanto para desenvolvedores quanto para

não-desenvolvedores lerem e entenderem. ( Bom pra todos )

Prefixe as tabelas de metadados com o nome das tabelas a que elas se relacionam. agrupa tabelas relacionadas (ex: activity_status,

activity_type, etc). evita conflitos de nomes de tabelas de metadados

de diferentes entidades. 21

Page 22: Padronização de Nomenclatura para Banco de Dados

Para uma tabela associativa (n:n), concatene o nome das duas tabelas envolvidas: expressa o propósito de composição da tabela. esta regra não se aplica quando houver mais de

uma tabela associativa para as mesmas entidades originais

Crie comentários para a tabela e para as colunas: facilita a compreensão do propósito da tabela. explica o conteúdo presente em uma coluna.

( Bom pra todos ) 22

Page 23: Padronização de Nomenclatura para Banco de Dados

A chave primária deve ter o nome da tabela com o sufixo "_id". permite que a chave primária seja deduzida ou

lembrada a partir apenas do nome da tabela.(ex: Tabela: Produto – PK: produto_id )

consistência com o nome da chave primária. evita a necessidade de usar apelidos (alias) na

programação

Chaves estrangeiras devem ter o mesmo nome das chaves primárias às quais elas se referem. faz com que as tabelas às quais elas se referem fique

óbvio. 23

Page 24: Padronização de Nomenclatura para Banco de Dados

24

Bora definir um padrão ?

Page 25: Padronização de Nomenclatura para Banco de Dados

Possíveis pontos a definir:

Usar nome de tabela no plural ou no singular ?

Usar um caractere identificador para registro ou tabela ?

Como lidar com nomes compostos ?

Como nomear as tabela, atributos e colunas.

Como nomear uma PK e um FK ?25

Page 26: Padronização de Nomenclatura para Banco de Dados

Pensar fácil.

Simplificar SEMPRE !

Ambiguidade zero

Passar a informação correta.

26

Page 27: Padronização de Nomenclatura para Banco de Dados

http://www.guj.com.br/java/14696-nomenclatura-padrao-em-sgdb

http://www.tiespecialistas.com.br/2011/05/cmmi-nivel-2-recebendo-padronizacao/#.UaQDW0A05rM

http://brasil.pmi.org/brazil/AboutUS/WhatisPMI.aspx

http://metadata-standards.org/11179/ http://my.opera.com/maicokrause/blog/

2009/04/28/padronizacao-de-nomes-de-tabelas-e-colunas-de-banco-de-dad

27

Page 28: Padronização de Nomenclatura para Banco de Dados

28