Muito bom lembrares desse detalhe de modelagem, infelizmente poucos conhecem
os problemas de usar NULL. Ficou bem didático (quem me dera quando estudei
em banco de dados tivessem tido essa didática... Teria sido muito mais
simples :-))!

Abraços

2009/10/21 Leonardo Cezar <[email protected]>

> 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
>



-- 
André de Camargo Fernandes
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a