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