Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
А зачем нужен этот монстр....... MS SQL?
|
|||
|---|---|---|---|
|
#18+
www.fun4me.narod.ruКлиентское приложение не должно полагать, что оно имеет право выдумывать свои собственные операции по работе с данными. Если требуется удалить строки с какими-то опциями, то почему бы не написать процедуру сп_Удалить_Кучу_Записей, с параметрами? В процедуре проверка. И вуаля! Всё просто, быстро и понятно. И переносимо, если процедуры через ODBC {call ...} вызываются. Клиентское приложение, а так же администратор и проектировщик БД, вправе полагать, что SQL был придуман не только для его использования в хранимых процедурах. Поэтому как клиент, так и клиентское приложение имеют полное право (если конечно есть нужный грант) выполнить DELETE FROM и не "изобретать" процедуру "с кучей параметров" и "геммора". А сама БД вправе полагать, что любое изменение данных, вне зависимости откуда оно будет произведено - с процедуры, ISQL или с менеджера БД и кем - юзером, админом или овнером, будет всегда контролироваться логикой и любое изменение информации приведет к проверке условий, пересчету аггрегатных таблиц и прочих действий. Кроме триггеров больше никто этого гарантировать не может. Так что перед законом все должны быть равны. Хотя тут уже в силу вступает реализация триггеров в каждой СУБД - если она где то урезана функционально, то может действительно оказаться выгоднее все проводить через ХП. У меня, например, в ASA триггера сделаны очень толково - те же BEFORE триггера срабатывают до проверки CHECK и CONSTRAINTS и на момент блокирования записи до начала логирования операции над таблицей. Соотвествующе это дает прекрасную возможность инициализировать значения полей собственными значениями (например если в поле NULL, то занести в него свое значение, или же принудительно привести текстовое поле к верхнему регистру и т.д.). Плюс это позволяет в случае генерации ошибки из триггера быстро откатить операцию, раз не было физической записи в БД и логе и снизить время и ресурсы блокировки обрабатываемых записей (например, если уже на первой записи из обрабатываемого миллиона записей не прошло условие и триггер дал откат, то на текущий момент только первая запись и была блокирована писателем, следующие уже записи блокироваться не будут, операция будет просто прервана). Могу ошибиться, но по моему в Оракле используется такая же эффективная схема работы триггеров (единственное, что там не хватает - это AFTER триггеров на весь массив записей с доступом к нему из триггера, ко временной таблице). Так что в таких случаях по моему грех отказываться от триггеров. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2004, 10:19 |
|
||
|
А зачем нужен этот монстр....... MS SQL?
|
|||
|---|---|---|---|
|
#18+
vadiminfo Все-таки, скрее всего, триггеры появились для реализации пользовательских ограничений целостности, т.е. тех, которые не могут быть реализованы декларативно в данной версии СУБД. Триггера появились в СУБД ДО появления поддержки декларативной ссылочной целостности. vadiminfo Но главное, триггеры - это ХП процедуры, которые вызываются в ответ на события, связанные с изменением состояния БД. ... Можно вместо DML вызывать процедуру. Тогда никаких событий не нужно. Все то же самое можно сделать и в процедуре. Процедура имеет нормальную и гибкую логику работы ( в отличие от триггеров, работа которых должна быть согласованной с основной модификацией данных, производится ТОЛЬКО внутри транзакции и т.п.). Процедура позволяет скрывать от приложения структуру базы данных, что добавляет доп. гибкость. В последнее время во всех СУБД развивается декларативная ссылочная целостность (каскадные удаления и прочие операции). В итоге мораль - триггера будут скоро просто не нужны, а уж о их вреде (для производительности, в основном) давно известно (правда оговорюсь - это зависит от СУБД). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2004, 10:56 |
|
||
|
А зачем нужен этот монстр....... MS SQL?
|
|||
|---|---|---|---|
|
#18+
MasterZivВ итоге мораль - триггера будут скоро просто не нужны, а уж о их вреде (для производительности, в основном) давно известно (правда оговорюсь - это зависит от СУБД). Я бы сказал, что производительность и эффективность триггеров наверное даже больше не от СУБД зависит, а от драйвера "ПрямыеРуки.sys" :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2004, 11:28 |
|
||
|
А зачем нужен этот монстр....... MS SQL?
|
|||
|---|---|---|---|
|
#18+
Согласен что для современных систем триггеры и прочая фигня, вполодь до ссылочной целостности зачастую уже и не нужно. Объясню почему. Раньше народ писал клиент-серверный софт и тогда, чтобы им не заморачиваться с отслеживанием на клиенте целостности и непротиворечивости данных в БД использовались триггеры и хр.процедуры. Сейчас софт пишут с использованием 3х- и более звенной архитектуры, где вся бизнес логика сосредоточена на сервере приложений, который и отвечает за работу с данными. Типичный пример такой работы - технология J2EE, используя entitybeans можно прекрасно обходится без всех дополнительных наворотов БД, включаю аутентификацию пользователей. Так, например PDM система Windchill вообще не использует никаких преимуществ Оракла, обходясь только обычным хранением данных в таблицах, для чего мог сойти и mysql. При этом очень удобно работать с данными. Фактически клиентское приложение, а это зачастую JSP/Servlet клиент работает с обычными объектами языка java не думая о том как и где они хранятся. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2004, 11:57 |
|
||
|
А зачем нужен этот монстр....... MS SQL?
|
|||
|---|---|---|---|
|
#18+
автор Раньше народ писал клиент-серверный софт и тогда, чтобы им не заморачиваться с отслеживанием на клиенте целостности и непротиворечивости данных в БД использовались триггеры и хр.процедуры. Сейчас софт пишут с использованием 3х- и более звенной архитектуры, где вся бизнес логика сосредоточена на сервере приложений, который и отвечает за работу с данными Очень резкое завление, учитывая "всех" тех, кого вы упоминаете, составляющих 5-10% от всего рынка систем. Если лично вы пишете софт с помощью J2EE, то это не значит, что делают все так. Или вы год перепутали и сейчас уже 20 55 ? -- Tygra's -- ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2004, 12:38 |
|
||
|
А зачем нужен этот монстр....... MS SQL?
|
|||
|---|---|---|---|
|
#18+
Уточнение: не рынка систем, а всех разрабатываемых систем - а то ведь придерутся, скажут, что продается три системы и все они не используют устаревшие методы, использующие ХП и триггеры -- Tygra's -- ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2004, 12:40 |
|
||
|
А зачем нужен этот монстр....... MS SQL?
|
|||
|---|---|---|---|
|
#18+
Ведь мы с вами не будем жить вчерашним днем! Клиент-сервер устаревшая технология, хотя и будет всегда использоваться для небольших систем. А вот удел большиi систем - многозвенные технологии. Хотя абсурдно получается, что для боьших систем достаточно mysql. А для остальных нужены MS SQL и Oracle )) Кста, вот пример, SAP устаревшую систему R3, в скором будущем не будет сопровождать, а весь упор делается на систему mySAP ERP, которая как раз и написана на J2EE, использующая распределенные вычисления и компонентную структуру. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2004, 12:55 |
|
||
|
А зачем нужен этот монстр....... MS SQL?
|
|||
|---|---|---|---|
|
#18+
С ума сойти. Может быть уже и SQL устаревшая технология ? Какие революционные заявления однако :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2004, 13:53 |
|
||
|
А зачем нужен этот монстр....... MS SQL?
|
|||
|---|---|---|---|
|
#18+
представители новых технологий, ответьте представителю устаревших! допустим есть таблица проводок, добавление/удаление/модификация записей должна вызывать изменение в таблице остатков. На другой уровень (с сервера на клиента или промежуточный уровень) выносить нельзя - должно быть в одной транзакции. Проводки вставляются из разных мест, где по одной, где по несколько, удаляться тоже могут по каким-то заранее неизвестным условиям(допустим удалить все документы переоценки за какой-то день и проводки к ним). Как вы обычно такое реализовываете, что б без триггеров? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2004, 14:34 |
|
||
|
А зачем нужен этот монстр....... MS SQL?
|
|||
|---|---|---|---|
|
#18+
Представители новых технологий на такие вопросы не отвечают - они про такое просто не знают, у них есть одно магическое слово J2EE и в их новейших системах никаких проводок нет вообще - там коммунизм Может они знают все-же, сколько внедрений SAP/R3 по России и по всему миру и сколько десятых процента это будет от всех систем. И еще - новейшим товарищам предлагаю еще обязательно добавлять к J2ee еще и Windows must die , а то иначе как-то не то получается Да, SAP скоро сопровождать не будет - лет этак через 30 перестанет -- Tygra's -- ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2004, 14:54 |
|
||
|
А зачем нужен этот монстр....... MS SQL?
|
|||
|---|---|---|---|
|
#18+
SergSuperпредставители новых технологий, ответьте представителю устаревших! допустим есть таблица проводок, добавление/удаление/модификация записей должна вызывать изменение в таблице остатков. На другой уровень (с сервера на клиента или промежуточный уровень) выносить нельзя - должно быть в одной транзакции. Проводки вставляются из разных мест, где по одной, где по несколько, удаляться тоже могут по каким-то заранее неизвестным условиям(допустим удалить все документы переоценки за какой-то день и проводки к ним). Как вы обычно такое реализовываете, что б без триггеров? одной транзакцией все это и делается, причем тут триггер? существует объект который называется "проводка", при изменении этого объекта нужно выполнить 1 транзакцию, в которой выполнить 2 операции изменения 2х таблиц БД, затем транзакцию завершить либо отменить, если объект поймал исключение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2004, 15:05 |
|
||
|
А зачем нужен этот монстр....... MS SQL?
|
|||
|---|---|---|---|
|
#18+
Ну? Так и чем лучше ваша трехзвенная технология? Хотя бы в конкретном этом примере? -- Tygra's -- ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2004, 15:10 |
|
||
|
А зачем нужен этот монстр....... MS SQL?
|
|||
|---|---|---|---|
|
#18+
А вот в лучшей СУБД всех времён и народов для таких случаев есть materialized view, в том числе и refresh on commit. Требую отставки Президента РФ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2004, 15:11 |
|
||
|
А зачем нужен этот монстр....... MS SQL?
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2004, 15:18 |
|
||
|
А зачем нужен этот монстр....... MS SQL?
|
|||
|---|---|---|---|
|
#18+
Предыдущее мое к savage79 2 Scott Tiger Про оставку - это в сторону или ваша предвыборая компания? Я тоже требую отставки президента РФ. И США -- Tygra's -- ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2004, 15:20 |
|
||
|
А зачем нужен этот монстр....... MS SQL?
|
|||
|---|---|---|---|
|
#18+
tygraНу? Так и чем лучше ваша трехзвенная технология? Хотя бы в конкретном этом примере? -- Tygra's -- а тем что работаешь не с таблицами БД, а с объектами языка программирования и не ломаешь голову о том как и какие запросы нужно делать, все это делает какая-нить служба persistent manager сервера приложений. Далее, трехзвенная архитектура нужна для разработки больших и сложных приложений, где сервер приложений работает круглые сутки и обслуживает запросы пользователей или других информационных систем. Такие системы могут иметь множество интерфейсов для работы пользователя, например как графический интерфейс GUI так и веб-интерфейс. Интерфейсы занимаются только отображением и вводом информации. А вся бизнес логика сосредоточена на сервере приложений, который может взяимодействовать с сервером БД, сервером LDAP для аутентификации пользователей и пр. звеньями системы. Может взаимодействовать с другими серверами приложений, отвечающих за другие бизнес функции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2004, 15:37 |
|
||
|
А зачем нужен этот монстр....... MS SQL?
|
|||
|---|---|---|---|
|
#18+
новые, не новые - признаем сразу sql в прошлом, oop - sux. будующее за XQL (или как там язык запросов на xml завется) и сервис-ориентет программированием :) а то обсуждаете тут технологии 30 летней давности :) ЗЫ. шучу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2004, 15:46 |
|
||
|
А зачем нужен этот монстр....... MS SQL?
|
|||
|---|---|---|---|
|
#18+
Иногда вынос бизнес логики в SP рассматривается как отдельный уровень приложения. Это к вопросу об n-звенных структурах. А вообще всем ярым фанатам какой-либо одной архитектуры, утверждающим, что вот именно за этим будующее, а все остальное пригодно для "для небольших систем" советую просто поднабраться опыта, поучаствовать в проектах многозвенок, клиент-сервера, с логикой на клиенте. Чем больше разных проектов - тем лучше. Тогда поймете что, как и когда применяется и какие у этого последствия. А размахивать рекламными слоганами - это детский сад. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2004, 15:53 |
|
||
|
А зачем нужен этот монстр....... MS SQL?
|
|||
|---|---|---|---|
|
#18+
savage79 неправильно воспринимает БД как black box со сложной технологией доступа к нему. Неэффективность persistent manager-ов доказана, сложность любого ООП-языка на порядки выше любого диалекта SQL, куда естественней, проще и производительней сделать простой селект от таблицы, чем (ёпти!) в цикле по коллекции первичных ключей вызывать геттеры. Требую отставки Президента РФ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2004, 15:56 |
|
||
|
А зачем нужен этот монстр....... MS SQL?
|
|||
|---|---|---|---|
|
#18+
Итак меняю термины, получается: РСУБД нужна для разработки больших и сложных приложений, где сервер баз данных работает круглые сутки и обслуживает запросы пользователей или других информационных систем. Такие системы могут иметь множество интерфейсов для работы пользователя, например как графический интерфейс GUI так и веб-интерфейс, для реализации которых существует множество проверенных временем ПО. Интерфейсы занимаются только отображением и вводом информации. А вся бизнес логика сосредоточена на сервере баз данных, которому ни с кем особо без необходимости не нужно взаимодействовать. И где тут наглядное преимущество 3-его звена ? Судя по высказыванию: автора тем что работаешь не с таблицами БД, а с объектами языка программирования и не ломаешь голову о том как и какие запросы нужно делать, все это делает какая-нить служба persistent manager сервера приложений. самое лучшее преимущество - это то, что не нужно учить правила проектирования БД и SQL (и возможно кое где менять взгляды на жизнь), а делать приложения на привычных классах и получать большую зп только из за того, что сама трудоемкость создания 3-х звенных приложений (особенно на J2EE) повыше будет, чем у 2-х звенок :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2004, 16:00 |
|
||
|
А зачем нужен этот монстр....... MS SQL?
|
|||
|---|---|---|---|
|
#18+
автора тем что работаешь не с таблицами БД, а с объектами языка программирования и не ломаешь голову о том как и какие запросы нужно делать, все это делает какая-нить служба persistent manager сервера приложений. А сервер приложений роботы марсианские пишут? Ну а раз уж не хочется запросы писать - нечего в программисты идти, можно в аналитики Вот по поводу дальнейшего читайте тот топик, на который ссылку я привел. Могу и тут повторить: авторДалее, трехзвенная архитектура нужна для разработки больших и сложных приложений, где сервер приложений работает круглые сутки и обслуживает запросы пользователей или других информационных систем. Неужели? Как же тогда другие системы работают? А когда есть БД и нет сервера приложений - и тоже работают. Это как? Без сервера приложений - и работают, причем тоже круглые сутки. Значит не нужен он - как собаке пятая нога :) авторТакие системы могут иметь множество интерфейсов для работы пользователя, например как графический интерфейс GUI так и веб-интерфейс. Действительно, без сервера приложений невозможно сделать гуи и веб-интерфейс. Явно у нас где-то он затаился, сволочь авторИнтерфейсы занимаются только отображением и вводом информации. Глубокая мысль :) авторА вся бизнес логика сосредоточена на сервере приложений, который может взяимодействовать с сервером БД, сервером LDAP для аутентификации пользователей и пр. звеньями системы. А у нас за это все отвечает БД и там же сосредоточена вся логика! И аутентификация тоже там! И представляете, кто бы не полез в БД - все-равно бизнес-логику не нарушит. В отличие от вашей системы, где без сервера приложений бизнес-логики нет нихрена авторМожет взаимодействовать с другими серверами приложений, отвечающих за другие бизнес функции. Да нет проблем! В общем - в топик тот вам, в топик. Не надо тут флейма, давайте уж там.... -- Tygra's -- ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2004, 16:01 |
|
||
|
А зачем нужен этот монстр....... MS SQL?
|
|||
|---|---|---|---|
|
#18+
2 ASCRUS Классно поменял термины! :) -- Tygra's -- ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2004, 16:08 |
|
||
|
А зачем нужен этот монстр....... MS SQL?
|
|||
|---|---|---|---|
|
#18+
спрашивается зачем тогда разработчики пишут сервера приложений??? или вы думаете что у MS asp странички напрямую к MS SQL Server-у обращаются??? или зачем Оракл выпустил Oracle Application Server??? какие именно системы работают без AppServer-а???? пример? форум какой-нить, это для вас система? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2004, 16:17 |
|
||
|
А зачем нужен этот монстр....... MS SQL?
|
|||
|---|---|---|---|
|
#18+
авторсложность любого ООП-языка на порядки выше любого диалекта SQL, куда естественней, проще и производительней сделать простой селект от таблицы, чем (ёпти!) в цикле по коллекции первичных ключей вызывать геттеры. с одинаковыми скилс pl/sql developer дороже java developera, если разницу помножить на время то иногда можно и проц второй добавить. какой из этих 2х подходов эфективней решает задача, кое где плюсы 3х звенки перекрывают в разы фишки 2-звенки и наоборот. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2004, 16:21 |
|
||
|
|

start [/forum/topic.php?fid=35&msg=32724391&tid=1554012]: |
0ms |
get settings: |
7ms |
get forum list: |
18ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
42ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
81ms |
get tp. blocked users: |
1ms |
| others: | 230ms |
| total: | 402ms |

| 0 / 0 |
