Le 2012-F-2  22h39, Euler Taveira de Oliveira a écrit :
>>
>> Mas não é justamente o que discutimos?  A possibilidade de declarar 
>> restrições…
>>
> Coloquialmente, eu definiria visão como "nomear uma consulta". Como seria ter
> restrições (de integridade) em uma consulta (aka visão)?

Uai, como o Codd e o Date — está bem, não lembro se o Codd falou isso 
mesmo, mas pelo menos o Date — sempre definiram: uma visão é uma relação 
derivada.  Idealmente, o sistema tem informações suficientes para 
derivar as restrições de uma relvar derivada a partir da definição das 
relvars base; como o SQL perde muito tempo (gasta muita complexidade) 
suportando sacos, acaba caindo para o usuário definir essas restrições 
(derivadas) de relvars derivadas.


> Como criar uma restrição na coluna abc da visão abaixo?
>
> CREATE VIEW foo AS SELECT a, CASE WHEN b * c = 2 THEN 10 ELSE 20 END AS abc
> FROM bar WHERE d>  123;

Ô preguiça que me dá voltar a olhar a documentação do Oracle…
http://docs.oracle.com/cd/E11882_01/server.112/e26088/statements_8004.htm#i2065510
http://docs.oracle.com/cd/A87860_01/doc/server.817/a85397/state10e.htm#2065512


> Você precisa de pelo menos uma restrição de unicidade para conseguir
> relacionar com a visão foo (criar uma chave estrangeira na coluna abc da visão
> foo). Assim, não vejo como fazer isso sem muita complexidade (na linguagem
> SQL) e esforço (que não vale a pena no momento -- temos muitas coisas mais
> interessantes para implementar do que isso).

Há muita coisa interessante, sim, mas o que é mais ou menos interessante 
depende muito do que se quer fazer.  Integrar o catálogo ao resto do 
modelo de dados me parece, como ex-AD, sumamente interessante, digamos 
pau a pau com restrições deferidas generalizadas (não apenas os casos 
especiais que suportamos hoje).


-- 
skype:leandro.gfc.dutra?chat      Yahoo!: ymsgr:sendIM?lgcdutra
+55 (61) 3546 7191              gTalk: xmpp:[email protected]
+55 (11) 9406 7191        ICQ/AIM: aim:GoIM?screenname=61287803
BRAZIL GMT-3  MSN: msnim:[email protected]
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a