| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 31/08/2008 21:44:04
|
rjun
What is classpath?
Membro desde: 26/10/2006 17:57:01
Mensagens: 7
Offline
|
Estou participando de um processo de customização de um ERP onde praticamente toda regra de negócio é feita no SQL Server. Qual a opinião de vocês sobre isso? Além disso, gostaria de outra opinião. O uso de udf's e views é util? Por que a empresa que desenvolveu o ERP adora stored procedures. Cada processo é feito dentro de uma única stored procedure monstro, umas com até 3 mil linhas. Eles alegam que usar udf's e views apenas deixaria o processo mais lento. Agradeço aqueles que deixarem suas opiniões.
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 01/09/2008 07:11:52
|
flavio.kenshin
HelloWorld
![[Avatar]](/images/avatar/f719801846ff4eb77a7e393cbf607d00.png)
Membro desde: 28/07/2007 14:16:47
Mensagens: 10
Offline
|
Ola !! Eu trabalho com pl/sql (oracle) em uma emprsa de medicamentos ,todas as regras de negócio são utilizadas trigger,procedures,view`s,functions ,package.Não vejo problemas e serem tratadas estas regras diretamente no banco ,pois são muitas transações todos os dias e é necessário otimizar ao maximo. Acho que a performance seria muito melhor se eles separacem as regras do que ter de ler 3000 linhas ou mais ,a questão das view`s é lógico que seria mais rápido a consulta dos dados necessários ,já que a consulta não irá percorrer toda a tabela e tambem ,retringiria os usuários não autorizados a não poderem visualizar os campos que não os competem. Acho que seria melhor repensar na reorganização destas regras ,pois certamente elas irão tomar uma dimensão maior futuramente e qualquer pessoa que prescisar efetuar a manutenção tera uma certa dificuldade. O ideal seria avaliar uma segunda opnião de outra consultoria.
Até mais...
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 01/09/2008 13:17:46
|
Emerson Macedo
Virtual Machine Man
![[Avatar]](/images/avatar/360c19682e81f21d55846685c1701179.jpg)
Membro desde: 01/08/2006 16:55:28
Mensagens: 689
Localização: Rio de Janeiro - RJ
Offline
|
Regra de negócios no banco de dados hoje em dia é inaceitável. A unica coisa pra mim que justifica uma stored procedure por exemplo seria um mega relatório. E mesmo assim eu tentaria entender com meu cliente o porque daquele relatório e apresentar uma solução melhor pra ele, fornecendo o mesmo resultado ou melhor.
|
Emerson Macedo Leite
PMP - Ping-pong Master Player
CSM - Counter-Strile Manager
http://codificando.com
"Porque, assim como o relâmpago sai do oriente e se mostra até o ocidente, assim será também a vinda do filho do homem." - Mateus 24:27 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 01/09/2008 13:34:36
|
flavio.kenshin
HelloWorld
![[Avatar]](/images/avatar/f719801846ff4eb77a7e393cbf607d00.png)
Membro desde: 28/07/2007 14:16:47
Mensagens: 10
Offline
|
Acho que inaceitável não seria um bom termo visto que a todo momento é lançado um framework
para mapeamento objeto-relacional e outras técnicas de para maximizar performances. Quando se tem um software relativamente pequeno concordo em
manter as regras pelo próprio software,mas quando se tem relatórios que deve trazer muitos de dados seria bom repensar nesta caso,
pois o que torna o software lento é o processo de quantas vezes ele tem que buscar estes valores no banco de dados .E já no caso anterior ele está utilizando uma metodologia que preza este tipo de organização.
ATT FLAVIO.KENSHIN
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 01/09/2008 13:53:20
|
gustavo_apsilva
JavaBaby
Membro desde: 25/06/2007 20:33:10
Mensagens: 95
Localização: Matão-SP
Offline
|
Se um relatório traz muitos dados, estes não serão avaliados pelo usuário com certeza ( exceto casos especiais ), então um relatório longo não acredito que possa ser usado como justificativa.
Salvo casos especiais de performance crítica, hoje em dia não acho viável regras em banco de dados, dificulta depuração, e fica mais difícil encontrar uma falha logica. ( fora que seu sistema fica totalmente dependente do fornecedor de banco de dados )
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 01/09/2008 13:59:09
|
Emerson Macedo
Virtual Machine Man
![[Avatar]](/images/avatar/360c19682e81f21d55846685c1701179.jpg)
Membro desde: 01/08/2006 16:55:28
Mensagens: 689
Localização: Rio de Janeiro - RJ
Offline
|
flavio.kenshin wrote: Acho que inaceitável não seria um bom termo visto que a todo momento é lançado um framework
para mapeamento objeto-relacional e outras técnicas de para maximizar performances
Não entendi o que isso tem a ver com regra de negócios no banco. Poderia explicar?
flavio.kenshin wrote:Quando se tem um software relativamente pequeno concordo em
manter as regras pelo próprio software
O que você chama de software relativamente pequeno!? São justamente os softwares mais complexos que se beneficiam da utilização correta de OO.
flavio.kenshin wrote:quando se tem relatórios que deve trazer muitos de dados seria bom repensar nesta caso
Com relação a relatórios já dei a resposta no post anterior.
|
Emerson Macedo Leite
PMP - Ping-pong Master Player
CSM - Counter-Strile Manager
http://codificando.com
"Porque, assim como o relâmpago sai do oriente e se mostra até o ocidente, assim será também a vinda do filho do homem." - Mateus 24:27 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/09/2008 14:54:10
|
DaviPiala
Virtual Machine Man
Membro desde: 17/08/2007 19:17:35
Mensagens: 598
Localização: São Paulo
Offline
|
Temos aqui é um choque de forças. ( Entre os dois lados da força huehue)..
Pessoal, quem programa só em Java naturalmente nunca iria defender que as regras de negócio ficassem no banco! Temos por ai toneladas de aplicações que tem suas regras de negócio em stored-procedures, exemplos são os sistemas desenvolvidos em Oracle Forms/Reports, Power Builder e por ai vai.
E os principais argumentos do povão são:
-StoreProcedures são mais rápidas.
-É mais produtivo.
-Posso mudar de linguagem e mantenha todas as minhas regras de negocio.
Convencer que essa prática não é uma boa prática é dificil. essa cultura não vai mudar da noite pro dia. Na verdade ele é tão enraizada que tenho medo que nós sejamos convecidos a adota-lá.
|
Si temi more regat
Efamima dove tore
Infata dio re
Infa lati plastire |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/09/2008 17:50:54
|
marcosalex
GUJ Expert
![[Avatar]](/images/avatar/0a8f8b227be2d04a675082cc9d51c127.jpg)
Membro desde: 20/02/2008 12:32:59
Mensagens: 3368
Offline
|
"
This message was edited 1 time. Last update was at 12/02/2009 07:02:37
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/09/2008 18:05:50
|
André Fonseca
JWizard
![[Avatar]](/images/avatar/286b0b3ea509af1aeff6bb47299d96d7.png)
Membro desde: 23/02/2007 15:52:55
Mensagens: 2034
Offline
|
Oi,
Eu acho que uma das situações que justifica o uso é quando o seu sistema tem que acessar uma DB na qual você não é o DBA
Neste caso o mais lógico e seguro seria você pedir para quem é o dono criar uma Stored Procedure que retorna o que você precisa e apenas chamá-la no programa
Abs
This message was edited 1 time. Last update was at 06/09/2008 18:06:26
|
Você é novo no GUJ?
Como fazer perguntas?
www.twitter.com/_afonseca |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/09/2008 18:15:17
|
Alessandro Lazarotti
Virtual Machine Man
![[Avatar]](/images/avatar/2aaaddf27344ee54058548dc081c6541.jpg)
Membro desde: 21/01/2004 14:12:54
Mensagens: 719
Offline
|
Emerson Macedo wrote: Regra de negócios no banco de dados hoje em dia é inaceitável.
Eu acho radicalismo inaceitável.
|
... Lezinho
------------------------
twitter: @lazarotti
http://alessandrolazarotti.wordpress.com/
http://jbossbrasil.org/
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 08/09/2008 13:00:38
|
Emerson Macedo
Virtual Machine Man
![[Avatar]](/images/avatar/360c19682e81f21d55846685c1701179.jpg)
Membro desde: 01/08/2006 16:55:28
Mensagens: 689
Localização: Rio de Janeiro - RJ
Offline
|
Alessandro Lazarotti wrote:
Emerson Macedo wrote: Regra de negócios no banco de dados hoje em dia é inaceitável.
Eu acho radicalismo inaceitável.
Se você ler o resto da minha mensagem verá o caso onde acho justificavel. Caso tenha algum outro exemplo onde seja aceitável, por favor coloque aqui no forum. Tenho certeza que agregará bem mais do que um simples "Eu acho radicalismo inaceitável".
PS: Não dê quote pela metade pra distorcer a mensagem, ok?
This message was edited 1 time. Last update was at 08/09/2008 13:01:45
|
Emerson Macedo Leite
PMP - Ping-pong Master Player
CSM - Counter-Strile Manager
http://codificando.com
"Porque, assim como o relâmpago sai do oriente e se mostra até o ocidente, assim será também a vinda do filho do homem." - Mateus 24:27 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 08/09/2008 13:45:57
|
Alessandro Lazarotti
Virtual Machine Man
![[Avatar]](/images/avatar/2aaaddf27344ee54058548dc081c6541.jpg)
Membro desde: 21/01/2004 14:12:54
Mensagens: 719
Offline
|
Emerson Macedo wrote:Se você ler o resto da minha mensagem verá o caso onde acho justificavel. Caso tenha algum outro exemplo onde seja aceitável, por favor coloque aqui no forum. Tenho certeza que agregará bem mais do que um simples "Eu acho radicalismo inaceitável".
PS: Não dê quote pela metade pra distorcer a mensagem, ok?
... não vi onde distorci alguma coisa. Quotei uma frase até seu ponto final... mas deixa pra lá:
Emerson Macedo wrote:Regra de negócios no banco de dados hoje em dia é inaceitável. A unica coisa pra mim que justifica uma stored procedure por exemplo seria um mega relatório. E mesmo assim eu tentaria entender com meu cliente o porque daquele relatório e apresentar uma solução melhor pra ele, fornecendo o mesmo resultado ou melhor.
Ainda acho que radicalismo é inaceitável, principalmente ao definir critérios para uma arquitetura. Pra mim afirmar que não deve se aceitar determinada tecnologia que oferece recursos que podem lhe resolver um problema levantado pelo cliente, não tem fundamento.
Não é só "mega relatórios" que se beneficiam da performance de processos rodando em banco de dados. Todo e qualquer processo que utilize de grandes consultas associadas a regras, como queries em dados desustruturados de BI (que não é simplesmente relatórios), que tem por requisito não ultrapassar a barreira de "x" tempos... ou ainda triggers de bancos legados que iniciam localmente dados para uma nova base em real-time podem se valer de recursos particulares de cada banco.
É aquela velha história da ferramenta certa para cada caso, sem pensar em arquitetura de caixinha (isso ja virou frase de parachoque de caminhão)... do tipo "dessa água não beberei".
Se Stored Procedure satifaz certo requisito que outro método não satisfaz, utilize...
|
... Lezinho
------------------------
twitter: @lazarotti
http://alessandrolazarotti.wordpress.com/
http://jbossbrasil.org/
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 08/09/2008 15:00:04
|
Emerson Macedo
Virtual Machine Man
![[Avatar]](/images/avatar/360c19682e81f21d55846685c1701179.jpg)
Membro desde: 01/08/2006 16:55:28
Mensagens: 689
Localização: Rio de Janeiro - RJ
Offline
|
Alessandro Lazarotti wrote:
Emerson Macedo wrote:Se você ler o resto da minha mensagem verá o caso onde acho justificavel. Caso tenha algum outro exemplo onde seja aceitável, por favor coloque aqui no forum. Tenho certeza que agregará bem mais do que um simples "Eu acho radicalismo inaceitável".
PS: Não dê quote pela metade pra distorcer a mensagem, ok?
... não vi onde distorci alguma coisa. Quotei uma frase até seu ponto final... mas deixa pra lá:
Cortou sim, mas como você bem disse, deixemos pra lá ...
Alessandro Lazarotti wrote:
Emerson Macedo wrote:Regra de negócios no banco de dados hoje em dia é inaceitável. A unica coisa pra mim que justifica uma stored procedure por exemplo seria um mega relatório. E mesmo assim eu tentaria entender com meu cliente o porque daquele relatório e apresentar uma solução melhor pra ele, fornecendo o mesmo resultado ou melhor.
Ainda acho que radicalismo é inaceitável, principalmente ao definir critérios para uma arquitetura. Pra mim afirmar que não deve se aceitar determinada tecnologia que oferece recursos que podem lhe resolver um problema levantado pelo cliente, não tem fundamento.
Já foi dito anteriormente em que casos onde a performance para busca dos dados em grande quantidade é extremamente crítica, é valido, não entendi o ponto.
Alessandro Lazarotti wrote:
Não é só "mega relatórios" que se beneficiam da performance de processos rodando em banco de dados. Todo e qualquer processo que utilize de grandes consultas associadas a regras, como queries em dados desustruturados de BI (que não é simplesmente relatórios), que tem por requisito não ultrapassar a barreira de "x" tempos... ou ainda triggers de bancos legados que iniciam localmente dados para uma nova base em real-time podem se valer de recursos particulares de cada banco.
Se você parasse um pouquinho para entender o que eu escrevi, perceberia que quando se fala em "mega relatório" pode-se entender por "um acesso ao banco que necessida de grande quantidade de dados de forma trabalhada". Você está se apegando a palavra usada para distorcer mais uma vez. Volto a dizer: Sem requisitos de acesso a dados com volumes gigantes, como eu disse desde o primeiro post, o local mais indicado para se colocar as regras de negócio nos dias de hoje são nos objetos da sua aplicação.
Alessandro Lazarotti wrote:
É aquela velha história da ferramenta certa para cada caso, sem pensar em arquitetura de caixinha (isso ja virou frase de parachoque de caminhão)... do tipo "dessa água não beberei".
Se Stored Procedure satifaz certo requisito que outro método não satisfaz, utilize...
Acho que você está esquecendo que isso é um forum de Arquitetura de Sistemas onde tentamos discutir as melhores práticas da atualidade. Quando o colega falou que está desenvolvendo um sistema de ERP, pelo que pude perceber, não pareceu que existia um requisito desse tipo. Pelo contrário, ele reclamou que as stored procedures eram um monstro (segundo nosso amigo: até 3 mil linhas), e isso estava ferrando com o trabalho dele. Ninguém disse "dessa água não beberei", ninguém está propondo arquitetura de caixinha. Estamos falando de melhores práticas para os dias de hoje. Se é da sua época, já se foi o tempo onde professor de faculdade ensinada que regra de negócios se poe no banco (Se bem que ainda deve ter alguns que ensinam isso). É disso que estamos falando. Nada disso tem a ver com engessar aqruitetura.
É lamentável você perder seu tempo (e o meu) distorcendo um post para criar um flame sem necessidade.
|
Emerson Macedo Leite
PMP - Ping-pong Master Player
CSM - Counter-Strile Manager
http://codificando.com
"Porque, assim como o relâmpago sai do oriente e se mostra até o ocidente, assim será também a vinda do filho do homem." - Mateus 24:27 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 08/09/2008 15:11:55
|
peczenyj
Moderador
![[Avatar]](/images/avatar/299dc35e747eb77177d9cea10a802da2.jpg)
Membro desde: 26/03/2006 23:25:37
Mensagens: 3191
Localização: Rio de Janeiro
Offline
|
rjun wrote:Estou participando de um processo de customização de um ERP onde praticamente toda regra de negócio é feita no SQL Server. Qual a opinião de vocês sobre isso? Além disso, gostaria de outra opinião. O uso de udf's e views é util? Por que a empresa que desenvolveu o ERP adora stored procedures. Cada processo é feito dentro de uma única stored procedure monstro, umas com até 3 mil linhas. Eles alegam que usar udf's e views apenas deixaria o processo mais lento. Agradeço aqueles que deixarem suas opiniões.
Qual o custo de dar manutenção nessas regras?
|
http://pacman.blog.br
'Não importa quanto alguém se dedique à tarefa. Ninguém consegue fazer a água da cascata cair para cima.' |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 08/09/2008 16:54:48
|
Alessandro Lazarotti
Virtual Machine Man
![[Avatar]](/images/avatar/2aaaddf27344ee54058548dc081c6541.jpg)
Membro desde: 21/01/2004 14:12:54
Mensagens: 719
Offline
|
Emerosn macedo wrote: Já foi dito anteriormente em que casos onde a performance para busca dos dados em grande quantidade é extremamente crítica, é valido, não entendi o ponto.
E eu não entendi oq você não entendeu.
Emerson, não comentei sobre o post inicial, mas fiz sobre o seu comentário, isso é natural em um fórum. Eu li o que você escreveu e não achei coerente, por isso submeti minha resposta.
Isso é mesmo um fórum de discussão sobre arquitetura, logo é normal que idéias expressas (ou mal expressas) aqui possam ser debatidas. Não entendo sua revolta. Se você acha que é flame discordar de algo que você diz ou tentou dizer, paciência.
[]'s
Emerson Macedo wrote: É lamentável você perder seu tempo (e o meu) distorcendo um post para criar um flame sem necessidade.
PS: Eu não perco meu tempo em fórum. Se posto, é pq achei relevante. Pelo menos essa é minha postura.
Quanto ao tempo que vc perder, eu não posso fazer nada.
This message was edited 1 time. Last update was at 08/09/2008 17:23:31
|
... Lezinho
------------------------
twitter: @lazarotti
http://alessandrolazarotti.wordpress.com/
http://jbossbrasil.org/
|
|
|
 |
|
|