On 6/21/07, Leandro Guimaraes Faria Corcete DUTRA <[EMAIL PROTECTED]> wrote:
Em Qui, 2007-06-21 às 16:36 -0300, Andre Vargas escreveu:
> A possibilidade de se criar novos tipos de dados também é um recurso
> Objeto-Relacional, se não me engano.

A ideia de mapear tipos primitivos inexistentes no banco para tipos
derivados de APIs externas através de UDT é no mínimo questionavel. Na
teoria, isso facilita ORM, mas na prática vira bagunça.

Tipos denidos não possuem comportamento no BD, diferente dos tipos
(classes) dinâmicas das OOP. O máximo que voce irá fazer é compor uma
matriz de sub-tipos de estado indefinido, e a partir dai tipar um ...
atributo.

Então:
NOVO_TIPO = (logradouro TEXT, estado OUTRO_TDU);
CREATE TABLE empregado(<lista_atributos>, endereco NOVO_TIPO);

Qualquer semelhança com denormalização é mera coincidência.

No melhor dos estilos OO você poderia retornar os dados da seguinte forma:

  cezar = empregado.endereco.logradouro
  (isto não é uma instância!!! -- Então, oq é???)

A vantagem foi ... (???)

Vide tipo array definido em SQL200n - 2003 ou
http://www.postgresql.org/docs/8.1/static/arrays.html

        Só na propaganda.  Não tem nada de especificamente OO em novos tipos de 
dados.

Não bastasse a confusão de OO com dados, existem confusões de ORD,
OOP, OQL, ORM, etc ...

Não utilizo as (des)vantagens OO do Postgres porque de fato não
encontrei -- talvez por não existir -- uma aplicação que estas
features se façam úteis. Entretanto admito que tais caracteristicas
(herança de verdade,espaço de nomes,polimorfismo,encapsulamento,&ca)
são úteis no ciclo de desenvolvimento de uma aplicação.

Tente pensar em stream de dados com este conceito e vai perceber onde
até onde o ser humano é persistente.

E por falar em OQL, que fim se deu essa coisa???

Abraço!

-Leo
--
Leonardo Cezar
http://www.hostsystems.com.br
http://www.postgresql.org.br
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a