2008/10/8 Osvaldo Kussama <[EMAIL PROTECTED]>:
> Em 07/10/08, Aldemir Vieira<[EMAIL PROTECTED]> escreveu:
>> PERAI! Isso fere a primeira forma normal. Ná prática, pense que se atualizar
>> "grãos", você vai ter que fazer um "update" em todas as tabelas
>> referenciadas. Não sei o que vocês tem contra "JOIN", normalização,
>> relacionamentos e tabelas pregra o uso.
>>
>
> Discordando.
>
> - A tabela apresentada está em 1NF pois nenhum de seus atribtutos é
> multivalorado. (repare que no PostgreSQL podemos ter arrays e tipos).
> - A tabela também está em 2NF pois todos os atributos dependem
> funcionalmente da chave.
> - A tabela também está em 3NF pois não existem dependências
> transitivas entre seus atributos.
>
>
>> 2008/10/7 Yoshio <[EMAIL PROTECTED]>
>>>
>>> SELECT * from produtos;
>>>
>>> |       código       |       nome       |     categoria       |
>>> ---------------------------------------------------------------
>>> |         1          |       arroz      |       grãos         |
>>> |         2          |       feijão     |       grãos         |
>>> |         3          |        maça      |       frutas        |
>>>
>>> O select exibe as categorias sem precisar de uma view ou join.
>>>
>
>
> "Ná prática, pense que se atualizar "grãos", você vai ter que fazer um
> "update" em todas as tabelas referenciadas"
>
> E se você tivesse uma tabela extra contendo, por ex, 1 - grãos e por
> alguma razão exótica desejasse mudar o código de 1 para 100? Creio que
> você quis dar um exemplo de "anomalia de atualização" mas não é o
> caso.
>
> Correndo o risco de "chover no molhado" creio que todos aqui são a
> favor da normalização e pregam e incentivam sua aplicação.
>
> Osvaldo

Só pra deixar mais claro sobre as tabelas, no exemplo seria uma tabela
de "produtos" e outra de "categorias".

Categorias: categoria (pk, varchar)
Produtos: código(pk), nome do produto, categoria (fk)

- A tabela de produtos fica mais legível, pois "1 - arroz - grãos" é
mais legível do que  "1 - arroz - 2". Isto pode ser resolvido com
views, porém dependendo da quantidade de tabelas eu poderia ter tantas
views que deixaria a administração um inferno.

- Quanto a programação daí depende da linguagem, mas no Delphi eu
poderia jogar um "select * from produtos" sem problemas em um DBGrid e
permitir o usuário alterar a vontade os dados apresentados no próprio
Grid. Se estivese em uma view já daria problemas para trabalhar com os
registros referenciados.

- Com a chave a sendo "string" poderia dar pau em outros idiomas
(expliquei isso no outro email), falando do Delphi, ele não tem
suporte ao unicode. Ele trabalha com unicode, mas seus componente não
conseguem exibir os caracteres.
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a