|
su.dbms- SU.DBMS ---------------------------------------------------------------------- From : Ilya Zvyagin 2:5020/400 14 Jan 2002 21:07:29 To : Victor Metelitsa Subject : Re: в чем зло хранимых процедур? -------------------------------------------------------------------------------- "Victor Metelitsa" <vvm@cssc.tat.ru> wrote in message news:3C42E955.1070606@cssc.tat.ru... > Во-первых, я считаю их злом из "педагогических" соображений. Реляционка > - это ведь про множества записей и операции над множествами? А некие > товарищи (не буду говорить, кто... ! да я даже в книжке по Oracle ... Процедура - это еще не значит "процедурная логика". Ты прав, конечно, но ... > обойтись. Рекорд (в моих глазах) поставил некий крутой спец по ораклу, > который и количество записей в выборке так считает - открыл курсор, > обнулил счетчик, и вперед по записям, накручивая счетчик! Этого только могила ... Он и без процедуры будет на клиенте считать. > Во-вторых, всякие сложные вычисления. Здесь - вопрос веры. Я верю, что > немыслимо закрученные UPDATE и т.п. (изредка демонстрируемые мне) - это А я верю, что сокрытие структуры данных от приложения есть благо, ибо еще в 50 -ые годы поняли, что когда приложение вычисления зарплаты напрямую общается с контроллером барабанного HМД - это плохо, и придумали драйверы устройств и ОС. Я не вижу разницы между конфигурацией дискового накопителя и структурой таблицы в РСУБД. Поэтому прямые запросы в БД, которые есть аналоги вызовов прерываний или подрограмм физического ввода-вывода недопустимы, если приложение предполагается эксплуатировать достаточно долго. > Контрпример из IBM-овской поставки - нахождение медианы выборки. > Действительно, нет способа ее вычислить, кроме как просканировать > выборку до середины, и не тянуть же ее на клиента? Hо - кому она нужна, > медиана? Это, кстати, классический пример нереляционного мышления. Hу, собственно, и задача не реляционная. > Третье - построение изощренных схем проверок бизнес-правил и секьюрити. > Hо SP для этого не обязательны (на DB2, понятно). А на чем же ? Hа триггерах ? Чем они от SP отличаются по большому счету ? > функции, только ведь это чудовищное уродство. А в случае СУБД - в десять > раз уродливее. Чем брать суррогат, не лучше ли взять натуральный продукт? > Я предпочитаю минимизировать усилия. Скажем, для настройки СУБД или > создания индексов для запросов я прибегаю к "визардам". А я к мозгу. Странно. А что, эти визарды и правда когда-то работают ? Да, стоп - а при чем здесь вообще процедуры ? > у меня такой код зашит в клиентских программах, их обновления > автоматически доставляются на рабочее место (а можно было использовать > shared resource), так что рассинхронизации нет. Более правильно было бы, Hу, тогда тебе и вправду процедуры не нужны. :-)) > а если application server расположен, скажем, там же, где и > SQL-сервер, то и медианы можно было бы находить без напряга, сетевого > трафика нет; увы, у меня пока не так. Еще лучше было бы выкинуть Так вообще не должно быть по жизни, так что лучше и не надейся. > SQL-сервер на помойку и пользоваться чистым GemStone/S, но это слишком > дорого (особенно, учитывая, что спиратить его, в отличие от > DB2/Oracle/etc, практически невозможно). GemStone/S это СУБД или среда программирования ? Hу и что ты хочешь сказать ? Что ежели клиент у тебя на Smaltalk, и автоматом обновляется (такое еще многие могут делать, JAVA, да и PowerBuilder тривиальный), то процедур не надо ? Hу да, вроде как менее актуально, да. Hо вот ты попробуй представить, что БД у тебя из нескольких клиентов доступна, которые еще и не очень зависимые разработчики пишут, тогда вот ... Так что я полагаю, что это твое частное мнение, впрочем, как и мое, что процедуры кругом надо использовать. --- ifmail v.2.15dev5 * Origin: FCT Saint-Petersburg (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /su.dbms/13293c4a40cac.html, оценка из 5, голосов 10
|