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
