Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Сравнение СУБД Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 2 [3] 4 5 6 7 8 9 10 .. 14   вперед  Ctrl
 Re: использование хранимых процедур  [new]
ЛП
Guest
2 iscrafm
много ложится на средний слой. А вот логика - не всегда.

Что-то как-то я этого не понимаю. Что это за логика такая, что не влезет в произвольный средний слой, но при этом влезет в совсем даже не произвольный слой СУБД (не произвольный - потому что чаще всего реляционный, а ежели не реляционный, то и еще более непроизвольный).

1. управление контентом системы
2. права доступа
3. управление данными (в смысле различные БД)

Я совсем потерял ход Вашей мысли.
Это Вы привели пример того, что ложится в средний слой (но не ложится в СУБД), или пример того, что ложится в СУБД (но не ложится в средний слой)?
29 окт 09, 14:12    [7856296]     Ответить | Цитировать Сообщить модератору
 Re: использование хранимых процедур  [new]
barrabas
Member

Откуда: от махмуда
Сообщений: 10528
Dimitry Sibiryakov

barrabas
Меньше действий
с процедурами:
1. исправил / закомитил в svn/cvs/меркуриал
2. выполнил

Получил в лоб "object in use", пошёл всех выгонять из базы.

в оракле мне такого не разу не встречалось, про другие базы сказать ничего не могу, т.к. не работал
29 окт 09, 14:39    [7856582]     Ответить | Цитировать Сообщить модератору
 Re: использование хранимых процедур  [new]
barrabas
Member

Откуда: от махмуда
Сообщений: 10528
ЛП
2 iscrafm
много ложится на средний слой. А вот логика - не всегда.

Что-то как-то я этого не понимаю. Что это за логика такая, что не влезет в произвольный средний слой, но при этом влезет в совсем даже не произвольный слой СУБД (не произвольный - потому что чаще всего реляционный, а ежели не реляционный, то и еще более непроизвольный).

1. управление контентом системы
2. права доступа
3. управление данными (в смысле различные БД)

Я совсем потерял ход Вашей мысли.
Это Вы привели пример того, что ложится в средний слой (но не ложится в СУБД), или пример того, что ложится в СУБД (но не ложится в средний слой)?

да хоть работа с разными базами которые о друг друге ничего знать не должны.
потом всякие там генерации и отправки писем с отчетами (в базе не очень удобно генерить всякие ексели и пдф, а на С# легко), клиент назал сгенерить всем клиентам, и средний слой зашуршал, а данные в базе.
29 окт 09, 14:44    [7856632]     Ответить | Цитировать Сообщить модератору
 Re: использование хранимых процедур  [new]
iscrafm
Member [заблокирован]

Откуда:
Сообщений: 35345
ЛП

=======
1. управление контентом системы
2. права доступа
3. управление данными (в смысле различные БД)

=======

Я совсем потерял ход Вашей мысли.
Это Вы привели пример того, что ложится в средний слой (но не ложится в СУБД), или пример того, что ложится в СУБД (но не ложится в средний слой)?

это пример того, что лежит в среднем слое.
29 окт 09, 14:51    [7856717]     Ответить | Цитировать Сообщить модератору
 Re: использование хранимых процедур  [new]
ЛП
Guest
2 barrabas
да хоть работа с разными базами которые о друг друге ничего знать не должны.

Пожалейте мой мозг.
Я задаю вопрос одному человеку, получаю ответ от другого.
Причем вопрос "или - или", а ответ "да хоть бы и накуй".

потом всякие там генерации и отправки писем с отчетами (в базе не очень удобно генерить всякие ексели и пдф, а на С# легко), клиент назал сгенерить всем клиентам, и средний слой зашуршал, а данные в базе.

Серверы отчетов отменили???
Даже если отменили... Вот эта Ваша гипотетическая самописная отчетная система - Вы её к чему привели? Это по Вашему пример "среднего слоя без логики, а логика в СУБД" ? Хз, по мне так это самый что ни на есть пример двузвенной клиент-серверной системы, с логикой в СУБД и рисованием экселей и рассылкой писем на клинте.

------------------------------

2 iscrafm
это пример того, что лежит в среднем слое.

Дык с таким я и не спорю. Я очень даже "за" - за то, что ежели уж средний слой образовался, то всякие управления правами и прочие радости надо делать именно там. Непонятки возникли по поводу предложения barrabas'а делать средний слой безнихуа, с одним лишь перенаправлением сиквеловских запросов и (непонятно зачем) кешированием.

Насчет логики, не влезающий в средний слой, можете прокомментировать?
29 окт 09, 14:58    [7856781]     Ответить | Цитировать Сообщить модератору
 Re: использование хранимых процедур  [new]
barrabas
Member

Откуда: от махмуда
Сообщений: 10528
ЛП


Даже если отменили... Вот эта Ваша гипотетическая самописная отчетная система - Вы её к чему привели? Это по Вашему пример "среднего слоя без логики, а логика в СУБД" ? Хз, по мне так это самый что ни на есть пример двузвенной клиент-серверной системы, с логикой в СУБД и рисованием экселей и рассылкой писем на клинте.


Нет.
С клиента ушла только команда сделать и разослать, он начал дальше работать и ничего генерить не будет. К средний слой начал дергать процедуры сервера для получения данных, сгенерил отчеты, отправил, ну и лог отправил кому надо.
29 окт 09, 15:10    [7856898]     Ответить | Цитировать Сообщить модератору
 Re: использование хранимых процедур  [new]
barrabas
Member

Откуда: от махмуда
Сообщений: 10528
ЛП

Дык с таким я и не спорю. Я очень даже "за" - за то, что ежели уж средний слой образовался, то всякие управления правами и прочие радости надо делать именно там. Непонятки возникли по поводу предложения barrabas'а делать средний слой безнихуа, с одним лишь перенаправлением сиквеловских запросов и (непонятно зачем) кешированием.

Почему прям без ничего, с логикой но со своей, логика обработки данных в базе, такие команды слой просто передает.
Если нужно засветить ИС через внешку, например, я бы заюзал WCF, а не светил базу в инете, это уже средний слой.
А почему бы и не сделать кэширование отдельно, зачем базу напрягать когда можно этого не делать, вариантов много, это один из вариантов.
29 окт 09, 15:19    [7856985]     Ответить | Цитировать Сообщить модератору
 Re: использование хранимых процедур  [new]
ЛП
Guest
barrabas
ЛП


Даже если отменили... Вот эта Ваша гипотетическая самописная отчетная система - Вы её к чему привели? Это по Вашему пример "среднего слоя без логики, а логика в СУБД" ? Хз, по мне так это самый что ни на есть пример двузвенной клиент-серверной системы, с логикой в СУБД и рисованием экселей и рассылкой писем на клинте.


Нет.
С клиента ушла только команда сделать и разослать, он начал дальше работать и ничего генерить не будет. К средний слой начал дергать процедуры сервера для получения данных, сгенерил отчеты, отправил, ну и лог отправил кому надо.

Нет. Этот Ваш "средний" (отчетный) слой - не есть средний слой в классической многозвенной архитектуре. Он не форсирует дальнейшую работу "через себя". Это самый что ни на есть клиент для СУБД, живущий своей жизнью, не мешающий жить другим клиентам с подобной, но иначе реализованной функциональностью, и не мещающий жить другим клиентам со сколь угодно другой фунциональностью. То, что он куда-то что-то рассылает по запросу кого-то третьего, который в это время занят чем-то четвёртым - это вообще дело десятое.
29 окт 09, 15:23    [7857028]     Ответить | Цитировать Сообщить модератору
 Re: использование хранимых процедур  [new]
iscrafm
Member [заблокирован]

Откуда:
Сообщений: 35345
ЛП

Насчет логики, не влезающий в средний слой, можете прокомментировать?

комментировать особо нечего. Я просто высказал собственное мнение, что логика обработки данных лучше смотрится в СУБД. Чисто имхо. это не означает, что ее нельзя вынести в средний слой. просто я, лично, такое не проповедую. Мне пользоваться простыми SQL предложениями гораздо комфортней и более предсказуемо, чем городить нечто с ORM и обработкой данных на Java,Delphi и т.п. Хотя тоже не отношусь к этому категорично.
если быстрее и надежней будет так, как показано ниже, то почему нет. Всему свое место

#!e:/perl/bin/perl -w

$inputfile = "DUMMY";
$inputfile =~ m![^/\\]+$!;
$outputfile = $`."out.log";

    if( -f $inputfile ){
        open( LOGFILE, "<". $inputfile) or die (" $!");
    }

    #die ($vcl->ShowMessage(" $!")) unless( $outputfile );
    open( OUT, ">". $outputfile) or die (" $!");
    
    while(<LOGFILE>)
    {
        #ИНН 7718505679
       s/(Плательщик1=|Получатель1=)\s*ИНН\s+\d+\s+(.+)$/$1$2/;
       s/^(Дата[^=]*|СрокПлатежа)=00\.00\.0000/$1=01.01.1976/;
       s/\./,/g if (/Сумма|Всего|Остаток/ and /\d\.\d/);

      print OUT $_;
    }   
 
    close LOGFILE;
    close OUT;
    rename($outputfile,$inputfile);
29 окт 09, 15:25    [7857047]     Ответить | Цитировать Сообщить модератору
 Re: использование хранимых процедур  [new]
ЛП
Guest
barrabas
Почему прям без ничего

Почему? По Вашим словам.

Если нужно засветить ИС через внешку

Этак договоримся до того, что связку MS SQL Server + MS ISA Server будем считать примером многозвенного приложения.
29 окт 09, 15:25    [7857051]     Ответить | Цитировать Сообщить модератору
 Re: использование хранимых процедур  [new]
DPH3
Guest
barrabas

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


Это ты опять про двузвенки говоришь, где причины появления хранимок вполне понятны (как эмуляция application layer).
А вот в трехзвенках ничего из этого уже не нужно...
29 окт 09, 15:27    [7857068]     Ответить | Цитировать Сообщить модератору
 Re: использование хранимых процедур  [new]
baracs
Member

Откуда: Москва
Сообщений: 7219
Dimitry Sibiryakov

barrabas
Меньше действий
с процедурами:
1. исправил / закомитил в svn/cvs/меркуриал
2. выполнил

Получил в лоб "object in use", пошёл всех выгонять из базы.

Это где такое?
В смысле, какая СУБД выдает такие штуки при рекомпиляции ХП?
29 окт 09, 15:37    [7857179]     Ответить | Цитировать Сообщить модератору
 Re: использование хранимых процедур  [new]
barrabas
Member

Откуда: от махмуда
Сообщений: 10528
ЛП
barrabas
Почему прям без ничего

Почему? По Вашим словам.

Если нужно засветить ИС через внешку

Этак договоримся до того, что связку MS SQL Server + MS ISA Server будем считать примером многозвенного приложения.

так собственно чем WCF не средний слой, в нем можно как раз кучу логики не относящейся к БД реализовать

2 DPH3
с правами БД конечно я загнул, но пересобирать и выпускать в продакшен средний слой сложнее, нежели просто заменить процедуру.
29 окт 09, 15:40    [7857209]     Ответить | Цитировать Сообщить модератору
 Re: использование хранимых процедур  [new]
iscrafm
Member [заблокирован]

Откуда:
Сообщений: 35345
baracs
Dimitry Sibiryakov

barrabas
Меньше действий
с процедурами:
1. исправил / закомитил в svn/cvs/меркуриал
2. выполнил

Получил в лоб "object in use", пошёл всех выгонять из базы.

Это где такое?
В смысле, какая СУБД выдает такие штуки при рекомпиляции ХП?

FireBird
29 окт 09, 15:41    [7857216]     Ответить | Цитировать Сообщить модератору
 Re: использование хранимых процедур  [new]
ЛП
Guest
2 iscrafm
если быстрее и надежней будет так, как показано ниже

Не надо аргументировать примерами экстремального говнокода

Мысль понятна, в общем. Против возможности (и зачастую целесообразности) реализации логики в БД я не возражаю. Но тогда вынос управления правами в средний слой выглядит странно, а аргументы типа "различные СУБД" так и вообще выглядят невозможно.

ИМХО, если (по каким-либо причинам логика зашита в БД, то надо иметь в БД по возможности всё остальное (всякое там управление правами). Если же логика в среднем слое, то и управление правами итд итп там же должно лежать. И надобности в хранимках в этом случае как бы и нету вообще (с чего обсуждение и началось).
29 окт 09, 15:41    [7857218]     Ответить | Цитировать Сообщить модератору
 Re: использование хранимых процедур  [new]
ЛП
Guest
2 barrabas
так собственно чем WCF не средний слой, в нем можно как раз кучу логики не относящейся к БД реализовать

По Вашему "средний слой" - это "где можно кучу всякой логики реализовать"?
Я и на клиенте могу навалить реализовть кучу всякой логики, но средним слоем он от этого не станет. Даже не сомневайтесь.
29 окт 09, 15:44    [7857239]     Ответить | Цитировать Сообщить модератору
 Re: использование хранимых процедур  [new]
iscrafm
Member [заблокирован]

Откуда:
Сообщений: 35345
ЛП
2 iscrafm
если быстрее и надежней будет так, как показано ниже

Не надо аргументировать примерами...

а что в нем написано? :)

ЛП
Но тогда вынос управления правами в средний слой выглядит странно, а аргументы типа "различные СУБД" так и вообще выглядят невозможно.

Вы просто наверное не встречались с таким. Когда в комплекс завязаны много компаний с различными системами и СУБД, то выглядит это очень даже "возможно"

ЛП
ИМХО, если (по каким-либо причинам логика зашита в БД, то надо иметь в БД по возможности всё остальное (всякое там управление правами). Если же логика в среднем слое, то и управление правами итд итп там же должно лежать. И надобности в хранимках в этом случае как бы и нету вообще (с чего обсуждение и началось).

в примитивных случаях конечно. Ничего кроме СУБД не нужно в принципе. Я говорю о больших системах. Кстати, в какой из СУБД будете держать управление доступом если их несколько. Ну и конечно же, в трехзвенках клиент не работает с СУБД. Для СУБД 500 пользователей системы - это один Сервер приложений
29 окт 09, 15:51    [7857311]     Ответить | Цитировать Сообщить модератору
 Re: использование хранимых процедур  [new]
hvlad
Member

Откуда:
Сообщений: 11564
iscrafm
baracs
Dimitry Sibiryakov

Получил в лоб "object in use", пошёл всех выгонять из базы.

Это где такое?
В смысле, какая СУБД выдает такие штуки при рекомпиляции ХП?

FireBird
Нет такого в FireBird.

Но менять метаданные на ходу действительно весьма не рекомендуется.
Ещё с момента начальной реализации PSQL Borland'ом.
Ничего, когда-нибудь и это исправим.
29 окт 09, 15:52    [7857314]     Ответить | Цитировать Сообщить модератору
 Re: использование хранимых процедур  [new]
iscrafm
Member [заблокирован]

Откуда:
Сообщений: 35345
hvlad
iscrafm
baracs
Dimitry Sibiryakov

Получил в лоб "object in use", пошёл всех выгонять из базы.

Это где такое?
В смысле, какая СУБД выдает такие штуки при рекомпиляции ХП?

FireBird
Нет такого в FireBird.

ну значит у меня под этим именем MySQL скрывается. Вот же замаскировался жук.
29 окт 09, 15:55    [7857330]     Ответить | Цитировать Сообщить модератору
 Re: использование хранимых процедур  [new]
ЛП
Guest
2 iscrafm
а что в нем написано? :)

Я в сортах овна не разбираюсь :)

Кстати, в какой из СУБД будете держать управление доступом если их несколько.

Именно в среднем слое буду держать управление доступом. Потому что СУБД несколько. Проще сопровождать одну систему раздачи прав, чем несколько.
И по этой же самой причине буду стараться держать логику с том же самом (а может и немножко другом) среднем слое - потому что сопровождать одну кучку бизнес-логики гораздо проще, чем многие множества куч, тем более размазанных по каким-то там хранимкам.
Есть трехзвенка - на фиг бы мне сдались хранимые процедуры. (исключая вопросы производительности, из за которых конечно же может понадобиться заниматься размазыванием).
29 окт 09, 15:59    [7857370]     Ответить | Цитировать Сообщить модератору
 Re: использование хранимых процедур  [new]
barrabas
Member

Откуда: от махмуда
Сообщений: 10528
ЛП
2 barrabas
так собственно чем WCF не средний слой, в нем можно как раз кучу логики не относящейся к БД реализовать

По Вашему "средний слой" - это "где можно кучу всякой логики реализовать"?
Я и на клиенте могу навалить реализовть кучу всякой логики, но средним слоем он от этого не станет. Даже не сомневайтесь.

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

У нас 4ре разные ИС, а баз разных и того больше
29 окт 09, 16:00    [7857383]     Ответить | Цитировать Сообщить модератору
 Re: использование хранимых процедур  [new]
barrabas
Member

Откуда: от махмуда
Сообщений: 10528
это вопрос как я понял "религиозный"
29 окт 09, 16:05    [7857428]     Ответить | Цитировать Сообщить модератору
 Re: использование хранимых процедур  [new]
ЛП
Guest
barrabas
У нас 4ре разные ИС, а баз разных и того больше

И бизнес-логика, как я понимаю, у Вас размазана по четырем разным ИС и еще большему количеству баз, где она лежит в миллионе разнообразных хранимок.
С чем Вас и поздравляю.
Увольте там кого-нибудь. Наймите другого.
29 окт 09, 16:06    [7857434]     Ответить | Цитировать Сообщить модератору
 Re: использование хранимых процедур  [new]
iscrafm
Member [заблокирован]

Откуда:
Сообщений: 35345
ЛП
Есть трехзвенка - на фиг бы мне сдались хранимые процедуры. (исключая вопросы производительности, из за которых конечно же может понадобиться заниматься размазыванием).

"нафиг бы"? Речь о чем-то конкретном или просто о барышнях рассуждаем которых пощупать нет возможности? А то назвали что-то нехорошим словом, а потом сказали, что даже не понимаете что там написано. Скучно.
29 окт 09, 16:08    [7857450]     Ответить | Цитировать Сообщить модератору
 Re: использование хранимых процедур  [new]
barrabas
Member

Откуда: от махмуда
Сообщений: 10528
ЛП
barrabas
У нас 4ре разные ИС, а баз разных и того больше

И бизнес-логика, как я понимаю, у Вас размазана по четырем разным ИС и еще большему количеству баз, где она лежит в миллионе разнообразных хранимок.
С чем Вас и поздравляю.
Увольте там кого-нибудь. Наймите другого.

да нет, просто только одна наша, а другие купленные
29 окт 09, 16:08    [7857452]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 2 [3] 4 5 6 7 8 9 10 .. 14   вперед  Ctrl
Все форумы / Сравнение СУБД Ответить