Só para fechar entao.....

Se tiverers  varios atributos null  em uma relacao provavelmente o modelo esta furado :)

Pronto!!
João Cosme de Oliveira Júnior

Seja inteligente, use Software-livre!!!
LPI Certified
LPI000185554


Em 21/10/2009 às 22:06 horas, [email protected] escreveu:
Olá,

O Léo é um dos nossos gurus. A gente sempre aprende com ele, eu que o diga :)

Um comentário. As vezes é muito mais fácil definirmos um campo como null do que modificar o modelo, porém la na frente veremos o que isso pode nos atrapalhar. Tenho alguns exemplos disso. Qualquer coisa eu posto aqui depois.

2009/10/21 Nilson Chagas <[email protected]>
Puxa nunca pensei que de uma pergunta como esta poderia aprender tanto.


Valew, depois da sua explicação me deu até uma luz de como contornar de tal forma que não exista campos nulos.


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



--
[]s
Nilson Chagas - Ubuntu User 25794
---
Visite:
http://www.avozdoevangelho.com.br -> Peça gratuitamente um curso Bíblico

Twitter: avozdoevangelho
Twitter: matrixspnet

http://www.amados.com.br
http://bbnradio.org -> Ouça a rádio e faça gratuitamente um Curso Biblico On-Line



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



[]s
--
JotaComm
http://jotacomm.wordpress.com


"Esta mensagem do SERVIÇO FEDERAL DE PROCESSAMENTO DE DADOS (SERPRO), empresa pública federal regida pelo disposto na Lei Federal nº 5.615, é enviada exclusivamente a seu destinatário e pode conter informações confidenciais, protegidas por sigilo profissional. Sua utilização desautorizada é ilegal e sujeita o infrator às penas da lei. Se você a recebeu indevidamente, queira, por gentileza, reenviá-la ao emitente, esclarecendo o equívoco."

"This message from SERVIÇO FEDERAL DE PROCESSAMENTO DE DADOS (SERPRO) -- a government company established under Brazilian law (5.615/70) -- is directed exclusively to its addressee and may contain confidential data, protected under professional secrecy rules. Its unauthorized use is illegal and may subject the transgressor to the law's penalties. If you're not the addressee, please send it back, elucidating the failure."
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a