Может ли кто-нибудь сказать «за» и «против» хранимых процедур И «за» и «против» хранимых процедур Java?

Может ли кто-нибудь сказать «за» и «против» хранимых процедур И «за» и «против» хранимых процедур Java? И как это проверить.

С наилучшими пожеланиями!


person Debuger    schedule 11.05.2010    source источник
comment
Похоже на тот же вопрос, который вы задали вчера: stackoverflow.com/questions/2802135/java-class-in-db   -  person skaffman    schedule 11.05.2010


Ответы (2)


Аргументы за и против хранимых процедур имеют тенденцию разделяться по тому, что, по вашему мнению, является правильным ответом на вопрос: принадлежит ли бизнес-логика базе данных или приложению? Я постараюсь быть нейтральным в изложении аргументов. Если мне это удастся, некоторые из моих плюсов и минусов будут противоречить друг другу.

ПРО

  1. Хранимые процедуры упрощают совместное использование кода базы данных между приложениями
  2. Совместное размещение логики, связанной с данными, с данными упрощает применение бизнес-правил во всех приложениях. При таком подходе владелец данных имеет приоритет перед пользователем данных.
  3. Хранимые процедуры используют язык, адаптированный для программирования баз данных.
  4. Хранимые процедуры масштабируются вместе с базой данных.

CON

  1. Бизнес-логика не принадлежит базе данных.
  2. Хранимые процедуры написаны на специальных и неуклюжих языках программирования, которые среднестатистическому разработчику неинтересно изучать.
  3. Мы не можем просить администраторов баз данных написать хранимые процедуры, потому что администраторы баз данных ненавидят разработчиков.
  4. Хранимые процедуры выполняются в базе данных, и база данных является узким местом.

Многие из этих общих моментов также применимы к хранимым процедурам Java. Я написал ответ на связанный с вами вопрос , так что эти плюсы и минусы могут показаться знакомыми.

ПРО

  1. Хранимые процедуры Java позволяют нам расширять функциональность, доступную для программ баз данных.
  2. В частности, это может дать нам большую гибкость для интеграции операций в базе данных и доменах ОС.
  3. Многие разработчики умеют писать на Java.
  4. Хранимые процедуры Java позволяют нам развертывать наше приложение базы данных в различных продуктах СУБД.

CON

  1. Java работает хуже, чем собственный код базы данных.
  2. Хранимые процедуры Java требуют написания специального кода, который дублирует встроенные функции.
  3. Java не адаптирована для работы с базами данных.
  4. Java может создавать проблемы с безопасностью. особенно когда речь идет о запуске программ в ОС из базы данных.

Следующее верно для собственных хранимых процедур и хранимых процедур Java: код, написанный разработчиками без понимания того, как работают базы данных, может работать действительно плохо. Это в равной степени относится к созданным интерфейсам или инструментам ORM, настроенным без соответствующего уровня знаний. Однако такая ситуация с меньшей вероятностью возникнет с собственными хранимыми процедурами, поскольку их функциональность ориентирована на создание эффективных приложений баз данных.

person APC    schedule 11.05.2010

Хранимые процедуры pro:

-Безопасный

-Производительность и масштабируемость

-Позволяет вносить изменения на один уровень (сама база данных, а не фактический код интерфейса / веб-страницы)

-Можно написать сценарий или легко перенести

person JonH    schedule 11.05.2010