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

Responder a