On 9/6/07, Leandro DUTRA <[EMAIL PROTECTED]> wrote:

> > Então não entendi nada mesmo. Em qual situação os domínios SQL
> > contribuiriam no contexto da ferramenta em questão?
>
> Se eu entendi direito a ferramenta e lembro bem — já fazem algumas
> semanas que a vi — é um diagramador ER.  Definem­-se os DOMAINs, os
> quais se usam para definir as tabelas já com os tipos e restrições de
> atributo associadas, mantendo-se a consistência do modelo de dados.

Você não entendeu. A "ferramenta em questão" é aquela enviada no link inicial.

> > Domínios SQL não
> > são nada além do que apelidos para contenções tipadas.
>
> Mas que são uma aproximação razoável embora tosca de domínios
> definidos pelo usuário.

Discordo com a idéia que nomear tipos agreguem valor à documentação.

> Lembrando que um domínio é uma lista de valores aplicáveis a um
> atributo, variável &c, um DOMAIN te permite, via CHECK CONSTRAINT,
> definir uma tal lista ou aproximação dela.

Se a idéia fosse definir um "domínio de valores", bastaria então
utilizar-se da cláusula CHECK, nativamente fornecida pela SQL. Mas e
as contenções sobre operadores?

> Aliás intereßante — você usa 'contenção' como tradução de CONSTRAINT?
> Sempre usei restrição…

Hmm ... verdade, acho que a tradução literal é restrição, embora
contenção parece semanticamente correto.

> > De acordo. E pra esse fim, SQL Domains não servem.
>
> Como não?  A gente documenta que determinados atributos são todos
> definidos no mesmo tipo, e tem restrições e comentários associados…

... e logo estará executando comparações de código de produtos com
identificadores de clientes, já que nenhum (???) SGBD implementa
*restrições* sobre operadores.

e.g.:
DOMAIN cpf AS integer CHECK [...]
DOMAIN id_produto AS integer CHECK [...]

TABLE clientes(cpf cpf, ...)
TABLE produto(id_produto id_produto, ... )

SELECT cliente.cpf =produto.id_produto;

Embora logicamente não deva retornar nada, é conceitualmente inaceitável.

> Aliás não tem ferramenta proprietária que se preze que não implemente
> — CA ERWin, IBM Data Architect, Embarcadero ER Studio…

Infelizmente sou meio pobre, proprietariamente falando, mas me diga:
Estas ferramentas implementam domínios em sua totalidade? Se sim, como
estes resolvem a implementação física do modelo??

> Aliás, mesmo que os DOMAINs SQL não sejam suportados pelo SGBD alvo,
> ainda é intereßante definir na ferramenta de diagramação, para
> documentação e consistência na geração da base.

Ainda não consegui visualizar onde os domínios vão ajudar, já que se
restringem apenas a tipos nativos.

Penso que uma forma mais elegante de se contornar a dificuldade da
SQL, seja utilizando tipos e operadores definidos pelo usuário,
característica que sobra em alguns SGBDs e falta em outros, mas não
sei como documentar essa característica nas ferramentas atuais.

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

Responder a