powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / А зачем нужен этот монстр....... MS SQL?
25 сообщений из 403, страница 3 из 17
А зачем нужен этот монстр....... MS SQL?
    #32723339
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
www.fun4me.narod.ruКлиентское приложение не должно полагать, что оно имеет право выдумывать свои собственные операции по работе с данными. Если требуется удалить строки с какими-то опциями, то почему бы не написать процедуру сп_Удалить_Кучу_Записей, с параметрами? В процедуре проверка. И вуаля! Всё просто, быстро и понятно. И переносимо, если процедуры через ODBC {call ...} вызываются.
Клиентское приложение, а так же администратор и проектировщик БД, вправе полагать, что SQL был придуман не только для его использования в хранимых процедурах. Поэтому как клиент, так и клиентское приложение имеют полное право (если конечно есть нужный грант) выполнить DELETE FROM и не "изобретать" процедуру "с кучей параметров" и "геммора". А сама БД вправе полагать, что любое изменение данных, вне зависимости откуда оно будет произведено - с процедуры, ISQL или с менеджера БД и кем - юзером, админом или овнером, будет всегда контролироваться логикой и любое изменение информации приведет к проверке условий, пересчету аггрегатных таблиц и прочих действий. Кроме триггеров больше никто этого гарантировать не может. Так что перед законом все должны быть равны. Хотя тут уже в силу вступает реализация триггеров в каждой СУБД - если она где то урезана функционально, то может действительно оказаться выгоднее все проводить через ХП. У меня, например, в ASA триггера сделаны очень толково - те же BEFORE триггера срабатывают до проверки CHECK и CONSTRAINTS и на момент блокирования записи до начала логирования операции над таблицей. Соотвествующе это дает прекрасную возможность инициализировать значения полей собственными значениями (например если в поле NULL, то занести в него свое значение, или же принудительно привести текстовое поле к верхнему регистру и т.д.). Плюс это позволяет в случае генерации ошибки из триггера быстро откатить операцию, раз не было физической записи в БД и логе и снизить время и ресурсы блокировки обрабатываемых записей (например, если уже на первой записи из обрабатываемого миллиона записей не прошло условие и триггер дал откат, то на текущий момент только первая запись и была блокирована писателем, следующие уже записи блокироваться не будут, операция будет просто прервана). Могу ошибиться, но по моему в Оракле используется такая же эффективная схема работы триггеров (единственное, что там не хватает - это AFTER триггеров на весь массив записей с доступом к нему из триггера, ко временной таблице). Так что в таких случаях по моему грех отказываться от триггеров.
...
Рейтинг: 0 / 0
А зачем нужен этот монстр....... MS SQL?
    #32723434
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vadiminfo
Все-таки, скрее всего, триггеры появились для реализации пользовательских ограничений целостности, т.е. тех, которые не могут быть реализованы декларативно в данной версии СУБД.


Триггера появились в СУБД ДО появления поддержки декларативной ссылочной целостности.

vadiminfo
Но главное, триггеры - это ХП процедуры, которые вызываются в ответ на события, связанные с изменением состояния БД. ...

Можно вместо DML вызывать процедуру. Тогда никаких событий не нужно. Все то же самое можно сделать и в процедуре. Процедура имеет нормальную и гибкую логику работы ( в отличие от триггеров, работа которых должна быть согласованной с основной модификацией данных, производится ТОЛЬКО внутри транзакции и т.п.). Процедура позволяет скрывать от приложения структуру базы данных, что добавляет доп. гибкость. В последнее время во всех СУБД развивается декларативная ссылочная целостность (каскадные удаления и прочие операции). В итоге мораль - триггера будут скоро просто не нужны, а уж о их вреде (для производительности, в основном) давно известно (правда оговорюсь - это зависит от СУБД).
...
Рейтинг: 0 / 0
А зачем нужен этот монстр....... MS SQL?
    #32723560
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivВ итоге мораль - триггера будут скоро просто не нужны, а уж о их вреде (для производительности, в основном) давно известно (правда оговорюсь - это зависит от СУБД).
Я бы сказал, что производительность и эффективность триггеров наверное даже больше не от СУБД зависит, а от драйвера "ПрямыеРуки.sys" :)
...
Рейтинг: 0 / 0
А зачем нужен этот монстр....... MS SQL?
    #32723641
savage79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Согласен что для современных систем триггеры и прочая фигня, вполодь до ссылочной целостности зачастую уже и не нужно. Объясню почему. Раньше народ писал клиент-серверный софт и тогда, чтобы им не заморачиваться с отслеживанием на клиенте целостности и непротиворечивости данных в БД использовались триггеры и хр.процедуры. Сейчас софт пишут с использованием 3х- и более звенной архитектуры, где вся бизнес логика сосредоточена на сервере приложений, который и отвечает за работу с данными. Типичный пример такой работы - технология J2EE, используя entitybeans можно прекрасно обходится без всех дополнительных наворотов БД, включаю аутентификацию пользователей. Так, например PDM система Windchill вообще не использует никаких преимуществ Оракла, обходясь только обычным хранением данных в таблицах, для чего мог сойти и mysql. При этом очень удобно работать с данными. Фактически клиентское приложение, а это зачастую JSP/Servlet клиент работает с обычными объектами языка java не думая о том как и где они хранятся.
...
Рейтинг: 0 / 0
А зачем нужен этот монстр....... MS SQL?
    #32723781
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор Раньше народ писал клиент-серверный софт и тогда, чтобы им не заморачиваться с отслеживанием на клиенте целостности и непротиворечивости данных в БД использовались триггеры и хр.процедуры. Сейчас софт пишут с использованием 3х- и более звенной архитектуры, где вся бизнес логика сосредоточена на сервере приложений, который и отвечает за работу с данными

Очень резкое завление, учитывая "всех" тех, кого вы упоминаете, составляющих 5-10% от всего рынка систем. Если лично вы пишете софт с помощью J2EE, то это не значит, что делают все так.

Или вы год перепутали и сейчас уже 20 55 ?

-- Tygra's --
...
Рейтинг: 0 / 0
А зачем нужен этот монстр....... MS SQL?
    #32723789
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уточнение: не рынка систем, а всех разрабатываемых систем - а то ведь придерутся, скажут, что продается три системы и все они не используют устаревшие методы, использующие ХП и триггеры

-- Tygra's --
...
Рейтинг: 0 / 0
А зачем нужен этот монстр....... MS SQL?
    #32723829
savage79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ведь мы с вами не будем жить вчерашним днем!
Клиент-сервер устаревшая технология, хотя и будет всегда использоваться для небольших систем. А вот удел большиi систем - многозвенные технологии. Хотя абсурдно получается, что для боьших систем достаточно mysql. А для остальных нужены MS SQL и Oracle ))
Кста, вот пример, SAP устаревшую систему R3, в скором будущем не будет сопровождать, а весь упор делается на систему mySAP ERP, которая как раз и написана на J2EE, использующая распределенные вычисления и компонентную структуру.
...
Рейтинг: 0 / 0
А зачем нужен этот монстр....... MS SQL?
    #32723978
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С ума сойти. Может быть уже и SQL устаревшая технология ? Какие революционные заявления однако :)
...
Рейтинг: 0 / 0
А зачем нужен этот монстр....... MS SQL?
    #32724113
Фотография SergSuper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
представители новых технологий, ответьте представителю устаревших!

допустим есть таблица проводок, добавление/удаление/модификация записей должна вызывать изменение в таблице остатков. На другой уровень (с сервера на клиента или промежуточный уровень) выносить нельзя - должно быть в одной транзакции. Проводки вставляются из разных мест, где по одной, где по несколько, удаляться тоже могут по каким-то заранее неизвестным условиям(допустим удалить все документы переоценки за какой-то день и проводки к ним). Как вы обычно такое реализовываете, что б без триггеров?
...
Рейтинг: 0 / 0
А зачем нужен этот монстр....... MS SQL?
    #32724183
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Представители новых технологий на такие вопросы не отвечают - они про такое просто не знают, у них есть одно магическое слово J2EE и в их новейших системах никаких проводок нет вообще - там коммунизм

Может они знают все-же, сколько внедрений SAP/R3 по России и по всему миру и сколько десятых процента это будет от всех систем.

И еще - новейшим товарищам предлагаю еще обязательно добавлять к J2ee еще и Windows must die , а то иначе как-то не то получается

Да, SAP скоро сопровождать не будет - лет этак через 30 перестанет

-- Tygra's --
...
Рейтинг: 0 / 0
А зачем нужен этот монстр....... MS SQL?
    #32724213
savage79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SergSuperпредставители новых технологий, ответьте представителю устаревших!

допустим есть таблица проводок, добавление/удаление/модификация записей должна вызывать изменение в таблице остатков. На другой уровень (с сервера на клиента или промежуточный уровень) выносить нельзя - должно быть в одной транзакции. Проводки вставляются из разных мест, где по одной, где по несколько, удаляться тоже могут по каким-то заранее неизвестным условиям(допустим удалить все документы переоценки за какой-то день и проводки к ним). Как вы обычно такое реализовываете, что б без триггеров?

одной транзакцией все это и делается, причем тут триггер? существует объект который называется "проводка", при изменении этого объекта нужно выполнить 1 транзакцию, в которой выполнить 2 операции изменения 2х таблиц БД, затем транзакцию завершить либо отменить, если объект поймал исключение.
...
Рейтинг: 0 / 0
А зачем нужен этот монстр....... MS SQL?
    #32724238
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну? Так и чем лучше ваша трехзвенная технология? Хотя бы в конкретном этом примере?

-- Tygra's --
...
Рейтинг: 0 / 0
А зачем нужен этот монстр....... MS SQL?
    #32724241
Фотография Scott Tiger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вот в лучшей СУБД всех времён и народов для таких случаев есть materialized view, в том числе и refresh on commit.

Требую отставки Президента РФ
...
Рейтинг: 0 / 0
А зачем нужен этот монстр....... MS SQL?
    #32724264
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Был уже топик по поводу многозвенок - почитайте его, чтобы тут флэйм не раздувать.

-- Tygra's --
...
Рейтинг: 0 / 0
А зачем нужен этот монстр....... MS SQL?
    #32724272
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Предыдущее мое к savage79

2 Scott Tiger

Про оставку - это в сторону или ваша предвыборая компания?
Я тоже требую отставки президента РФ. И США

-- Tygra's --
...
Рейтинг: 0 / 0
А зачем нужен этот монстр....... MS SQL?
    #32724327
savage79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tygraНу? Так и чем лучше ваша трехзвенная технология? Хотя бы в конкретном этом примере?

-- Tygra's --
а тем что работаешь не с таблицами БД, а с объектами языка программирования и не ломаешь голову о том как и какие запросы нужно делать, все это делает какая-нить служба persistent manager сервера приложений.

Далее, трехзвенная архитектура нужна для разработки больших и сложных приложений, где сервер приложений работает круглые сутки и обслуживает запросы пользователей или других информационных систем. Такие системы могут иметь множество интерфейсов для работы пользователя, например как графический интерфейс GUI так и веб-интерфейс. Интерфейсы занимаются только отображением и вводом информации. А вся бизнес логика сосредоточена на сервере приложений, который может взяимодействовать с сервером БД, сервером LDAP для аутентификации пользователей и пр. звеньями системы. Может взаимодействовать с другими серверами приложений, отвечающих за другие бизнес функции.
...
Рейтинг: 0 / 0
А зачем нужен этот монстр....... MS SQL?
    #32724350
Yo!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Yo!
Гость
новые, не новые - признаем сразу sql в прошлом, oop - sux. будующее за XQL (или как там язык запросов на xml завется) и сервис-ориентет программированием :) а то обсуждаете тут технологии 30 летней давности :)

ЗЫ. шучу
...
Рейтинг: 0 / 0
А зачем нужен этот монстр....... MS SQL?
    #32724364
Alexey Kudinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Иногда вынос бизнес логики в SP рассматривается как отдельный уровень приложения. Это к вопросу об n-звенных структурах.

А вообще всем ярым фанатам какой-либо одной архитектуры, утверждающим, что вот именно за этим будующее, а все остальное пригодно для "для небольших систем" советую просто поднабраться опыта, поучаствовать в проектах многозвенок, клиент-сервера, с логикой на клиенте. Чем больше разных проектов - тем лучше.

Тогда поймете что, как и когда применяется и какие у этого последствия. А размахивать рекламными слоганами - это детский сад.
...
Рейтинг: 0 / 0
А зачем нужен этот монстр....... MS SQL?
    #32724377
Фотография Scott Tiger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
savage79 неправильно воспринимает БД как black box со сложной технологией доступа к нему. Неэффективность persistent manager-ов доказана, сложность любого ООП-языка на порядки выше любого диалекта SQL, куда естественней, проще и производительней сделать простой селект от таблицы, чем (ёпти!) в цикле по коллекции первичных ключей вызывать геттеры.

Требую отставки Президента РФ
...
Рейтинг: 0 / 0
А зачем нужен этот монстр....... MS SQL?
    #32724388
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Итак меняю термины, получается:
РСУБД нужна для разработки больших и сложных приложений, где сервер баз данных работает круглые сутки и обслуживает запросы пользователей или других информационных систем. Такие системы могут иметь множество интерфейсов для работы пользователя, например как графический интерфейс GUI так и веб-интерфейс, для реализации которых существует множество проверенных временем ПО. Интерфейсы занимаются только отображением и вводом информации. А вся бизнес логика сосредоточена на сервере баз данных, которому ни с кем особо без необходимости не нужно взаимодействовать.

И где тут наглядное преимущество 3-его звена ? Судя по высказыванию:
автора тем что работаешь не с таблицами БД, а с объектами языка программирования и не ломаешь голову о том как и какие запросы нужно делать, все это делает какая-нить служба persistent manager сервера приложений.
самое лучшее преимущество - это то, что не нужно учить правила проектирования БД и SQL (и возможно кое где менять взгляды на жизнь), а делать приложения на привычных классах и получать большую зп только из за того, что сама трудоемкость создания 3-х звенных приложений (особенно на J2EE) повыше будет, чем у 2-х звенок :)
...
Рейтинг: 0 / 0
А зачем нужен этот монстр....... MS SQL?
    #32724391
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автора тем что работаешь не с таблицами БД, а с объектами языка программирования и не ломаешь голову о том как и какие запросы нужно делать, все это делает какая-нить служба persistent manager сервера приложений.

А сервер приложений роботы марсианские пишут?
Ну а раз уж не хочется запросы писать - нечего в программисты идти, можно в аналитики

Вот по поводу дальнейшего читайте тот топик, на который ссылку я привел.
Могу и тут повторить:

авторДалее, трехзвенная архитектура нужна для разработки больших и сложных приложений, где сервер приложений работает круглые сутки и обслуживает запросы пользователей или других информационных систем.
Неужели? Как же тогда другие системы работают? А когда есть БД и нет сервера приложений - и тоже работают. Это как? Без сервера приложений - и работают, причем тоже круглые сутки. Значит не нужен он - как собаке пятая нога :)

авторТакие системы могут иметь множество интерфейсов для работы пользователя, например как графический интерфейс GUI так и веб-интерфейс.
Действительно, без сервера приложений невозможно сделать гуи и веб-интерфейс. Явно у нас где-то он затаился, сволочь

авторИнтерфейсы занимаются только отображением и вводом информации.
Глубокая мысль :)

авторА вся бизнес логика сосредоточена на сервере приложений, который может взяимодействовать с сервером БД, сервером LDAP для аутентификации пользователей и пр. звеньями системы.
А у нас за это все отвечает БД и там же сосредоточена вся логика! И аутентификация тоже там! И представляете, кто бы не полез в БД - все-равно бизнес-логику не нарушит. В отличие от вашей системы, где без сервера приложений бизнес-логики нет нихрена

авторМожет взаимодействовать с другими серверами приложений, отвечающих за другие бизнес функции.
Да нет проблем!

В общем - в топик тот вам, в топик. Не надо тут флейма, давайте уж там....

-- Tygra's --
...
Рейтинг: 0 / 0
А зачем нужен этот монстр....... MS SQL?
    #32724403
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 ASCRUS

Классно поменял термины! :)

-- Tygra's --
...
Рейтинг: 0 / 0
А зачем нужен этот монстр....... MS SQL?
    #32724422
savage79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
спрашивается зачем тогда разработчики пишут сервера приложений???
или вы думаете что у MS asp странички напрямую к MS SQL Server-у обращаются???
или зачем Оракл выпустил Oracle Application Server???

какие именно системы работают без AppServer-а???? пример? форум какой-нить, это для вас система?
...
Рейтинг: 0 / 0
А зачем нужен этот монстр....... MS SQL?
    #32724430
Yo!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Yo!
Гость
авторсложность любого ООП-языка на порядки выше любого диалекта SQL, куда естественней, проще и производительней сделать простой селект от таблицы, чем (ёпти!) в цикле по коллекции первичных ключей вызывать геттеры.

с одинаковыми скилс pl/sql developer дороже java developera, если разницу помножить на время то иногда можно и проц второй добавить. какой из этих 2х подходов эфективней решает задача, кое где плюсы 3х звенки перекрывают в разы фишки 2-звенки и наоборот.
...
Рейтинг: 0 / 0
А зачем нужен этот монстр....... MS SQL?
    #32724434
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
??? У меня биллинговые системы ПРЕКРАСНО работают БЕЗ сервера приложений.

Пойдет ?
...
Рейтинг: 0 / 0
25 сообщений из 403, страница 3 из 17
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / А зачем нужен этот монстр....... MS SQL?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]