Diogo,

Eu concordo que não atentei para o detalhe da Especialização/Generalização.
Assumindo a OO eu não precisaria dos campos nome, cpf e dtnascimento nas
tabelas filhas, apenas uma chave estrangeira de relacionamento. Assim,
qualquer alteração na estrutura desses campos poderia ser feita direto na
tabela mãe, o que não poderia ser feito com o esquema que criei, pois nele
eu teria que alterar não só a mãe, mas em todas as filhas.

Um detalhe que não comentei é que essa implementação foi feita baseada no
funcionamento de herança dentro do próprio PG, onde um registro numa tabela
filha é automaticamente inserido na tabela mãe. Vendo pela
Especialização/Generalização percebo que a estrutura fica mais simples e
flexível, tornando as triggers completamente desnecessárias. Só que isso não
é nada além de normalização de banco de dados, daí penso o seguinte: qual a
dificuldade que os desenvolvedores têm em corrigir o problema de herança no
PG?

-- 
Celso Henrique Mendes Ferreira
Analista de Requisitos
www.itecgyn.com.br

Em 26/02/08, Diogo Biazus <[EMAIL PROTECTED]> escreveu:
>
>
> Em 26/02/2008, às 00:37, Euler Taveira de Oliveira escreveu:
>
> > Celso Henrique Mendes Ferreira wrote:
> >
> >> Para o que eu precisava serviu legal e até agora não deu problema e
> >> talvez, quem sabe, essa idéia consiga ajudar alguém.
> >>
> > Mas isso *não* é herança. É de certo modo uma "replicação parcial" das
> > tabelas do banco de dados.
>
> De acordo com o Euler, porque replicar os atributos de pessoa (cpf e
> dtnascimento) em aluno por exemplo?
> Acho que se mapearmos os conceitos OO da seguinte forma:
>
> Classe -> Variável de relação
> Atributo de classe -> Atributo de relação
> Objeto -> Tupla
> Composição de objetos -> Relacionamentos
>
> O conceito mais próximo da herança no banco relacional será
> especialização/generalização.
>
> PS.: Se alguém me acusar de estar cometendo um grande erro de
> mapeamento (como no livro do date) vou responder que não proponho um
> banco relacional/oo mas um mapeamento mais "solto" entre um SGBDR puro
> e modelagem OO (e uma definição bem geral de classes).
>
> --
> Diogo Biazus
> [EMAIL PROTECTED]
> http://www.softa.com.br
> http://www.postgresql.org.br
>
> _______________________________________________
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a