2009/10/21 Joao Cosme de Oliveira Junior <[email protected]>
>
> Só para complementar .....
> Null significa indeterminado ou não se aplica ....
Só pra complementar++, ao utilizar NULL você estará assumindo
armazenar valores fora do domínio daquela coluna e portanto não
conseguirá armazenar requisitos sequer para alcançar 1FN
(desconsiderando as controvérsias).
Resultado disso são anomalias (tratamento especial) com agregação,
agrupameto, concatenação, ordenação, *ção.
Devido a falta de tipos nulos (aplicáveis e não-aplicáveis) no
SQL-ANSI torna-se impossível manter um modelo de dados consistente
utilizando atributos que permitam nulos.
De preferência por normalizar essa relação, por exemplo:
PESSOA { #CPF, NOME, PROFISSAO }
O atributo PROFISSAO pode ser "Nulo, mas aplicável", então:
PESSOA { #CPF, NOME } -- Tabela de pessoas
PROFISSAO { #CBO, TITULO, TIPO, ATIVO } -- Tabela de profissões
segundo ministério do trabalho;
OCUPACAO {#CPF, #CBO, DESDE, ... } -- Tabela de profissões de uma PESSOA;
De acordo com o modelo acima, o atributo PROFISSAO só seria preenchido
quando uma PESSOA de fato possuir uma ocupação.
Desta forma eliminamos os NULLs da variável de relação PESSOA ->
PROFISSAO e obecedemos a 1FN.
Abraço!
-Leo
--
Leonardo Cezar
http://www.aslid.org.br
http://postgreslogia.wordpress.com
http://www.dextra.com.br/postgres
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral